Open-Access-Sprachmodelle bieten vollständige Transparenz über Modellgewichte und Architektur. Da ihr Wissen jedoch am Tag des Trainingsendes stoppt, neigen sie bei aktuellen Forschungsberichten, dynamischen technischen Standards oder spezifischen Fachdaten zu Halluzinationen. HuggingChat – die von Hugging Face entwickelte Open-Source-Chat-Plattform auf Basis von chat-ui – löst dieses Problem durch zwei integrierte Mechanismen zur Faktenverankerung (Grounding): die native Websuche (Web Search) und modulare Community Tools.
In dieser praktischen Anleitung erfahren Forscher und Entwickler, wie sie die Live-Websuche einrichten, eigene Gradio-Tools auf Hugging Face Spaces bereitstellen und verifizierbare Recherche-Assistenten mit Modellen wie Command R+, Llama 3.1 und Qwen 2.5 aufbauen.
1. Schnelle Faktenprüfung: Die integrierte Websuche in HuggingChat
Für die tägliche Literaturrecherche und schnelle Faktenprüfungen bietet HuggingChat eine vollautomatische RAG-Pipeline (Retrieval-Augmented Generation).
Aktivierung in der Benutzeroberfläche
- Öffnen Sie HuggingChat (
https://huggingface.co/chat). - Wählen Sie ein Basismodell mit hoher Instruktions- und Argumentationsstärke (beispielsweise Meta Llama 3.1 70B, Cohere Command R+ oder Qwen 2.5 72B).
- Aktivieren Sie in der unteren Nachrichtenzeile den Schalter Search web (dargestellt durch ein Globus-Symbol).
- Geben Sie Ihre Frage ein (z. B.: „Welche zentralen Benchmarks und Neuerungen nennt der aktuelle technische Bericht zu DeepSeek-V3?“).
Die Funktionsweise der integrierten RAG-Pipeline
HuggingChat fügt nicht einfach rohe Suchergebnisse in den Prompt ein. Das Backend chat-ui durchläuft einen sechsstufigen Workflow:
- Suchbegriffsoptimierung: Ein internes Aufgabenmodell analysiert den Benutzerprompt und destilliert präzise Suchbegriffe heraus.
- Web-Retrieval: Der Server sendet Abfragen an externe Suchdienste (wie Serper oder SearXNG), um relevante Links zu erfassen.
- Headless Scraping via Playwright: Headless-Browser laden die Zielseiten und wandeln das HTML in sauberen Markdown-Text um.
- Segmentierung und Einbettung (Chunking & Embeddings): Der extrahierte Text wird in semantische Abschnitte unterteilt und mit einem leichten Embedding-Modell (z. B.
gte-small) vektorisiert. - Vektor-Neubewertung: Das System berechnet die Ähnlichkeit zur ursprünglichen Anfrage und filtert die relevantesten Passagen (typischerweise bis zu 8.000 Zeichen) für den Kontext heraus.
- Generierung und Quellennachweis: Das Sprachmodell verarbeitet den angereicherten Kontext und versieht die Antwort mit klickbaren Quellen-Chips, die direkt auf die Originalseiten verweisen.
2. Spezialisierte Workflows: Eigene Community Tools erstellen und einbinden
Allgemeine Websuchmaschinen stoßen bei speziellen wissenschaftlichen Repositorien (wie ArXiv) oder internen Dokumentenablagen an Grenzen. Mit dem System der Community Tools ermöglicht HuggingChat, jeden öffentlichen Hugging Face Space mit Gradio-Schnittstelle in ein aufrufbares Modell-Werkzeug zu verwandeln.
Schritt 1: Gradio Space bereitstellen
Jeder öffentliche Space mit einer sauberen Ein- und Ausgabe-Funktion kann als Tool dienen.
- Vorgefertigte Vorlagen nutzen: Hugging Face stellt Templates wie
nsarrazin/rag-tool-templatebereit. Nach dem Duplizieren dieses Space müssen lediglich eigene PDF- oder Markdown-Dateien im Ordnersources/abgelegt werden, um einen fertigen Dokumenten-RAG-Dienst zu erhalten. - Eigenes Python-Tool programmieren: Auf einer kostenlosen CPU Basic Instanz erstellen Sie eine einfache Datei
app.py. Hier ist ein Beispiel für ein ArXiv-Recherche-Tool:
import gradio as gr
import urllib.request
import xml.etree.ElementTree as ET
def search_arxiv(query: str, max_results: int = 3) -> str:
url = f"http://export.arxiv.org/api/query?search_query=all:{urllib.parse.quote(query)}&max_results={max_results}"
response = urllib.request.urlopen(url).read().decode("utf-8")
root = ET.fromstring(response)
results = []
for entry in root.findall("{http://www.w3.org/2005/Atom}entry"):
title = entry.find("{http://www.w3.org/2005/Atom}title").text.strip()
summary = entry.find("{http://www.w3.org/2005/Atom}summary").text.strip()
results.append(f"Title: {title}\nSummary: {summary}\n")
return "\n---\n".join(results) if results else "No papers found."
demo = gr.Interface(
fn=search_arxiv,
inputs=[gr.Textbox(label="Query"), gr.Number(label="Max Results", value=3)],
outputs="text",
title="ArXiv Search Tool"
)
demo.launch()
Schritt 2: Tool in HuggingChat registrieren
- Navigieren Sie zu
https://huggingface.co/chat/toolsund klicken Sie auf Create New Tool (oder rufen Siehttps://huggingface.co/chat/tools/newauf). - Fügen Sie im Feld Hugging Face Space URL die Adresse Ihres Space ein (z. B.
https://huggingface.co/spaces/ihr-benutzername/arxiv-search). - HuggingChat liest das Schema automatisch aus und erkennt Parameter und Datentypen.
- Füllen Sie die Kernfelder aus:
- Tool Description: Formulieren Sie eine prägnante englische Beschreibung der Funktionsweise (z. B.: "Searches ArXiv for the latest AI and computer science preprints based on query keywords"). Anhand dieser Beschreibung entscheidet das Modell über den Aufruf.
- AI Function Name: Vergeben Sie einen eindeutigen Namen in Snake-Case (z. B.
search_arxiv_preprints). - Argumenteigenschaften (Arguments):
- Required: Argumente, die das Modell zwingend übergeben muss.
- Optional: Parameter mit Standardwerten, die vom Modell bei Bedarf angepasst werden können.
- Fixed: Feste Vorgaben, die für das Modell unsichtbar bleiben (ideal für feste Filter oder Systemschlüssel).
- Speichern Sie das Werkzeug ab. Es steht nun in Ihrer persönlichen Bibliothek zur Verfügung.
3. Als dedizierten Forschungsassistenten (Assistant) bündeln
Um Einstellungen und Tools nicht in jedem Chatfenster neu konfigurieren zu müssen, können Sie einen festen HuggingChat Assistant einrichten:
- Gehen Sie auf Settings > Assistants oder öffnen Sie direkt
https://huggingface.co/chat/settings/assistants/new. - Stammdaten festlegen: Vergeben Sie einen prägnanten Namen (z. B. „Wissenschaftlicher Recherche-Assistent“) und ein Profilbild.
- Modellauswahl: Wählen Sie ein Modell, das nativ auf Tool Calling optimiert ist. Cohere Command R+ und Llama 3.1 70B zeichnen sich durch hohe Zuverlässigkeit bei mehrstufigen Aufrufen und präzisen Quellenverweisen aus.
- Systemanweisung (System Instructions) hinterlegen: Definieren Sie klare Regeln für die Faktenprüfung:
Du bist ein wissenschaftlicher Recherche-Assistent. Überprüfe Aussagen zu aktuellen Publikationen, Benchmarks und Veröffentlichungsdaten stets vorab durch Aufruf der Websuche oder der angebundenen Recherche-Tools. Stelle keine Vermutungen an, die nicht durch gefundene Dokumente gestützt werden. Nenne in deinen Antworten stets die exakten Quellentitel und Original-URLs. - Funktionen und Tools zuweisen:
- Aktivieren Sie Web search für kontinuierlichen Online-Zugriff.
- Wählen Sie unter Community Tools bis zu 3 aktive Werkzeuge aus Ihrer Bibliothek oder aus der Community.
- Klicken Sie auf Create. Der Assistant kann über eine direkte URL mit Kollegen geteilt oder intern für Evaluierungen genutzt werden.
4. Lokale Bereitstellung im eigenen Netzwerk (chat-ui)
Für akademische Forschungsgruppen oder Unternehmen mit strengen Datenschutzvorgaben steht die vollständige Codebasis unter huggingface/chat-ui als Open Source zur Verfügung.
Konfiguration der Datei .env.local
Definieren Sie lokale Inferenz-Endpunkte und Suchanbieter:
# MongoDB-Datenbank
MONGODB_URL=mongodb://localhost:27017
MONGODB_DB_NAME=chat-ui
# OpenAI-kompatibler Endpunkt (vLLM, Ollama, llama.cpp oder Hugging Face Router)
OPENAI_BASE_URL=https://router.huggingface.co/v1
OPENAI_API_KEY=hf_ihr_huggingface_token
# Websuch-Anbieter
SERPER_API_KEY=ihr_serper_api_schluessel
# Oder Anbindung an eine eigene SearXNG-Instanz:
# SEARXNG_QUERY_URL=http://localhost:8080/search?q=<query>&format=json
# Scraping- und Sicherheitsfilter
USE_LOCAL_WEBSEARCH=false
WEBSEARCH_ALLOWLIST=[]
WEBSEARCH_BLOCKLIST=[]
Mit npm install und npm run dev startet Ihre private Instanz mit voller Unterstützung für Playwright-Scraping, Vektorabgleich und Open-Weights-RAG.
Technische Abwägungen und Empfehlungen
- Modellgröße und Zuverlässigkeit: Modelle mit 8B Parametern oder weniger neigen häufiger zu Syntaxfehlern bei Funktionsaufrufen oder erfinden URLs, wenn eine Suche erfolglos bleibt. Für fundierte Analysen empfehlen sich Modelle der 70B-Klasse oder Spezialmodelle wie Command R+.
- Latenz versus Aktualität: Reine Textgenerierung benötigt 1 bis 3 Sekunden; die vollständige RAG-Schleife mit Web-Scraping und Einbettung verlängert die Antwortzeit typischerweise um 3 bis 6 Sekunden. Bei statischen Literaturbeständen ist ein vorab indexierter RAG-Space wesentlich effizienter als wiederholtes Live-Scraping.
- Überprüfung der Originalpassagen: Ein entscheidender Vorteil von Open-Source-RAG ist die Nachvollziehbarkeit. Klicken Sie stets auf die erzeugten Quellen-Chips, um zu prüfen, ob der extrahierte Textabschnitt die Aussage des Modells tatsächlich deckt.
Durch die Kombination aus integrierter Websuche und Community Tools macht HuggingChat aus statischen Open-Access-Modellen dynamische Analysewerkzeuge, die Antworten auf Basis aktueller Primärquellen verifizieren können.