Ga naar inhoud

Kennis

Kennis is wat een agent kan weten: de documenten en gegevens van een organisatie, zo opgeslagen dat een model er tijdens een beurt in kan zoeken. Kennis is een laag met meerdere onderdelen. Je kiest per toepassing hoe documenten worden verwerkt, waarin ze doorzoekbaar worden en hoe een agent zoekt.

De onderdelen, in de volgorde waarin ze werken

flowchart LR
    ext["Extern systeem<br/>website, SharePoint, Google Drive, S3, Zendesk"] -.->|"synchroniseert"| col
    col["Collectie<br/>waar bronnen staan"] --> ing["Ingest-pipeline<br/>hoe een bron doorzoekbaar wordt"]
    ing --> idx["Index<br/>zoeken op betekenis en trefwoord"]
    ing --> kg["Graaf<br/>zoeken op entiteiten en relaties"]
    ing --> ts["Tabelset<br/>tabellen bevragen op veld"]
    idx --> tool["Zoektool<br/>wat de agent aanroept"]
    kg --> tool
    ts --> tool
    col --> tool
    tool --> agent["Agent"]
Onderdeel Wat het is
Collectie waar bronnen staan. Een bron is één document, tabel of bestand, en hoort bij precies één collectie. Je vult een collectie zelf, of zij haalt documenten op uit een systeem dat je al gebruikt
Ingest-pipeline de stappen die een bron doorzoekbaar maken: laden, lezen, splitsen, inbedden, tabellen of feiten eruit halen. Begin met een ingebouwd sjabloon; bouw een eigen pipeline als je andere stappen nodig hebt
Index kiest een of meer collecties en bevat hun bronnen als fragmenten met embeddings. Een index doorzoek je op betekenis en op trefwoord
Graaf kiest een of meer collecties en bevat de entiteiten waar de documenten over gaan (bedrijven, personen, producten) en de relaties daartussen, volgens een schema dat je zelf schrijft. Een graaf bevraag je op verbanden
Tabelset kiest een of meer collecties en bevat de tabellen in hun documenten -- werkbladen, CSV- en JSON-bestanden, tabellen in een Word-bestand en, als je installatie PDF's parseert, de tabellen van een PDF -- elk met getypeerde kolommen en zijn rijen. Een tabel bevraag je op veld, en je kunt de rijen tellen, optellen en groeperen
Zoektool een zoekopdracht met een naam, die een agent als tool aanroept. De zoektool draait een retrieval-pipeline en bereikt precies de indexen, grafen, tabelsets en collecties die die pipeline noemt

Eén collectie kan meerdere indexen, grafen en tabelsets voeden, elk met een eigen pipeline. De documenten staan er dan één keer; alleen de verwerking verschilt.

In een beurt bereikt een model kennis via een tool. Meestal is dat een zoektool: het model kiest de vraag, en welke bronnen de tool bereikt, leg jij vast. Bied je de tool core__search_index aan, dan doorzoekt het model een index rechtstreeks (MCP). Je applicatie kan een index ook zelf doorzoeken via de API, buiten een beurt.

Wanneer gebruik je dit: een index, een graaf of een tabelset

De vraag is Gebruik Voorbeeld
"welke passages gaan hierover?" een index "Hoe lang heb ik om te declareren?"
"wat hangt hiermee samen, en hoe?" een graaf "Welke leveranciers leveren een product waarin deze stof zit?"
"welke rijen voldoen aan deze voorwaarden, en wat is hun totaal?" een tabelset "Hoeveel hebben we vorig kwartaal per leverancier gefactureerd?"
meer dan één een zoektool die ze combineert "Wat zegt het contract van de leverancier van product X over levertijd?"

Begin met een index. Die werkt op elk document zonder voorbereiding. Voeg een tabelset toe als je documenten tabellen bevatten -- spreadsheets, exports, prijslijsten -- en vragen over bedragen, aantallen of rijen met een voorwaarde gaan: een index vindt de passage, een tabelset maakt de som. Tabellen lezen kost geen modeltokens. Voeg een graaf toe als vragen over verbanden gaan die verspreid over veel documenten staan. Een graaf vraagt meer: je schrijft een schema, en feiten uit tekst halen kost modeltokens per fragment.

Een tabelset is geen datastore. Core vult een tabelset uit je documenten en vervangt een tabel als het document verandert; de records van een datastore schrijft je applicatie of een agent zelf.

Externe bronnen

Een collectie kan een gekoppelde bron hebben: een website, een SharePoint-site, een map in Google Drive, een S3-bucket of Zendesk. Core synchroniseert de documenten naar de collectie. Elk document wordt een gewone bron, dus indexen, grafen, tabelsets en zoektools werken er precies zo mee als met een bron die je zelf toevoegde.

Ruimte voor meer methoden

De laag is zo ingedeeld dat opslag en zoekmethode los van elkaar staan. Een pipeline bestaat uit stappen uit een catalogus, en een zoektool kan meerdere bronnen en zoekstappen combineren. Welke stappen en sjablonen jouw installatie aanbiedt, lees je in het segment Sjablonen van Kennis en met GET /knowledge/pipeline-components en GET /knowledge/pipeline-templates. Deze handleiding beschrijft wat er nu is: indexen, grafen, tabelsets en de zoekstappen daarover.

Wat geen kennis is: datastores en geheugen

Twee onderdelen lijken op kennis en staan er los van, in de groep Gegevens en geheugen:

  • Een datastore bevat gestructureerde records die een agent leest én schrijft: een klantenlijst, de instellingen van een integratie. Je zoekt een record op met zijn sleutel of filtert de records op hun velden, niet met een zoekvraag (Datastores).
  • Geheugen bevat losse feiten die tussen aanroepen blijven staan, per persoon of gedeeld: een voorkeur van een klant, een eerder besluit (Geheugen).

Het verschil in één zin: in kennis zoekt een agent, in documenten die de organisatie aanlevert; een datastore en geheugen zijn gegevens die een agent tijdens het werk ook zelf bijwerkt.

Wie wat bereikt

  • De capability knowledge zet kennis aan voor een sleutel.
  • De policy bepaalt welke collecties, indexen, grafen en tabelsets een sleutel bereikt, op naam of op label, en welke bronnen een persoon binnen een index terugvindt. Binnen een tabelset ziet een persoon een tabel precies wanneer ze de bron mag zien waar hij uit komt.
  • Een zoektool aanroepen vraagt twee dingen van de policy: een regel over Tools die de zoektool toestaat, en regels die de index, graaf, tabelset of collectie erachter toestaan. Core vraagt beide bij elke aanroep. Mist er een, dan bestaat de tool voor die sleutel niet.

Hoe het samenhangt

  • Een agent krijgt kennis door een zoektool in zijn tools op te nemen.
  • Een zoektool is een tool als elke andere: hij heet knowledge__<naam>, past in een toolset en valt onder de regels over tools.
  • Collecties, pipelines, indexen en zoektools kunnen in een publicatie, zodat een klant dezelfde kennisopzet krijgt.
  • Inlezen en zoeken worden gemeten als verbruik (Inzicht).

Verder

Tutorial: Geef een agent kennis uit eigen bedrijfsinformatie.

Onderdeel Lees
Alles via de API, van collectie tot zoektool Kennis via de API
Collecties en gekoppelde bronnen Collecties in de console
Indexen Indexen in de console
Grafen Grafen via de API, Grafen in de console
Tabelsets Tabelsets via de API, Tabelsets in de console
Zoektools Zoektools in de console
Pipelines en sjablonen Pipelines in de console