46 lines
1.9 KiB
Python
46 lines
1.9 KiB
Python
import streamlit as st
|
|
from pathlib import Path
|
|
from ChatManager import send_message
|
|
from FileManager import list_files, read_file, save_file, open_file
|
|
|
|
|
|
"st.session_state object:", st.session_state
|
|
|
|
|
|
|
|
with st.sidebar:
|
|
#wenn FileManager integriert wird: Elemente mit list_files bauen
|
|
for file in list_files():
|
|
st.button(file.name, on_click=open_file, args=[file])
|
|
#bla_button = st.button("bla")
|
|
#if bla_button:
|
|
# st.session_state["bla"] = "text"
|
|
# wenn Datei ausgewählt wird, sollte FileManager aufgerufen werden, der dann im Code Editor den Inhalt anzeigt
|
|
# on_click: FileManager: read_file(file_path)
|
|
|
|
col_editor_output, col_chat = st.columns([0.6, 0.4], gap="xxlarge")
|
|
|
|
with col_editor_output:
|
|
if "file_content" in st.session_state:
|
|
text = st.text_area("Code Editor", key="file_content")
|
|
#if st.session_state["file_content"] != text:
|
|
# st.session_state["editor"] = st.session_state["file_content"]
|
|
|
|
# Verhalten bei Veränderungen mit on_change festlegen, mit File_Manager verknüpfen
|
|
# on_change(save_file(file_path, content( -> das wär dann der Inhalt von text_area))
|
|
# wenn angezigter Code bearbeitet wird, sollte ExecutionEngine aufgerufen werden, diese soll den Code ausführen und im Outputfenster angezeigt werden mit DebugLogger
|
|
# fürs Ausführen vllt eigener Button machen? st.button("execute code", key="execution", on_click=run_code)
|
|
st.write("Output and debugging messages")
|
|
# hier wird der Output angezeigt, der mit DebugLogger erstellt wurde
|
|
|
|
with col_chat:
|
|
st.write("Chat with qwen")
|
|
message = st.chat_input("How can qwen help you?", key="chat")
|
|
if message:
|
|
response = send_message(message)
|
|
st.write(response)
|
|
#Verhalten bei Veränderungen mit on_submit festlegen
|
|
#ChatManager kümmert sich um chat history und Verbindung mit AI API (qwen)
|
|
#Systemprompter schickt Kontext mit
|
|
st.write("History")
|
|
st.write(message) |