RAG-actie uitvoeren

Verzendt een prompt naar, of voegt gegevens toe aan en verwijdert gegevens uit, een RAG-ruimte op de AI-modelserver die is opgegeven door een RAG-account.

Opties 

  • RAG-accountnaam is een tekstexpressie van het RAG-account dat voor deze scriptstap moet worden gebruikt. Gebruik in het huidige bestand de scriptstap RAG-account configureren scriptstap om het account in te stellen en deze naam toe te wijzen op elk moment voordat deze scriptstap wordt uitgevoerd.

  • Ruimte-ID is een tekstexpressie die de unieke ID aangeeft van de RAG-ruimte waarmee moet worden gewerkt in het opgegeven RAG-account.

  • Actie specificeert het type bewerking dat moet worden uitgevoerd op een RAG-ruimte. Deze optie bepaalt de beschikbaarheid van andere opties in de scriptstap. Kies uit:

    • Met Gegevens toevoegen voegt u een document (tekstgegevens of een PDF-bestand) toe aan een RAG-ruimte.

    • Prompt verzenden stuurt een prompt om een RAG-ruimte op te vragen en een door AI gegenereerd antwoord te krijgen.

    • Gegevens verwijderen verwijdert documenten uit een RAG-ruimte.

Extra opties die beschikbaar zijn wanneer Actie Gegevens toevoegen is:

  • RAG-gegevens specificeert het document dat aan de RAG-ruimte moet worden toegevoegd:

    • Vanuit Tekst voegt tekst rechtstreeks toe via een tekstexpressie die synchroon wordt overgebracht.

    • Vanuit bestand voegt een PDF-bestand met een pad toe en dat synchroon is overgebracht.

    • Vanuit bestand (asynchroon) voegt een PDF-bestand met een pad toe en dat asynchroon is overgebracht (het meest geschikt voor grote bestanden).

    • Vanuit container voegt een PDF-bestand toe uit een containerveld dat synchroon wordt overgebracht.

    • Vanuit container (asynchroon) voegt een PDF-bestand toe uit een containerveld en dat asynchroon is overgebracht (het beste voor grote bestanden).

  • Invoerbestand specificeert een lijst met een of meer paden voor een PDF-bestand. De scriptstap doorzoekt de lijst en voegt het eerste PDF-bestand toe dat het heeft gevonden. Paden moeten een van de voorvoegsels van het pad image gebruiken. Raadpleeg Bestandspaden maken.

  • Containerveld geeft het containerveld aan waarin het toe te voegen PDF-bestand wordt opgeslagen.

  • Met Verticale tekst detecteren wordt tekst beter geëxtraheerd uit PDF-bestanden die verticale tekst bevatten die vaak voorkomt in Japanse literaire werken, kranten, overheidsdocumenten en academische artikelen. Deze optie is niet beschikbaar wanneer RAG-gegevens afkomstig zijn Vanuit tekst.

  • Tokens per tekstblok is een numerieke expressie die aangeeft hoeveel tokens in elk tekstblok moeten worden opgenomen wanneer tekst- of PDF-bestanden aan de RAG-ruimte worden toegevoegd. Geldige waarden zijn 75 tot 512. Indien dit niet is opgegeven of is ingesteld op 0, wordt de waarde gebruikt die is geconfigureerd voor de AI-modelserver in de beheerconsole (standaard 200 tokens).

  • Antwoorddoel geeft het veld of de variabele aan waarin een JSON-object wordt opgeslagen dat door de AI-modelserver over het toegevoegde document wordt geretourneerd. Zie Beschrijving.

