Spaces:
Configuration error
Configuration error
from transformers import pipeline | |
from sentence_transformers import SentenceTransformer | |
import faiss | |
import numpy as np | |
# Dummy knowledge base - replace with real embeddings in production | |
knowledge_base = [ | |
{"text": "Aspirin is used to reduce fever and relieve mild to moderate pain.", "embedding": None}, | |
{"text": "Hypertension is a condition in which the blood pressure in the arteries is elevated.", "embedding": None}, | |
{"text": "Diabetes is a chronic condition that affects how the body processes blood sugar.", "embedding": None}, | |
] | |
def load_rag_pipeline(): | |
embedder = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2") | |
for entry in knowledge_base: | |
entry["embedding"] = embedder.encode(entry["text"]) | |
index = faiss.IndexFlatL2(len(knowledge_base[0]["embedding"])) | |
index.add(np.array([entry["embedding"] for entry in knowledge_base])) | |
return {"embedder": embedder, "index": index, "texts": [entry["text"] for entry in knowledge_base]} | |
def ask_question(pipe, query): | |
query_vec = pipe["embedder"].encode(query) | |
D, I = pipe["index"].search(np.array([query_vec]), k=1) | |
context = pipe["texts"][I[0][0]] | |
generator = pipeline("text2text-generation", model="facebook/bart-large") | |
answer = generator(f"question: {query} context: {context}", max_length=100, do_sample=False) | |
return answer[0]['generated_text'] | |