Trading-Chatbot / app.py
vjain's picture
Update app.py
359755a
raw
history blame
No virus
1.97 kB
import gradio as gr
import openai
import pandas as pd
import numpy as np
import csv
from datasets import load_dataset
openai.api_key="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"
from openai.embeddings_utils import get_embedding
from openai.embeddings_utils import cosine_similarity
Bio_embeddings = load_dataset('vjain/biology_AP_embeddings')
df = pd.DataFrame(Bio_embeddings['embedding'])
#df = pd.read_csv("TA_embeddings.csv")
#df["embedding"]=df["embedding"].apply(eval).apply(np.array)
def reply(input):
input = input
input_vector = get_embedding(input, engine="text-embedding-ada-002")
df["similiarities"]=df["embedding"].apply(lambda x: cosine_similarity(x,input_vector))
data = df.sort_values("similiarities", ascending=False).head(20)
data.to_csv("sorted.csv")
context = []
for i, row in data.iterrows():
context.append(row['text'])
context
text = "\n".join(context)
context = text
prompt = f"""
Answer the following question If you don't know the answer for certain, say I don't know.
Context: {context}
Q: {input}
"""
return openai.Completion.create(
prompt=prompt,
temperature=1,
max_tokens=500,
top_p=1,
frequency_penalty=0,
presence_penalty=0,
model="text-davinci-003"
)["choices"][0]["text"].strip(" \n")
input_text = gr.inputs.Textbox(label="Enter your Trading questions here")
text_output = gr.outputs.Textbox(label="Answer")
ui = gr.Interface(fn=reply,
inputs=input_text,
outputs=[text_output],
theme="compact",
layout="vertical",
inputs_layout="stacked",
outputs_layout="stacked",
allow_flagging=False)
ui.launch()