ai_se/app.py

74 lines
2.5 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
st.set_page_config(layout="wide")
with st.sidebar:
for file in list_files():
st.button(file.name, on_click=open_file, args=[file])
col_editor_output, col_chat = st.columns([0.6, 0.4], gap="large", vertical_alignment="bottom")
with col_editor_output:
if "file_content" in st.session_state:
text = st.text_area("Code Editor", key="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:
if "messages" not in st.session_state:
st.session_state.messages = []
#if "history" in st.session_state:
# string = ""
# for item in st.session_state["history"]:
# string += item
# st.write(string)
# 2. Display History
for msg in st.session_state.messages:
with st.chat_message(msg["role"]):
st.write(msg["content"])
# 3. Input & Response
message = st.chat_input("How can qwen help you?", key="chat")
if message:
st.session_state.messages.append({"role": "user", "content": message})
response = send_message(message)
st.session_state.messages.append({"role": "assistant", "content": response})
st.rerun()
#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)
# if not "history" in st.session_state:
# st.session_state["history"] = []
# st.session_state["history"].append(f"Message: {message} \n ----- \n Response: {response} \n ----- \n")
# st.rerun()
#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