gAIdio / app.py
emma-tvv's picture
Update app.py
c07d4c9 verified
import gradio as gr
import os
from openai import OpenAI
import time
css = """
h1 {
text-align: center;
display:block;
}
"""
video_path= "demo_video_gaidio.mp4"
key_passw = os.environ.get('passw_gaidio', None)
key_usr = os.environ.get('usr_gaidio', None)
assistant_id = os.environ.get('asst_id', None)
client = OpenAI(api_key=os.environ.get('AI_key', None))
# Create a thread
thread = client.beta.threads.create()
print(thread.id)
def main_chat_bot(query,history):
# Add a message to a Thread
message = client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content=query
)
# Run the assistant
run = client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=assistant_id,
)
while True:
time.sleep(3)
run_status = client.beta.threads.runs.retrieve(
thread_id=thread.id,
run_id=run.id
)
if run_status.status == 'completed':
messages = client.beta.threads.messages.list(
thread_id=thread.id
)
response = ""
for msg in messages.data:
role = msg.role
content = msg.content[0].text.value
response += f"{role.capitalize()}: {content}\n\n"
break
return response+ "\n\n"
else:
continue
with gr.Blocks(css=css) as demo:
gr.Markdown(
"""
# gAIdio (Proof of concept)
Fråga mig om uppgiftskrav!
""")
# gr.Markdown("<h1>gAIdio (Proof of concept)</h1>")
#chatbot = gr.Chatbot(placeholder="Fråga mig om uppgiftskrav!")
with gr.Tab("Chatbot"):
chatbot = gr.Chatbot(placeholder="<strong>gAIdio</strong><br>Fråga mig om uppgiftskrav!", render=False)
#chatbot.like(vote, None, None)
gr.ChatInterface(fn=main_chat_bot, chatbot=chatbot)
with gr.Tab("Instruktioner"):
with gr.Row():
gr.Markdown(
"""
# Bakgrund
Funderar du på att starta en ny verksamhet? Eller vill du kanske utöka din nuvarande verksamhet?
<br>Denna assistent hjälper dig att få svar på vilka uppgiftskrav som kan vara relevanta för just dig.
## Data
Den data som assistenten har tillgång till är 860 st uppgiftskrav från [Uppgiftskrav.se](https://www.uppgiftskrav.se/uppgiftskrav/ 'Uppgiftskrav').
## Instruktioner
Ge en kortfattad verksamhetsbeskrivning, alternativt ställ en fråga som rör din planerade verksamhet.
## Format
Assistenten kommer att lista relevanta uppgiftskrav med kortfattade beskrivningar av dessa och <br>länka till uppgiftskravens sidor på Uppgiftskrav.se.
""")
with gr.Tab("Videoexempel"):
with gr.Row():
gr.Markdown("Det kan ta några sekunder för exempelvideon att ladda.")
with gr.Row():
gr.PlayableVideo(video_path)
demo.launch(auth=(key_usr, key_passw))