|
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() |
|
|