Extra opties beschikbaar wanneer Actie Prompt verzenden is:

  • De waarde voor Prompt verzenden is een tekstexpressie voor de gebruikersvraag of -vraag in natuurlijke taal.

  • AI-accountnaam is een tekstexpressie voor de naam van het AI-account dat wordt gebruikt om een antwoord te genereren. Gebruik in het huidige bestand de AI-account configureren scriptstap om het account in te stellen en deze naam toe te wijzen op elk moment voordat deze scriptstap wordt uitgevoerd.

  • Model is de naam van het te gebruiken tekstgeneratiemodel. Geef de modelnaam op als tekstexpressie. Zie de technische specificaties van FileMaker voor ondersteunde modellen.

  • Stream regelt hoe de respons wordt geleverd:

    • Aan: Het antwoord wordt opgevraagd en stapsgewijs geleverd (woord voor woord of in zinsdelen). Dit kan ervoor zorgen dat de FileMaker-client sneller reageert.

    • Uit: Het volledige antwoord wordt opgehaald voordat het beschikbaar wordt gemaakt. Dit kan ertoe leiden dat de FileMaker-client niet meer reageert tijdens het wachten op de volledige reactie.

  • Naam van promptsjabloon specificeert de naam van een aangepaste prompt template die is geconfigureerd met behulp van de scriptstap Promptsjabloon configureren scriptstap. Gebruik deze optie om een extra prompt te ontwerpen om een optimale respons van een AI-model te bereiken.

  • Antwoorddoel geeft het veld of de variabele aan waar de respons van het model moet worden opgeslagen.

  • Parameters is een tekstexpressie voor een JSON-object dat kan bestaan uit:

    • FileMaker-clientparameters die worden verwerkt en verwijderd voordat het verzoek wordt verzonden:

      CURLOPT_TIMEOUT stelt een maximale tijd (in seconden) in voor het voltooien van het verzoek. De waarde moet een niet-negatief geheel getal zijn. Bijvoorbeeld: {"CURLOPT_TIMEOUT": 30}. Als er op dit moment geen reactie is, annuleert de FileMaker-client de aanvraag en retourneert deze scriptstap de foutcode 1629 ("Time-out verbinding").

    • Parameters van de AI-modelserver die instellingen overschrijven die zijn geconfigureerd in de beheerconsole, alleen voor de duur van deze scriptstap. Als deze waarde niet is opgegeven, worden de waarden gebruikt die zijn ingesteld in de beheerconsole. Deze parameters worden verwerkt en verwijderd voordat andere parameters die u in het JSON-object opneemt, rechtstreeks worden doorgegeven aan de modelprovider.

      Zie Beschrijving voor meer informatie.

    • Modelprovider-specifieke parameters die direct worden doorgegeven aan de modelprovider samen met de prompt. Bijvoorbeeld: {"temperatuur": 0,7, "zaad": 42}.

      Opmerking  Raadpleeg de documentatie van de modelprovider voor de parameters en waarden die worden ondersteund door het model dat u gebruikt.

Extra opties beschikbaar wanneer Actie Gegevens verwijderen is:

  • Parameters is een tekstexpressie voor een JSON-object dat een ID-sleutel bevat waarvan de waarde een matrix is van de ID's van de documenten die moeten worden verwijderd uit de opgegeven RAG-ruimte. Bijvoorbeeld:

    Kopiëren
    {"id" : ["5f7677a0-3258-55a3-bc86-737005cb3574", "f95d4266-66cd-5b50-a01b-07a4dd66c501"]}

    Document-ID's die zijn geretourneerd in Antwoorddoel toen het document werd toegevoegd, kunnen worden opgeslagen en later worden gebruikt om een document te verwijderen. Of gebruik de GetRAGSpaceInfo functie om de ID's van alle documenten in een RAG-ruimte op te halen.

Compatibiliteit 

Product Ondersteund
FileMaker Pro Ja
FileMaker Go Ja
FileMaker WebDirect Ja
FileMaker Server Ja
FileMaker Cloud Ja
FileMaker Data API Ja
Custom Web Publishing Ja

Afkomstig uit versie 

22.0

Beschrijving 

Met deze scriptstap kunt u een kenniscache van documenten (tekstgegevens en PDF-bestanden) maken en beheren op de Claris AI-modelserver. U kunt deze cache vervolgens gebruiken met een techniek genaamd retrieval-augmented generation (RAG). Met behulp van deze techniek stuurt de scriptstap een prompt of vraag naar een AI-model samen met de meest relevante feiten opgehaald uit uw kenniscache, wat de betrouwbaarheid en nauwkeurigheid van de respons van het model verbetert.

De optie Actie bepaalt wat deze scriptstap doet.

Actie Gegevens toevoegen

