Insluiting invoegen in gevonden reeks

Stuurt voor elk record in de gevonden set gegevens van een bronveld naar een inbeddingsmodel en voert de geretourneerde vectorweergave in een doelveld in.

Opties 

  • Accountnaam is een tekstexpressie van het AI-account dat voor deze scriptstap moet worden gebruikt. Gebruik in het huidige bestand de scriptstap AI-account configureren scriptstap om het account in te stellen en deze naam toe te wijzen op elk moment voordat deze scriptstap wordt uitgevoerd.

  • Insluitmodel is de naam van het model waarmee insluitvectoren worden gegenereerd. Geef de modelnaam op als een tekstexpressie, die beschikbaar is bij de modelprovider.

  • Bronveld is het tekstveld waarvan de waarden door deze scriptstap naar het model worden verzonden voor conversie naar insluitvectoren. Als het veld leeg is, wordt er niets naar het model verzonden en blijft het doelveld ongewijzigd.

  • Doelveld specificeert het veld waarin de geretourneerde insluitvectoren moeten worden ingevoegd. Als u een tekstveld opgeeft, worden de geretourneerde gegevens opgeslagen als tekst. Als u een containerveld opgeeft, worden de geretourneerde gegevens opgeslagen als binaire gegevens. Deze gegevens kunnen kleiner zijn dan wanneer ze als tekst worden opgeslagen en kunnen de verdere verwerking van de insluitvectoren verbeteren.

  • Met Doelinhoud vervangen wordt de inhoud van het doelveld vervangen, indien aanwezig. Als deze optie is uitgeschakeld, worden insluitgegevens alleen aan het doelveld toegevoegd als het veld leeg is; anders blijft het veld ongewijzigd. Het inschakelen van deze optie is handig als de inhoud van het Bronveld regelmatig verandert.

  • Parameters is een tekstexpressie voor een JSON-object waarmee beperkingen worden opgegeven voor de grootte, het aantal en de frequentie van aanvragen die naar het model worden verzonden. Gebruik dit om uw script te optimaliseren afhankelijk van de hoeveelheid gegevens, het gebruikte model, de tokenlimieten van de modelprovider en de technische specificaties (kernen, RAM, enzovoort) van de machine waarop het model wordt uitgevoerd. Zie Beschrijving voor meer informatie.

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 

21.0

Beschrijving 

Voor elke record in de huidige gevonden reeks stuurt deze scriptstap de waarde in het Bronveld naar het opgegeven model voor conversie naar insluitvectoren die zijn opgeslagen in het Doelveld.

Een voorbeeld van hoe u insluitvectoren kunt gebruiken, is met de scriptstap Semantische zoekopdracht uitvoeren scriptstap, waarmee u de vectorgegevens kunt opvragen die door deze scriptstap of de scriptstap Insluiting invoegen zijn geproduceerd.

Voor insluitvectoren voor afbeeldingen en tekst kunt u de modellen gebruiken die worden ondersteund door de open source-modelserver die afzonderlijk bij FileMaker Pro of bij FileMaker Server is geïnstalleerd. Zie het technische blog van Claris.

Voor de optie Parameters kunt u de volgende sleutels en waarden in een JSON-object gebruiken om het gedrag van deze scriptstap indien nodig aan te passen. Als er geen sleutel is opgegeven of de optie Parameters niet wordt gebruikt, worden de standaardwaarden gebruikt.

Parametersleutel

Beschrijving

Gegevenstype1

Standaardwaarde

Bereik van waarden

Alleen OpenAI

MaxRecPerCall

Maximum aantal records dat moet worden verwerkt bij elke API-aanroep

JSONNumber

20

1 tot 500

MaxRetryPerWorker

Maximum aantal pogingen als API-aanroep mislukt

JSONNumber

5

1 tot 100

MaxWaitPerRetry

Maximale wachttijd tussen OpenAI API-aanroepen (in milliseconden). Dit wordt alleen gebruikt als OpenAI te veel verzoeken per minuut ontvangt. In dat geval wacht deze scriptstap op MaxWaitPerRetry tussen OpenAI API-aanroepen. Als de wachttijd dit maximum overschrijdt, stopt deze scriptstap en wordt er een fout geretourneerd.

JSONNumber

60.000

20 tot 3.600.000

Ja

TruncateTokenLimit

Aantal tokens voordat invoer wordt afgekapt van Bronveld tot wanneer TruncateEnabled op Aan staat.

JSONNumber

8.185

0 tot 100.000

Ja

TruncateEnabled

1 (waar) kapt invoer af van Bronveld naar TruncateTokenLimit voordat het naar OpenAI wordt gestuurd.

Opmerking  Semantisch zoeken kan minder nauwkeurige resultaten opleveren als de invoer wordt afgekapt.

JSONNumber

1

0 of 1

