[{"data":1,"prerenderedAt":1026},["ShallowReactive",2],{"blog-llm-hallucination-grounding-citations-de":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":25,"sources":35,"cover":75,"og":76,"expertise":77,"locales":78,"lang":80,"title":82,"description":83,"coverAlt":84,"metaTitle":85,"takeaways":86,"faq":92,"toc":111,"blocks":148,"others":735},"llm-hallucination-grounding-citations","2026-10-02",13,"rag",[9,10,11,12,13],"Hallucinations","RAG","Citations","Grounding","Faithfulness",[15,16,17,18,19,20,21,22,23,24],"reduce LLM hallucinations in production","how to reduce hallucinations in RAG","LLM citations API","Anthropic citations API","RAG faithfulness metric","LLM abstention I don't know","claim-level verification LLM","grounding LLM answers in sources","check grounding API","show sources in AI chatbot UI",[26,29,32],{"name":27,"url":28},"Hallucination (artificial intelligence)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FHallucination_(artificial_intelligence)",{"name":30,"url":31},"Retrieval-augmented generation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRetrieval-augmented_generation",{"name":33,"url":34},"Large language model","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model",[36,39,42,45,48,51,54,57,60,63,66,69,72],{"title":37,"url":38},"Anthropic: Citations (Claude API documentation)","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcitations",{"title":40,"url":41},"Anthropic: Search results (Claude API documentation)","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fsearch-results",{"title":43,"url":44},"Anthropic: Reduce hallucinations (Claude API documentation)","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Ftest-and-evaluate\u002Fstrengthen-guardrails\u002Freduce-hallucinations",{"title":46,"url":47},"Anthropic: Introducing Citations on the Anthropic API","https:\u002F\u002Fclaude.com\u002Fblog\u002Fintroducing-citations-api",{"title":49,"url":50},"Simon Willison: Anthropic's new Citations API (24 January 2025)","https:\u002F\u002Fsimonwillison.net\u002F2025\u002FJan\u002F24\u002Fanthropics-new-citations-api\u002F",{"title":52,"url":53},"OpenAI: Web search guide (url_citation annotations and display requirement)","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Ftools-web-search",{"title":55,"url":56},"Cohere: Documents and citations","https:\u002F\u002Fdocs.cohere.com\u002Fdocs\u002Fdocuments-and-citations",{"title":58,"url":59},"Google Cloud: Check grounding API","https:\u002F\u002Fdocs.cloud.google.com\u002Fgenerative-ai-app-builder\u002Fdocs\u002Fcheck-grounding",{"title":61,"url":62},"AWS: Amazon Bedrock Guardrails contextual grounding check","https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fguardrails-contextual-grounding-check.html",{"title":64,"url":65},"Ragas: Faithfulness metric","https:\u002F\u002Fdocs.ragas.io\u002Fen\u002Fstable\u002Fconcepts\u002Fmetrics\u002Favailable_metrics\u002Ffaithfulness\u002F",{"title":67,"url":68},"Kalai, Nachum, Vempala, Zhang: Why Language Models Hallucinate (arXiv 2509.04664)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2509.04664",{"title":70,"url":71},"Magesh et al.: Hallucination-Free? Assessing the Reliability of Leading AI Legal Research Tools (arXiv 2405.20362)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2405.20362",{"title":73,"url":74},"Wallat, Heuss, de Rijke, Anand: Correctness is not Faithfulness in RAG Attributions (arXiv 2412.18004)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2412.18004","\u002Fimages\u002Fblog\u002Fllm-hallucination-grounding-citations\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-hallucination-grounding-citations\u002Fog.jpg","ai-engineer",[79,80,81],"en","de","hu","LLM-Halluzinationen in Produktion reduzieren: Grounding, Zitate und das Nein zur richtigen Zeit","Halluzinationen im produktiven RAG senken: Zitier-APIs, Abstention, Claim-Prüfung, Faithfulness-Metriken, Quellen-UI und die Fehler, die trotzdem durchrutschen.","Diagramm: Ein Retrieval-Schritt speist ein Evidenz-Gate, eine Antwort mit Zitaten und einen Claim-Prüfer und endet in einer Antwort mit Quellen; Pfade für Abstention und Markierung zweigen ab.","LLM-Halluzinationen: Grounding und Zitate · Balázs Csorba",[87,88,89,90,91],"Retrieval beseitigt Halluzinationen nicht. Eine Stanford-Studie fand bei führenden juristischen RAG-Tools weiterhin 17 bis 33 Prozent Halluzinationen, oft durch Zitate echter Quellen, die die Aussage nicht stützen.","Grounding ist eine Pipeline, kein Prompt: ein Evidenz-Gate vor der Generierung, native Zitate währenddessen, Claim-Prüfung danach und eine Oberfläche, die die Belege zeigt.","Abstention ist ein Produktzustand, keine Fehlermeldung. Gestalte den Pfad „Das kann ich aus den Dokumenten nicht beantworten“, miss ihn und gib ihm einen nächsten Schritt.","Zitier-APIs machen Verweise gültig, nicht Schlussfolgerungen wahr. Anthropic garantiert gültige Dokumentverweise; ob die Passage die Aussage stützt, musst du weiter prüfen, denn in einer Studie waren bis zu 57 Prozent der Zitate nachträglich rationalisiert.","Miss Faithfulness (Aussagen, die der abgerufene Kontext stützt) getrennt von der Korrektheit, auf einem Testset, das auch Fragen enthält, die die Dokumente nicht beantworten können.",[93,96,99,102,105,108],{"q":94,"a":95},"Wie reduziert man Halluzinationen in einer RAG-Anwendung?","Stapele mehrere Schichten, statt dich auf eine zu verlassen. Verbessere zuerst das Retrieval, beschränke das Modell dann auf die bereitgestellten Dokumente, erlaube ihm zu sagen, dass es etwas nicht weiß, lass es die genutzten Passagen zitieren, prüfe jede Aussage gegen diese Passagen und zeige die Quellen in der Oberfläche. Keine einzelne Schicht beseitigt Halluzinationen; Anthropics eigener Leitfaden sagt, diese Techniken senken sie deutlich, entfernen sie aber nicht.",{"q":97,"a":98},"Beseitigt RAG Halluzinationen?","Nein. In der Studie von Stanford und Yale zu kommerziellen juristischen Recherche-Tools lieferten Produkte, die RAG als Lösung vermarkteten, in 17 bis 33 Prozent der Fälle halluzinierte Antworten. Die Studie wertet eine Antwort als halluziniert, wenn sie falsch oder „misgrounded“ ist, also behauptet, eine Quelle stütze etwas, was sie nicht stützt.",{"q":100,"a":101},"Was ist der Unterschied zwischen Faithfulness und Korrektheit?","Faithfulness fragt, ob jede Aussage der Antwort vom abgerufenen Kontext gestützt wird. Korrektheit fragt, ob die Aussage in der Welt stimmt. Eine treue Antwort auf Basis eines veralteten Dokuments ist falsch, aber faithful; eine korrekte Antwort aus dem Modellgedächtnis, die die Dokumente nicht stützen, ist richtig, aber unfaithful. Bei RAG willst du meist beides und misst es getrennt.",{"q":103,"a":104},"Wie funktionieren die Anthropic-Citations?","Du übergibst Dokumente oder search_result-Blöcke mit aktivierten Citations, und die Text-Blöcke der Antwort tragen Zitat-Objekte, die auf Zeichenbereiche, Seitenzahlen oder Content-Blöcke deiner Quellen zeigen. Das Feld cited_text zählt nicht zu den Output-Tokens, und die API garantiert gültige Verweise. Citations lassen sich nicht mit Structured Outputs kombinieren und decken derzeit nur Text ab.",{"q":106,"a":107},"Wann sollte ein LLM „Ich weiß es nicht“ sagen?","Wenn die abgerufene Evidenz die Antwort nicht enthält. Setze es an zwei Stellen um: ein Retrieval-Gate, das die Generierung stoppt, wenn die besten Passagen schwach sind, und ein Prompt, der dem Modell ausdrücklich erlaubt zu sagen, dass die Dokumente die Information nicht enthalten. Teste es dann mit Fragen, die dein Korpus nicht beantworten kann, sonst wird das Verhalten nie überprüft.",{"q":109,"a":110},"Wie sollte ein Chatbot seine Quellen zeigen?","Nummerierte Marker neben den Aussagen, die sie stützen, die zitierte Passage bei Hover oder Tippen, ein Link zum Originaldokument an der richtigen Stelle und eine Markierung für Antworten oder Sätze, die nicht verifiziert werden konnten. Zeige nie ein Zitat, dessen Verweis auf echten Text nicht geprüft wurde, denn eine selbstsicher wirkende Fußnote macht eine falsche Antwort glaubwürdiger.",[112,115,118,121,124,127,130,133,136,139,142,145],{"id":113,"title":114},"what-hallucination-means","Was in einem RAG-System als Halluzination zählt",{"id":116,"title":117},"pipeline","Die Pipeline: vier Gates statt eines Prompts",{"id":119,"title":120},"grounding-prompts","Schritt eins: das Modell auf das beschränken, was du ihm gegeben hast",{"id":122,"title":123},"citation-apis","Schritt zwei: eine Zitier-API nutzen, statt freundlich zu bitten",{"id":125,"title":126},"abstention","Schritt drei: den Pfad „Das kann ich nicht beantworten“ gestalten",{"id":128,"title":129},"claim-verification","Schritt vier: Aussagen nach der Generierung verifizieren",{"id":131,"title":132},"techniques-table","Technik gegen Wirkung",{"id":134,"title":135},"measuring","Faithfulness messen",{"id":137,"title":138},"ui-patterns","Quellen in der Oberfläche zeigen",{"id":140,"title":141},"what-still-slips","Wo Halluzinationen weiter durchrutschen",{"id":143,"title":144},"checklist","Eine Checkliste, mit der du diese Woche starten kannst",{"id":146,"title":147},"sources","Quellen",[149,153,167,170,173,188,191,194,195,198,207,230,233,234,237,259,262,265,266,269,272,275,305,308,311,343,346,348,351,354,355,358,364,370,373,383,384,387,390,420,423,444,445,448,531,532,538,560,563,570,571,574,606,609,612,613,616,657,665,666,684,692,693],{"type":150,"content":151},"paragraph",[152],"Jedes Team, das einen RAG-Assistenten ausliefert, durchläuft dieselben Phasen. Zuerst kommt die Demo, die wunderbar antwortet. Dann kommt der erste echte Nutzer, der am zweiten Tag eine selbstsichere, flüssige, falsche Antwort findet. Dann fragt jemand: „Wir nutzen doch schon RAG, warum erfindet es trotzdem Dinge?“",{"type":150,"content":154},[155,156,161,162,166],"Die ehrliche Antwort: Retrieval verändert die Wahrscheinlichkeiten, nicht das Wesen des Systems. Ein Sprachmodell erzeugt weiter plausiblen Text; Retrieval gibt ihm nur besseres Material und die Chance, seine Arbeit zu zeigen. In diesem Artikel beschreibe ich, wie ich den Teil rund um das Modell bauen würde, damit falsche Antworten seltener, sichtbar und korrigierbar werden. Er baut auf meinen Beiträgen zu ",{"tag":157,"to":158,"children":159},"link","\u002Fblog\u002Frag-pipeline-chunking-hybrid-search-reranking",[160],"Chunking, Hybrid-Suche und Reranking"," und ",{"tag":157,"to":163,"children":164},"\u002Fblog\u002Fllm-evals-for-product-features",[165],"Evals für Produkt-Features"," auf; hier geht es darum, was nach dem Abrufen der Passagen passiert.",{"type":168,"level":169,"id":113,"text":114},"heading",2,{"type":150,"content":171},[172],"In einem Closed-Book-Chatbot ist eine Halluzination eine falsche Aussage. In einem RAG-System gibt es zwei getrennte Fehler, die unterschiedliche Gegenmittel brauchen:",{"type":174,"ordered":175,"items":176},"list",false,[177,183],[178,182],{"tag":179,"children":180},"strong",[181],"Falscher Inhalt:"," Die Antwort behauptet etwas Falsches, entweder weil das Retrieval die falsche oder eine veraltete Passage lieferte, oder weil das Modell den Kontext ignorierte und aus dem Gedächtnis antwortete.",[184,187],{"tag":179,"children":185},[186],"Misgrounded-Inhalt:"," Die Antwort zitiert eine Quelle, aber die Quelle sagt das nicht. Das Team von Stanford und Yale, das kommerzielle juristische Recherche-Tools evaluierte, definiert es präzise: Eine Antwort ist halluziniert, wenn sie falsch oder misgrounded ist, also wenn sie fälschlich behauptet, eine Quelle stütze eine Aussage („falsely asserts that a source supports a statement“).",{"type":150,"content":189},[190],"Die zweite Art ist die gefährliche. Dieselbe Studie testete Tools von LexisNexis und Thomson Reuters, die mit Versprechen wie „halluzinationsfreien“ Zitaten vermarktet wurden, und fand Halluzinationen in 17 bis 33 Prozent der Fälle. Die Autoren merken an, dass das Prüfen solcher Fehler bedeutet, durchzuklicken, die Quelle zu lesen und sie mit der Aussage zu vergleichen, genau die Arbeit, von der Nutzer erwarten, dass das Tool sie schon erledigt hat.",{"type":150,"content":192},[193],"Warum raten Modelle überhaupt? Das Paper „Why Language Models Hallucinate“ argumentiert, dass Trainings- und Evaluationsverfahren Raten gegenüber dem Eingestehen von Unsicherheit belohnen, weil ein Modell, das rät, in Benchmarks besser abschneidet als eines, das sich enthält. Das hat praktische Folgen: Das Standardverhalten des Modells ist zu antworten, also muss Abstention ins System hineingebaut werden, statt auf sie zu hoffen.",{"type":168,"level":169,"id":116,"text":117},{"type":150,"content":196},[197],"Ich sehe Grounding als Folge von Gates. Jedes fängt etwas ab, was das vorige nicht kann, und jedes kostet Latenz und Komplexität.",{"type":199,"attrs":200,"inner":204,"caption":205},"diagram",{"viewBox":201,"role":202,"aria-labelledby":203},"0 0 752 370","img","d1-hall-t d1-hall-d","\u003Ctitle id=\"d1-hall-t\">Eine Pipeline für geerdete Antworten\u003C\u002Ftitle>\u003Cdesc id=\"d1-hall-d\">Fünf Schritte in einer Reihe: abrufen, Gate, mit Zitaten generieren, Aussagen prüfen, Antwort mit Quellen zeigen. Vom Gate führt ein gestrichelter Pfad zur Abstention, wenn die Evidenz zu schwach ist. Vom Prüfer führt ein gestrichelter Pfad zum Entfernen oder Markieren nicht gestützter Aussagen. Ein Balken darunter sagt, dass jeder Schritt protokolliert wird und in die Evals fließt.\u003C\u002Fdesc>\u003Ctext x=\"20\" y=\"28\" class=\"d-title\">Eine Pipeline für geerdete Antworten\u003C\u002Ftext>\u003Crect x=\"20\" y=\"64\" width=\"122\" height=\"76\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"81\" y=\"98\" text-anchor=\"middle\" class=\"d-text\">Abrufen\u003C\u002Ftext>\u003Ctext x=\"81\" y=\"119\" text-anchor=\"middle\" class=\"d-small\">Hybrid + Rerank\u003C\u002Ftext>\u003Cpath d=\"M142 102 H154\" class=\"d-line\" \u002F>\u003Cpath d=\"M162 102 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"162\" y=\"64\" width=\"122\" height=\"76\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"223\" y=\"98\" text-anchor=\"middle\" class=\"d-text\">Gate\u003C\u002Ftext>\u003Ctext x=\"223\" y=\"119\" text-anchor=\"middle\" class=\"d-small\">genug Evidenz?\u003C\u002Ftext>\u003Cpath d=\"M284 102 H296\" class=\"d-line\" \u002F>\u003Cpath d=\"M304 102 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"304\" y=\"64\" width=\"122\" height=\"76\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"365\" y=\"98\" text-anchor=\"middle\" class=\"d-text\">Generieren\u003C\u002Ftext>\u003Ctext x=\"365\" y=\"119\" text-anchor=\"middle\" class=\"d-small\">mit Zitaten\u003C\u002Ftext>\u003Cpath d=\"M426 102 H438\" class=\"d-line\" \u002F>\u003Cpath d=\"M446 102 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"446\" y=\"64\" width=\"122\" height=\"76\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"507\" y=\"98\" text-anchor=\"middle\" class=\"d-text\">Prüfen\u003C\u002Ftext>\u003Ctext x=\"507\" y=\"119\" text-anchor=\"middle\" class=\"d-small\">pro Aussage\u003C\u002Ftext>\u003Cpath d=\"M568 102 H580\" class=\"d-line\" \u002F>\u003Cpath d=\"M588 102 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"588\" y=\"64\" width=\"122\" height=\"76\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"649\" y=\"98\" text-anchor=\"middle\" class=\"d-text\">Zeigen\u003C\u002Ftext>\u003Ctext x=\"649\" y=\"119\" text-anchor=\"middle\" class=\"d-small\">Antwort + Quellen\u003C\u002Ftext>\u003Cpath d=\"M223 140 V182\" class=\"d-line d-dash\" \u002F>\u003Cpath d=\"M223 190 l-5 -9 h10 z\" class=\"d-head\" \u002F>\u003Crect x=\"154\" y=\"190\" width=\"138\" height=\"56\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"223\" y=\"214\" text-anchor=\"middle\" class=\"d-text\">Abstention\u003C\u002Ftext>\u003Ctext x=\"223\" y=\"235\" text-anchor=\"middle\" class=\"d-small\">sagen, was fehlt\u003C\u002Ftext>\u003Cpath d=\"M507 140 V182\" class=\"d-line d-dash\" \u002F>\u003Cpath d=\"M507 190 l-5 -9 h10 z\" class=\"d-head\" \u002F>\u003Crect x=\"438\" y=\"190\" width=\"138\" height=\"56\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"507\" y=\"214\" text-anchor=\"middle\" class=\"d-text\">Streichen\u003C\u002Ftext>\u003Ctext x=\"507\" y=\"235\" text-anchor=\"middle\" class=\"d-small\">oder markieren\u003C\u002Ftext>\u003Crect x=\"20\" y=\"276\" width=\"712\" height=\"46\" rx=\"10\" class=\"d-box d-dash\" \u002F>\u003Ctext x=\"376\" y=\"304\" text-anchor=\"middle\" class=\"d-small\">Anfrage, Chunks, Antwort und Urteile loggen: sie werden dein Eval-Set\u003C\u002Ftext>\u003Ctext x=\"376\" y=\"350\" text-anchor=\"middle\" class=\"d-label\">Jedes Gate fängt eine andere Fehlerart ab.\u003C\u002Ftext>",[206],"Grounding ist eine Kette von Prüfungen. Jede Stufe kann die Antwort stoppen oder abstufen, und jede Stufe wird gemessen.",{"type":174,"ordered":208,"items":209},true,[210,215,220,225],[211,214],{"tag":179,"children":212},[213],"Gut abrufen."," Hybrid-Suche und Reranking entscheiden, ob die richtige Passage überhaupt beim Modell ankommt. Die meisten „Halluzinationen“, die ich debugge, sind Retrieval-Fehlgriffe, bei denen das Modell mit dem falschen Material tat, was es konnte.",[216,219],{"tag":179,"children":217},[218],"Auf Evidenz prüfen."," Sind die besten Passagen schwach, generiere nicht; enthalte dich und sage, was fehlt.",[221,224],{"tag":179,"children":222},[223],"Mit Zitaten generieren."," Nutze einen nativen Zitiermechanismus, damit jede Aussage einen Verweis in ein von dir geliefertes Dokument trägt.",[226,229],{"tag":179,"children":227},[228],"Aussage für Aussage prüfen."," Prüfe, ob die zitierte Passage den Satz stützt, an dem sie hängt, und streiche oder markiere, was durchfällt.",{"type":150,"content":231},[232],"Dann folgt der Anzeigeschritt, der ebenfalls eine Kontrolle ist: Die Oberfläche entscheidet, ob ein Leser die Antwort in fünf Sekunden prüfen kann oder ihr vertrauen muss.",{"type":168,"level":169,"id":119,"text":120},{"type":150,"content":235},[236],"Anthropics Leitfaden zum Reduzieren von Halluzinationen nennt einige Basistechniken, die so günstig sind, dass ich sie standardmäßig alle einsetzen würde:",{"type":174,"ordered":175,"items":238},[239,244,249,254],[240,243],{"tag":179,"children":241},[242],"„Ich weiß es nicht“ erlauben."," Gib dem Modell ausdrücklich die Erlaubnis, Unsicherheit zuzugeben. Anthropic sagt, diese einfache Technik könne falsche Informationen drastisch reduzieren.",[245,248],{"tag":179,"children":246},[247],"Bei langen Dokumenten zuerst zitieren."," Bei Dokumenten über etwa 20.000 Tokens soll das Modell zuerst wortgetreue Zitate extrahieren und seine Antwort nur darauf stützen.",[250,253],{"tag":179,"children":251},[252],"Externes Wissen ausschließen."," Weise das Modell an, nur die bereitgestellten Dokumente zu verwenden und nicht sein allgemeines Wissen.",[255,258],{"tag":179,"children":256},[257],"Nach dem Entwurf verifizieren."," Lass das Modell zu jeder Aussage ein stützendes Zitat suchen und jede Aussage zurückziehen, die es nicht belegen kann.",{"type":150,"content":260},[261],"Derselbe Leitfaden nennt als fortgeschrittene Optionen den Best-of-N-Vergleich (den Prompt mehrfach ausführen und Abweichungen als Warnsignal werten) und iterative Verfeinerung, und er endet mit einem Vorbehalt, den ich wiederholen will: Diese Techniken senken Halluzinationen deutlich, beseitigen sie aber nicht, und kritische Informationen müssen weiter validiert werden.",{"type":150,"content":263},[264],"Meine praktische Ergänzung: Behandle Prompt-Regeln als schwache Schicht. Ein Prompt bittet das Modell, sich richtig zu verhalten; ein Gate oder Prüfer kontrolliert, ob es das tat. Nutze den Prompt, um die Basis anzuheben, und die späteren Stufen, um den Rest abzufangen.",{"type":168,"level":169,"id":122,"text":123},{"type":150,"content":267},[268],"Du kannst ein Modell bitten, „[1]“ hinter Sätze zu schreiben, und für Prototypen reicht das. In Produktion ist der Verweis das Problem: Modelle erfinden plausible Quellennamen, nummerieren falsch oder zitieren Text, der gar nicht im Dokument steht. Native Zitierfunktionen verlagern diese Arbeit vom Freitext in die API-Antwort.",{"type":168,"level":270,"text":271},3,"Anthropic: Citations und Search Results",{"type":150,"content":273},[274],"Anthropics Citations-Funktion arbeitet mit drei Dokumenttypen, und das Zitatformat folgt dem Typ:",{"type":276,"head":277,"rows":284},"table",[278,280,282],[279],"Dokumenttyp",[281],"Chunking",[283],"Zitat verweist auf",[285,292,298],[286,288,290],[287],"Plain Text",[289],"Sätze",[291],"Zeichenindizes (0-basiert)",[293,295,296],[294],"PDF",[289],[297],"Seitenzahlen (1-basiert)",[299,301,303],[300],"Custom Content",[302],"Keines zusätzlich: deine Blöcke werden unverändert genutzt",[304],"Blockindizes (0-basiert)",{"type":150,"content":306},[307],"Für RAG empfiehlt die Dokumentation selbst, jeden abgerufenen Chunk in ein Plain-Text-Dokument zu legen oder `search_result`-Content-Blöcke zu verwenden, die Quelle und Titel tragen und aus deinen eigenen Such-Tools zurückgegeben oder direkt in die User-Nachricht gelegt werden können. Zitate erscheinen dann an den Text-Blöcken, die deinen Inhalt nutzen, ohne besonderes Prompting. Nach meiner Erfahrung ist der Ansatz „ein Chunk pro Dokument“ auch der sauberste Weg, eigene Chunk-IDs in der Antwort nachvollziehbar zu halten.",{"type":150,"content":309},[310],"Die Details, die in Produktion zählen, alle aus der Dokumentation:",{"type":174,"ordered":175,"items":312},[313,318,323,333,338],[314,317],{"tag":179,"children":315},[316],"Gültige Verweise."," Weil die API Zitate selbst parst und `cited_text` extrahiert, enthalten Zitate garantiert gültige Verweise auf die gelieferten Dokumente. Das beseitigt erfundene Referenzen, nicht falsch gelesene.",[319,322],{"tag":179,"children":320},[321],"Kosten."," Aktivierte Citations erhöhen die Input-Tokens leicht, aber `cited_text` zählt nicht zu den Output-Tokens und kann daher günstiger sein, als das Modell zitieren zu lassen.",[324,327,328,332],{"tag":179,"children":325},[326],"Caching."," Die Quelldokumente lassen sich mit `cache_control` cachen; die Zitat-Blöcke in Antworten nicht. Wann sich das lohnt, steht in meinem Beitrag zu ",{"tag":157,"to":329,"children":330},"\u002Fblog\u002Fllm-cost-latency-prompt-caching-routing",[331],"Prompt Caching und Routing",".",[334,337],{"tag":179,"children":335},[336],"Streaming."," Zitate kommen als `citations_delta`-Events, eines pro Event, am aktuellen Text-Block.",[339,342],{"tag":179,"children":340},[341],"Grenzen."," Citations müssen für alle oder keine Dokumente einer Anfrage aktiviert sein, nur Text ist zitierbar (gescannte PDFs ohne extrahierbaren Text nicht), und die Kombination mit Structured Outputs liefert einen 400-Fehler.",{"type":150,"content":344},[345],"Beim Start berichtete Anthropic, interne Evaluationen zeigten, dass eingebaute Zitate die meisten eigenen Implementierungen beim Recall um bis zu 15 Prozent übertreffen, und ein Kunde, Endex, nannte einen Rückgang von Quellen-Halluzinationen und Formatproblemen von 10 auf 0 Prozent. Das sind vom Anbieter berichtete Zahlen für konkrete Setups; ich würde sie als Grund nehmen, die Funktion zu testen, nicht als Zahl, die man erwarten darf.",{"type":168,"level":270,"text":347},"Andere Anbieter",{"type":150,"content":349},[350],"Anthropic ist nicht allein. OpenAIs Web-Search-Tool liefert `url_citation`-Annotationen mit URL, Titel und Position im Text, und die Dokumentation verlangt, dass Inline-Zitate in der Oberfläche klar sichtbar und klickbar sind, wenn du Webergebnisse zeigst. Coheres Chat-API liefert Zitat-Objekte mit Start- und Endposition, dem zitierten Text und den dahinterliegenden Quelldokumenten. Die gemeinsame Idee: Die Aussage des Modells und ihr Beleg reisen als strukturierte Daten zusammen, und deine Oberfläche muss das respektieren.",{"type":150,"content":352},[353],"Eine strukturelle Einschränkung gilt für alle: Das Modell entscheidet weiter, auf welche Passage es zeigt. Ein Zitat sagt dir, was das Modell an einen Satz gehängt hat, nicht dass der Satz daraus folgt.",{"type":168,"level":169,"id":125,"text":126},{"type":150,"content":356},[357],"Wenn das Standardverhalten des Modells das Antworten ist, brauchst du zwei Stellen, um es zu unterbrechen.",{"type":150,"content":359},[360,363],{"tag":179,"children":361},[362],"Ein Retrieval-Gate vor der Generierung."," Schau auf das Retrieval-Ergebnis: keine Passagen über einem Ähnlichkeits- oder Reranker-Schwellwert, eine große Lücke zwischen Frage und Fund oder widersprüchliche Top-Passagen. Überspringe in diesen Fällen den Modellaufruf ganz und antworte mit dem, was fehlt, und dem, was der Nutzer tun kann. Das ist günstiger als Generieren und auch die verlässlichste Abstention, weil sie nicht von der Selbsteinschätzung des Modells abhängt. Kalibriere den Schwellwert an echten Anfragen, nicht nach Gefühl.",{"type":150,"content":365},[366,369],{"tag":179,"children":367},[368],"Eine Erlaubnis im Prompt."," Sage dem Modell, dass „die Dokumente enthalten das nicht“ eine gültige und bevorzugte Antwort ist, wenn die Evidenz fehlt. Ohne diese Erlaubnis wirkt der Benchmark-Anreiz zum Raten weiter.",{"type":150,"content":371},[372],"Gestalte die Abstention als Teil des Produkts:",{"type":174,"ordered":175,"items":374},[375,377,379,381],[376],"Sage, was durchsucht wurde und was nicht gefunden wurde, statt eines nackten „Ich weiß es nicht“.",[378],"Biete einen nächsten Schritt an: umformulieren, eingrenzen, eine andere Quelle durchsuchen oder an einen Menschen übergeben.",[380],"Erlaube Teilantworten: beantworte den gestützten Teil und markiere den ungestützten ausdrücklich.",[382],"Zähle sie. Die Abstention-Rate ist eine Metrik mit gesundem Bereich; null heißt, das System rät, zu hoch heißt, das Gate ist zu streng oder das Retrieval schlecht.",{"type":168,"level":169,"id":128,"text":129},{"type":150,"content":385},[386],"Das verlässlichste Muster, das ich kenne, um misgrounded Antworten zu fangen, ist, die Antwort in Aussagen zu zerlegen und jede gegen ihren Beleg zu prüfen. Es ist dieselbe Idee wie die Faithfulness-Metrik in Ragas, die eine Antwort in einzelne Statements teilt, prüft, ob sich jedes aus dem abgerufenen Kontext ableiten lässt, und den Anteil gestützter Aussagen berechnet.",{"type":150,"content":388},[389],"Du kannst das mit einem zweiten Modellaufruf selbst bauen oder einen verwalteten Prüfer nutzen:",{"type":276,"head":391,"rows":398},[392,394,396],[393],"Option",[395],"Was sie tut",[397],"Bemerkenswerte Grenzen (laut Dokumentation)",[399,406,413],[400,402,404],[401],"Prompt-basierter Selbstcheck (Anthropic-Leitfaden)",[403],"Modell sucht pro Aussage ein stützendes Zitat, zieht den Rest zurück",[405],"Dieselbe Modellfamilie bewertet ihren eigenen Entwurf; zusätzlicher Aufruf",[407,409,411],[408],"Google Check Grounding API",[410],"Zerlegt die Antwort in Aussagen, liefert Support Score von 0 bis 1, Zitate und optionale Scores pro Aussage",[412],"Antwort bis 4.096 Tokens, bis zu 200 Fakten; Teilwahrheiten gelten als ungestützt; dokumentiert mit unter 500 ms",[414,416,418],[415],"Amazon Bedrock Contextual Grounding Check",[417],"Bewertet Grounding und Relevanz gegen Quelle und Frage; blockiert unter deinem Schwellwert",[419],"Nicht für Konversations-QA; Quelle bis 100.000 Zeichen; beim Streaming kann Irrelevanz erst nach dem Senden der Antwort markiert werden",{"type":150,"content":421},[422],"Drei Entscheidungen tauchen jedes Mal auf:",{"type":174,"ordered":208,"items":424},[425,430,439],[426,429],{"tag":179,"children":427},[428],"Was passiert bei einem Fehlschlag?"," Optionen: mit entfernter Aussage neu generieren, den Satz streichen, ihn mit Markierung „unverifiziert“ behalten oder die ganze Antwort verweigern. In kritischen Domänen bevorzuge ich Streichen oder Markieren gegenüber stiller Neugenerierung, weil Nutzer sehen sollen, dass etwas entfernt wurde.",[431,434,435,332],{"tag":179,"children":432},[433],"Wo läuft es?"," Ein blockierender Prüfer fügt Latenz vor dem ersten angezeigten Token hinzu, wenn du auf ihn wartest. Bei Streaming-UIs streame den Entwurf mit Zitaten und aktualisiere den Zustand jedes Satzes, sobald Urteile eintreffen, oder verifiziere vor dem Streaming in den wenigen Abläufen, in denen falsche Antworten teuer sind. Die Transportseite behandelt mein Beitrag zu ",{"tag":157,"to":436,"children":437},"\u002Fblog\u002Fnuxt-llm-features-ai-sdk-streaming",[438],"Streaming-LLM-Features in Nuxt",[440,443],{"tag":179,"children":441},[442],"Wer prüft den Prüfer?"," Ein Prüfer ist ein Modell oder Klassifikator und macht Fehler. Labele ein paar hundert Urteile von Hand und verfolge Precision und Recall des Prüfers selbst, sonst hast du Vertrauen nur von einer ungemessenen Komponente auf die nächste verschoben.",{"type":168,"level":169,"id":131,"text":132},{"type":150,"content":446},[447],"So ordne ich die Techniken danach, was sie tatsächlich adressieren. Ich gebe bewusst keinen Prozentwert pro Zeile an: Die Wirkung hängt von Korpus, Anfragen und Modell ab, und die einzigen Zahlen, denen ich vertrauen würde, sind die, die du auf deinem eigenen Testset misst.",{"type":276,"head":449,"rows":458},[450,452,454,456],[451],"Technik",[453],"Ziel-Fehler",[455],"Kosten",[457],"Wo sie weiter versagt",[459,468,477,486,495,504,513,522],[460,462,464,466],[461],"Besseres Retrieval (Hybrid, Rerank)",[463],"Falsche oder fehlende Passagen",[465],"Entwicklungszeit; etwas Latenz",[467],"Lücken im Korpus, veraltete Dokumente",[469,471,473,475],[470],"Prompt-Regeln „nur die Dokumente nutzen“",[472],"Antworten aus dem Modellgedächtnis",[474],"Fast keine",[476],"Ein Prompt ist eine Bitte, keine Garantie",[478,480,482,484],[479],"Erlaubnis, „Ich weiß es nicht“ zu sagen",[481],"Erzwungenes Raten",[483],"Keine",[485],"Zu viel Abstention, wenn nicht getestet",[487,489,491,493],[488],"Retrieval-Evidenz-Gate",[490],"Generieren aus schwacher Evidenz",[492],"Ein Schwellwert zu kalibrieren",[494],"Starke, aber irrelevante Passagen kommen durch",[496,498,500,502],[497],"Quote-first-Extraktion",[499],"Paraphrasen-Drift bei langen Dokumenten",[501],"Zusätzliche Tokens oder ein Schritt",[503],"Zitate können weiter falsch gelesen werden",[505,507,509,511],[506],"Native Zitate",[508],"Erfundene oder ungültige Referenzen",[510],"Etwas mehr Input-Tokens",[512],"Gültiger Verweis, ungestützte Aussage",[514,516,518,520],[515],"Claim-Level-Verifikation",[517],"Misgrounded Aussagen",[519],"Zusätzlicher Aufruf und Latenz",[521],"Prüferfehler; mehrstufiges Schließen",[523,525,527,529],[524],"Quellen-zuerst-UI",[526],"Ungeprüftes Vertrauen",[528],"Design- und Frontend-Arbeit",[530],"Nutzer, die nie klicken",{"type":168,"level":169,"id":134,"text":135},{"type":150,"content":533},[534,535,537],"Ohne Messung ist jede Änderung in diesem Artikel ein Glaube. Ich würde vier Zahlen auf einem festen Evaluationsset verfolgen und sie in der CI laufen lassen wie Unit-Tests (siehe ",{"tag":157,"to":163,"children":536},[165],"):",{"type":174,"ordered":175,"items":539},[540,545,550,555],[541,544],{"tag":179,"children":542},[543],"Faithfulness:"," der Anteil der Aussagen, die der abgerufene Kontext stützt, wie in der Ragas-Definition. Sie ist von Korrektheit getrennt: Eine treue Antwort aus einem falschen Dokument ist falsch.",[546,549],{"tag":179,"children":547},[548],"Zitat-Precision und -Recall:"," Wie viele der gezeigten Zitate stützen den Satz wirklich; wie viele der Aussagen haben ein stützendes Zitat.",[551,554],{"tag":179,"children":552},[553],"Abstention-Qualität:"," Wie oft lehnt das System bei Fragen ab, die der Korpus nicht beantworten kann; wie oft lehnt es bei beantwortbaren Fragen fälschlich ab.",[556,559],{"tag":179,"children":557},[558],"Antwort-Korrektheit"," gegen eine Referenzantwort, damit Faithfulness nicht dein einziges Signal ist.",{"type":150,"content":561},[562],"Baue das Set aus drei Gruppen: beantwortbare Fragen mit bekannten Passagen, unbeantwortbare Fragen und Adversarial-Fragen (veraltete Informationen, nahezu doppelte Dokumente, Fragen, die das Modell zur Nutzung seines eigenen Wissens verleiten). Die meisten Teams lassen die unbeantwortbare Gruppe aus, und deshalb wird ihr Abstention-Verhalten nie getestet.",{"type":564,"variant":565,"title":566,"body":567},"callout","warn","Ein Zitat ist kein Beweis für Faithfulness",[568],[569],"Forschung zur Attribution in RAG unterscheidet Zitat-Korrektheit von Faithfulness. In der Studie von Wallat et al. waren bis zu 57 Prozent der Zitate nachträglich rationalisiert: Das Modell hatte seine Antwort schon aus Vorwissen festgelegt und ein Dokument angehängt, das zufällig passte. Ein Zitat, das zur Aussage passt, kann trotzdem Dekoration sein. Prüfe zumindest stichprobenartig, ob sich die Antwort ändert, wenn die zitierte Passage entfernt wird.",{"type":168,"level":169,"id":137,"text":138},{"type":150,"content":572},[573],"Die Oberfläche ist die letzte Verteidigungslinie und die einzige, die der Nutzer sieht. Diese Muster würde ich einsetzen:",{"type":174,"ordered":175,"items":575},[576,581,586,591,596,601],[577,580],{"tag":179,"children":578},[579],"Nummerierte Inline-Marker"," neben dem Satz, den sie stützen, nicht ein Linkblock am Ende. Die Anbindung pro Aussage macht das Prüfen erst möglich.",[582,585],{"tag":179,"children":583},[584],"Vorschau bei Hover oder Tippen"," mit der zitierten Passage und dem Dokumenttitel. Hier ist `cited_text` nützlich, und es macht eine Prüfung in fünf Sekunden realistisch.",[587,590],{"tag":179,"children":588},[589],"Deep Links",", die die Quelle an der zitierten Stelle öffnen (Seitenzahl, Anker oder markierter Bereich), nicht nur am Anfang eines 60-seitigen PDFs.",[592,595],{"tag":179,"children":593},[594],"Sichtbarer Verifikationszustand"," pro Satz oder Antwort: verifiziert, unverifiziert oder entfernt. Hat der Prüfer etwas gestrichen, sag es.",[597,600],{"tag":179,"children":598},[599],"Ein gestalteter Abstention-Zustand"," mit nächsten Schritten, wie oben, als normales Ergebnis gestaltet statt als Fehler.",[602,605],{"tag":179,"children":603},[604],"Zitate, die tatsächlich klickbar und sichtbar sind."," OpenAIs Dokumentation macht das für Webergebnisse zur Pflicht, und es ist überall eine gute Regel.",{"type":150,"content":607},[608],"Eine Warnung aus der Stanford-Studie betrifft das Design: Echte, seriös wirkende Zitate machen eine falsche Antwort überzeugender. Lass das Vorhandensein einer Fußnote nicht mehr Sicherheit signalisieren, als deine Verifikation hergibt. Hat dein Prüfer nicht gelaufen, zeige kein Badge „verifiziert“.",{"type":150,"content":610},[611],"Achte auch auf die Technik: Antworten mit Zitaten sind kein reiner Textstrom mehr. Simon Willison wies beim Start der Funktion darauf hin, dass das eine Abstraktion für Antworten erzwingt, die annotierte Chunks statt Text sind. Plane dein Streaming-Protokoll und deine Nachrichtenspeicherung von Anfang an für strukturierte Segmente.",{"type":168,"level":169,"id":140,"text":141},{"type":150,"content":614},[615],"Nach allen vier Gates erwarte ich noch diese Fehler, und das würde ich jeweils tun:",{"type":174,"ordered":175,"items":617},[618,623,628,633,638,647,652],[619,622],{"tag":179,"children":620},[621],"Retrieval-Fehlgriffe, die wie Antworten aussehen."," Eine teilweise relevante Passage passiert das Gate und das Modell füllt die Lücke. Gegenmittel: Reranker-Schwellwerte und eine explizite Prüfung „beantwortet diese Passage die Frage?“.",[624,627],{"tag":179,"children":625},[626],"Falsche oder veraltete Quellen."," Die Antwort ist treu zu einem veralteten Dokument. Gegenmittel: Dokumentdatum und Version in den Metadaten, in der UI gezeigt, und Aktualitätsfilter.",[629,632],{"tag":179,"children":630},[631],"Misgrounded Zitate."," Das Problem „gültiger Verweis, ungestützte Aussage“. Gegenmittel: Claim-Level-Verifikation und stichprobenartige menschliche Prüfung.",[634,637],{"tag":179,"children":635},[636],"Schließen über mehrere Passagen."," Summen, Vergleiche und mehrstufige Schlüsse stehen nicht wörtlich in einer Passage, deshalb tun sich Prüfer damit schwer. Gegenmittel: Zahlen mit Code berechnen und die Eingaben zeigen.",[639,642,643,332],{"tag":179,"children":640},[641],"Vergiftete Dokumente."," Enthält ein abgerufenes Dokument Anweisungen, folgt das Modell ihnen womöglich. Grounding auf nicht vertrauenswürdigem Text ist eine Sicherheitsfrage; siehe ",{"tag":157,"to":644,"children":645},"\u002Fblog\u002Fprompt-injection-lethal-trifecta-patterns",[646],"Prompt Injection und die Lethal Trifecta",[648,651],{"tag":179,"children":649},[650],"Formatvorgaben."," Structured Outputs und Citations lassen sich in der Anthropic-API derzeit nicht kombinieren, eine Extraktions-Pipeline braucht also eine andere Grounding-Strategie, zum Beispiel einen Verifikationsdurchlauf über die JSON-Werte.",[653,656],{"tag":179,"children":654},[655],"Blinde Flecken des Prüfers."," Ein Prüfer kann in beide Richtungen irren. Miss ihn.",{"type":150,"content":658},[659,660,664],"Auch die längerfristige Richtung, die ich in meinem Beitrag zu ",{"tag":157,"to":661,"children":662},"\u002Fblog\u002Frag-2026-hybrid-agentic-long-context",[663],"Hybrid-, Agentic- und Long-Context-RAG"," beschreibe, beseitigt das Problem nicht. Ein Agent, der mehrfach abruft, hat mehr Chancen, die richtige Passage zu finden, und mehr Chancen, einen falschen Schluss zu verketten.",{"type":168,"level":169,"id":143,"text":144},{"type":174,"ordered":208,"items":667},[668,670,672,674,676,678,680,682],[669],"Füge die Anweisung „Die Dokumente enthalten das nicht“ hinzu und teste sie mit mindestens 20 unbeantwortbaren Fragen.",[671],"Füge ein Retrieval-Gate mit an echten Anfragen kalibriertem Schwellwert hinzu; logge jede Abstention.",[673],"Aktiviere native Citations; lege jeden Chunk in ein eigenes Dokument oder einen `search_result`-Block mit deiner eigenen ID im Source-Feld.",[675],"Speichere zu jeder Antwort die Antwort, die zitierten Passagen und die Retrieval-Scores.",[677],"Füge zuerst auf einer Stichprobe einen Claim-Level-Prüfer hinzu, dann in den Abläufen, in denen falsche Antworten Geld oder Vertrauen kosten.",[679],"Verfolge Faithfulness, Zitat-Precision und -Recall sowie Abstention-Qualität in der CI auf einem festen Evaluationsset.",[681],"Zeige nummerierte, klickbare Zitate mit Passagen-Vorschau und sichtbarem Verifikationszustand.",[683],"Prüfe jede Woche eine Zufallsstichprobe von Antworten mit Zitaten von Hand, denn Zitate können nachträglich rationalisiert sein.",{"type":150,"content":685},[686,687,691],"Wenn du nur eines mitnimmst: Mach falsche Antworten billig erkennbar. Ein System, das gelegentlich falsch liegt und seine Belege zeigt, ist ein Werkzeug; eines, das gelegentlich falsch liegt und sicher klingt, ist ein Risiko. Wenn du Hilfe beim Bauen oder Prüfen einer solchen Pipeline brauchst, schau dir meine ",{"tag":157,"to":688,"children":689},"\u002Fexpertise\u002Fai-engineer",[690],"KI-Engineering-Arbeit"," an.",{"type":168,"level":169,"id":146,"text":147},{"type":174,"ordered":208,"items":694},[695,699,702,705,708,711,714,717,720,723,726,729,732],[696],{"tag":697,"href":38,"children":698},"a",[37],[700],{"tag":697,"href":41,"children":701},[40],[703],{"tag":697,"href":44,"children":704},[43],[706],{"tag":697,"href":47,"children":707},[46],[709],{"tag":697,"href":50,"children":710},[49],[712],{"tag":697,"href":53,"children":713},[52],[715],{"tag":697,"href":56,"children":716},[55],[718],{"tag":697,"href":59,"children":719},[58],[721],{"tag":697,"href":62,"children":722},[61],[724],{"tag":697,"href":65,"children":725},[64],[727],{"tag":697,"href":68,"children":728},[67],[730],{"tag":697,"href":71,"children":731},[70],[733],{"tag":697,"href":74,"children":734},[73],[736,820,887,954],{"slug":737,"published":5,"minutes":6,"category":7,"tags":738,"keywords":743,"about":754,"sources":762,"cover":814,"og":815,"expertise":77,"locales":816,"lang":80,"title":817,"description":818,"coverAlt":819},"pgvector-vs-vector-databases",[739,740,10,741,742],"pgvector","Vector databases","Hybrid search","EU hosting",[744,745,746,747,748,749,750,751,752,753],"pgvector vs vector database","pgvector vs Qdrant","pgvector vs Pinecone","best vector database 2026","pgvector HNSW iterative scan","pgvector halfvec","OpenSearch vs Elasticsearch vector search","vector database EU hosting","hybrid search Postgres","Weaviate vs Milvus",[755,758,761],{"name":756,"url":757},"Vector database","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FVector_database",{"name":759,"url":760},"PostgreSQL","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPostgreSQL",{"name":30,"url":31},[763,766,769,772,775,778,781,784,787,790,793,796,799,802,805,808,811],{"title":764,"url":765},"pgvector README (index limits, HNSW defaults, iterative scans, filtering, halfvec)","https:\u002F\u002Fgithub.com\u002Fpgvector\u002Fpgvector\u002Fblob\u002Fmaster\u002FREADME.md",{"title":767,"url":768},"pgvector CHANGELOG (0.4.0 to 0.8.7)","https:\u002F\u002Fgithub.com\u002Fpgvector\u002Fpgvector\u002Fblob\u002Fmaster\u002FCHANGELOG.md",{"title":770,"url":771},"pgvectorscale: StreamingDiskANN, statistical binary quantization, filtered search","https:\u002F\u002Fgithub.com\u002Ftimescale\u002Fpgvectorscale",{"title":773,"url":774},"Qdrant documentation: Filtering","https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fconcepts\u002Ffiltering\u002F",{"title":776,"url":777},"Qdrant documentation: Hybrid queries","https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fconcepts\u002Fhybrid-queries\u002F",{"title":779,"url":780},"Qdrant documentation: Create a cluster (providers, free tier, Hybrid Cloud)","https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fcloud\u002Fcreate-cluster\u002F",{"title":782,"url":783},"Weaviate documentation: Hybrid search","https:\u002F\u002Fdocs.weaviate.io\u002Fweaviate\u002Fconcepts\u002Fsearch\u002Fhybrid-search",{"title":785,"url":786},"Weaviate documentation: Vector index types","https:\u002F\u002Fdocs.weaviate.io\u002Fweaviate\u002Fconcepts\u002Fvector-index",{"title":788,"url":789},"Weaviate Cloud pricing and deployment options","https:\u002F\u002Fweaviate.io\u002Fpricing",{"title":791,"url":792},"Milvus documentation: Overview","https:\u002F\u002Fmilvus.io\u002Fdocs\u002Foverview.md",{"title":794,"url":795},"Pinecone documentation: Database architecture","https:\u002F\u002Fdocs.pinecone.io\u002Fguides\u002Fget-started\u002Fdatabase-architecture",{"title":797,"url":798},"Pinecone documentation: Create an index (clouds, regions, sparse and hybrid)","https:\u002F\u002Fdocs.pinecone.io\u002Fguides\u002Findex-data\u002Fcreate-an-index",{"title":800,"url":801},"OpenSearch documentation: Methods and engines","https:\u002F\u002Fdocs.opensearch.org\u002Flatest\u002Fmappings\u002Fsupported-field-types\u002Fknn-methods-engines\u002F",{"title":803,"url":804},"OpenSearch documentation: Efficient k-NN filtering","https:\u002F\u002Fdocs.opensearch.org\u002Flatest\u002Fvector-search\u002Ffilter-search-knn\u002Fefficient-knn-filtering\u002F",{"title":806,"url":807},"Elasticsearch documentation: Dense vector search","https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fsolutions\u002Fsearch\u002Fvector\u002Fdense-vector",{"title":809,"url":810},"Elasticsearch documentation: kNN query (filter as pre-filter)","https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Freference\u002Fquery-languages\u002Fquery-dsl\u002Fquery-dsl-knn-query",{"title":812,"url":813},"GitHub releases: Qdrant, Weaviate, Milvus, OpenSearch, pgvectorscale (versions as of 1 October 2026)","https:\u002F\u002Fgithub.com\u002Fqdrant\u002Fqdrant\u002Freleases","\u002Fimages\u002Fblog\u002Fpgvector-vs-vector-databases\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fpgvector-vs-vector-databases\u002Fog.jpg",[79,80,81],"pgvector oder Vektordatenbank? So wählst du 2026 den Vektorspeicher","pgvector, Qdrant, Weaviate, Milvus, Pinecone, OpenSearch oder Elasticsearch? Ein praktischer Leitfaden 2026 zu Filtern, Hybridsuche, Skalierung, Kosten und EU-Hosting.","Diagramm: ein Entscheidungspfad von deinen Daten zu pgvector in Postgres, einer Suchmaschine mit Vektorfeldern oder einer dedizierten Vektordatenbank.",{"slug":821,"published":5,"minutes":6,"category":7,"tags":822,"keywords":826,"about":836,"sources":844,"cover":881,"og":882,"expertise":77,"locales":883,"lang":80,"title":884,"description":885,"coverAlt":886},"graphrag-knowledge-graph-rag",[823,824,825,10],"GraphRAG","Knowledge graphs","LightRAG",[823,827,828,829,830,831,832,833,834,835],"knowledge graph RAG","GraphRAG vs vector RAG","Microsoft GraphRAG explained","LightRAG vs GraphRAG","GraphRAG global vs local search","GraphRAG indexing cost","when to use GraphRAG","multi-hop RAG","LazyGraphRAG",[837,840,841],{"name":838,"url":839},"Knowledge graph","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FKnowledge_graph",{"name":30,"url":31},{"name":842,"url":843},"Leiden algorithm","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLeiden_algorithm",[845,848,851,854,857,860,863,866,869,872,875,878],{"title":846,"url":847},"Edge et al.: From Local to Global: A Graph RAG Approach to Query-Focused Summarization (arXiv:2404.16130)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2404.16130",{"title":849,"url":850},"Microsoft GraphRAG documentation: overview","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002F",{"title":852,"url":853},"Microsoft GraphRAG documentation: default dataflow","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002Findex\u002Fdefault_dataflow\u002F",{"title":855,"url":856},"Microsoft GraphRAG documentation: global search","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002Fquery\u002Fglobal_search\u002F",{"title":858,"url":859},"Microsoft GraphRAG documentation: local search","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002Fquery\u002Flocal_search\u002F",{"title":861,"url":862},"Microsoft GraphRAG documentation: DRIFT search","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002Fquery\u002Fdrift_search\u002F",{"title":864,"url":865},"Microsoft GraphRAG documentation: getting started","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002Fget_started\u002F",{"title":867,"url":868},"Microsoft Research: LazyGraphRAG, setting a new standard for quality and cost (25 November 2024)","https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Flazygraphrag-setting-a-new-standard-for-quality-and-cost\u002F",{"title":870,"url":871},"Guo et al.: LightRAG: Simple and Fast Retrieval-Augmented Generation (arXiv:2410.05779)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.05779",{"title":873,"url":874},"HKUDS\u002FLightRAG on GitHub","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FLightRAG",{"title":876,"url":877},"Gutiérrez et al.: HippoRAG: Neurobiologically Inspired Long-Term Memory for Large Language Models (arXiv:2405.14831)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2405.14831",{"title":879,"url":880},"Xiang et al.: When to use Graphs in RAG: A Comprehensive Analysis for Graph Retrieval-Augmented Generation (arXiv:2506.05690)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2506.05690","\u002Fimages\u002Fblog\u002Fgraphrag-knowledge-graph-rag\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fgraphrag-knowledge-graph-rag\u002Fog.jpg",[79,80,81],"GraphRAG und Knowledge-Graph-RAG: wann ein Graph die Vektorsuche schlägt","Was Microsoft GraphRAG und LightRAG wirklich tun, was die Indexierung kostet und wann ein Wissensgraph Vektor-RAG schlägt: Multi-Hop, globale Fragen, Produktkataloge.","Diagramm: ein Wissensgraph als Zentrum, verbunden mit Entitäten, Communities, lokaler Suche, globaler Suche und Produktteilen.",{"slug":888,"published":5,"minutes":889,"category":7,"tags":890,"keywords":896,"about":906,"sources":914,"cover":948,"og":949,"expertise":77,"locales":950,"lang":80,"title":951,"description":952,"coverAlt":953},"rag-evaluation-metrics",12,[891,892,893,894,895],"RAG evaluation","Retrieval metrics","LLM-as-judge","Golden set","Ragas",[891,897,898,899,900,901,902,903,904,905],"how to evaluate RAG","RAG evaluation metrics","recall@k MRR nDCG","faithfulness vs answer relevance","golden dataset for RAG","LLM as a judge calibration","Ragas vs DeepEval vs TruLens","RAG evals in CI","retrieval vs generation failure",[907,908,911],{"name":30,"url":31},{"name":909,"url":910},"Discounted cumulative gain","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDiscounted_cumulative_gain",{"name":912,"url":913},"Mean reciprocal rank","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMean_reciprocal_rank",[915,918,921,924,926,929,932,935,938,941,943,945],{"title":916,"url":917},"Es et al.: RAGAS, Automated Evaluation of Retrieval Augmented Generation (arXiv 2309.15217)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2309.15217",{"title":919,"url":920},"Zheng et al.: Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena (arXiv 2306.05685)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2306.05685",{"title":922,"url":923},"Ragas documentation: available metrics","https:\u002F\u002Fdocs.ragas.io\u002Fen\u002Fstable\u002Fconcepts\u002Fmetrics\u002Favailable_metrics\u002F",{"title":925,"url":65},"Ragas documentation: faithfulness",{"title":927,"url":928},"Ragas documentation: context precision","https:\u002F\u002Fdocs.ragas.io\u002Fen\u002Fstable\u002Fconcepts\u002Fmetrics\u002Favailable_metrics\u002Fcontext_precision\u002F",{"title":930,"url":931},"Ragas documentation: context recall","https:\u002F\u002Fdocs.ragas.io\u002Fen\u002Fstable\u002Fconcepts\u002Fmetrics\u002Favailable_metrics\u002Fcontext_recall\u002F",{"title":933,"url":934},"DeepEval documentation: metrics introduction","https:\u002F\u002Fdeepeval.com\u002Fdocs\u002Fmetrics-introduction",{"title":936,"url":937},"TruLens","https:\u002F\u002Fwww.trulens.org\u002F",{"title":939,"url":940},"Arize Phoenix documentation","https:\u002F\u002Farize.com\u002Fdocs\u002Fphoenix",{"title":942,"url":910},"Wikipedia: Discounted cumulative gain",{"title":944,"url":913},"Wikipedia: Mean reciprocal rank",{"title":946,"url":947},"Wikipedia: Cohen's kappa","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCohen%27s_kappa","\u002Fimages\u002Fblog\u002Frag-evaluation-metrics\u002Fcover.webp","\u002Fimages\u002Fblog\u002Frag-evaluation-metrics\u002Fog.jpg",[79,80,81],"RAG evaluieren: Retrieval-Metriken, Faithfulness und wie du erkennst, welche Hälfte versagt hat","So evaluierst du ein RAG-System: recall at k, MRR und nDCG vs. Faithfulness und Antwortrelevanz, Golden Set aus echten Anfragen, kalibrierter LLM-Judge, Evals in CI.","Diagramm: Eine RAG-Antwort wird auf zwei Seiten bewertet, mit Retrieval-Metriken wie recall at k, MRR und nDCG sowie Generierungs-Metriken wie Faithfulness und Antwortrelevanz, die in eine Diagnose münden.",{"slug":955,"published":5,"minutes":6,"category":7,"tags":956,"keywords":961,"about":972,"sources":980,"cover":1019,"og":1020,"expertise":1021,"locales":1022,"lang":80,"title":1023,"description":1024,"coverAlt":1025},"semantic-product-search-b2b",[957,741,958,959,960],"B2B search","Semantic search","Spryker","OpenSearch",[962,963,964,965,966,967,968,969,970,971],"semantic product search B2B","B2B ecommerce search","hybrid search BM25 vector","part number search ecommerce","Spryker search Elasticsearch","OpenSearch hybrid search RRF","multilingual product search German English Hungarian","zero results rate site search","LLM query understanding ecommerce","AI product search for B2B shops",[973,975,978],{"name":958,"url":974},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSemantic_search",{"name":976,"url":977},"Elasticsearch","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FElasticsearch",{"name":960,"url":979},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOpenSearch",[981,984,987,989,992,995,998,1001,1004,1007,1010,1013,1016],{"title":982,"url":983},"Baymard Institute: E-commerce search query types","https:\u002F\u002Fbaymard.com\u002Fblog\u002Fecommerce-search-query-types",{"title":985,"url":986},"Elastic Search Labs: Hybrid search in Elasticsearch","https:\u002F\u002Fwww.elastic.co\u002Fsearch-labs\u002Fblog\u002Fhybrid-search-elasticsearch",{"title":988,"url":810},"Elasticsearch documentation: kNN query (pre-filters and post-filters)",{"title":990,"url":991},"Elasticsearch documentation: Semantic reranking","https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fsolutions\u002Fsearch\u002Franking\u002Fsemantic-reranking",{"title":993,"url":994},"Elasticsearch documentation: Word delimiter graph token filter","https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Freference\u002Ftext-analysis\u002Fanalysis-word-delimiter-graph-tokenfilter",{"title":996,"url":997},"Elasticsearch documentation: Synonym graph token filter","https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Freference\u002Ftext-analysis\u002Fanalysis-synonym-graph-tokenfilter",{"title":999,"url":1000},"OpenSearch documentation: Score ranker processor (RRF)","https:\u002F\u002Fdocs.opensearch.org\u002Flatest\u002Fsearch-plugins\u002Fsearch-pipelines\u002Fscore-ranker-processor\u002F",{"title":1002,"url":1003},"OpenSearch documentation: Normalization processor","https:\u002F\u002Fdocs.opensearch.org\u002Flatest\u002Fsearch-plugins\u002Fsearch-pipelines\u002Fnormalization-processor\u002F",{"title":1005,"url":1006},"Spryker documentation: Search feature overview","https:\u002F\u002Fdocs.spryker.com\u002Fdocs\u002Fpbc\u002Fall\u002Fsearch\u002Flatest\u002Fbase-shop\u002Fsearch-feature-overview\u002Fsearch-feature-overview",{"title":1008,"url":1009},"Spryker documentation: Migrate from OpenSearch 1.3 to 3.5","https:\u002F\u002Fdocs.spryker.com\u002Fdocs\u002Fpbc\u002Fall\u002Fsearch\u002Flatest\u002Fbase-shop\u002Finstall-and-upgrade\u002Fmigrate-from-opensearch-1.3-to-3.5.html",{"title":1011,"url":1012},"Instacart via ZenML: Rebuilding query understanding for e-commerce search with LLMs","https:\u002F\u002Fwww.zenml.io\u002Fllmops-database\u002Frebuilding-query-understanding-for-e-commerce-search-with-llms",{"title":1014,"url":1015},"arXiv: M3-Embedding, multilingual, multi-functionality, multi-granularity text embeddings","https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.03216",{"title":1017,"url":1018},"Algolia documentation: Search analytics metrics","https:\u002F\u002Fwww.algolia.com\u002Fdoc\u002Fguides\u002Fsearch-analytics\u002Fconcepts\u002Fmetrics\u002F","\u002Fimages\u002Fblog\u002Fsemantic-product-search-b2b\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fsemantic-product-search-b2b\u002Fog.jpg","b2b-ecommerce-developer",[79,80,81],"Semantische Produktsuche für B2B-Shops: Artikelnummern, Hybrid-Retrieval und was du messen solltest","Semantische Suche im B2B-Shop, ohne die Artikelnummern-Suche zu zerstören: Hybrid aus BM25 und Vektoren, Filter, DE\u002FEN\u002FHU, LLM-Query-Parsing, Reranking, Metriken.","Diagramm: Eine Suchanfrage wird auf eine Kennungs-Spur, lexikalisches BM25 und Vektor-kNN verteilt, fusioniert, neu gerankt und als Ergebnis ausgegeben.",1791009037503]