diff --git a/website/__pycache__/app.cpython-311.pyc b/website/__pycache__/app.cpython-311.pyc index b132526..3d9c8e7 100644 Binary files a/website/__pycache__/app.cpython-311.pyc and b/website/__pycache__/app.cpython-311.pyc differ diff --git a/website/app.py b/website/app.py index 1e657f2..6ce0bd3 100755 --- a/website/app.py +++ b/website/app.py @@ -932,15 +932,38 @@ def too_many_requests(e): def chat_with_assistant(): """Chatbot-API mit OpenAI Integration.""" data = request.json - prompt = data.get('prompt', '') - context = data.get('context', '') - if not prompt: - return jsonify({ - 'error': 'Prompt darf nicht leer sein.' - }), 400 - - try: + # Prüfen, ob wir ein einzelnes Prompt oder ein messages-Array haben + if 'messages' in data: + messages = data.get('messages', []) + if not messages: + return jsonify({ + 'error': 'Keine Nachrichten vorhanden.' + }), 400 + + # Extrahiere Systemnachricht falls vorhanden, sonst Standard-Systemnachricht + system_message = next((msg['content'] for msg in messages if msg['role'] == 'system'), + "Du bist ein hilfreicher Assistent, der Menschen dabei hilft, " + "Wissen zu organisieren und zu verknüpfen. Liefere informative, " + "sachliche und gut strukturierte Antworten.") + + # Formatiere Nachrichten für OpenAI API + api_messages = [{"role": "system", "content": system_message}] + + # Füge Benutzer- und Assistenten-Nachrichten hinzu + for msg in messages: + if msg['role'] in ['user', 'assistant']: + api_messages.append({"role": msg['role'], "content": msg['content']}) + else: + # Alte Implementierung für direktes Prompt + prompt = data.get('prompt', '') + context = data.get('context', '') + + if not prompt: + return jsonify({ + 'error': 'Prompt darf nicht leer sein.' + }), 400 + # Zusammenfassen mehrerer Gedanken oder Analyse anfordern system_message = ( "Du bist ein hilfreicher Assistent, der Menschen dabei hilft, " @@ -951,20 +974,24 @@ def chat_with_assistant(): if context: system_message += f"\n\nKontext: {context}" + api_messages = [ + {"role": "system", "content": system_message}, + {"role": "user", "content": prompt} + ] + + try: response = client.chat.completions.create( model="gpt-3.5-turbo-16k", - messages=[ - {"role": "system", "content": system_message}, - {"role": "user", "content": prompt} - ], + messages=api_messages, max_tokens=300, temperature=0.7 ) answer = response.choices[0].message.content + # Für das neue Format erwarten wir response statt answer return jsonify({ - 'answer': answer + 'response': answer }) except Exception as e: