Suchen mit natürlicher Sprache

Sendet einen Prompt in natürlicher Sprache und eine Liste von Feldern im aktuellen Layout an ein Modell, das eine FileMaker-Suchabfrage zurückgibt und eine Suche durchführt.

Optionen 

  • Kontoname ist ein Textausdruck des KI-Kontos, das für diesen Scriptschritt verwendet werden soll. Verwenden Sie in der aktuellen Datei den Scriptschritt „KI-Konto konfigurieren“, um das Konto einzurichten und ihm diesen Namen zuzuweisen, bevor dieser Scriptschritt ausgeführt wird.

  • Modell ist der Name des zu verwendenden Textgenerierungsmodells. Geben Sie den Modellnamen als Textausdruck an. Unterstützte Modelle finden Sie unter FileMaker – Technische Daten.

  • Prompt ist ein Textausdruck für die Anfrage oder Frage in natürlicher Sprache, die an das Modell gesendet werden soll.

  • Hole gibt den Typ der Antwort an, die aus dem Modell abgerufen werden soll.

    • Ergebnismenge: Führt die vom Modell generierte Suchabfrage aus und aktualisiert die Ergebnismenge im aktuellen Fenster.

    • Ergebnismenge als JSON: Führt die vom Modell generierte Suchabfrage aus und gibt die Daten der Ergebnismenge als JSON-Objekt zurück. Ändert die Ergebnismenge im aktuellen Fenster nicht.

    • Suchabfrage als JSON: Führt die Suche nicht aus. Gibt die vom Modell generierte FileMaker-Suchabfrage als JSON-Objekt zurück.

  • Prompt-Vorlagenname gibt den Namen einer benutzerdefinierten Prompt-Vorlage an, die mit dem Scriptschritt Scriptschritt „Prompt-Vorlage konfigurieren“ konfiguriert wurde. Verwenden Sie diese Option, um einen zusätzlichen Prompt zu erstellen, der dabei hilft, eine optimale Antwort von einem KI-Modell zu erhalten.

  • Parameter ist ein Textausdruck für ein JSON-Objekt, das aus Schlüssel-Wert-Paaren für zusätzliche Parameter besteht, die vom Modellanbieter unterstützt werden. Beispiel: {"Temperatur": 0.7, "seed": 42}. Die Namen der Schlüssel für die unterstützten Parameter und deren gültige Bereiche finden Sie in der Dokumentation des Modellanbieters.

    Der Schlüssel context_prompt ist ein spezieller Parameter, mit dem Sie dem Modell vor dem Hauptprompt zusätzliche Anweisungen oder Kontextinformationen hinzufügen können. Beispiel: {"context_prompt": „Behandle ‚heute‘ als 01.07.2025“}.

  • Antwortziel gibt das Feld oder die Variable an, in der das Ergebnis des Scriptschritts gespeichert werden soll.

Kompatibilität 

Produkt Unterstützt
FileMaker Pro Ja
FileMaker Go Ja
FileMaker WebDirect Ja
FileMaker Server Ja
FileMaker Cloud Ja
FileMaker Data API Ja
Custom Web Publishing Ja

Ursprung in Version 

22.0

Beschreibung 

Mit diesem Scriptschritt können Sie FileMaker-Suchabfragen in Ihren Daten in natürlicher Sprache ausführen, ohne Suchkriterien wie im Scriptschritt „Ergebnismenge suchen“ anzugeben. Dabei wird ein KI-Modell verwendet, um einen Prompt in natürlicher Sprache zu interpretieren, die im aktuellen Layout verfügbaren Felder zu analysieren und eine entsprechende FileMaker-Suchabfrage (und gegebenenfalls eine Sortierfolge) zu generieren.

