Zum Inhalt springen

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 wird
  • system_prompt: Eine Vorlage für die Eingabeaufforderung, die zur Generierung der Suchantwort verwendet wird. Die Standardvorlage finden Sie unter system_prompt
  • response_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 sollen
  • context_builder_params: Ein Wörterbuch mit zusätzlichen Parametern, die an das context_builder-Objekt übergeben werden sollen, wenn Kontext für die Suchanfrage erstellt wird
  • callbacks: 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.