Hiermee worden RAG-gegevens uit het opgegeven document toegevoegd: Tekst (zoals elke tekstexpressie), een PDF-bestand per pad of een PDF-bestand uit een containerveld in de huidige of gerelateerde record. Het proces volgt deze stappen:

  1. De scriptstap verzendt het document naar de AI-modelserver.

    Als u een PDF-bestand toevoegt, verzendt de scriptstap het bestand synchroon of asynchroon, afhankelijk van de optie RAG-gegevens. Als het script synchroon wordt verzonden, gaat het pas verder met de volgende stap als de bestandsoverdracht is voltooid. Als het script asynchroon wordt verzonden, gaat het door naar de volgende stap terwijl de bestandsoverdracht wordt uitgevoerd (het beste voor grote bestanden), zodat de FileMaker-client blijft reageren op gebruikersinteractie.

  2. De AI-modelserver wijst een ID toe aan het document en verwerkt het vervolgens:

    • Als het document een PDF-bestand is, haalt de server alleen tekst uit het PDF-bestand. De geëxtraheerde tekst wordt vervolgens op dezelfde manier verwerkt als tekst die is toegevoegd met de optie Vanuit tekst.

    • De server splitst de tekst op in blokken op basis van de optie Tokens per tekstblok (indien opgegeven) of de grootte van het blok dat is geconfigureerd in de beheerconsole.

      Als de tekst in JSONL-indeling (JSON-regels) is, waarbij elke regel een geldig JSON-object is, detecteert de server deze indeling automatisch en behandelt elke regel als een afzonderlijke semantische eenheid: Elke regel wordt afzonderlijk gescheiden, maar regels worden nooit samengevoegd. Dit helpt de ophaalnauwkeurigheid te verbeteren voor gestructureerde gegevens, zoals gegevens die zijn toegevoegd uit een FileMaker-tabel, waarbij elke record kan worden opgemaakt als één JSON-regel, zodat de recordgrenzen behouden blijven.

    • Het krijgt dan insluitvectoren voor alle blokken met behulp van het tekstinsluitmodel dat is geconfigureerd voor RAG op de server.

  3. Als er een Antwoorddoel is opgegeven, retourneert de AI-modelserver een JSON-object met de document-ID en metagegevens voor het toegevoegde document. Hiermee kunt u de document-ID opslaan voor later gebruik (zoals het verwijderen van het document).

    Het geretourneerde JSON-object bevat de volgende sleutels:

    • id: De document-ID die door de server van het AI-model is toegewezen als een hexadecimaal gecodeerde UUID (Universally Unique Identifier). Zie Opmerkingen voor meer informatie over de ID-indeling.

    • model: Het insluitmodel dat door de AI-modelserver wordt gebruikt om insluitvectoren voor het document te genereren.

    • rag_space_id: De ID van de RAG-ruimte waaraan het document is toegevoegd.

    • result of error:

      • result: De status van het toegevoegde document wanneer er geen fout is. Voor succesvol synchroon overgedragen documenten is de waarde "ok". Voor documenten die asynchroon worden verzonden, is de waarde een tekenreeks die de ruimte-ID en de bestandsnaam in de cache bevat, omdat het proces nog niet is voltooid.

      • error: Een reeks foutberichten wanneer er een fout optreedt in de AI-modelserver.

    • Tekst of bestand, afhankelijk van de optie voor RAG-gegevens:

      • text: De tekst van het document wanneer deze wordt toegevoegd met de optie Vanuit tekst voor RAG-gegevens.

      • file: De bestandsnaam van het PDF-bestand wanneer het wordt toegevoegd met behulp van de bestand- of containeropties voor RAG-gegevens.

    • usage: Informatie over het gebruik van tokens wanneer een document synchroon wordt overgebracht. Het geretourneerde JSON object is {"prompt_tokens":<number>, "total_tokens":<number>}, waarbij prompt_tokens het aantal tokens in de invoer is (de tekstblokken die zijn ingesloten) en Total_tokens het totale aantal verwerkte tokens. Als de AI-modelserver is ingesteld op het niet loggen van het gebruik van tokens, worden er geen tokentellingen geretourneerd.

    Opmerking  Voor documenten die asynchroon zijn overgebracht, retourneren de sleutels rag_space_id, model, en usage "N.v.t." omdat deze waarden pas beschikbaar zijn nadat de verwerking is voltooid.

Actie Prompt verzenden

