File size: 936 Bytes
96deef5 496f188 96deef5 496f188 96deef5 496f188 96deef5 496f188 96deef5 496f188 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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)
|