Utför semantisk sökning

Utför en semantisk sökning i det angivna fältet och begränsar den angivna postuppsättningen för den angivna söktexten och modellen som ska användas eller för angivna inbäddningsvektorer.

Tillval 

  • Fråga efter anger om frågan är Naturligt språk (text) eller inbäddade Vektordata.

  • Postuppsättning anger om du vill söka efter Alla poster eller Aktuella hittade poster.

  • Målfält anger ett text- eller behållarfält att söka i. Innehållet i fältet måste vara inbäddningsvektorer, antingen som en JSON-matris om det är ett textfält, eller som binära data om det är ett containerfält.

  • Antal returnerade är ett numeriskt uttryck för antalet semantiskt liknande poster som ska returneras som hittade poster. Om det inte anges är standardvärdet högst 10 poster.

  • Cosinuslikhetsvillkor anger hur cosinuslikheten hos data jämförs med Cosinuslikhetsvärde. Om det inte anges begränsas inte de hittade posterna av något cosinuslikhetsvillkor.

  • Cosinuslikhetsvärde är det tröskelvärde som används tillsammans med Cosinuslikhetsvillkor för att avgöra om data är semantiskt lika eller olika. Det här numeriska uttrycket måste ha ett värde mellan från och med -1 (olika) till och med 1 (liknande).

Alternativen är endast tillgängliga när Fråga efter är Naturligt språk:

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

  • Text är ett textuttryck för den text som ska hittas. Denna text skickas till modellen för att jämföra med inbäddningsvektorerna i Målfält för likhet.

Alternativen är endast tillgängliga när Fråga efter är Vektordata:

  • De inbäddningsvektorer som representerar den text som ska hittas. Det här är ett uttryck som returnerar containerdata, till exempel en referens till ett containerfält. Resultaten kommer att vara semantiskt lika den text som dessa vektordata representerar.

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 

Det här scriptsteget söker efter poster där innehållet i Målfält är semantiskt likt frågan, i stället för att leta efter bokstavliga sökordsmatcher som scriptsteget Scriptsteget Utför sökning gör.

Det här scriptsteget har två lägen som bestäms av alternativet Fråga efter:

  • När du väljer Naturligt språk anger du frågan som text på naturligt språk i alternativet Text. Det här scriptsteget skickar den frågetexten till den angivna modellen för konvertering till inbäddningsvektorer. Därför kräver det här läget ett AI-kontonamn och en inbäddningsmodell.

  • När du väljer Vektordata anger du inbäddningsvektorerna som containerdata för frågan. Om du vanligtvis använder vissa frågor kan det vara mer effektivt att få inbäddningsvektorer för dessa frågor en gång och lagra dem snarare än att regelbundet hämta dem från modellen.

Med utgångspunkt från antingen alla poster i den aktuella tabellen eller endast posterna i aktuella hittade poster (anges med alternativet Postuppsättning), jämför detta scriptsteg data i Målfält med frågan om semantisk likhet (eller olikhet). Resultatet är en begränsad (förfinad) uppsättning hittade poster om högst Antal returnerade som uppfyller cosinuslikhetsvillkoren. De resulterande hittade posterna sorteras i ordning efter fallande cosinuslikhet så att de mest relevanta posterna står först.

Exempel 1 

Konfigurerar ett AI-konto, går till layouten Mötesinformation och utför sedan en semantisk sökning i alla poster efter Text (som naturligt språk) i containerfältet Möten::Anteckning_Inbäddning, som innehåller inbäddningsvektorer för innehållet i fältet Möten::Anteckning (se Exempel 1 i Infoga inbäddning i hittade poster). För mer användbara resultat är antalet returnerade begränsat till 10 och cosinuslikheten mellan Text och innehållet i fältet Möten::Anteckning_Inbäddning måste vara större än 0,4. De resulterande hittade posterna sorteras med de mest relevanta posterna först.

Kopiera
Konfigurera AI-konto [ Kontonamn: "mitt-konto" ; Modelleverantör: OpenAI ; API-nyckel: "sk-RZCtpWT..." ]

Gå till layout [ "Mötesinformation (Möten) ; Animering: Ingen ]

Utför semantisk sökning [ Fråga efter: Naturligt språk ; Kontonamn: "mitt-konto" ; Inbäddningsmodell: "Text-Embedding-3-small" ; Text: "Rekrytering, jobbeskrivning, utbildningsplan" ; Postuppsättning: Alla poster ; Målfält: Möten::Anteckning_Inbäddning ; Antal returnerade: 10 ; Cosinuslikhetsvillkor: större än ; Cosinuslikhetsvärde: ,4 ]

Exempel 2 

Konfigurerar ett AI-konto, går till layouten Mötesinformation och ber sedan användaren om text att söka efter. Funktionen Funktionen GetEmbedding skickar texten till modellen och Tilldela fält lagrar sedan inbäddningsvektorerna i det globala containerfältet Möten::Indata. Om vi antar att containerfältet Möten::Anteckning_Inbäddning innehåller inbäddningsvektorer för innehållet i fältet Möten::Anteckning (se Exempel 1 i Infoga inbäddning i hittade poster), jämför scriptsteget Utför semantisk sökning vektordata i Möten::Indata med Möten::Anteckning_Inbäddning i alla poster och returnerar hittade poster som uppfyller värdet för antal returnerade och likhetsvillkoren.

Kopiera
Konfigurera AI-konto [ Kontonamn: "mitt-konto" ; Modelleverantör: OpenAI ; API-nyckel: "sk-RZCtpWT..." ]

Gå till layout [ "Mötesinformation" (Möten) ; Animering: Ingen ]

Visa anpassad dialogruta [ "Hitta möten med anteckningar om:" ; $Indata ]
Tilldela fält [ Möten::Indata ; GetEmbedding ( "mitt-konto" ; "text-embedding-3-small" ; $Indata ) ]

Utför semantisk sökning [ Fråga efter: Vektordata ; Möten::Indata ; Postuppsättning: Alla poster ; Målfält: Möten::Anteckning_Inbäddning ; Antal returnerade: 10 ; Cosinuslikhetsvillkor: är större än ; Cosinuslikhetsvärde: ,4 ]