Alpha108's picture
Update rag_utils.py
496f188 verified
raw
history blame contribute delete
936 Bytes
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.vectorstores import FAISS
from langchain.chains import RetrievalQA
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_groq import ChatGroq
from langchain.docstore.document import Document
def create_vectorstore_from_text(documents, embeddings):
# If string is passed instead of list of Document, convert it
if isinstance(documents, str):
splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
chunks = splitter.split_text(documents)
documents = [Document(page_content=chunk) for chunk in chunks]
vectorstore = FAISS.from_documents(documents, embedding=embeddings)
return vectorstore
def create_rag_chain(llm, vectorstore):
retriever = vectorstore.as_retriever(search_kwargs={"k": 3})
return RetrievalQA.from_chain_type(llm=llm, retriever=retriever)