RAG-Aktion ausführen

Sendet ein Prompt an einen RAG-Space auf dem KI-Modell-Server, der von einem RAG-Konto angegeben wurde, oder fügt Daten hinzu bzw. entfernt sie.

Optionen 

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

  • Space ID ist ein Textausdruck, der die eindeutige ID des RAG-Space angibt, mit dem im angegebenen RAG-Konto gearbeitet werden soll.

  • Aktion gibt die Art der Operation an, die auf einem RAG-Space ausgeführt werden soll. Diese Option steuert die Verfügbarkeit anderer Optionen im Scriptschritt. Auswahlmöglichkeiten:

    • Daten hinzufügen fügt ein Dokument (Textdaten oder eine PDF-Datei) zu einem RAG-Space hinzu.

    • Prompt senden sendet einen Prompt, um einen RAG-Space abzufragen und eine KI-generierte Antwort zu erhalten.

    • Daten entfernen entfernt Dokumente aus einem RAG-Space.

Optionen nur verfügbar, wenn für Aktion die Option Daten hinzufügen festgelegt ist:

  • RAG-Daten gibt das Dokument an, das zum RAG-Space hinzugefügt werden soll:

    • Aus Text fügt Text direkt über einen Textausdruck ein.

    • Aus Datei fügt eine PDF-Datei hinzu, die über einen Pfad angegeben und synchron übertragen wird.

    • Aus Datei (Async) fügt eine PDF-Datei hinzu, die über einen Pfad angegeben und asynchron übertragen wird (am besten für große Dateien geeignet).

    • Aus Container fügt eine PDF-Datei aus einem Containerfeld hinzu, die synchron übertragen wird.

    • Aus Container (Async) fügt eine PDF-Datei aus einem Containerfeld hinzu, die asynchron übertragen wird (am besten für große Dateien geeignet).

  • Eingabedatei gibt eine Liste mit einem oder mehreren Pfaden für eine PDF-Datei an. Der Scriptschritt durchsucht die Liste und fügt die erste PDF-Datei hinzu, die er findet. Pfade müssen einen der image-Pfadpräfixe verwenden. Weitere Informationen finden Sie unter Erstellen von Dateipfaden.

  • Containerfeld gibt das Containerfeld an, in dem die hinzuzufügende PDF-Datei gespeichert ist.

Optionen nur verfügbar, wenn für Aktion die Option Prompt senden festgelegt ist:

  • Der Wert für Prompt senden ist ein Textausdruck für den Benutzer-Prompt oder die Frage in natürlicher Sprache.

  • KI-Kontoname ist ein Textausdruck für den Namen des KI-Kontos, das zum Generieren einer Antwort verwendet werden soll. Verwenden Sie in der aktuellen Datei den Scriptschritt „KI-Konto konfigurieren“, um dieses 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.

  • Stream steuert, wie die Antwort geliefert wird:

    • Ein: Die Antwort wird schrittweise abgerufen und übermittelt (Wort für Wort oder in Phrasen). Dadurch reagiert der FileMaker-Client möglicherweise schneller.

    • Aus: Die gesamte Antwort wird abgerufen, bevor sie verfügbar gemacht wird. Dies kann dazu führen, dass der FileMaker-Client nicht mehr reagiert, während er auf die vollständige Antwort wartet.

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

  • Antwortziel gibt das Feld oder die Variable an, in dem/der die Antwort aus dem Modell gespeichert werden soll.

  • 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' wie 03.09.2025"}.

