pdfQA / qa_utils.py
engrtm's picture
Upload 5 files
d4db0fd verified
Raw History Blame Contribute Delete
888 Bytes
import os
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
from langchain.chains.question_answering import load_qa_chain
from langchain.llms import OpenAI
# Set API key from environment
os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY")
def split_text(text):
splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
return splitter.split_text(text)
def create_vector_store(chunks):
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.from_texts(chunks, embedding=embeddings)
return vectorstore
def answer_question(vectorstore, query):
docs = vectorstore.similarity_search(query)
llm = OpenAI(temperature=0)
chain = load_qa_chain(llm, chain_type="stuff")
return chain.run(input_documents=docs, question=query)