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:

    • Gegevens toevoegen voegt 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.

Opties zijn alleen beschikbaar als 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.

    • 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.

Opties zijn alleen beschikbaar als 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 bestaat uit sleutel-waarde-paren voor aanvullende parameters die worden ondersteund door de modelprovider. Bijvoorbeeld: {"temperatuur": 0,7, "zaad": 42}. Raadpleeg de documentatie van de modelprovider voor sleutelnamen van ondersteunde parameters en hun geldige bereiken.

    De sleutel context_prompt is een speciale parameter waarmee u extra instructies of context in het model kunt injecteren vóór de hoofdprompt. Bijvoorbeeld: {"context_prompt": "Behandel 'vandaag' als 08-25-2025"}.

Opties zijn alleen beschikbaar als 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 {"id" : [2, 3, 5, 7]}. Gebruik de GetRAGSpaceInfo functie om de ID's van alle documenten in een RAG-ruimte op te halen. Zie Voorbeeld 3.

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 AI-modelserver die bij FileMaker Server wordt geleverd. 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 Doet het volgende

Gegevens toevoegen

Voegt RAG-gegevens toe uit het opgegeven document: Tekst (zoals elke tekstexpressie), een PDF-bestand op 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. Als het een PDF-bestand is, wordt alleen tekst uit het PDF-bestand geëxtraheerd; als het een tekstdocument is, wordt het tekstdocument in stukken opgesplitst. Het krijgt dan ingesloten vectoren voor alle blokken met behulp van het tekstinsluitmodel dat is geconfigureerd voor RAG op de server.

Prompt verzenden

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 Naam van RAG-account.

  2. De AI-modelserver krijgt ingesloten vectoren 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 FileMaker Server Admin Console).

  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.

Gegevens verwijderen

Verwijdert documenten uit een RAG-ruimte. 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.

  • Als u een Promptsjabloonnaam opgeeft, wordt in deze scriptstap de sjabloon gebruikt die is geconfigureerd via de Promptsjabloon configureren scriptstap. Promptsjablonen kunnen de constanten zoals :question: (Vervangen door de waarde Prompt verzenden) en :context: (Vervangen door de parameter context_prompt in Parameters).

  • 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- Voeg tekst toe 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 die bij FileMaker Server wordt geleverd. Wanneer de prompt wordt verzonden, verzendt het script aangepaste parameters naar het model voor het genereren van antwoorden en streamt het antwoord naar een veld.

Kopiëren
RAG-account configureren [ Naam van RAG-account: "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 ]

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

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. Eerst gebruikt het script de GetRAGSpaceInfo functie om informatie over de RAG-ruimte te krijgen. Vervolgens krijgt de variabele $id de array waarden en gebruikt een While-lus om het element te vinden waarvan de bestandsnaamsleutel "Policies.pdf" is, waardoor de waarde van de id van dat element wordt geretourneerd.

Nadat $idArrayToRemove is ingesteld op de vereiste JSON om de $id op te geven, 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 [ Naam van RAG-account: "customer-support-rag-account" ; Eindpunt: "https://myserver.example.com/llm/v1/" ; API-sleutel: Global::RAG_API_Key ; 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 bestand ; "Policies.pdf" ]

Variabele instellen [ $ragSpaceInfo ; Waarde: GetRAGSpaceInfo ( "customer-support-rag-account" ; "knowledge-base" ) ]

Variabele instellen [ $id ; Waarde: 
  Let ( [
    json = $ragSpaceInfo ;
    values = JSONGetElement ( json ; "values" ) ;
    arrayCount = ValueCount ( JSONListKeys ( values ; "" ) ) ;
    
    search = While ( 
      [ i = 0 ; result = "" ] ; 
      
      i < arrayCount and IsEmpty ( result ) ; 
      
      [ 
        filename = JSONGetElement ( values ; "[" & i & "].filename" ) ;
        result = Case ( 
          filename = "Policies.pdf" ; 
          JSONGetElement ( values ; "[" & i & "].id" ) ; 
          "" 
        ) ;
        i = i + 1 
      ] ; 
      
      result 
    )
  ] ;

  search
  )
]

Variabele instellen [ $idArrayToRemove ; Waarde: "{\"id\": [" & $id & "]}" ]

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