Ga naar inhoud

Pipelines in de console

Het concept achter kennis staat in Kennis.

In de segmenten Pipelines en Sjablonen van Kennis bekijk je de ingebouwde pipelines en maak, bewerk en test je eigen pipelines. Pipelines bepalen hoe bronnen worden verwerkt of zoekresultaten worden opgehaald. Indexen gebruiken ingest-pipelines; zoektools gebruiken retrieval-pipelines. Begin met een ingebouwde template en maak een eigen pipeline als je andere verwerkingsstappen nodig hebt.

Je hebt een beheerdersaccount van de organisatie nodig, en de capability knowledge moet in het plafond van de organisatie aanstaan. Hetzelfde doe je met een sleutel in Kennis via de API.

Het segment Pipelines: een tabel met de kolommen Identifier, Soort, Laatste versie, Template en Laatst gewijzigd, en een knop Pipeline toevoegen.

Soorten pipelines

Soort Wat hij doet Wie hem draait
ingest een bron in fragmenten splitsen en die inbedden een index, bij het verwerken
retrieval bij een vraag de passende fragmenten vinden een zoektool, of het zoekveld op een index

Kies Soort bij het aanmaken. Deze kan later niet worden gewijzigd. Indexen accepteren alleen ingest-pipelines en zoektools alleen retrieval-pipelines.

Een ingest-pipeline leest een groot tekst-, PDF-, Word-, PowerPoint- of Excel-bestand deel voor deel wanneer hij alleen stappen heeft om te laden, te parsen, in zinnen, Markdown-secties of een hiërarchie te splitsen, in te bedden en één keer op te slaan, zoals de standaardpipeline; een Word-, PowerPoint- of Excel-bestand heeft daarvoor de parse-stap nodig. Een pipeline met een andere stap leest elke bron in zijn geheel, tot 25 MiB; een groter tekst-, PDF-, Word-, PowerPoint- of Excel-bestand mislukt daar met too_large_for_pipeline (Kennis via de API).

Een pipeline maken

Kies Pipeline toevoegen en bepaal hoe je deze wilt aanmaken:

Gebruik Van een template om een ingebouwde template te kopiëren naar versie 1 van je pipeline. Vul een Identifier in en kies een template. Je kopie kan onafhankelijk worden aangepast en volgt latere wijzigingen aan de ingebouwde template niet.

Gebruik Van een configuratie om een Identifier, soort, omschrijving en JSON-configuratie op te geven. De configuratie bevat nodes en optionele edges. Dit is bruikbaar als je al een configuratie hebt of geen template past.

De identifier is waarmee een index of een zoektool deze pipeline kiest, en kan je later wijzigen; het veld zet zelf om naar kleine letters, cijfers, - en _, maximaal 64 tekens.

De editor opent op een keten die voor de gekozen soort al draait: laden, splitsen, embedden en opslaan bij ingestie, een semantische zoekstap bij zoekopdrachten. Wissel je van soort, dan wisselt dat beginpunt mee -- tenzij je zelf iets hebt getypt, want dat blijft staan.

Core valideert componenttypen, parameters en waarden tegen de componentcatalogus van deze installatie. Een type dat niet bestaat, een parameter die niet klopt of een waarde buiten bereik wordt geweigerd met de plek erbij, bijvoorbeeld config.nodes[3].config.chunk_size. Teken je de keten in de editor, dan wijst diezelfde melding de stap aan waar het misging.

De pipeline bekijken

Het scherm van één pipeline: het blok Stappen met de keten als diagram van links naar rechts, en daarnaast het blok Componenten met de types die deze installatie aanbiedt, waarvan er twee grijs staan met de reden.

Stappen tekent de laatste versie als diagram: van links naar rechts, één blok per stap, met de pijlen ertussen. De plaatsing wordt elke keer uit de keten zelf berekend. Core bewaart geen posities, dus iedereen die dezelfde versie opent, ziet hetzelfde plaatje. Zoom en passend maken staan linksonder.

Componenten ernaast bevat de ondersteunde staptypen van deze installatie en hun parameters. Een type dat deze installatie niet aanbiedt, staat er grijs bij met de reden.

Hetzelfde diagram staat op het scherm van een index, onder Ingestiepipeline, en op dat van een zoektool, onder Zoekpipeline. Eronder staat de naam van wat daar draait: een ingebouwde template, of je eigen pipeline met het versienummer erbij.

