Spaces:
Runtime error
Runtime error
File size: 2,288 Bytes
5c5a9cf b828fac 57818b4 18cab23 57818b4 9825ea7 507880e 21ec701 9825ea7 b828fac 9825ea7 5c5a9cf b828fac 9825ea7 5c5a9cf e10a598 5c5a9cf e10a598 b828fac 5c5a9cf b828fac 5c5a9cf 6541b31 66a8c8f 5c5a9cf c237974 5c5a9cf b828fac 5c5a9cf b828fac 5c5a9cf e10a598 5c5a9cf e10a598 |
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 80 81 82 83 |
import os
import openai
import gradio as gr
import time
# Set up password
username = os.getenv('username')
password = os.getenv('password')
# Set up OpenAI client
openai_api_key = os.getenv('openai_api_key')
openai.api_key = openai_api_key
client = openai.Client(api_key=openai.api_key)
# Set up assistant
assistant_id = os.getenv('assistant_id')
assistant = client.beta.assistants.retrieve(assistant_id)
thread = client.beta.threads.create()
# Get avatar link
avatar_link = os.getenv('avatar_link')
def chat_with_assistant(message, history):
# Add the user's message to the thread
client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content=message
)
# Run the assistant with streaming
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': message}],
stream=True
)
# Handle the streaming response
response_text = ""
for chunk in response:
delta = chunk['choices'][0]['delta']
if 'content' in delta:
response_text += delta['content']
yield response_text
# Custom CSS for chat bubbles and colors
custom_css = """
.user-message { background-color: #DCF8C6; }
.assistant-message { background-color: #E2E2E2; }
"""
# Create the Gradio interface
with gr.Blocks(css=custom_css) as demo:
gr.HTML(f"""<img src = "https://i.postimg.cc/L6mbcC7F/DASH.png" width="150" height="112">""")
gr.Markdown("# **Learning Scales Assistant**🐬")
chatbot = gr.Chatbot(
[],
elem_id="chatbot",
bubble_full_width=False,
avatar_images=(None, avatar_link)
)
msg = gr.Textbox(
show_label=False,
placeholder="Enter text and press enter",
)
def user(user_message, history):
return "", history + [[user_message, None]]
def bot(history):
user_message = history[-1][0]
bot_message = ""
for response_text in chat_with_assistant(user_message, history):
history[-1][1] = response_text
chatbot.update(history)
return history
msg.submit(user, [msg, chatbot], [msg, chatbot], queue=False).then(
bot, chatbot, chatbot
)
demo.launch(auth=(username, password))
|