Deze actie stuurt de gebruikersprompt naar de AI-modelserver om de meest relevante gegevens uit de opgegeven RAG-ruimte te halen en stuurt vervolgens de gebruikersprompt samen met de promptsjabloon en de RAG-inhoud naar het AI-model. Het proces volgt deze stappen:

  1. De scriptstap verzendt de prompt die is opgegeven bij Prompt verzenden en de Ruimte-ID naar de AI-modelserver die is opgegeven door RAG-accountnaam.

  2. De AI-modelserver krijgt insluitvectoren voor de prompt, voert een semantische zoekopdracht uit voor de prompt in de opgegeven RAG-ruimte en retourneert vervolgens de RAG-resultaten naar de scriptstap.

    De RAG-resultaten zijn de N meest relevante documentblokken uit de RAG-ruimte als tekst (N kan worden geconfigureerd in de beheerconsole of worden overschreven door de optie Parameters zoals hieronder weergegeven).

  3. De scriptstap verzendt de prompt, promptsjabloon, modelparameters en RAG-resultaten naar het model dat is opgegeven door AI-accountnaam en Model.

  4. Het model retourneert een antwoord dat in de scriptstap wordt opgeslagen in Antwoorddoel.

Serverparameters voor AI-model

Voor de optie Parameters kunt u de volgende sleutels en waarden gebruiken, die specifiek zijn voor de AI-modelserver, om het gedrag van deze scriptstap aan te passen. Indien opgegeven, hebben deze waarden voorrang op de waarden die zijn ingesteld in de beheerconsole. Dit is handig wanneer verschillende prompts verschillende nauwkeurigheidsniveaus of contextgroottes vereisen (bijvoorbeeld het doorzoeken van een grote documentreeks in plaats van een kleine). Als er geen sleutel is opgegeven, worden de waarden gebruikt die zijn geconfigureerd in de beheerconsole.

Parametersleutel

Beschrijving

Bereik van waarden

similarity_threshold

Minimale cosinusvergelijkingsscore voor RAG-resultaten die in de context moeten worden opgenomen. Hogere waarden leveren minder maar relevantere resultaten op.

-1 tot 1

num_top_ranked_results

Maximaal geheel getal van documentblokken met de hoogste rang om op te nemen in de context die naar het AI-model wordt verzonden. De waarde 0 bevat geen RAG-inhoud.

1 tot 100

Dit JSON object stelt bijvoorbeeld deze sleutels in de optie Parameters in:

Kopiëren
{
    "similarity_threshold" : .5,
    "num_top_ranked_results" : 10
}

Actie Gegevens verwijderen

Met deze actie worden documenten uit een RAG-ruimte verwijderd. Indien dit is opgegeven in de optie Parameters, worden alleen de opgegeven documenten verwijderd; anders worden alle documenten in de RAG-ruimte verwijderd.

Opmerking  Het verwijderen van documenten uit een RAG-ruimte kan niet ongedaan worden gemaakt. Bewaar de originele documenten ergens anders voor het geval u ze opnieuw moet toevoegen.

Opmerkingen 

  • Een RAG-account moet worden geconfigureerd met de RAG-account configureren scriptstap voordat u deze scriptstap kunt gebruiken.

  • Voor acties voor Prompt verzenden moet ook een AI-account worden geconfigureerd met de AI-account configureren scriptstap.

  • PDF-bestanden met codering of wachtwoordbeveiliging kunnen niet worden verwerkt met de actie Gegevens toevoegen.

  • RAG-ruimten zijn permanent en behouden hun documenten totdat ze expliciet worden verwijderd met de actie Gegevens verwijderen.

  • Als u een PDF-bestand met dezelfde bestandsnaam toevoegt als een bestand dat al in de RAG-ruimte staat, wordt het bestaande PDF-bestand verwijderd en wordt het nieuwe PDF-bestand toegevoegd met een nieuwe document-ID. Dit gedrag is hetzelfde wanneer u het PDF-bestand toevoegt via een pad of een containerveld.

  • Documenten die vóór versie 26.0.1 van de AI-modelserver aan een RAG-ruimte zijn toegevoegd, hebben numerieke document-ID's (bijvoorbeeld 123). Vanaf versie 26.0,1, zijn document-ID's UUID-tekenreeksen (bijvoorbeeld "5f7677a0-3258-55a3-bc86-737005cb3574"). Wanneer u werkt met RAG-ruimten die documenten bevatten die voor en na de wijziging van de ID-indeling zijn toegevoegd, moeten uw scripts beide document-ID-indelingen verwerken.

    Zie Voorbeeld 3.

  • Als u een Promptsjabloonnaam opgeeft, wordt in deze scriptstap de sjabloon gebruikt die is geconfigureerd via de Promptsjabloon configureren scriptstap. Promptsjablonen kunnen de constanten gebruiken zoals :question: (vervangen door de waarde Prompt verzenden) en :context: (vervangen door de met RAG opgehaalde documentblokken uit de RAG ruimte).

  • Voor de optie Tokens per tekstblok:

    • Grotere blokken behouden meer context, maar kunnen de nauwkeurigheid van het ophalen verminderen. Kleinere brokstukken verbeteren de nauwkeurigheid, maar kunnen context verliezen. Overweeg het gebruik van grotere waarden (bijvoorbeeld 250 tot 300) voor talen als Japans, Chinees of Koreaans, waar tokenisatie minder tekens per token produceert, zodat een vast aantal tekens aanzienlijk minder tekst omvat.

    • Als u de blokgrootte van bestaande documenten in een RAG-ruimte wilt wijzigen, moet u de documenten uit de RAG-ruimte verwijderen en ze opnieuw toevoegen met een nieuwe blokgrootte.

    • Als u een waarde buiten het geldige bereik opgeeft, retourneert deze scriptstap foutcode 887 ("Ongeldige actie RAG-ruimte").

  • De kwaliteit van AI-antwoorden hangt af van het model en de relevantie en kwaliteit van de documenten die aan de RAG-ruimte worden toegevoegd.

  • Wanneer in FileMaker WebDirect in deze scriptstap de actie Gegevens toevoegen wordt gebruikt en RAG-gegevens afkomstig zijn Vanuit bestand of Vanuit bestand (asynchroon), wordt het dialoogvenster Invoegen geopend waarin de gebruiker een PDF-bestand kan kiezen om te uploaden. De optie Invoerbestand wordt genegeerd.