Die Interaktion zwischen diesem Scriptschritt und dem Modell erfolgt in der Regel wie folgt:

  1. Dieser Scriptschritt identifiziert alle Felder, auf die eine Suche im aktuellen Layout zugreifen kann. Er sendet Informationen über diese Felder (ähnlich der Ausgabe der Funktion „GetFieldsOnLayout“) zusammen mit dem Prompt an das angegebene Modell. (Dies schließt Prompts ein, die in einer optionalen Prompt-Vorlage angegeben sind sowie den Parameter context_prompt.)

  2. Das Modell analysiert die Prompt- und Layout-Feld-Informationen und generiert dann eine FileMaker-Suchabfrage und eine Sortierfolge, die zum Abrufen der angeforderten Datensätze ausgelegt sind.

  3. Dieser Scriptschritt empfängt die generierte Suchabfrage und die Sortierfolge.

  4. Der Scriptschritt führt eine Aktion basierend auf der Option Hole aus.

Die Option Hole legt fest, was passiert, nachdem das Modell die Suchabfrage generiert hat:

Hole Ergebnis

Ergebnismenge

Führt die generierte Suchabfrage im aktuellen Layout aus und aktualisiert in Schritt 4 die Ergebnismenge. Wenn das Modell eine Sortierfolge generiert hat, wird die Ergebnismenge entsprechend sortiert. Das Antwortziel wird nicht verwendet, wenn diese Option ausgewählt ist.

Ergebnismenge als JSON

Führt die generierte Suchabfrage aus und gibt in Schritt 4 die Daten aus der resultierenden Ergebnismenge als JSON-Objekt im Antwortziel zurück. Die JSON-Struktur entspricht der Antwort auf eine Suchabfrage, die über FileMaker Data API durchgeführt wurde. Sie enthält die Daten der Ergebnismenge, Dateninformationen (wie die Anzahl gefundener Datensätze und die Gesamtzahl von Datensätzen) sowie alle Mitteilungen (Fehler oder Warnungen). Siehe das folgende Beispiel und das Beispiel in Scriptschritt „FileMaker Data API ausführen“.

Suchabfrage als JSON

Führt die Suche nicht aus. In Schritt 4 werden die generierte FileMaker-Suchabfrage und die Sortierfolge als JSON-Objekt im Antwortziel zurückgegeben. Diese Option ist in erster Linie für die Fehlersuche nützlich, um genau zu sehen, welche Suchabfrage das Modell generiert hat. Die JSON-Struktur ähnelt den Arrays abfrage und sortieren, die im FileMaker Data API-Aufruf verwendet werden, um eine Suchabfrage durchzuführen. Siehe das folgende Beispiel und Suchen im FileMaker Data API-Handbuch.

Hinweise 

  • Nur Felder, die über eine Suche im aktuellen Layout zugänglich sind, werden an das Modell gesendet. Weitere Informationen zu den Kriterien, anhand derer bestimmt wird, auf welche Felder mit der Suchfunktion zugegriffen werden kann, finden Sie unter der Funktion „GetFieldsOnLayout“, die dieselben Kriterien wie dieser Scriptschritt verwendet. Die gleichen Informationen, die an das Modell gesendet wurden (Layoutname, Feldnamen, Typen und Beschreibungen), werden von GetFieldsOnLayout zurückgegeben.

  • Feldkommentare, die Sie im Dialogfeld „Datenbank verwalten“ eingeben, werden in die Feldinformationen aufgenommen, die an das Modell gesendet werden. Um die Fähigkeit des Modells zum Generieren nützlicher Suchabfragen zu verbessern, können Sie den Kommentar verwenden, um den Zweck des Feldes zu erläutern. Weitere Informationen finden Sie unter Definieren und Ändern von Feldern. Weitere Informationen darüber, wie Sie steuern können, welche Feldkommentare an das Modell gesendet werden, finden Sie unter der Funktion „GetFieldsOnLayout“.

  • Wenn Sie einen Prompt-Vorlagennamen angeben, verwendet dieser Scriptschritt die Vorlage, die über den Scriptschritt Scriptschritt „Prompt-Vorlage konfigurieren“ konfiguriert wurde. Prompt-Vorlagen können Konstanten verwenden, z. B. :schema: (wird durch Layout-Feldinformationen ersetzt), :question: (wird durch Prompt ersetzt) und :context: (wird durch den Parameter context_prompt in Parameter ersetzt).

  • Dieser Scriptschritt kann für mehrsprachige Suchen verwendet werden, da KI-Modelle mehrere Sprachen verarbeiten können.

  • Wenn keine relevanten Datensätze gefunden werden, wird eine Mitteilung im Antwortziel (falls verwendet) zurückgegeben, und die Funktion Funktion „Hole ( LetzteFehlerNr )“ gibt den Fehler 401 („Kein Datensatz entspricht der Abfrage“) zurück.

  • Dieser Scriptschritt kann keine Suchvorgänge ausführen, die Statistikfunktionen erfordern (z. B. Suchen des Datensatzes mit dem höchsten Wert in einem Feld). Das Modell kann jedoch eine Suchabfrage zurückgeben, die Sortierkriterien enthält, um entsprechende Datensätze zu identifizieren (z. B. Sortieren der Datensätze nach dem Feld „Preis“ in absteigender Reihenfolge).

