Download rag_utils.py from Alpha108/GenerativeEngineOptimization: direct link, hf CLI and curl.
- Browser
- Download file 936 Bytes
-
https://huggingface.co/spaces/Alpha108/GenerativeEngineOptimization/resolve/main/rag_utils.py
- Command line
-
hf download hf://spaces/Alpha108/GenerativeEngineOptimization/rag_utils.py
-
curl -L -o rag_utils.py https://huggingface.co/spaces/Alpha108/GenerativeEngineOptimization/resolve/main/rag_utils.py
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) | |