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"]
idx --> tool["Zoektool<br/>wat de agent aanroept"]
kg --> 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, en als rijen voor tabellen. 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 |
| Zoektool | een zoekopdracht met een naam, die een agent als tool aanroept. De zoektool draait een retrieval-pipeline en bereikt precies de indexen, grafen en collecties die die pipeline noemt |
Eén collectie kan meerdere indexen en grafen 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 of een graaf¶
| 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?" |
| allebei | een zoektool die een index en een graaf 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 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.
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 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 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
knowledgezet kennis aan voor een sleutel. - De policy bepaalt welke collecties, indexen en grafen een sleutel bereikt, op naam of op label, en welke bronnen een persoon binnen een index terugvindt.
- Een zoektool aanroepen vraagt twee dingen van de policy: een regel over Tools die de zoektool toestaat, en regels die de index, graaf 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 |
| Zoektools | Zoektools in de console |
| Pipelines en sjablonen | Pipelines in de console |