Alpha108/GenerativeEngineOptimization
0
1from langchain.text_splitter import RecursiveCharacterTextSplitter2from langchain.vectorstores import FAISS3from langchain.chains import RetrievalQA4from langchain_community.embeddings import HuggingFaceEmbeddings5from langchain_groq import ChatGroq6from langchain.docstore.document import Document7 8def create_vectorstore_from_text(documents, embeddings):9 # If string is passed instead of list of Document, convert it10 if isinstance(documents, str):11 splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)12 chunks = splitter.split_text(documents)13 documents = [Document(page_content=chunk) for chunk in chunks]14 15 vectorstore = FAISS.from_documents(documents, embedding=embeddings)16 return vectorstore17 18def create_rag_chain(llm, vectorstore):19 retriever = vectorstore.as_retriever(search_kwargs={"k": 3})20 return RetrievalQA.from_chain_type(llm=llm, retriever=retriever)21 