Voorbeeld 1- Tekst toevoegen aan een RAG-ruimte

Voegt tekstinhoud toe aan een RAG-ruimte voor een kennisbank van de klant.

Kopiëren
RAG-account configureren [ Naam van RAG-account: "customer-support-rag-account" ; Eindpunt: "https://myserver.example.com/llm/v1/" ; API-sleutel: "eyJh..." ; SSL-certificaten verifiëren ]

RAG-actie uitvoeren [ Naam van RAG-account : "customer-support-rag-account" ; Ruimte-ID: "knowledge-base" ; Actie: Gegevens toevoegen ; RAG-gegevens: Vanuit tekst ; "Klantenservicebeleid en -procedures voor het verwerken van retourneringen en ruilingen..." ]

Voorbeeld 2 - Stuur een prompt om een RAG-ruimte te bevragen

Hiermee wordt een prompt verzonden om dezelfde RAG-ruimte als in Voorbeeld 1 te doorzoeken en wordt het antwoord in een veld opgeslagen.

Het script stelt zowel het RAG-account als het AI-account in om de AI-modelserver te gebruiken.

De variabele $parameters bevat similarity_threshold die is ingesteld op 0,6 om ervoor te zorgen dat alleen zeer relevante RAG-resultaten worden opgenomen, en num_top_ranked_results is ingesteld op 5 om de context te beperken tot de top 5 meest relevante documentblokken, waarbij de standaardinstellingen die zijn geconfigureerd in de beheerconsole worden genegeerd. Het bevat ook CURLOPT_TIMEOUT om het verzoek na 30 seconden te annuleren als er geen reactie is.

Wanneer het de prompt verstuurt, stuurt het script de parameters temperature en max_tokens naar het model voor het genereren van reacties en streamt het de respons naar een veld.

Kopiëren
RAG-account configureren [ RAG-accountnaam: "customer-support-rag-account" ; Eindpunt: "https://myserver.example.com/llm/v1/" ; API-sleutel: Global::RAG_API_Key ; SSL-certificaten verifiëren ]

AI-account configureren [ Accountnaam: "AI_Model_Server" ; Modelprovider: Aangepast ; Eindpunt: "https://myserver.example.com/llm/v1/" ; API-sleutel: Global::Text_Gen_API_Key ; SSL-certificaten verifiëren ]

Variabele instellen [ $parameters ; Waarde: 
  JSONSetElement ( "{}" ;
    [ "temperature" ; .3 ; JSONNumber ] ;
    [ "max_tokens" ; 500 ; JSONNumber ] ;
    [ "similarity_threshold" ; .6 ; JSONNumber ] ;
    [ "num_top_ranked_results" ; 5 ; JSONNumber ]
  )
]

