Lokale Suche 🔎
Entitätsbasiertes Schlussfolgern
Die lokale Suchmethode kombiniert strukturierte Daten aus dem Wissensgraphen mit unstrukturierten Daten aus den Eingabedokumenten, um den LLM-Kontext zur Abfragezeit mit relevanten Entitätsinformationen anzureichern. Sie eignet sich gut für die Beantwortung von Fragen, die ein Verständnis spezifischer Entitäten erfordern, die in den Eingabedokumenten erwähnt werden (z. B. „Welche Heilwirkungen hat Kamille?“).
Methodik
---
title: Local Search Dataflow
---
%%{ init: { 'flowchart': { 'curve': 'step' } } }%%
flowchart LR
uq[User Query] ---.1
ch1[Conversation<br/>History]---.1
.1--Entity<br/>Description<br/>Embedding--> ee[Extracted Entities]
ee[Extracted Entities] ---.2--Entity-Text<br/>Unit Mapping--> ctu[Candidate<br/>Text Units]--Ranking + <br/>Filtering -->ptu[Prioritized<br/>Text Units]---.3
.2--Entity-Report<br/>Mapping--> ccr[Candidate<br/>Community Reports]--Ranking + <br/>Filtering -->pcr[Prioritized<br/>Community Reports]---.3
.2--Entity-Entity<br/>Relationships--> ce[Candidate<br/>Entities]--Ranking + <br/>Filtering -->pe[Prioritized<br/>Entities]---.3
.2--Entity-Entity<br/>Relationships--> cr[Candidate<br/>Relationships]--Ranking + <br/>Filtering -->pr[Prioritized<br/>Relationships]---.3
.2--Entity-Covariate<br/>Mappings--> cc[Candidate<br/>Covariates]--Ranking + <br/>Filtering -->pc[Prioritized<br/>Covariates]---.3
ch1 -->ch2[Conversation History]---.3
.3-->res[Response]
classDef green fill:#26B653,stroke:#333,stroke-width:2px,color:#fff;
classDef turquoise fill:#19CCD3,stroke:#333,stroke-width:2px,color:#fff;
classDef rose fill:#DD8694,stroke:#333,stroke-width:2px,color:#fff;
classDef orange fill:#F19914,stroke:#333,stroke-width:2px,color:#fff;
classDef purple fill:#B356CD,stroke:#333,stroke-width:2px,color:#fff;
classDef invisible fill:#fff,stroke:#fff,stroke-width:0px,color:#fff, width:0px;
class uq,ch1 turquoise
class ee green
class ctu,ccr,ce,cr,cc rose
class ptu,pcr,pe,pr,pc,ch2 orange
class res purple
class .1,.2,.3 invisible
Angesichts einer Benutzeranfrage und optional des Gesprächsverlaufs identifiziert die lokale Suchmethode eine Reihe von Entitäten aus dem Wissensgraphen, die semantisch mit der Benutzereingabe verwandt sind. Diese Entitäten dienen als Zugriffspunkte in den Wissensgraphen und ermöglichen die Extraktion weiterer relevanter Details wie verbundene Entitäten, Beziehungen, Entitätskovariaten und Community-Berichte. Darüber hinaus extrahiert sie auch relevante Textabschnitte aus den rohen Eingabedokumenten, die mit den identifizierten Entitäten assoziiert sind. Diese Kandidatendatenquellen werden dann priorisiert und gefiltert, um in ein einzelnes Kontextfenster vordefinierter Größe zu passen, das zur Generierung einer Antwort auf die Benutzeranfrage verwendet wird.
Konfiguration
Nachfolgend sind die wichtigsten Parameter der LocalSearch-Klasse aufgeführt
llm: OpenAI-Modellobjekt zur Generierung von Antworten.context_builder: Ein Kontext-Builder-Objekt, das zur Vorbereitung von Kontextdaten aus Sammlungen von Wissensmodellobjekten verwendet wirdsystem_prompt: Eine Vorlage für die Eingabeaufforderung, die zur Generierung der Suchantwort verwendet wird. Die Standardvorlage finden Sie unter system_promptresponse_type: Freiformtext, der den gewünschten Antworttyp und das gewünschte Format beschreibt (z. B.Mehrere Absätze,Mehrseitiger Bericht)llm_params: Ein Wörterbuch mit zusätzlichen Parametern (z. B. Temperatur, max_tokens), die an den LLM-Aufruf übergeben werden sollencontext_builder_params: Ein Wörterbuch mit zusätzlichen Parametern, die an dascontext_builder-Objekt übergeben werden sollen, wenn Kontext für die Suchanfrage erstellt wirdcallbacks: Optionale Callback-Funktionen, die zur Bereitstellung benutzerdefinierter Ereignisbehandlungsroutinen für LLM-Stream-Ereignisse verwendet werden können.
Anwendung
Ein Beispiel für ein Szenario der lokalen Suche finden Sie im folgenden Notebook.