Spaces:
Runtime error
Runtime error
from langchain.document_loaders.csv_loader import CSVLoader | |
from langchain.embeddings.openai import OpenAIEmbeddings | |
from langchain.embeddings import CacheBackedEmbeddings | |
from langchain_community.vectorstores import FAISS | |
from langchain.storage import LocalFileStore | |
from langchain.chains import RetrievalQA | |
from langchain_openai import ChatOpenAI | |
import os | |
def create_index(): | |
# load the data | |
dir = os.path.dirname(__file__) | |
df_path = dir + '/data/train.csv' | |
loader = CSVLoader(file_path = df_path) | |
data = loader.load() | |
# create the embeddings model | |
embeddings_model = OpenAIEmbeddings() | |
# create the cache backed embeddings in vector store | |
store = LocalFileStore("./cache") | |
cached_embeder = CacheBackedEmbeddings.from_bytes_store( | |
embeddings_model, store, namespace=embeddings_model.model | |
) | |
vector_store = FAISS.from_documents(data, embeddings_model) | |
return vector_store.as_retriever() | |
def setup(openai_key): | |
# Set the API key for OpenAI | |
os.environ["OPENAI_API_KEY"] = openai_key | |
retriver = create_index() | |
llm = ChatOpenAI(model="gpt-4") | |
return retriver, llm | |
def ai_doctor(openai_key,query): | |
# Setup | |
retriever,llm = setup(openai_key) | |
# Create the QA chain | |
handler = StdOutCallbackHandler() | |
qa_with_sources_chain = RetrievalQA.from_chain_type( | |
llm=llm, | |
retriever=retriever, | |
callbacks=[handler], | |
return_source_documents=True | |
) | |
# Ask a question | |
res = qa_with_sources_chain({"query":query}) | |
return (res['result']) | |