Spaces:
Runtime error
Runtime error
File size: 2,820 Bytes
dd8f353 9545bc7 dd8f353 679fe00 dd8f353 679fe00 dd8f353 930b1eb dd8f353 930b1eb 54882b5 dd8f353 9b2b028 dd8f353 e9ee445 dd8f353 9ea3e72 dd8f353 9b2b028 dd8f353 e39101a dd8f353 2aa0b21 679fe00 dd8f353 679fe00 bf06365 dd8f353 e5fc77d |
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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
import os
from typing import Optional, Tuple
import gradio as gr
import pickle
from query_data import get_chain
from threading import Lock
with open("vectorstore.pkl", "rb") as f:
vectorstore = pickle.load(f)
class ChatWrapper:
def __init__(self):
self.lock = Lock()
def __call__(
self, inp: str, history: Optional[Tuple[str, str]],chain
):
"""Execute the chat functionality."""
self.lock.acquire()
try:
history = history or []
chain = get_chain(vectorstore)
# If chain is None, that is because no API key was provided.
if chain is None:
history.append((inp, "Please paste your OpenAI key to use"))
return history, history
# Set OpenAI key
import openai
openai.api_key = os.environ["OPENAI_API_KEY"]
# Run chain and append input.
output = chain({"question": inp, "chat_history": history})["answer"]
history.append((inp, output))
except Exception as e:
raise e
finally:
self.lock.release()
return history, history
chat = ChatWrapper()
block = gr.Blocks(css=".gradio-container {background-color: #04A7E3}")
image_url = "https://www.thebotforge.io/wp-content/uploads/2022/01/the-bot-forge-logo-100px.png"
html = "<center><img src='%s' width='300'></center>" % image_url
with block:
with gr.Row():
gr.HTML(html)
with gr.Row():
gr.Markdown("<h2><center>The Bot Forge</h2></center><h3> <center>Chat about - State-of-the-Union 2023</center></h3>")
# openai_api_key_textbox = gr.Textbox(
# placeholder="Paste your OpenAI API key (sk-...)",
# show_label=False,
# lines=1,
# type="password",
# )
chatbot = gr.Chatbot()
with gr.Row():
message = gr.Textbox(
label="What's your question?",
placeholder="Ask questions about the most recent state of the union",
lines=1,
)
submit = gr.Button(value="Send", variant="secondary").style(full_width=False)
gr.Examples(
examples=[
"What did the president say about Kentaji Brown Jackson",
"Did he mention Stephen Breyer?",
"What was his stance on Ukraine",
],
inputs=message,
)
state = gr.State()
agent_state = gr.State()
submit.click(chat, inputs=[message, state, agent_state], outputs=[chatbot, state])
def echo(name, request: gr.Request):
if request:
print("Request headers dictionary:", request.headers)
print("IP address:", request.client.host)
print("Body", request.body)
return name
block.launch(debug=True) |