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.
Zie ook
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:
|
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:
|
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 parametercontext_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.
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.
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.
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 ]