Spaces:
Running
Running
File size: 2,065 Bytes
aa0eed8 b1972fa 031211a aa0eed8 e186580 89fd850 7d51c10 89fd850 453ee12 24755bb 38dfd80 24755bb e186580 7d155ee 031211a 7d155ee 06d9591 453ee12 06d9591 453ee12 24755bb aa0eed8 19797f3 8fae4d3 19797f3 8fae4d3 19797f3 8fae4d3 19797f3 |
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 76 77 78 79 |
import gradio as gr
import json, openai, os, time
from openai import OpenAI
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
def show_json(obj):
print("###")
print(json.loads(obj.model_dump_json()))
print("###")
def wait_on_run(run, thread):
while run.status == "queued" or run.status == "in_progress":
run = client.beta.threads.runs.retrieve(
thread_id=thread.id,
run_id=run.id,
)
time.sleep(0.5)
return run
def extract_content_value(data):
content_values = []
for item in data.data:
for content in item.content:
if content.type == 'text':
content_values.append(content.text.value)
return content_values
def chat(message, history):
assistant = client.beta.assistants.create(
name="Math Tutor",
instructions="You are a personal math tutor. Answer questions briefly, in a sentence or less.",
model="gpt-4-1106-preview",
)
show_json(assistant)
thread = client.beta.threads.create()
show_json(thread)
message = client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="I need to solve the equation `3x + 11 = 14`. Can you help me?",
)
show_json(message)
run = client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=assistant.id,
)
show_json(run)
run = wait_on_run(run, thread)
show_json(run)
messages = client.beta.threads.messages.list(thread_id=thread.id)
show_json(messages)
return extract_content_value(messages)[0]
gr.ChatInterface(
chat,
chatbot=gr.Chatbot(height=300),
textbox=gr.Textbox(placeholder="Ask me a yes or no question", container=False, scale=7),
title="Math Tutor",
description="Ask Math Tutor any question",
theme="soft",
examples=["I need to solve the equation `3x + 11 = 14`. Can you help me?"],
cache_examples=True,
retry_btn=None,
undo_btn=None,
clear_btn="Clear",
).launch() |