Infoga inbäddning i hittade poster

Infogar ett värde i ett fält i varje post i de hittade posterna med vektorrepresentation av innehållet i ett visst fä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 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 förblir oförändrat.

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

MaxRecPerCall

Maximalt antal poster som kan bearbetas med varje API-anrop

JSONNumber

20

1 till 500

MaxRetryPerWorker

Maximalt antal försök om API-anropet misslyckas

JSONNumber

5

1 till 100

MaxWaitPerRetry

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 MaxWaitPerRetry mellan OpenAI API-samtal. Om väntetiden överskrider detta maximum stoppas scriptsteget och ett fel returneras.

JSONNumber

60000

20 till 3600000

Ja

TruncateTokenLimit

Antal variabler att trunkera indata från Källfält till när TruncateEnabled är aktiverat.

JSONNumber

8185

0 till 8192

Ja

TruncateEnabled

Trunkera indata från Källfält till TruncateTokenLimit innan de skickas till OpenAI.

JSONNumber

1

0 eller 1

Ja

  1. 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:

Kopiera
{
    "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.

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

Kopiera
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]
) ]