Beispiel 1 

Konfiguriert ein KI-Konto, wechselt zum Layout „Kontakte“ und sucht dann mit diesem Scriptschritt im aktuellen Layout nach Kontakten mit dem Namen „Alea“. Dieser Scriptschritt sendet die suchbaren Felder des aktuellen Layouts und den Prompt „Kontakte suchen namens Alea“ an das Modell. Das Modell sendet eine Suchabfrage zurück (möglicherweise eine Abfrage nach „Alea“ im Feld „Name“), und dieser Scriptschritt führt die Suche durch und aktualisiert die Ergebnismenge im aktuellen Fenster.

Kopieren
KI-Konto konfigurieren [ Kontoname: "mein-Konto" ; Modellanbieter: OpenAI ; API-Schlüssel: "sk-..." ]

Gehe zu Layout [ "Kontakte" (Kontakte) ; Animation: Keine ]

Suchen mit natürlicher Sprache [ Kontoname: "mein-Konto" ; Modell: "gpt-4o" ; Prompt: "Kontakte suchen namens Alea" ; Hole: Ergebnismenge ]

Beispiel 2 

Konfiguriert ein KI-Konto, fordert den Benutzer zur Eingabe einer Abfrage auf, führt die Suche durch und gibt die Daten der Ergebnismenge als JSON in der Variablen $$ErgebnismengeDaten zurück. Abfragen werden im aktuellen Layout durchgeführt.

Kopieren
KI-Konto konfigurieren [ Kontoname: "mein-Konto" ; Modellanbieter: OpenAI ; API-Schlüssel: "sk-..." ]

Gehe zu Layout [ "Produkte" (Produkte) ; Animation: Keine ]

Eigenes Dialogfeld anzeigen [ "Produkte suchen:" ; $$BenutzerPrompt ]

Wenn [ nicht IstLeer ( $$BenutzerPrompt ) ]

    Suchen mit natürlicher Sprache [ Kontoname: "mein-Konto" ; Modell: "gpt-4o" ; Prompt: $$BenutzerPrompt ; Hole: Ergebnismenge als JSON ; Antwortziel: $$ErgebnismengeDaten ]
    
    Eigenes Dialogfeld anzeigen [ "Ergebnismenge Daten:" ; JSONFormatElements ( $$ErgebnismengeDaten ) ]
    
Ende (wenn)

Mögliche Ausgabe gespeichert in $$ErgebnismengeDaten (formatiert mit JSONFormatElements), vorausgesetzt, der Prompt lautete „Produkte mit einem Preis unter 6 suchen und nach Preis absteigend sortieren“:

