Spaces:
Runtime error
Runtime error
File size: 1,669 Bytes
c527322 |
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 |
import gradio as gr
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.chat_models import ChatOpenAI
from langchain.chains import ConversationalRetrievalChain
from langchain.vectorstores import FAISS
from langchain.document_loaders.csv_loader import CSVLoader
def conversational_chat(query, lang_model_key, file_upload):
global chain, session_history
if file_upload is not None:
# Loading the CSV file
loader = CSVLoader(file_path=file_upload, encoding="utf-8")
data = loader.load()
# Initializing embeddings and vectors
embeddings = OpenAIEmbeddings(openai_api_key=lang_model_key)
vectors = FAISS.from_documents(data, embeddings)
# Creating the ConversationalRetrievalChain
chain = ConversationalRetrievalChain.from_llm(llm=ChatOpenAI(temperature=0.0, model_name='gpt-4', openai_api_key=lang_model_key),
retriever=vectors.as_retriever())
session_history = []
result = chain({"question": query, "chat_history": session_history})
session_history.append((query, result["answer"]))
return result["answer"]
iface = gr.Interface(fn=conversational_chat,
inputs=[gr.Textbox(label="Query", lines=7),
gr.Textbox(label="Your OpenAI API key:", type="password"),
gr.File(label="Upload your CSV file:", type="binary")],
outputs="text",
title="Conversational CSV Chat: Please upload your file and set your API Key in order to use the functionalities",
)
iface.launch() |