Spaces:
Runtime error
Runtime error
| import os | |
| import gradio as gr | |
| from openai import OpenAI | |
| from langfuse.openai import openai | |
| from langfuse.decorators import observe | |
| client = OpenAI() | |
| assistant_id=os.environ["OPENAI_ASSISTANT_ID"] | |
| def new_state(): | |
| return gr.State({ | |
| "user": None, | |
| "thread": None, | |
| }) | |
| def get_thread_id(streaming_chat_thread_id_state): | |
| if not streaming_chat_thread_id_state: | |
| streaming_chat_thread_id_state = gr.State({ "thread_id": None}) | |
| print("======thread_id======") | |
| thread_id = streaming_chat_thread_id_state["thread_id"] | |
| print(thread_id) | |
| if not thread_id: | |
| thread = client.beta.threads.create() | |
| thread_id = thread.id | |
| print(f"new thread_id: {thread_id}") | |
| streaming_chat_thread_id_state["thread_id"] = thread_id | |
| else: | |
| print(f"old thread_id: {thread_id}") | |
| return thread_id | |
| def openai_chat(user_message, thread_id): | |
| client.beta.threads.messages.create( | |
| thread_id=thread_id, | |
| role="user", | |
| content=user_message | |
| ) | |
| with client.beta.threads.runs.stream( | |
| thread_id=thread_id, | |
| assistant_id=assistant_id, | |
| ) as stream: | |
| total = '' | |
| for delta in stream.text_deltas: | |
| total += delta | |
| yield total | |
| def chat(user_message, history, streaming_chat_thread_id_state): | |
| thread_id =get_thread_id(streaming_chat_thread_id_state) | |
| yield from openai_chat(user_message, thread_id) | |
| history = [] | |
| streaming_chat_thread_id_state = new_state() | |
| # streaming_chat_thread_id_state = gr.State({ "thread_id": None}) | |
| additional_inputs = [streaming_chat_thread_id_state] | |
| gr.ChatInterface(chat, examples=[["What are the troy rack mounting options?"], ["what are the steps for helen"], ["what are the main comparison between troy and janus specs"]], title="User Support Bot", additional_inputs=additional_inputs).launch(debug=True) |