RAG-actie uitvoeren [ RAG-accountnaam: "customer-support-rag-account" ; Ruimte-ID: "knowledge-base" ; Actie: Prompt verzenden ; Prompt verzenden: "Wat is het retourbeleid voor defecte producten?" ; AI-accountnaam: "AI_Model_Server" ; Model: Global::ModelName ; Stream: Aan ; Antwoorddoel: Customer_Support::AI_Response ; Parameters: "{\"}" ]

Een mogelijk resultaat in het veld Customer_Support::AI_Response begint met "Volgens het retourbeleid voor defecte producten kunt u het artikel binnen 14 kalenderdagen retourneren."

Voorbeeld 3 - Een PDF-bestand toevoegen aan en verwijderen uit een RAG-ruimte

Voegt een PDF-bestand met de naam Policies.pdf toe aan een RAG-ruimte en verwijdert het vervolgens.

Nadat het RAG-account is geconfigureerd voor gebruik op de AI-modelserver, voegt het script het bestand Policies.pdf toe aan de RAG-ruimte door het bestandspad op te geven. Voordat het bestand kan worden verwijderd, moet het script de document-ID vinden die is toegewezen toen het bestand werd toegevoegd. De document-ID wordt geretourneerd door Antwoorddoel en wordt opgeslagen in $ragAddResponse. Bijvoorbeeld:

Kopiëren
{
  "file": "Policies.pdf",
  "id": "f95d4266-66cd-5b50-a01b-07a4dd66c501",
  "model": "multi-qa-MiniLM-L6-cos-v1",
  "rag_space_id": "knowledge-base",
  "result": "ok",
  "usage": {
    "prompt_tokens": 3803,
    "total_tokens": 3803
  }
}

Eerst haalt het script de document-ID op uit $ragAddResponse en slaat het op in $id. Het krijgt ook het gegevenstype van de ID met behulp van de JSONGetElementType functie en slaat het op in $idType. Het gegevenstype is JSONString voor UUID's of JSONNumber voor numerieke ID's (zie Opmerkingen voor meer informatie over ID-indelingen).

Vervolgens bouwt het script de variabele $idArrayToRemove als een JSON object met een id-sleutel waarvan de waarde een matrix is met de document-ID die moet worden verwijderd. Bij het toevoegen van de ID aan de matrix gebruikt het script $idType om het oorspronkelijke gegevenstype van $ragAddResponse te behouden. Deze aanpak zorgt ervoor dat het script correct werkt, ongeacht de ID-indeling die de AI-modelserver gebruikt.

Ten slotte roept het script RAG-actie uitvoeren aan om de gegevens te verwijderen door de optie Parameters in te stellen op $idArrayToRemove.

Kopiëren
RAG-account configureren [ RAG-accountnaam: "Customer-support-rag-account" ; Eindpunt: "https://myserver.example.com/llm/v1/" ; API-sleutel: Global::RAG_API_Key ; SSL-certificaten verifiëren ]

RAG-actie uitvoeren [ RAG-accountnaam: "Customer-support-rag-account" ; Ruimte-ID: "Knowledge-base" ; Actie: Gegevens toevoegen ; RAG-gegevens: Vanuit bestand ; "Policies.pdf" ; Antwoorddoel: $ragAddResponse ]

Variabele instellen [ $id ; Waarde: JSONGetElement ( $ragAddResponse ; "id" ) ]
Variabele instellen [ $idType ; Waarde: JSONGetElementType ( $ragAddResponse ; "id" ) ]


Variabele instellen [ $idArrayToRemove ; Waarde: 
  JSONSetElement ( "{}" ; "id" ; 
    JSONSetElement ( "[]" ; 0 ; $id ; $idType ) ; 
    JSONArray 
  ) 
]

RAG-actie uitvoeren [ RAG-accountnaam: "customer-support-rag-account" ; Ruimte-ID: "knowledge-base" ; Actie: Gegevens verwijderen ; Parameters: $idArrayToRemove ]

Voorbeeld 4 - Voeg documenten toe met verschillende blokgroottes

Voegt zowel Engelse als Japanse documentatie toe aan dezelfde RAG-ruimte, waarbij verschillende blokgroottes worden gebruikt die voor elke taal zijn geoptimaliseerd.

Het script maakt gebruik van een kleinere blokgrootte (150 tokens) voor de Engelse technische documentatie om nauwkeurige opvraging van specifieke technische details mogelijk te maken.