De stappen bewerken

Stappen bewerken opent de keten schermvullend. Links staan de versies, daarnaast de componenten die je kunt toevoegen, in het midden het diagram en rechts de aangeklikte stap met haar parameters. Sleep een component op het diagram of klik hem aan. Verbind twee stappen door van het bolletje rechts naar het bolletje links te slepen. Automatisch rangschikken legt alles weer op een rij. Input en output horen bij elke pipeline en kun je niet verwijderen.

Op elk blokje staat wat die stap ontvangt en wat hij levert: een bestand met zijn metadata, documenten, fragmenten, rijen, de vraag met haar filters, of de bevestiging dat de fragmenten zijn opgeslagen. Een verbinding kan alleen waar die twee op elkaar aansluiten — slepen van een stap die documenten levert naar een stap die fragmenten ontvangt wordt geweigerd terwijl je sleept, met een regel erbij waarom. Dezelfde controle loopt over het tabblad JSON, dus een verbinding die je daar typt zet het opslaan uit in plaats van dat Core hem achteraf weigert. Input draagt het bestand plus de metadata waaronder de bron is opgeslagen; output is wat de pipeline uiteindelijk heeft weggeschreven.

Een stap die een taalmodel aanroept heeft een eigen Model. Dat is een lijst met de chatmodellen van deze installatie; laat je hem leeg, dan gebruikt de stap het model van de beurt waarin hij draait — buiten een beurt mislukt zo'n stap.

Opslaan kan op één manier: Opslaan als nieuwe versie. Een versie verandert nooit, dus bewerken levert altijd een nieuwe versie op. Heb je de editor vanaf een index of een zoektool geopend, dan gaat die meteen naar de nieuwe versie. Weigert Core de keten, dan kleurt de stap waar het misging rood en staat de melding in haar paneel.

Schakel boven het diagram naar JSON om dezelfde bewerking te typen, in de vorm waarin Core hem bewaart.

Draait een index of zoektool op een sjabloon, dan maakt bewerken eerst een kopie. Een sjabloon hoort bij Core zelf en verandert niet mee. Je krijgt een naam voorgesteld. Zodra de kopie er is, gebruikt deze index of zoektool die kopie in plaats van het sjabloon.

Filteren wat een zoekopdracht bereikt

Filter is een stap die je tussen input en een zoekstap zet. Hij versmalt elke vraag die eronder loopt tot bronnen waarvan de metadata matcht: een Sleutel folder met Waarde hr doorzoekt alleen wat je in die map hebt gezet. Het zijn de sleutels waarmee je een bron hebt gearchiveerd, dus de waarde moet precies kloppen. Laat je de stap leeg, dan versmalt hij niets.

Je vult de sleutels in als rijen, niet als JSON; dezelfde rijen staan bij de parameter Metadata filter van een zoekstap. Een tweede filterstap eronder wint een sleutel van een eerdere, en de eigen parameter van een zoekstap wint van allebei. Heeft de zoektool die de pipeline draait een eigen filter, dan geldt dat er nog bovenop: een andere waarde vragen voor een sleutel die de tool vastzet, levert niets op in plaats van een bredere zoekopdracht. Het sjabloon Filtered is precies deze vorm, klaar om te kopiëren.

Sjablonen

Het segment Sjablonen toont de ingebouwde pipelines van deze installatie. Filter op soort en zoek op naam, id of omschrijving. Klik er een aan om het diagram ernaast te zien, en klik daarin een stap aan om te lezen wat die doet en welke parameters hij aanneemt.

Een sjabloon hoort bij Core zelf: voor elke organisatie gelijk, en niet te wijzigen. Gebruik als pipeline maakt er een eigen pipeline van, via dezelfde la als Een pipeline maken.

Twee ingest-sjablonen splitsen hun keten, zodat de tabellen naast de tekst bevraagbaar worden. Tables leest het document, hakt de tekst op en embedt die op de ene tak, en haalt de tabellen eruit op de andere — en beide takken eindigen in Output. RAG with Tables splitst op dezelfde manier nadat een parseerdienst het document heeft gelezen, zodat ook de tabellen in een gescande pdf rijen worden. Structured draait alleen de tak die tabellen eruit haalt, en dat is wat een werkmap of een bestand met records standaard krijgt. Ook With Images splitst, om een andere reden: naast de tekst embedt het de afbeeldingen in het document.

