import os from langchain.text_splitter import CharacterTextSplitter from langchain.embeddings.openai import OpenAIEmbeddings from langchain.document_loaders import TextLoader from langchain.vectorstores import FAISS from langchain.chains import RetrievalQA from langchain.llms import OpenAI def faiss_index(): current_directory = os.getcwd() data_path = current_directory + "\\final_project\\Learning_Pathway_Index.csv" loader = TextLoader(data_path) documents = loader.load() text_splitter = CharacterTextSplitter( chunk_size=1000, chunk_overlap=30, separator="\n" ) docs = text_splitter.split_documents(documents=documents) embeddings = OpenAIEmbeddings() vectorstore = FAISS.from_documents(docs, embeddings) vectorstore.save_local("faiss_learning_path_index") new_vectorstore = FAISS.load_local("faiss_learning_path_index", embeddings) qa = RetrievalQA.from_chain_type(llm=OpenAI(), chain_type="stuff", retriever=new_vectorstore.as_retriever()) res = qa.run("Give me Machine Learning Course with 10 or 20 min duration.") print(res) if __name__ == "__main__": faiss_index()