Spaces:
Sleeping
Sleeping
File size: 1,644 Bytes
b4e3576 ad10eed 4347999 b4e3576 4347999 b4e3576 4347999 b4e3576 4347999 ad10eed b4e3576 ad10eed 4347999 ad10eed b4e3576 ad10eed 4347999 b4e3576 4347999 ad10eed b4e3576 ad10eed b4e3576 4347999 b4e3576 ad10eed b4e3576 4347999 b4e3576 4347999 |
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 |
import gradio as gr
import openai
import os
import time
# Load secrets from HF Space secrets
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
ASSISTANT_ID = os.getenv("OPENAI_ASSISTANT_ID")
openai.api_key = OPENAI_API_KEY
def chat_with_assistant(message):
try:
if not OPENAI_API_KEY or not ASSISTANT_ID:
return "π« Missing OpenAI credentials or Assistant ID"
# Create thread + add user message
thread = openai.beta.threads.create()
openai.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content=message
)
# Run the assistant
run = openai.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=ASSISTANT_ID
)
# Wait until complete
while True:
run_status = openai.beta.threads.runs.retrieve(
thread_id=thread.id,
run_id=run.id
)
if run_status.status == "completed":
break
elif run_status.status == "failed":
return "β Assistant failed to generate a response."
time.sleep(1)
# Fetch reply
messages = openai.beta.threads.messages.list(thread_id=thread.id)
for msg in reversed(messages.data):
if msg.role == "assistant":
return msg.content[0].text.value
return "β οΈ No assistant reply found."
except Exception as e:
return f"β Error: {str(e)}"
demo = gr.Interface(fn=chat_with_assistant, inputs="text", outputs="text", title="LOR Chat Assistant")
demo.launch()
|