Kopieren
{
    "mitteilungen"
    [
        {
            "code" : "0",
            "mitteilung" : "OK"
        }
    ],
    "antwort"
    {
        "daten"
        [
            {
                "feldDaten"
                {
                    "Preis" : 5.99,
                    "ProduktID" : 107,
                    "ProduktName" : "Schutzbrillen",
                    "Status" : "Auf Lager"
                },
                "modId" : "0",
                "portalDaten" : {},
                "datensatzIDNr" : "61"
            },
            {
                "feldDaten"
                {
                    "Preis" : 5.5,
                    "ProduktID" : 122,
                    "ProduktName" : "Spachtelmesser",
                    "Status" : "Auf Lager"
                },
                "modId" : "0",
                "ausschnittDaten" : {},
                "datensatzIDNr" : "76"
            }
        ],
        "datenInfo"
        {
            "datenbank" : "Bestellsystem",
            "AnzahlGefundeneDatensätze" : 2,
            "layout" : "Produkte",
            "AnzahlZurückgegebeneDatensätze" : 2,
            "tabelle" : "Produkte",
            "AnzahlDatensätzeGesamt" : 42
        }
    }
}

Beispiel 3 

Konfiguriert ein KI-Konto und anschließend eine benutzerdefinierte Prompt-Vorlage, die den vordefinierten Prompt für eine Suchabfrage verwendet. Der vordefinierte Prompt beschreibt das JSON-Format für eine Suchabfrage und enthält Folgendes: Verwenden Sie die folgenden Informationen als Kontext: \":context:\".

Nachdem Sie zum Layout „Produkte“ gewechselt und die Variable $$Heute auf eine in natürlicher Sprache formulierte Phrase gesetzt haben, die später für den Kontext verwendet werden soll, ersetzt dieser Scriptschritt die in der Prompt-Vorlage verwendete Konstante :context: durch den Wert des Schlüssels context_prompt in Parameter. Anschließend sendet es diese zusammen mit dem Prompt „Datensätze suchen, die heute erstellt wurden, sortiert nach Produktname“ an das Modell.

Das Modell gibt die Suchabfrage als JSON-Objekt in der Variablen $$SuchabfrageJSON zurück, die Sie zu Debugging-Zwecken verwenden können.

Kopieren
KI-Konto konfigurieren [ Kontoname: "mein-Konto" ; Modellanbieter: OpenAI ; API-Schlüssel: "sk-..." ]

Prompt-Vorlage konfigurieren [ Vorlagenname: "SuchenHeute" ; Modellanbieter: OpenAI ; Vorlagentyp: Suchabfrage ; Suchabfrage-Prompt: "Nur eine JSON-Layoutabfrage generieren und zurückgeben, um eine Suchabfrage durchzuführen ..." ]

Gehe zu Layout [ "Produkte" (Produkte) ; Animation: Keine ]

Variable setzen [ $$Heute ; Wert: "Heute ist " & Hole ( SystemDatum ) ]

Suchen mit natürlicher Sprache [ Kontoname: "mein-konto" ; Modell: "gpt-4o" ; Prompt: "Datensätze suchen, die heute erstellt wurden, sortiert nach Produktname" ; Hole: Suchabfrage als JSON ; Parameter: JSONSetElement ( "{}" ; "context_prompt" ; $$Heute ; JSONString ) ; Antwortziel: $$SuchabfrageJSON ]

Eigenes Dialogfeld anzeigen [ "Generierte Suchabfrage" ; JSONFormatElements ( $$SuchabfrageJSON ) ]

Mögliche Ausgabe, gespeichert in $$SuchabfrageJSON (formatiert mit JSONFormatElements), vorausgesetzt, das aktuelle Datum ist 01.07.2025 und das Layout enthält die Felder Erstellungsdatum und ProduktName:

Kopieren
{
    "layouts" : "Produkte",
    "abfrage"
    [
        {
            "Produkte::Erstellungsdatum" : "01.07.2025"
        }
    ],
    "sortieren"
    [
        {
            "feldName" : "Produkte::ProduktName",
            "Sortierfolge" : "aufsteigend"
        }
    ]
}