milestone 3 - Chatmanager: rudimentary version implemented

This commit is contained in:
Franziska Gerold 2026-05-24 14:42:58 +02:00
parent 7f63c8f2ae
commit 626c10c129
4 changed files with 44 additions and 13 deletions

View File

@ -1,8 +1,34 @@
from openai import OpenAI
from dotenv import load_dotenv
import os
load_dotenv(dotenv_path=".env")
HOST = os.getenv('HOST')
PORT = os.getenv('PORT')
API_KEY = os.getenv('API_KEY')
MODEL = os.getenv('MODEL')
def get_client() -> OpenAI:
"""Return an OpenAI-compatible client pointing at the vLLM server."""
base_url = f"http://{HOST}:{PORT}/v1"
return OpenAI(base_url=base_url, api_key=API_KEY)
client = get_client()
def send_message(message): def send_message(message):
pass # hier gehts darum, die message vorzubereiten -> also nachricht aus den Chatfenster mit systemprompts und file_conntext verknüpfen
# hier auch Zeug zusammenkürzen wenns zu lang wird?
return "Explain what a system prompt is."
def receive_response(): def receive_response():
pass # hier wird send_message() aufgerufen, damit dann geschickt werden kann
response = client.responses.create(
input=send_message(""))
return response.output_text
print(receive_response())

View File

@ -12,18 +12,19 @@ def list_files() -> list:
files = list(mypath.glob('*.py')) files = list(mypath.glob('*.py'))
return files return files
def read_file(file_path: Path) -> str : def read_file(file_path: Path) -> str:
#wenn eine Datei im Sidebar angeklickt wird, soll die Funktion sie lesen und im Code Editor anzeigen # ErrorHandling einbauen, falls der Pfad falsch ist?
#file = open(file_path, 'r').read() # wenn eine Datei im Sidebar angeklickt wird, soll die Funktion sie lesen und im Code Editor anzeigen
with file_path.open("r") as file: # file = open(file_path, 'r').read()
with file_path.open('r') as file:
return file.read() return file.read()
def save_file(file_path: Path, content: str): def save_file(file_path: Path, content: str):
#wenn eine Datei im Code Editor abgeändert wird, soll die Funktion die Änderungen abspeichern #wenn eine Datei im Code Editor abgeändert wird, soll die Funktion die Änderungen abspeichern
with file_path.open('w') as f: with file_path.open('w') as file:
f.write(content) file.write(content)
print(list_files()) print(list_files())
print(read_file(Path("C:/FH_Graubünden/26FS/AI_in_SE/project_ai_se/pages/example.py"))) print(read_file(Path("C:/FH_Graubünden/26FS/AI_in_SE/project_ai_se/example.py")))
print(save_file(Path("C:/FH_Graubünden/26FS/AI_in_SE/project_ai_se/pages/example_2.py"), "haHa")) print(save_file(Path("C:/FH_Graubünden/26FS/AI_in_SE/project_ai_se/example_2.py"), "hiHa"))

8
app.py
View File

@ -9,17 +9,21 @@ def callback_test():
bsp_list = ["Projekt", ["Datei 1", "Datei 2"]] bsp_list = ["Projekt", ["Datei 1", "Datei 2"]]
with st.sidebar: with st.sidebar:
#wenn FileManager integriert wird: Elemente mit list_files bauen
st.write(bsp_list[0]) st.write(bsp_list[0])
st.button(bsp_list[1][0], key="datei1", on_click=callback_test) st.button(bsp_list[1][0], key="datei1", on_click=callback_test)
st.button(bsp_list[1][1], key="datei2") st.button(bsp_list[1][1], key="datei2")
# wenn Datei ausgewählt wird, sollte FileManager aufgerufen werden, der dann im Code Editor den Inhalt anzeigt # 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") col_editor_output, col_chat = st.columns([0.6, 0.4], gap="xxlarge")
with col_editor_output: with col_editor_output:
st.text_area("Code Editor", key="editor", on_change=callback_test) st.text_area("Code Editor", key="editor", on_change=callback_test)
#Verhalten bei Veränderungen mit on_change festlegen # Verhalten bei Veränderungen mit on_change festlegen, mit File_Manager verknüpfen
#wenn angezigter Code bearbeitet wird, sollte ExecutionEngine aufgerufen werden, diese soll den Code ausführen und im Outputfenster angezeigt werden mit DebugLogger # 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") st.write("Output and debugging messages")
# hier wird der Output angezeigt, der mit DebugLogger erstellt wurde # hier wird der Output angezeigt, der mit DebugLogger erstellt wurde

View File

@ -1 +1 @@
haHa hiHa