Ja

  1. Als u de functie JSONSetElement functie gebruikt om het JSON object te maken, gebruikt u de aangegeven constante voor de parameter type.

Dit JSON object stelt bijvoorbeeld alle sleutels in de optie Parameters in:

Kopiëren
{
    "MaxRecPerCall" : 40,
    "MaxRetryPerWorker" : 10,
    "MaxWaitPerRetry" : 300000,
    "TruncateTokenLimit" : 4000,
    "TruncateEnabled" : 1
}

Opmerkingen 

  • Om het regelmatig bijwerken van insluitvectoren in een gehost FileMaker Pro-bestand te automatiseren, kunt u een schema op de host instellen om uw FileMaker-script uit te voeren zonder tussenkomst van de gebruiker. Zie FileMaker scriptschema's in de FileMaker Server Help of de FileMaker Cloud Help.

Voorbeeld 1

Hiermee configureert u een AI-account, gaat u naar de lay-out Bijeenkomstdetails, toont u alle records en haalt u vervolgens insluitvectoren voor de tekst op in het veld Meetings::Note en slaat u deze op als binaire gegevens in het containerveld Meetings::Note_Embedding. Omdat de optie Doelinhoud vervangen is ingeschakeld, wordt Meetings::Note_Embedding bijgewerkt, zelfs als het al gegevens bevat.

Kopiëren
AI-account configureren [ Accountnaam: "my-account" ; Modelprovider: OpenAI ; API-sleutel: "sk-RZCtpWT..." ]

Ga naar lay-out [ "Bijeenkomstdetails" (Meetings) ; Animatie: Geen ]
Alle records tonen

Insluiting invoegen in gevonden reeks [ Accountnaam: "My-account" ; Insluitmodel: "Text-embedding-3-small" ; Bronveld: Meetings::Note ; Doelveld: Meetings::Note_Embedding ; Doelinhoud vervangen ]

Voorbeeld 2 

Hiermee configureert u een AI-account, gaat u naar de lay-out Bijeenkomstdetails en zoekt u naar de records waarin het veld Meetings::Title het woord "Status" bevat. Haalt voor deze gevonden reeks insluitvectoren voor de tekst op in het veld Meetings::Note en slaat deze op als binaire gegevens in het containerveld Meetings::Note_Embedding, als er geen gegevens aanwezig zijn (Doelinhoud vervangen is uitgeschakeld). Hiermee stelt u ook de optie Parameters in om het aantal records per aanroep, het aantal nieuwe pogingen en de tijd tussen nieuwe pogingen te verhogen en de tokenlimiet te verlagen.

Kopiëren
AI-account configureren [ Accountnaam: "my-account" ; Modelprovider: OpenAI ; API-sleutel: "sk-RZCtpWT..." ]

Ga naar lay-out [ "Bijeenkomstdetails" (Meetings) ; Animatie: Geen ]
Ga naar de zoekmodus [ Onderbreken: Uit ]
Veld instellen [ Meetings::Status ; "Gereed" ]
Zoekopdracht uitvoeren [ ]

Insluiting invoegen in gevonden reeks [ Accountnaam: "my-account" ; Insluitmodel: "text-embedding-3-small" ; Bronveld: Meetings::Note ; Doelveld: Meetings::Note_Embedding ; 
Parameters: JSONSetElement ( "" ;
    ["MaxRecPerCall" ; 40 ; JSONNumber] ; 
    ["MaxRetryPerWorker" ; 10 ; JSONNumber] ; 
    ["MaxWaitPerRetry" ; 300000 ; JSONNumber] ;
    ["TruncateTokenLimit" ; 4000 ; JSONNumber] ;
    ["TruncateEnabled" ; 1 ; JSONNumber]
) ]

Voorbeeld 3

Hiermee configureert u een AI-account voor een aangepaste modelprovider, gaat u naar de lay-out Bijeenkomstdetails, toont u alle records en gebruikt u voor elke record een model voor het insluiten van afbeeldingen om insluitvectoren voor de afbeelding op te halen in het containerveld Vergaderingen::Afbeelding en dit op te slaan als binaire gegevens in het containerveld Vergaderingen::Afbeelding.

Kopiëren
AI-account configureren [ Accountnaam: "mijn-account" ; Modelprovider: Aangepast ; Eindpunt: "https://my-server.example.com:8080/" ; SSL-certificaten verifiëren ; API-sleutel: Globaal::API_Sleutel ]

Ga naar lay-out [ "Bijeenkomstdetails" (Meetings) ; Animatie: Geen ]
Alle records tonen

Insluiting invoegen in gevonden reeks [ Accountnaam: "mijn-account" ; Insluitmodel: "clip-ViT-L-14" ; Bronveld: Vergaderingen::Afbeelding ; Doelveld: Vergaderingen::Afbeelding_Invoer ; Doelinhoud vervangen ]