File size: 2,308 Bytes
03cac6f
d47dfbe
 
03cac6f
 
df3d747
d47dfbe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
03cac6f
d47dfbe
 
 
 
 
 
 
 
 
 
 
 
df3d747
03cac6f
 
d47dfbe
03cac6f
d47dfbe
 
 
 
 
03cac6f
d47dfbe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import os
import sys
import traceback
import chainlit as cl
from openai import OpenAI

# Set up basic logging to stdout
def log_message(message):
    print(f"DEBUG: {message}", file=sys.stdout)
    sys.stdout.flush()  # Ensure output is flushed immediately

# Log startup information
log_message("Application starting up")
log_message(f"Python version: {sys.version}")

# Check for API key
api_key = os.environ.get("OPENAI_API_KEY")
if api_key:
    log_message("API key found (first few chars): " + api_key[:4] + "...")
else:
    log_message("WARNING: No API key found in environment")

# Initialize the OpenAI client
try:
    client = OpenAI(api_key=api_key)
    log_message("OpenAI client initialized successfully")
except Exception as e:
    log_message(f"Error initializing OpenAI client: {str(e)}")
    traceback.print_exc()

@cl.on_chat_start
async def start():
    log_message("New chat session started")
    if not api_key:
        await cl.Message(content="⚠️ API key not found. Please add OPENAI_API_KEY secret.").send()

@cl.on_message
async def main(message: cl.Message):
    log_message(f"Received message: {message.content[:50]}...")
    
    # Simple test response without using OpenAI
    if message.content.lower() == "test":
        log_message("Sending test response")
        await cl.Message(content="Test successful! This is a direct response without using the OpenAI API.").send()
        return
    
    try:
        log_message("Attempting to call OpenAI API")
        
        # Call OpenAI API
        response = client.chat.completions.create(
            model="gpt-3.5-turbo",
            messages=[
                {"role": "system", "content": "You are a helpful assistant."},
                {"role": "user", "content": message.content}
            ],
            temperature=0.7,
        )
        
        log_message("OpenAI API call successful")
        
        # Send response back to user
        await cl.Message(
            content=response.choices[0].message.content,
        ).send()
        
    except Exception as e:
        log_message(f"Error during API call: {str(e)}")
        traceback.print_exc()
        
        # Send error message to user
        await cl.Message(
            content=f"Sorry, I encountered an error: {str(e)}",
        ).send()