CoolFace
Apppublic

muhammadshaheryar/Simple-RAG-App

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
app.py45 linesDownload Raw Back to root
1import streamlit as st2from langchain.embeddings import SentenceTransformerEmbeddings3from langchain.vectorstores import FAISS4from transformers import pipeline5 6import sentence_transformers7print(sentence_transformers.__version__)8from langchain.embeddings import SentenceTransformerEmbeddings9from langchain.embeddings.huggingface import HuggingFaceEmbeddings10embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")11 12import subprocess13import sys14 15# Install sentence-transformers if not installed16try:17    import sentence_transformers18except ImportError:19    subprocess.check_call([sys.executable, "-m", "pip", "install", "sentence-transformers"])20 21 22# Initialize embedding model23embeddings = SentenceTransformerEmbeddings(model_name="all-MiniLM-L6-v2")24qa_pipeline = pipeline("question-answering", model="distilbert-base-uncased-distilled-squad")25 26def chunk_text(text, chunk_size=500):27    words = text.split()28    chunks = [" ".join(words[i:i + chunk_size]) for i in range(0, len(words), chunk_size)]29    return chunks30 31# Streamlit app32st.title("Simple RAG Application")33data = st.text_area("Paste your text here:")34if data:35    text_chunks = chunk_text(data)36    vectorstore = FAISS.from_texts(text_chunks, embeddings)37    retriever = vectorstore.as_retriever(search_kwargs={"k": 3})38    39    question = st.text_input("Ask a question:")40    if question:41        relevant_docs = retriever.get_relevant_documents(question)42        context = " ".join([doc.page_content for doc in relevant_docs])43        answer = qa_pipeline(question=question, context=context)44        st.write("Answer:", answer["answer"])45