De standaard volgt het bestandstype. Een index waarvan de Ingest-pipeline leeg is gelaten, neemt Basic (ingest/basic) voor tekst-, Markdown-, HTML-, pdf-, Word- en PowerPoint-bestanden, en leest een pdf alleen uit zijn tekstlaag; voor CSV-, JSON- en Excel-bestanden neemt hij Structured (ingest/structured). De index die Core bijhoudt over de eigen uploads van een API-sleutel is zo'n index. Een sleutel met de capability knowledge kan die index een andere pipeline geven, bijvoorbeeld Advanced Parse om gescande pdf's te lezen, door ingest_pipeline mee te sturen in PATCH /knowledge/indexes/{id}; die index hernoemen of verwijderen, en zijn labels of collecties wijzigen, wordt geweigerd. Zoals bij elke index vraagt een nieuwe pipeline om opnieuw indexeren (Een index maken).

Advanced Parse (ingest/llama-parse) en RAG with Tables (ingest/rag-with-tables) draaien eerst de offline stap parse, zodat een Word-bestand, een presentatie, een werkmap of een webpagina gelezen wordt zonder dat het Core verlaat. De stap llama_parse daarna stuurt alleen wat nog zonder tekst is, zoals een gescande pdf of een afbeelding, naar de parseerdienst van de installatie. Beide sjablonen hebben een installatie met een parseerdienst nodig; zonder die dienst weigert Gebruik als pipeline ze.

Versies

Kies Nieuwe versie om een kopie van de nieuwste configuratie te bewerken. Opslaan maakt een extra versie aan en bewaart bestaande versies. Bekijk Versies en kies Toon stappen om eerdere configuraties te lezen.

Een versie publiceren werkt bestaande indexen of zoektools niet bij. Kies de nieuwe versie bij elke resource die deze moet gebruiken.

Je kunt de Identifier en Omschrijving van de pipeline los van de versies bewerken.

Concepten

In Nieuwe versie slaat Opslaan als concept de versie op als concept: geen sleutel leest het, en geen index of zoektool kan erop worden ingesteld tot het gepubliceerd is. Versies markeert elk concept als concept en biedt Publiceren, Concept weggooien en Concept v… testen, dat het concept test zonder een spoor achter te laten. Publiceren controleert het concept opnieuw tegen de componenten van je installatie en de bronnen die je mag bereiken. Een pipeline met alleen een concept heet concept en wordt niet aangeboden waar een index of een zoektool zijn pipeline kiest.

Een pipeline testen

Testen voert de ingestelde componenten en modellen uit zonder de verwerkte inhoud op te slaan. De benodigde invoer hangt af van het soort pipeline:

Soort Je vult in Je krijgt terug
ingest Tekst en het Mediatype ervan de Fragmenten die opgeslagen zouden zijn
retrieval een Vraag, de Indexen om te doorzoeken en een Maximum resultaten Antwoord en Resultaten

Klap Stappen uit om de invoer en uitvoer van elke stap te bekijken. Het resultaat vermeldt ook de gebruikte versie.

Tests leveren normaal model- en zoekverbruik op. Dit wordt toegeschreven aan de organisatie en je consoleaccount, zonder sleutel. Zie Gebruik.

Een pipeline verwijderen

Gebruik de verwijderactie onderaan en typ de pipelinenaam ter bevestiging. Hiermee verwijder je alle versies.

Core weigert het verwijderen met een 409 zolang een index, een graaf of een zoektool de pipeline nog gebruikt, en de bevestiging blijft open en toont ze, elk een link. Zet ze eerst over naar een andere pipeline; daarna lukt het verwijderen.

Lege lijsten en toegangsbeperkingen

“Nog geen pipelines” betekent dat de organisatie geen eigen pipelines heeft. Ingebouwde templates blijven beschikbaar voor indexen en zoektools.

Is kennis uitgeschakeld, dan staat Kennisbronnen indexeren en doorzoeken uit in het plafond van de organisatie. De beheerder van de organisatie erboven zet het aan bij Toegestane capabilities op Instellingen; voor een organisatie zonder bovenliggende organisatie doet je operator dat.