Infoga inbäddning i hittade poster
För varje post i sökresultatet skickas data från ett källfält till en inbäddningsmodell och infogar den returnerade vektorrepresentationen i ett målfält.
Tillval
-
Kontonamn är ett textuttryck för AI-kontot som det här scriptsteget ska använda. 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.
-
Inbäddningsmodell är namnet på den modell som genererar inbäddningsvektorer. Ange modellnamnet som ett textuttryck, som är tillgängligt från modelleverantören.
-
Källfält är det textfält eller containerfält vars värden det här scriptsteget skickar till modellen för konvertering till inbäddningsvektorer. Om fältet är tomt skickas inget till modellen och målfältet ändras inte.
-
Målfält anger det fält där de returnerade inbäddningsvektorerna ska infogas. Om du anger ett textfält lagras returnerade data som text. Om du anger ett containerfält lagras returnerade data som binära data, vilket kan ta mindre plats än när de lagras som text och kan därmed förbättra eventuell ytterligare bearbetning som utförs med inbäddningsvektorerna.
-
Ersätt målinnehåll ersätter målfältets innehåll, om det finns något. När det här alternativet är inaktiverat läggs inbäddningsdata till i målfältet endast om fältet är tomt. Annars lämnas fältet oförändrat. Det kan vara praktiskt att aktivera det här alternativet om innehållet i Källfält ändras ofta.
-
Parametrar är ett textuttryck för ett JSON-objekt som anger gränser i fråga om storlek, antal och frekvens för begäranden som skickas till modellen. Använd dessa för att optimera ditt script beroende på mängden data, vilken modell som används, modelleverantörens variabelgränser och de tekniska specifikationerna (kärnor, RAM med mera) för den dator som modellen körs på. Mer information finns i Beskrivning.
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
21.0
Beskrivning
För varje post i aktuella hittade poster skickar det här scriptsteget värdet i Källfält till den angivna modellen för konvertering till inbäddningsvektorer som sparas i Målfält.
Ett exempel på hur du kan använda inbäddningsvektorer är med scriptsteget Scriptsteget Utför semantisk sökning, som kan skicka frågor mot vektordata som produceras av det här scriptsteget eller av scriptsteget Infoga inbäddning.
För bild- och textinbäddningsvektorer kan du använda de modeller som stöds av den modell med öppen källkod som tillhandahålls separat med FileMaker Pro eller installeras med FileMaker Server. Mer information finns i Claris teknikerblogg.
För alternativet Parametrar kan du använda följande nycklar och värden i ett JSON-objekt för att justera scriptstegets beteende om det behövs. Om en nyckel inte anges eller om alternativet Parametrar inte används, används standardvärdena.
Parameternyckel |
Beskrivning |
Datatyp1 |
Standardvärde |
Värdeintervall |
Endast OpenAI |
|
Maximalt antal poster som kan bearbetas med varje API-anrop |
|
20 |
1 till 500 |
— |
|
Maximalt antal försök om API-anropet misslyckas |
|
5 |
1 till 100 |
— |
|
Maximal tid att vänta mellan OpenAI API-anrop (i millisekunder). Detta används endast när OpenAI tar emot för många förfrågningar per minut. I så fall väntar det här scriptsteget upp till |
|
60 000 |
20 till 3 600 000 |
Ja |
|
Antal variabler att trunkera indata från Källfält till när
|
|
8 185 |
0 till 100 000 |
Ja |
|
1 (sant) trunkerar indata från Källfält till Obs! Scriptsteget Utför semantisk sökning kan ge mindre exakta resultat om inmatningen trunkeras. |
|
1 |
0 eller 1 |
Ja |
-
Om du använder Funktionen JSONSetElement för att skapa JSON-objektet ska du använda den angivna konstanten för parametern
typ
.
Det här JSON-objektet anger till exempel alla nycklar i alternativet Parametrar:
{
"MaxRecPerCall" : 40,
"MaxRetryPerWorker" : 10,
"MaxWaitPerRetry" : 300000,
"TruncateTokenLimit" : 4000,
"TruncateEnabled" : 1
}
Kommentarer
-
Om du vill automatisera regelbundna uppdateringar av inbäddningsvektorer i en delad FileMaker Pro-fil kan du skapa ett schema på värden för att köra FileMaker-skriptet utan att användaren behöver göra något. Läs mer om scriptscheman för FileMaker i FileMaker Server-hjälp eller FileMaker Cloud-hjälp.
Exempel 1
Konfigurerar ett AI-konto, går till layouten Mötesinformation, visar alla poster och hämtar sedan inbäddningsvektorer för texten i fältet Möten::Anteckning och lagrar den som binära data i containerfältet Möten::Anteckning_Inbäddning. Eftersom alternativet Ersätt målinnehåll är aktiverat uppdateras Möten::Anteckning_Inbäddning även det redan finns data i fältet.
Konfigurera AI-konto [ Kontonamn: "mitt-konto" ; Modelleverantör: OpenAI ; API-nyckel: "sk-RZCtpWT..." ]
Gå till layout [ "Mötesinformation" (Möten) ; Animering: Ingen ]
Visa alla
Infoga inbäddning i hittade poster [ Kontonamn: "mitt-konto" ; Inbäddningsmodell: "text-embedding-3-small" ; Källfält: Möten::Anteckning ; Målfält: Möten::Anteckning_Inbäddning ; Ersätt målinnehåll ]
Exempel 2
Konfigurerar ett AI-konto, går till layouten Mötesinformation och hittar sedan de poster där fältet Möten::Titel innehåller "Status". För de här hittade posterna hämtas inbäddningsvektorer för texten i fältet Möten::Anteckning och lagrar den som binära data i containerfältet Möten::Anteckning_Inbäddning, om det inte redan finns data där (Ersätt målinnehåll är inaktiverat). Ställer också in alternativet Parametrar för att öka posterna per anrop, antal försök och tid mellan försök samt för att sänka variabelgränsen.
Konfigurera AI-konto [ Kontonamn: "mitt-konto" ; Modelleverantör: OpenAI ; API-nyckel: "sk-RZCtpWT..." ]
Gå till layout [ "Mötesinformation" (Möten) ; Animering: Ingen ]
Sök [ Paus: Av ]
Tilldela fält [ Möten::Status ; "Klart" ]
Utför sökning [ ]
Infoga inbäddning i hittade poster [ Kontonamn: "mitt-konto" ; Inbäddningsmodell: "text-embedding-3-small" ; Källfält: Möten::Anteckning ; Målfält: Möten::Anteckning_Inbäddning ;
Parametrar: JSONSetElement ( "" ;
["MaxRecPerCall" ; 40 ; JSONNumber] ;
["MaxRetryPerWorker" ; 10 ; JSONNumber] ;
["MaxWaitPerRetry" ; 300000 ; JSONNumber] ;
["TruncateTokenLimit" ; 4000 ; JSONNumber] ;
["TruncateEnabled" ; 1 ; JSONNumber]
) ]
Exempel 3
Konfigurerar ett AI-konto för en anpassad modelleverantör, går till layouten Mötesinformation, visar alla poster och använder sedan till varje post en bildinbäddningsmodell för att hämta inbäddningsvektorer för bilden i containerfältet Möten::Bild och lagrar dem som binära data i containerfältet Möten::Bild_Inbäddning.
Konfigurera AI-konto [ Kontonamn: "mitt-konto" ; Modelleverantör: Anpassad; Slutpunkt: "https://min-server.exempel.com:8080/" ; Verifiera SSL-certifikat ; API-nyckel: Global::API-nyckel ]
Gå till layout [ "Mötesinformation" (Möten) ; Animering: Ingen ]
Visa alla poster
Infoga inbäddning i hittade poster [ Kontonamn: "mitt-konto" ; Inbäddningsmodell: "clip-ViT-L-14" ; Källfält: Möten::Bild ; Målfält: Möten::Bild_Inbäddning ; Ersätt målinnehåll ]