Spaces:
Sleeping
Sleeping
File size: 1,528 Bytes
40a799a fbe3ac4 7bf65ec 40a799a 6378bf1 40a799a e8a59ae 40a799a e8a59ae 40a799a 42c84c3 40a799a 42c84c3 40a799a ee9ba92 fbe3ac4 40a799a fbe3ac4 ee9ba92 40a799a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
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()
|