RAG_test_1 / app.py
la04's picture
Update app.py
40a799a verified
raw
history blame
1.53 kB
import faiss
import numpy as np
from sentence_transformers import SentenceTransformer
import gradio as gr
# Schritt 1: Lade das Modell für die Embeddings
model = SentenceTransformer('all-MiniLM-L6-v2')
# Beispiel-Dokumente (könnten auch aus PDFs oder anderen Quellen stammen)
documents = [
"LangChain ist eine Bibliothek für die Verarbeitung von Text mit LLMs.",
"FAISS wird verwendet, um Vektoren effizient zu durchsuchen.",
"Hugging Face bietet eine Vielzahl von vortrainierten Modellen."
]
# Schritt 2: Erzeuge Embeddings für die Dokumente
document_embeddings = model.encode(documents)
# FAISS-Index für die Vektoren erstellen
dimension = len(document_embeddings[0])
index = faiss.IndexFlatL2(dimension)
document_embeddings = np.array(document_embeddings).astype('float32')
index.add(document_embeddings) # Füge Dokumente zum Index hinzu
# Schritt 3: Suche nach einer ähnlichen Antwort auf eine Eingabeabfrage
def search_documents(query):
query_embedding = model.encode([query])[0].astype('float32')
D, I = index.search(np.array([query_embedding]), k=1) # Suche nach den Top 1 Treffern
return documents[I[0][0]] # Gibt das am besten passende Dokument zurück
# Gradio Interface
def chatbot_response(query):
return search_documents(query)
interface = gr.Interface(
fn=chatbot_response,
inputs="text",
outputs="text",
title="FAISS-basierter Chatbot",
description="Gib eine Frage ein, und erhalte eine Antwort basierend auf den Dokumenten."
)
interface.launch()