Spaces:
Running
Running
File size: 2,080 Bytes
aa0eed8 b1972fa 031211a aa0eed8 e186580 89fd850 7d51c10 89fd850 453ee12 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() |