Utför RAG-åtgärd
Skickar en prompt till, eller lägger till och tar bort data från, en RAG-plats på AI-modellservern som anges av ett RAG-konto.
Tillval
-
RAG-kontonamn är ett textuttryck för RAG-kontot som scriptsteget ska använda. Använd Scriptsteget Konfigurera RAG-konto i den aktuella filen för att konfigurera kontot och tilldela det namnet när som helst innan scriptsteget körs.
-
Plats-ID är ett textuttryck som anger det unika ID:t för den RAG-plats som ska användas i det angivna RAG-kontot.
-
Åtgärd anger vilken typ av åtgärd som ska utföras på en RAG-plats. Det här alternativet styr tillgängligheten av andra alternativ i scriptsteget. Välj mellan:
-
Lägg till data lägger till ett dokument (textdata eller en PDF-fil) i en RAG-plats.
-
Skicka prompt skickar en prompt för att fråga en RAG-plats och få ett AI-genererat svar.
-
Ta bort data tar bort dokument från en RAG-plats.
-
Alternativ som endast är tillgängliga när Åtgärd är Lägg till data.
-
RAG-data anger det dokument som ska läggas till på RAG-platsen:
-
Från text lägger till text direkt via ett textuttryck.
-
Från fil lägger till en PDF-fil givet en sökväg, som överförs synkront.
-
Från fil (Async) lägger till en PDF-fil givet en sökväg, som överförs asynkront (bäst för stora filer).
-
Från container lägger till en PDF-fil från ett containerfält, som överförs synkront.
-
Från container (Async) lägger till en PDF-fil från ett containerfält, som överförs asynkront (bäst för stora filer).
-
-
Indatafil anger en lista med en eller flera sökvägar för en PDF-fil. Scriptsteget söker igenom listan och lägger till den första PDF-filen som hittas. Sökvägarna måste använda ett av sökvägsprefixen
image
. Mer information finns i Skapa filsökvägar. -
Containerfält anger det containerfält som lagrar PDF-filen som ska läggas till.
Alternativ som endast är tillgängliga när Åtgärd är Skicka prompt:
-
Värdet för Skicka prompt är ett textuttryck för användarprompten eller frågan på naturligt språk.
-
AI-kontonamn är ett textuttryck för namnet på det AI-konto som ska användas för att generera ett svar. Använd Scriptsteget Konfigurera AI-konto i den aktuella filen för att konfigurera kontot och tilldela det namnet när som helst innan scriptsteget körs.
-
Modell är namnet på den textgenereringsmodell som ska användas. Ange modellnamnet som ett textuttryck. Information om vilka modeller som stöds finns i Tekniska specifikationer för FileMaker.
-
Stream styr hur svaret levereras:
-
På: Svaret hämtas och levereras inkrementellt (ord för ord eller i fraser). Det kan göra att FileMaker-klienten upplevs svara snabbare.
-
Av: Hela svaret hämtas innan det görs tillgängligt. Det kan innebär att FileMaker-klienten upplevs inte svara i väntan på det fullständiga svaret.
-
-
Promptmallens namn anger namnet på en anpassad promptmall som konfigurerats med Scriptsteget Konfigurera promptmall. Använd det här alternativet om du vill utforma en ytterligare prompt för att uppnå ett optimalt svar från en AI-modell.
-
Mål för svar anger det fält eller den variabel där svaret fr¨n modellen ska lagras.
-
Parametrar är ett textuttryck för ett JSON-objekt som består av par av nyckel–värde för ytterligare parametrar som stöds av modelleverantören. Till exempel:
{"temperatur": 0,7, "frö": 42}
. Se modelleverantörens dokumentation för nyckelnamn på de parametrar som stöds och giltiga intervall.Nyckeln
context_prompt
är en speciell parameter som gör att du kan injicera ytterligare instruktioner eller kontext till modellen före huvudprompten. Till exempel:{"context_prompt": "Behandla 'i dag' som 2025-08-25"}
.
Alternativ som endast är tillgängliga när Åtgärd är Ta bort data.
-
Parametrar är ett textuttryck för ett JSON-objekt som innehåller nyckeln
id
vars värde är en matris med ID:n för de dokument som ska tas bort från den angivna RAG-platsen. Till exempel{"id" : [2, 3, 5, 7]}
. För att få ID:n för alla dokument i en RAG-plats använder du Funktionen GetRAGSpaceInfo. Mer information finns i Exempel 3.
Kompatibilitet
Produkt | Stöds |
FileMaker Pro | Ja |
FileMaker Go | Ja |
FileMaker WebDirect | Ja |
FileMaker Server | Ja |
FileMaker Cloud | Ja |
FileMaker Data API | Ja |
Anpassad webbpublicering | Ja |
Ursprungsversion
22.0
Beskrivning
Med det här scriptsteget kan du skapa och hantera en kunskapscache för dokument (textdata och PDF-filer) på den AI-modellserver som tillhandahålls med FileMaker Server. Du kan sedan använda cachen med en teknik som kallas retrieval-augmented generation (RAG). Med hjälp av den här tekniken skickar scriptsteget en prompt till en AI-modell tillsammans med de mest relevanta fakta som hämtas från din kunskapscache, vilket förbättrar tillförlitligheten och noggrannheten hos svaret från modellen.
Alternativet Åtgärd avgör vad det här scriptsteget gör:
Åtgärd | ... ger följande resultat |
---|---|
Lägg till data |
Lägger till RAG-data från det angivna dokumentet: Text (som ett textuttryck), en PDF-fil med hjälp av sökväg eller en PDF-fil från ett containerfält i den aktuella eller relaterade posten. Processen följer dessa steg:
|
Skicka prompt |
Skickar användarprompten till AI-modellservern för att få de mest relevanta data från den angivna RAG-platsen, skickar sedan användarprompten tillsammans med promptmallen och RAG-innehållet till AI-modellen. Processen följer dessa steg:
|
Ta bort data |
Tar bort dokument från en RAG-plats. Om det anges i alternativet Parametrar tas endast de angivna dokumenten bort, annars tas alla dokument på RAG-platsen bort. Obs! Det går inte att ångra borttagning av dokument från RAG-platsen. Kom ihåg att att behålla originaldokumenten någon annanstans om du behöver lägga till dem igen. |
Kommentarer
-
Ett RAG-konto måste konfigureras med Scriptsteget Konfigurera RAG-konto innan du kan använda det här scriptsteget.
-
För Skicka prompt-åtgärder måste ett AI-konto också konfigureras med hjälp av Scriptsteget Konfigurera AI-konto.
-
PDF-filer med kryptering eller lösenordsskydd kan inte bearbetas med åtgärden Lägg till data.
-
RAG-platser är beständiga och behåller sina dokument tills de uttryckligen tas bort med hjälp av åtgärden Ta bort data.
-
Om du lägger till en PDF-fil med samma filnamn som en fil som redan finns på RAG-platsen tas den befintliga PDF-filen bort och den nya PDF-filen läggs till med ett nytt dokument-ID. Det här beteendet är detsamma oavsett om du lägger till PDF-filen via en sökväg eller ett containerfält.
-
Om du anger Promptmallens namn använder scriptsteget den mall som konfigurerats via Scriptsteget Konfigurera promptmall. Promptmallar kan använda konstanter som
:question:
(ersätts med värdet Skicka prompt) och:context:
(ersätts med parameterncontext_prompt
i Parametrar). -
AI-svarens kvalitet beror på modellen och relevansen och kvaliteten på de dokument som läggs till på RAG-platsen.
-
I FileMaker WebDirect: När det här scriptsteget använder åtgärden Lägg till data och RAG-data är Från fil eller Från fil (Async), öppnas dialogrutan Infoga där användaren väljer en PDF-fil att ladda upp. Alternativet Indatafil ignoreras.
Exempel 1- Lägg till text på en RAG-plats
Lägger till textinnehåll på en RAG-plats för en kundkunskapsbas.
Konfigurera RAG-konto [ RAG-kontonamn: "kundsupport-rag-konto" ; Slutpunkt: "https://minserver.exempel.com/llm/v1/" ; API-nyckel: "eyJh..." ; Verifiera SSL-certifikat ]
Utför RAG-åtgärd [ RAG-kontonamn : "kundsupport-rag-konto" ; Plats-ID: "kunskapsbas" ; Åtgärd: Lägg till data ; RAG-data: Från text ; "Policyer och procedurer i kundsupport för hantering av returer och byten..." ]
Exempel 2- Skicka en prompt som fråga till en RAG-plats
Skickar en prompt som fråga till samma RAG-plats som i Exempel 1 och lagrar svaret i ett fält.
Scriptet konfigurerar både RAG-kontot och AI-kontot för att använda den AI-modellserver som tillhandahålls med FileMaker Server. När scriptet skickar prompten skickas anpassade parametrar till modellen för generering av svar och svaret streamas till ett fält.
Konfigurera RAG-konto [ RAG-kontonamn: "kundsupport-rag-konto" ; Slutpunkt: "https://minserver.exempel.com/llm/v1/" ; API-nyckel: Global::RAG_API_Key ; Verifiera SSL-certifikat ]
Konfigurera AI-konto [ Kontonamn: "AI_Model_Server" ; Modelleverantör: Anpassad ; Slutpunkt: "https://minserver.exempel.com/llm/v1/" ; API-nyckel: Global::Text_Gen_API_Key ; Verifiera SSL-certifikat ]
Utför RAG-åtgärd [ RAG-kontonamn: "kundsupport-rag" ; Plats-ID: "kunskapsbas" ; Åtgärd: Skicka prompt ; Skicka prompt: "Vilken returpolicy gäller för defekta produkter?" ; AI-kontonamn: "AI_Model_Server" ; Modell: Global::ModellNamn ; Stream: På ; Mål för svar: Kundsupport::AI-svar ; Parametrar: "{\"temperature\": 0.3, \"max_tokens\": 500}" ]
Ett möjligt resultat i fältet Kundsupport::AI-svar börjar med ”Returpolicyn för defekta produkter innebär att du kan returnera varan inom 14 kalenderdagar.”
Exempel 3 - Lägg till och ta bort en PDF-fil från en RAG-plats
Lägger till en PDF-fil med namnet Policyer.pdf på en RAG-plats och tar sedan bort den.
När RAG-kontot har konfigurerats för användning på AI-modellservern lägger scriptet till filen Policyer.pdf på RAG-platsen genom att ange filsökvägen.
Innan filen kan tas bort måste scriptet hitta det dokument-ID som tilldelades när filen lades till. Först använder scriptet Funktionen GetRAGSpaceInfo för att få information om RAG-platsen. För variabeln $id hämtar det sedan matrisen värden
och använder en While-loop för att hitta elementet där nyckeln filename
är "Policyer.pdf", och returnerar värdet för det elementets id
.
När $idArrayToRemove har angetts till den önskade JSON för att ange $id, anropar scriptet Utför RAG-åtgärd för att att ta bort genom att ange alternativet Parametrar till $idArrayToRemove.
Konfigurera RAG-konto [ RAG-kontonamn: "kundsupport-rag-konto" ; Slutpunkt: "https://minserver.exempel.com/llm/v1/" ; API-nyckel: Global::RAG_API_Key ; Verifiera SSL-certifikat ]
Utför RAG-åtgärd [ RAG-kontonamn: "kundsupport-rag-konto" ; Plats-ID: "kunskapsbas" ; Åtgärd: Lägg till data ; RAG-data: Från fil ; "Policyer.pdf" ]
Ange variabel [ $ragSpaceInfo ; Värde: GetRAGSpaceInfo ( "kundsupport-rag-konto" ; "kunskapsbas" ) ]
Ange variabel [ $id ; Värde:
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 = "Policyer.pdf" ;
JSONGetElement ( values ; "[" & i & "].id" ) ;
""
) ;
i = i + 1
] ;
result
)
] ;
search
)
]
Ange variabel [ $idArrayToRemove ; Värde: "{\"id\": [" & $id & "]}" ]
Utför RAG-åtgärd [ RAG-kontonamn: "kundsupport-rag-konto" ; Plats-ID: "kunskapsbas" ; Åtgärd: Ta bort data ; Parametrar: $idArrayToRemove ]