|
def respond(user_message, history): |
|
if not user_message: |
|
return "", history |
|
|
|
|
|
try: |
|
messages = [{"role": "system", "content": INITIAL_PROMPT}] |
|
|
|
for user_text, assistant_text in history: |
|
if user_text: |
|
messages.append({"role": "user", "content": user_text}) |
|
if assistant_text: |
|
messages.append({"role": "assistant", "content": assistant_text}) |
|
|
|
|
|
method_selection = user_message.lower().strip() |
|
method_prompt = get_prompt_for_method(method_selection) |
|
|
|
if method_prompt != "I didn’t understand your choice. Please type 'Bar Model,' 'Double Number Line,' or 'Equation' to proceed.": |
|
messages.append({"role": "assistant", "content": method_prompt}) |
|
history.append((user_message, method_prompt)) |
|
return "", history |
|
|
|
messages.append({"role": "user", "content": user_message}) |
|
|
|
|
|
completion = client.chat.completions.create( |
|
model="gpt-4o", |
|
messages=messages, |
|
max_tokens=512, |
|
temperature=0.7 |
|
) |
|
|
|
assistant_reply = completion.choices[0].message.content |
|
history.append((user_message, assistant_reply)) |
|
|
|
return "", history |
|
|
|
except Exception as e: |
|
return f"⚠️ An error occurred: {str(e)}", history |
|
|