Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -3,45 +3,52 @@ import openai
|
|
3 |
import os
|
4 |
import time
|
5 |
|
6 |
-
#
|
7 |
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
|
8 |
ASSISTANT_ID = os.getenv("OPENAI_ASSISTANT_ID")
|
9 |
|
10 |
-
print("π API Key Set:", bool(OPENAI_API_KEY))
|
11 |
-
print("π€ Assistant ID Set:", bool(ASSISTANT_ID))
|
12 |
-
|
13 |
openai.api_key = OPENAI_API_KEY
|
14 |
|
15 |
def chat_with_assistant(message):
|
16 |
try:
|
17 |
if not OPENAI_API_KEY or not ASSISTANT_ID:
|
18 |
-
return "π«
|
19 |
-
|
20 |
-
print(f"π¨ User message: {message}")
|
21 |
|
|
|
22 |
thread = openai.beta.threads.create()
|
23 |
-
openai.beta.threads.messages.create(
|
24 |
-
|
25 |
-
|
26 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
while True:
|
28 |
-
run_status = openai.beta.threads.runs.retrieve(
|
|
|
|
|
|
|
29 |
if run_status.status == "completed":
|
30 |
break
|
31 |
elif run_status.status == "failed":
|
32 |
-
|
33 |
-
return "β Assistant run failed"
|
34 |
time.sleep(1)
|
35 |
|
|
|
36 |
messages = openai.beta.threads.messages.list(thread_id=thread.id)
|
37 |
for msg in reversed(messages.data):
|
38 |
if msg.role == "assistant":
|
39 |
-
print("β
Assistant response:", msg.content[0].text.value)
|
40 |
return msg.content[0].text.value
|
41 |
|
42 |
-
return "β οΈ
|
|
|
43 |
except Exception as e:
|
44 |
-
print("π₯ Error:", str(e))
|
45 |
return f"β Error: {str(e)}"
|
46 |
|
47 |
demo = gr.Interface(fn=chat_with_assistant, inputs="text", outputs="text", title="LOR Chat Assistant")
|
|
|
3 |
import os
|
4 |
import time
|
5 |
|
6 |
+
# Load secrets from HF Space secrets
|
7 |
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
|
8 |
ASSISTANT_ID = os.getenv("OPENAI_ASSISTANT_ID")
|
9 |
|
|
|
|
|
|
|
10 |
openai.api_key = OPENAI_API_KEY
|
11 |
|
12 |
def chat_with_assistant(message):
|
13 |
try:
|
14 |
if not OPENAI_API_KEY or not ASSISTANT_ID:
|
15 |
+
return "π« Missing OpenAI credentials or Assistant ID"
|
|
|
|
|
16 |
|
17 |
+
# Create thread + add user message
|
18 |
thread = openai.beta.threads.create()
|
19 |
+
openai.beta.threads.messages.create(
|
20 |
+
thread_id=thread.id,
|
21 |
+
role="user",
|
22 |
+
content=message
|
23 |
+
)
|
24 |
+
|
25 |
+
# Run the assistant
|
26 |
+
run = openai.beta.threads.runs.create(
|
27 |
+
thread_id=thread.id,
|
28 |
+
assistant_id=ASSISTANT_ID
|
29 |
+
)
|
30 |
+
|
31 |
+
# Wait until complete
|
32 |
while True:
|
33 |
+
run_status = openai.beta.threads.runs.retrieve(
|
34 |
+
thread_id=thread.id,
|
35 |
+
run_id=run.id
|
36 |
+
)
|
37 |
if run_status.status == "completed":
|
38 |
break
|
39 |
elif run_status.status == "failed":
|
40 |
+
return "β Assistant failed to generate a response."
|
|
|
41 |
time.sleep(1)
|
42 |
|
43 |
+
# Fetch reply
|
44 |
messages = openai.beta.threads.messages.list(thread_id=thread.id)
|
45 |
for msg in reversed(messages.data):
|
46 |
if msg.role == "assistant":
|
|
|
47 |
return msg.content[0].text.value
|
48 |
|
49 |
+
return "β οΈ No assistant reply found."
|
50 |
+
|
51 |
except Exception as e:
|
|
|
52 |
return f"β Error: {str(e)}"
|
53 |
|
54 |
demo = gr.Interface(fn=chat_with_assistant, inputs="text", outputs="text", title="LOR Chat Assistant")
|