File size: 888 Bytes
d4db0fd | 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 |
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)
|