Optionen nur verfügbar, wenn für Aktion die Option Daten entfernen festgelegt ist:

  • Parameter ist ein Textausdruck für ein JSON-Objekt, das einen ID-Schlüssel enthält, dessen Wert ein Array der IDs der Dokumente ist, die aus dem angegebenen RAG-Space entfernt werden sollen. Beispiel: {"ID" : [2, 3, 5, 7]}. Um die IDs aller Dokumente in einem RAG-Space zu erhalten, verwenden Sie die Funktion „GetRAGSpaceInfo“. Siehe Beispiel 3.

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 einen Wissenscache für Dokumente (Textdaten und PDF-Dateien) auf dem mit FileMaker Server bereitgestellten KI-Modellserver erstellen und verwalten. Sie können diesen Cache dann mit einer Technik namens Retrieval-Augmented Generation (RAG) nutzen. Mit dieser Technik sendet der Scriptschritt einen Prompt oder eine Frage an ein KI-Modell zusammen mit den relevantesten Fakten, die aus Ihrem Wissenscache abgerufen wurden, wodurch die Zuverlässigkeit und Genauigkeit der Antwort des Modells verbessert wird.

Die Option Aktion bestimmt, was dieser Scriptschritt bewirkt:

Aktion Ergebnis

Daten hinzufügen

Fügt RAG-Daten aus dem angegebenen Dokument hinzu: Text (als beliebiger Textausdruck), eine PDF-Datei über den Pfad oder eine PDF-Datei aus einem Containerfeld im aktuellen Datensatz oder einem Bezugsdatensatz. Der Prozess umfasst folgende Schritte:

  1. Der Scriptschritt sendet das Dokument an den KI-Modellserver.

    Wenn eine PDF-Datei hinzugefügt wird, sendet der Scriptschritt die Datei synchron oder asynchron, je nach der entsprechenden Option für RAG-Daten. Bei synchronem Senden fährt das Script erst mit dem nächsten Schritt fort, wenn die Dateiübertragung abgeschlossen ist. Bei asynchronem Senden fährt das Script mit dem nächsten Schritt fort, während die Dateiübertragung läuft (am besten für große Dateien geeignet), sodass der FileMaker-Client weiterhin auf Benutzerinteraktionen reagieren kann.

  2. Der KI-Modellserver weist dem Dokument eine ID zu. Bei einer PDF-Datei extrahiert er nur den Text aus der PDF-Datei, bei einem Textdokument zerlegt er das Textdokument in Blöcke. Anschließend ruft er mithilfe des für RAG auf dem Server konfigurierten Texteinbettungsmodells Einbettungsvektoren für alle Blöcke ab.

Prompt senden

Sendet den Benutzer-Prompt an den KI-Modellserver, um die relevantesten Daten aus dem angegebenen RAG-Space abzurufen, und sendet dann den Benutzer-Prompt zusammen mit der Prompt-Vorlage und dem RAG-Inhalt an das KI-Modell. Der Prozess umfasst folgende Schritte:

  1. Der Scriptschritt sendet den durch Prompt senden angegebenen Prompt und die Space ID an den unter RAG-Kontoname angegebenen KI-Modellserver.

  2. Der KI-Modellserver ruft Einbettungsvektoren für den Prompt ab, führt eine semantische Suche nach dem Prompt im angegebenen RAG-Space durch und gibt die RAG-Ergebnisse an den Scriptschritt zurück.

    Die RAG-Ergebnisse sind die N-relevantesten Dokumentausschnitte aus dem RAG-Space als Text (N kann in der FileMaker Server Admin Console konfiguriert werden).

  3. Der Scriptschritt sendet den Prompt, die Prompt-Vorlage, die Modell-Parameter und die RAG-Ergebnisse an das Modell, das durch KI-Kontoname und Modell angegeben ist.

  4. Das Modell gibt eine Antwort zurück, die der Scriptschritt in Antwortziel speichert.

Daten entfernen

Entfernt Dokumente aus einem RAG-Space. Sofern in der Option Parameter angegeben, werden nur die angegebenen Dokumente entfernt, andernfalls werden alle Dokumente im RAG-Space entfernt.

Hinweis  Das Entfernen von Dokumenten aus einem RAG-Space kann nicht rückgängig gemacht werden. Bewahren Sie die Originaldokumente an einem anderen Ort auf, falls Sie sie wieder hinzufügen möchten.