Voor de Japanse documentatie over regelgeving gebruikt het script een grotere blokgrootte (300 tokens) omdat Japanse tokenisatie kortere tekstsegmenten per token produceert, waardoor meer tokens nodig zijn om de juiste context te behouden. Het script selecteert ook de optie Verticale tekst detecteren om de extractie van verticale tekst uit dit PDF-bestand te verbeteren.

Kopiëren
RAG-account configureren [ RAG-accountnaam: "product-docs-rag-account" ; Eindpunt: "https://myserver.example.com/llm/v1/" ; API-sleutel: Global::RAG_API_Key ; SSL-certificaten verifiëren ]

RAG-actie uitvoeren [ RAG-accountnaam: "product-docs-rag-account" ; Ruimte-ID: "product-knowledge" ; Actie: Gegevens toevoegen ; RAG-gegevens: Vanuit bestand ; "TechnicalSpecs_EN.pdf" ; Tokens per tekstblok: 150 ]

RAG-actie uitvoeren [ RAG-accountnaam: "product-docs-rag-account" ; Ruimte-ID: "product-knowledge" ; Actie: Gegevens toevoegen ; RAG-gegevens: Vanuit bestand ; "Regulations_JA.pdf" ; Verticale tekst detecteren ; Tokens per tekstblok: 300 ]

Voorbeeld 5 - Voeg records toe als JSONL-tekst

Hiermee voegt u FAQ-records uit een FileMaker-tabel toe aan een RAG-ruimte met JSONL-indeling, waarbij elke regel één volledige FAQ-record vertegenwoordigt.

Het script doorloopt de records in de FAQ-tabel en bouwt een JSONL-tekstreeks waarbij elke regel een JSON-object is met de vraag-ID, vraag en antwoord. Wanneer deze JSONL-opgemaakte tekst wordt toegevoegd aan de RAG-ruimte, detecteert de AI-modelserver automatisch de indeling en behandelt elke regel (elke FAQ-record) als een afzonderlijke semantische eenheid, waardoor de recordgrenzen behouden blijven en de ophaalnauwkeurigheid wordt verbeterd.

Kopiëren
RAG-account configureren [ RAG-accountnaam: "customer-support-rag-account" ; Eindpunt: "https://myserver.example.com/llm/v1/" ; API-sleutel: Global::RAG_API_Key ; SSL-certificaten verifiëren ]

Variabele instellen [ $jsonlText ; Waarde: "" ]
Ga naar lay-out [ "FAQ" (FAQ) ; Animatie: Geen ]

Ga naar record/verzoek/pagina [ Eerste] Loop [ Wissen: Altijd ]
  Variabele instellen [ $jsonLine ; Waarde: 
    JSONSetElement ( "{}" ;
      [ "id" ; FAQ::QuestionID ; JSONString ] ;
      [ "question" ; FAQ::Question ; JSONString ] ;
      [ "answer" ; FAQ::Answer ; JSONString ]
    )
  ]
  Variabele instellen [ $jsonlText ; Waarde: $jsonlText & $jsonLine & ¶ ]
  Ga naar record/verzoek/pagina [ Volgende ; Afsluiten na laatste: Aan ]
End Loop

RAG-actie uitvoeren [ RAG-accountnaam: "customer-support-rag-account" ; Ruimte-ID: "knowledge-base" ; Actie: Gegevens toevoegen ; RAG-gegevens: Vanuit tekst ; $jsonlText ; Antwoorddoel: $ragResponse ]

De resulterende $jsonlText-variabele bevat tekst met JSONL-indeling zoals:

Kopiëren
{"id":"001","question":"Wat is uw retourbeleid?","answer":"Artikelen kunnen binnen 30 dagen worden geretourneerd..."}
{"id":"002","question":"Hoe kan ik mijn bestelling volgen?","answer":"U kunt uw bestelling volgen met behulp van het trackingnummer..."}
{"id":"003","question":"Verzendt u ook internationaal?","answer":"Ja, we verzenden naar meer dan 100 landen over de hele wereld..."}

Als een regel kort genoeg is, maakt de AI-modelserver er één blok van. Als een regel de limiet voor tokens per tekstblok overschrijdt, wordt de regel in meerdere blokken opgesplitst. Omdat regels nooit worden samengevoegd, bevatten de opgehaalde blokken bij het opvragen van de RAG-ruimte alleen inhoud uit één FAQ-record, waardoor het gemakkelijker is om te bepalen welke record de relevante informatie heeft opgeleverd.