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)