Hinweise 

  • Ein RAG-Konto muss mit dem Scriptschritt „RAG-Konto konfigurieren“ konfiguriert werden, bevor dieser Scriptschritt verwendet werden kann.

  • Für Prompt senden-Aktionen muss außerdem ein KI-Konto mit dem Scriptschritt „KI-Konto konfigurieren“ konfiguriert werden.

  • PDF-Dateien mit Verschlüsselung oder Passwortschutz können nicht mit der Aktion Daten hinzufügen verarbeitet werden.

  • RAG-Spaces sind persistent und behalten ihre Dokumente, bis sie explizit mit der Aktion Daten entfernen entfernt werden.

  • Wenn Sie eine PDF-Datei mit demselben Dateinamen wie eine bereits im RAG-Space vorhandene Datei hinzufügen, wird die vorhandene PDF-Datei entfernt und die neue PDF-Datei mit einer neuen Dokument-ID hinzugefügt. Dieses Verhalten ist unabhängig davon, ob Sie die PDF-Datei über einen Pfad oder ein Containerfeld hinzufügen.

  • Wenn Sie einen Prompt-Vorlagennamen angeben, verwendet dieser Scriptschritt die Vorlage, die über den Scriptschritt „Prompt-Vorlage konfigurieren“ eingerichtet wurde. Prompt-Vorlagen können Konstanten wie :question: (ersetzt durch den Wert Prompt senden) und :context: (ersetzt durch den Parameter context_prompt in Parameter) verwenden.

  • Die Qualität der KI-Antworten hängt vom Modell und der Relevanz und Qualität der Dokumente ab, die dem RAG-Space hinzugefügt wurden.

  • Wenn dieser Scriptschritt in FileMaker WebDirect die Aktion Daten hinzufügen verwendet und RAG-Daten auf Aus Datei oder Aus Datei (Async) eingestellt ist, wird das Dialogfeld „Einfügen“ geöffnet, in dem der Benutzer eine PDF-Datei zum Hochladen auswählen kann. Die Option Eingabedatei wird ignoriert.

Beispiel 1 - Text zu einem RAG-Space hinzufügen

Fügt Textinhalte zu einem RAG-Space für eine Kunden-Knowledge Base hinzu.

Kopieren
RAG-Konto konfigurieren [ RAG-Kontoname: "Kundensupport-RAG-Konto" ; Endpunkt: "https://meinserver.beispiel.com/llm/v1/" ; API-Schlüssel: "eyJh..." ; SSL-Zertifikate verifizieren ]

RAG-Aktion ausführen [ RAG-Kontoname : "Kundensupport-RAG-Konto" ; Space ID: "knowledge-base" ; Aktion: Daten hinzufügen ; RAG-Daten: Aus Text ; "Richtlinien und Verfahren des Kundensupports für die Bearbeitung von Rückgaben und Umtausch ..." ]

Beispiel 2- Prompt zum Abfragen eines RAG-Spaces senden

Sendet einen Prompt, um denselben RAG-Space wie in Beispiel 1 abzufragen, und speichert die Antwort in einem Feld.

Das Script richtet sowohl das RAG-Konto als auch das KI-Konto für die Verwendung des mit FileMaker Server bereitgestellten KI-Modellservers ein. Wenn es den Prompt sendet, sendet das Script benutzerdefinierte Parameter zur Generierung einer Antwort an das Modell und überträgt die Antwort in ein Feld.

Kopieren
RAG-Konto konfigurieren [ RAG-Kontoname: "Kundensupport-RAG-Konto" ; Endpunkt: "https://meinserver.beispiel.com/llm/v1/" ; API-Schlüssel: Global::RAG_API_Schlüssel ; SSL-Zertifikate verifizieren ]

KI-Konto konfigurieren [ Kontoname: "KI-Modell-Server" ; Modellanbieter: Benutzerdefiniert; Endpunkt: "https://meinserver.beispiel.com/llm/v1/" ; API-Schlüssel: Global::Text_Gen_API_Schlüssel ; SSL-Zertifikate verifizieren ]

