Alpha108/GenerativeEngineOptimization
0
1# rag_utils.py2 3from langchain.text_splitter import RecursiveCharacterTextSplitter4from langchain.vectorstores import FAISS5from langchain.chains import RetrievalQA6from langchain_community.embeddings import HuggingFaceEmbeddings7from langchain_groq import ChatGroq8 9def create_vectorstore_from_text(text: str):10 splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)11 texts = splitter.split_text(text)12 13 embeddings = HuggingFaceEmbeddings(14 model_name="sentence-transformers/all-MiniLM-L6-v2",15 model_kwargs={"device": "cpu"}16 )17 18 vectorstore = FAISS.from_texts(texts, embedding=embeddings)19 return vectorstore20 21def create_rag_chain(vectorstore):22 retriever = vectorstore.as_retriever(search_kwargs={"k": 3})23 24 llm = ChatGroq(model_name="llama3-8b-8192", temperature=0)25 26 rag_chain = RetrievalQA.from_chain_type(llm=llm, retriever=retriever)27 return rag_chain28 