import gradio as gr import openai import pandas as pd import numpy as np import csv openai.api_key="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" from openai.embeddings_utils import get_embedding from openai.embeddings_utils import cosine_similarity 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 text here") text_output = gr.outputs.Textbox(label="Most similar text") 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()