RAG-Aktion ausführen [ RAG-Kontoname: "Kundensupport-RAG" ; Space ID: "knowledge-base" ; Aktion: Prompt senden ; Prompt senden: "Welche Rückgabebedingungen gelten für defekte Produkte?" ; KI-Kontoname: "KI-Modell-Server ; Modell: Global::Modellname ; Stream: Ein ; Antwortziel: Kundensupport::KI_Antwort ; Parameter: "{\"Temperatur\": 0.3, \"max_Token\": 500}" ]

Ein mögliches Ergebnis im Feld „Kundensupport::KI_Antwort“ beginnt mit „Die Rückgabebedingungen für defekte Produkte ermöglichen es Ihnen, das Element innerhalb von 14 Kalendertagen zurückzugeben.“

Beispiel 3 – PDF-Datei zu einem RAG-Space hinzufügen oder daraus entfernen

Fügt eine PDF-Datei mit dem Namen „Richtlinien.pdf“ zu einem RAG-Space hinzu und entfernt sie anschließend wieder.

Nachdem das RAG-Konto für die Verwendung auf dem KI-Modellserver konfiguriert wurde, fügt das Script die Datei „Richtlinien.pdf“ zum RAG-Space hinzu, indem es den Dateipfad angibt.

Bevor die Datei entfernt werden kann, muss das Script die Dokument-ID finden, die beim Hinzufügen der Datei vergeben wurde. Zunächst verwendet das Script die Funktion „GetRAGSpaceInfo“, um Informationen über den RAG-Space abzurufen. Anschließend ruft es für die Variable $id das Array Werte ab und verwendet eine „Solange“-Schleife, um das Element zu finden, dessen Dateiname-Schlüssel „Richtlinien.pdf” lautet, und gibt den Wert von id dieses Elements zurück.

Nachdem $idArrayToRemove auf den erforderlichen JSON-Wert gesetzt wurde, um $id anzugeben, ruft das Script den Schritt „RAG-Aktion ausführen“ auf, um die Daten zu entfernen, indem die Option Parameter auf $idArrayToRemove gesetzt wird.

Kopieren
RAG-Konto konfigurieren [ RAG-Kontoname: "Kundensupport-RAG-Konto" ; Endpunkt: "https://meinserver.beispiel.com/llm/v1/" ; API-Schlüssel: Global::RAG_API_Schlüssel ; SSL-Zertifikate verifizieren ]

RAG-Aktion ausführen [ RAG-Kontoname: "Kundensupport-RAG-Konto" ; Space ID: "knowledge-base" ; Aktion: Daten hinzufügen ; RAG-Daten: Aus Datei ; "Richtlinien.pdf" ]

Variable [ $ragSpaceInfo ; Wert: GetRAGSpaceInfo ( "Kundensupport-RAG-Kontot" ; "knowledge-base" ) ]

Variable setzen [ $id ; Wert: 
  Setze Var ( [
    json = $ragSpaceInfo ;
    values = JSONGetElement ( json ; "values" ) ;
    arrayCount = ValueCount ( JSONListKeys ( values ; "" ) ) ;
    
    search = While ( 
      [ i = 0 ; result = "" ] ; 
      
      i < arrayCount and IsEmpty ( result ) ; 
      
      [ 
        filename = JSONGetElement ( values ; "[" & i & "].filename" ) ;
        result = Case ( 
          filename = "Richtlinien.pdf" ; 
          JSONGetElement ( values ; "[" & i & "].id" ) ; 
          "" 
        ) ;
        i = i + 1 
      ] ; 
      
      result 
    )
  ] ;

  search
  )
]

Variable setzen [ $idArrayToRemove ; Wert: "{\"id\": [" & $id & "]}" ]

RAG-Aktion ausführen [ RAG-Kontoname: "Kundensupport-RAG-Konto" ; Space ID: "knowledge-base" ; Aktion: Daten entfernen ; Parameter: $idArrayToRemove ]