RAG-Aktion ausführen
Sendet ein Prompt an einen RAG-Space auf dem KI-Modellserver, 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.
-
Zusätzliche Optionen verfügbar, wenn Aktion auf 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 hinzu, der synchron übertragen wird.
-
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.
-
Vertikalen Text erkennen verbessert die Textextraktion aus PDF-Dateien, die vertikalen Text enthalten, der häufig in japanischen literarischen Werken, Zeitungen, Regierungsdokumenten und wissenschaftlichen Arbeiten zu finden ist. Diese Option ist nicht verfügbar, wenn RAG-Daten auf Aus Text festgelegt ist.
-
Tokens pro Textblock ist ein numerischer Ausdruck, der angibt, wie viele Tokens in jedem Textblock enthalten sein sollen, wenn Text oder PDF-Dateien zum RAG-Bereich hinzugefügt werden. Gültige Werte sind 75 bis 512. Wenn nicht angegeben oder auf 0 gesetzt, wird der Wert verwendet, der für den KI-Modellserver in Admin Console konfiguriert ist (standardmäßig 200 Token).
-
Antwortziel gibt das Feld oder die Variable an, in dem bzw. der ein vom KI-Modellserver zurückgegebenes JSON-Objekt zum hinzugefügten Dokument gespeichert werden soll. Siehe Beschreibung.
Zusätzliche Optionen, die verfügbar sind, wenn Aktion auf Prompt senden gesetzt 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 „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, der Folgendes enthalten kann:
-
FileMaker-Client-Parameter, die vor dem Absenden der Anfrage verarbeitet und entfernt werden:
CURLOPT_TIMEOUTlegt eine maximale Zeit (in Sekunden) fest, innerhalb derer die Anfrage abgeschlossen sein muss. Der Wert muss eine nicht-negative ganze Zahl sein. Beispiel:{"CURLOPT_TIMEOUT": 30}. Wenn innerhalb dieser Zeit keine Antwort erfolgt, bricht der FileMaker-Client die Anfrage ab, und dieser Scriptschritt gibt den Fehlercode 1629 („Verbindungszeitfehler“) zurück. -
Parameter des KI-Modellservers, die die in Admin Console konfigurierten Einstellungen nur für die Dauer dieses Scriptschritts überschreiben. Sofern nicht anders angegeben, werden die in Admin Console festgelegten Werte verwendet. Diese Parameter werden verarbeitet und entfernt, bevor alle anderen Parameter, die Sie in das JSON-Objekt aufnehmen, direkt an den Modellanbieter weitergeleitet werden.
Einzelheiten finden Sie in der Beschreibung.
-
Modellanbieter-spezifische Parameter modellieren, die zusammen mit dem Prompt direkt an den Modellanbieter übergeben werden. Beispiel:
{"Temperatur": 0.7, "seed": 42}.Hinweis Die vom verwendeten Modell unterstützten Parameter und Werte entnehmen Sie bitte der Dokumentation des Modellanbieters.
-
Zusätzliche Optionen, die verfügbar sind, wenn Aktion auf Daten entfernen gesetzt 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:Kopieren{"id" : ["5f7677a0-3258-55a3-bc86-737005cb3574", "f95d4266-66cd-5b50-a01b-07a4dd66c501"]}Dokument-IDs, die beim Hinzufügen des Dokuments in Antwortziel zurückgegeben werden, können gespeichert und später zum Löschen eines Dokuments verwendet werden. Oder verwenden Sie die Funktion „GetRAGSpaceInfo“, um die IDs aller Dokumente in einem RAG-Space abzurufen.
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 KI-Scriptschritt können Sie einen Wissenscache mit Dokumenten (Textdaten und PDF-Dateien) auf Claris AI Model Server 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 „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:
-
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.
-
Der KI-Modellserver weist dem Dokument eine ID zu und verarbeitet es anschließend:
-
Wenn es sich bei dem Dokument um eine PDF-Datei handelt, extrahiert der Server nur den Text aus der PDF-Datei. Der extrahierte Text wird anschließend genauso verarbeitet wie Text, der über die Option Aus Text hinzugefügt wurde.
-
Der Server unterteilt den Text in Blöcke, basierend auf der Option Tokens pro Textblock (sofern angegeben) oder der in Admin Console konfigurierten Blockgröße.
Wenn der Text im JSONL-Format (JSON Lines) vorliegt – wobei jede Zeile ein gültiges JSON-Objekt darstellt –, erkennt der Server dieses Format automatisch und behandelt jede Zeile als eigenständige semantische Einheit: Jede Zeile wird separat verarbeitet, die Zeilen werden jedoch niemals miteinander zusammengefügt. Dies trägt dazu bei, die Suchgenauigkeit für strukturierte Daten zu verbessern, beispielsweise für Daten, die aus einer FileMaker-Tabelle hinzugefügt wurden, wobei jeder Datensatz als einzelne JSON-Zeile formatiert werden kann, wodurch sichergestellt wird, dass die Datensatzgrenzen erhalten bleiben.
-
Schließlich ermittelt der Server Einbettungsvektoren für alle Textblöcke mithilfe des Text-Einbettungsmodells, das auf dem Server für RAG konfiguriert ist.
-
-
Wenn ein Antwortziel angegeben wird, gibt der KI-Modellserver ein JSON-Objekt zurück, das die Dokument-ID und die Metadaten des hinzugefügten Dokuments enthält. Auf diese Weise können Sie die Dokument-ID für eine spätere Verwendung speichern (z. B. zum Löschen des Dokuments).
Das zurückgegebene JSON-Objekt enthält folgende Schlüssel:
-
id: Die vom KI-Modellserver zugewiesene Dokument-ID als hexadezimal kodierter Universally Unique Identifier (UUID). Weitere Informationen zum ID-Format finden Sie unter „Hinweise“. -
Modell: Das Einbettungsmodell, das vom KI-Modellserver verwendet wird, um Einbettungsvektoren für das Dokument zu generieren. -
RAG_Space_ID: Die ID des RAG-Space, zu dem das Dokument hinzugefügt wurde. -
ErgebnisoderFehler:-
Ergebnis: Der Status des hinzugefügten Dokuments, wenn kein Fehler vorliegt. Bei erfolgreich synchron übertragenen Dokumenten lautet der Wert"ok". Bei asynchron übertragenen Dokumenten handelt es sich bei dem Wert um einen String, der die Speicherplatz-ID und den zwischengespeicherten Dateinamen enthält, da der Vorgang noch nicht abgeschlossen ist. -
Fehler: Ein String mit einer Fehlermeldung, der angezeigt wird, wenn beim KI-Modellserver ein Fehler auftritt.
-
-
Text oder Datei, je nach der Option für RAG-Daten:
-
Text: Der Text des Dokuments, wenn das Hinzufügen über die Option Aus Text für RAG-Daten erfolgt. -
Datei: Der Dateiname der PDF-Datei, wenn das Hinzufügen über die Datei- oder Container-Optionen für RAG-Daten erfolgt.
-
-
Nutzung: Informationen zur Token-Nutzung bei der synchronen Übertragung eines Dokuments. Das zurückgegebene JSON-Objekt lautet{"Prompt_Token":<Zahl>, "Gesamt_Token":<Zahl>}, wobeiPrompt_Tokendie Anzahl der Token in der Eingabe (die während der Einbettung eingebetteten Textabschnitte) undGesamt_Tokendie Gesamtzahl der verarbeiteten Token ist. Wenn der KI-Modellserver so konfiguriert ist, dass die Token-Nutzung nicht protokolliert wird, werden keine Token-Zahlen zurückgegeben.
Hinweis Bei asynchron übertragenen Dokumenten geben die Schlüssel
RAG_Space_ID,ModellundNutzungden Wert"N/A"zurück, da diese Werte erst nach Abschluss der Verarbeitung verfügbar sind. -
Aktion „Prompt senden“
Bei diesem Vorgang wird der Benutzer-Prompt an den KI-Modellserver gesendet, um die relevantesten Daten aus dem angegebenen RAG-Space abzurufen; anschließend werden der Benutzer-Prompt zusammen mit der Prompt-Vorlage und den RAG-Inhalten an das KI-Modell gesendet. Der Prozess umfasst folgende Schritte:
-
Der Scriptschritt sendet den durch Prompt senden angegebenen Prompt und die Space ID an den unter RAG-Kontoname angegebenen KI-Modellserver.
-
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 in Textform (N kann in Admin Console konfiguriert oder über die Option Parameter überschrieben werden, wie unten gezeigt).
-
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.
-
Das Modell gibt eine Antwort zurück, die der Scriptschritt in Antwortziel speichert.
KI-Modellserver-Parameter
Für die Option Parameter können Sie die folgenden Schlüssel und Werte verwenden, die spezifisch für den KI-Modellserver sind, um das Verhalten dieses Scriptschritts anzupassen. Sofern angegeben, überschreiben diese Werte die in Admin Console festgelegten Einstellungen. Dies ist nützlich, wenn verschiedene Prompts unterschiedliche Genauigkeitsstufen oder Kontextgrößen erfordern (beispielsweise bei der Abfrage eines großen Dokumentensatzes im Gegensatz zu einem kleinen). Wenn kein Schlüssel angegeben wird, werden die in Admin Console konfigurierten Werte verwendet.
|
Parameterschlüssel |
Beschreibung |
Bereich von Werten |
|
|
Mindestwert für die Cosinus-Ähnlichkeit, damit RAG-Ergebnisse in den Kontext aufgenommen werden. Höhere Werte geben weniger, dafür aber relevantere Ergebnisse zurück. |
-1 bis 1 |
|
|
Maximale Ganzzahl top-platzierter Dokumentblöcke, die in den an das KI-Modell gesendeten Kontext aufgenommen werden sollen. Ein Wert von 0 bedeutet, dass kein RAG-Inhalt vorhanden ist. |
1 bis 100 |
Beispielsweise legt dieses JSON-Objekt die folgenden Schlüssel in der Option Parameter fest:
{
"Ähnlichkeit_Schwelle" : .5,
"Zahl_top_platzierte_Ergebnisse" : 10
}
Aktion „Daten entfernen“
Diese Aktion 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.
-
Dokumente, die vor Version 26.0.1 des KI-Modellservers zu einem RAG-Space hinzugefügt wurden, haben numerische Dokument-IDs (zum Beispiel
1,2,3). Ab Version 26.0.1 sind Dokument-IDs UUID-Strings (zum Beispiel„5f7677a0-3258-55a3-bc86-737005cb3574“). Wenn Sie mit RAG-Spaces arbeiten, die Dokumente enthalten, die vor und nach der Änderung des ID-Formats hinzugefügt wurden, sollten Ihre Scripts beide Dokument-ID-Formate verarbeiten können.Siehe Beispiel 3.
-
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 von Prompt senden) und:context:(ersetzt durch die aus dem RAG-Space abgerufenen Dokumentblöcke) verwenden. -
Für die Option Tokens pro Textblock:
-
Größere Blöcke bewahren mehr Kontext, können jedoch die Genauigkeit beim Abrufen beeinträchtigen. Kleinere Blockgrößen verbessern die Genauigkeit, können jedoch zu Kontextverlusten führen. Erwägen Sie die Verwendung höherer Werte (zum Beispiel 250 bis 300) für Sprachen wie Japanisch, Chinesisch oder Koreanisch, bei denen die Tokenisierung weniger Zeichen pro Token ergibt, sodass eine feste Tokenanzahl deutlich weniger Text abdeckt.
-
Um die Blockgröße bestehender Dokumente in einem RAG-Space zu ändern, müssen Sie die Dokumente aus dem RAG-Space entfernen und sie mit einer neuen Blockgröße erneut hinzufügen.
-
Wenn Sie einen Wert außerhalb des zulässigen Bereichs angeben, gibt dieser Scriptschritt den Fehlercode 887 ("Ungültige RAG-Space-Aktion") zurück.
-
-
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.
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 Nutzung des KI-Modellservers ein.
Die Variable $parameter enthält den Wert Ähnlichkeit_Schwelle mit dem Wert 0,6, um sicherzustellen, dass nur hochrelevante RAG-Ergebnisse berücksichtigt werden, sowie den Wert Zahl_top_platzierte_Ergebnisse mit dem Wert 5, um den Kontext auf die fünf relevantesten Dokumentblöcke zu beschränken und damit die in Admin Console konfigurierten Standardwerte zu überschreiben. Außerdem enthält sie CURLOPT_TIMEOUT, um die Abfrage nach 30 Sekunden abzubrechen, falls keine Antwort erfolgt.
Wenn das Script den Prompt sendet, übermittelt es die Parameter Temperatur und max_Token an das Modell, damit dieses eine Antwort generiert, und leitet die Antwort an ein Feld weiter.
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 ]
Variable setzen [ $Parameter ; Wert:
JSONSetElement ( "{}" ;
[ "Temperatur" ; .3 ; JSONNumber ] ;
[ "max_Token" ; 500 ; JSONNumber ] ;
[ "Ähnlichkeit_Schwelle" ; .6 ; JSONNumber ] ;
[ "Zahl_top_platzierte_Ergebnisse" ; 5 ; JSONNumber ]
)
]
RAG-Aktion ausführen [ RAG-Kontoname: "Kundensupport-RAG-Konto" ; Space ID: "knowledge-base" ; Aktion: Prompt senden ; Prompt senden: "Wie sind die Rückgabebedingungen für defekte Produkte?" ; KI-Kontoname: "KI_Modell_Server ; Modell: Global::Modellname ; Stream: Ein ; Antwortziel: Kundensupport::KI_Antwort ; Parameter: "{\"Temperatur\": , \"max_Token\": }" ]
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. Die Dokument-ID wird von Antwortziel zurückgegeben und in $RAGAntwortHinzufügen gespeichert. Beispiel:
{
"Datei": "Richtlinien.pdf",
"ID": "f95d4266-66cd-5b50-a01b-07a4dd66c501",
"Modell": "multi-qa-MiniLM-L6-cos-v1",
"Rag_Space_ID": "knowledge-base",
"Ergebnis": "ok",
"Nutzung": {
"Prompt_Token": 3803,
"Gesamt_Token": 3803
}
}
Zunächst ruft das Script die Dokument-ID aus $RAGAntwortHinzufügen ab und speichert sie in $ID. Außerdem ermittelt es den Datentyp der ID mithilfe der Funktion „JSONGetElementType“ und speichert ihn in $IDTyp. Der Datentyp lautet JSONString für UUIDs oder JSONNumber für numerische IDs (Einzelheiten zu den ID-Formaten finden Sie unter „Hinweise“).
Anschließend erstellt das Script die Variable $IDArrayZumEntfernen als JSON-Objekt mit einem Schlüssel ID, dessen Wert ein Array ist, das die zu entfernende Dokument-ID enthält. Beim Hinzufügen der ID zum Array verwendet das Script $IDTyp, um den ursprünglichen Datentyp aus $RAGAntwortHinzufügen beizubehalten. Dieser Ansatz stellt sicher, dass das Script korrekt funktioniert, unabhängig davon, welches ID-Format der KI-Modellserver verwendet.
Abschließend ruft das Script „RAG-Aktion ausführen“ auf, um die Daten zu entfernen, indem die Option Parameter auf $IDArrayZumEntfernen gesetzt wird.
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" ; Antwortziel: $RAGAntwortHinzufügen ]
Variable setzen [ $ID ; Wert: JSONGetElement ( $RAGAntwortHinzufügen ; "ID" ) ]
Variable setzen [ $IDTyp ; Wert: JSONGetElementType ( $RAGAntwortHinzufügen ; "ID" ) ]
Variable setzen [ $IDArrayZumEntfernen ; Wert:
JSONSetElement ( "{}" ; "ID" ;
JSONSetElement ( "[]" ; 0 ; $ID ; $IDTyp ) ;
JSONArray
)
]
RAG-Aktion ausführen [ RAG-Kontoname: "Kundensupport-RAG-Konto" ; Space ID: "knowledge-base" ; Aktion: Daten entfernen ; Parameter: $IDArrayZumEntfernen ]
Beispiel 4 - Dokumente mit unterschiedlichen Blockgrößen hinzufügen
Fügt sowohl englische als auch japanische Dokumentation zum selben RAG-Space hinzu, wobei für jede Sprache unterschiedliche, optimierte Blockgrößen verwendet werden.
Das Script verwendet für die englische technische Dokumentation einen kleineren Block (150 Token), um eine präzise Suche nach bestimmten technischen Details zu ermöglichen.
Für die japanischen regulatorischen Dokumente verwendet das Script eine größere Blockgröße (300 Token), da die Tokenisierung im Japanischen kürzere Textsegmente pro Token erzeugt, sodass mehr Token erforderlich sind, um einen ausreichenden Kontext zu gewährleisten. Das Script wählt außerdem die Option Vertikalen Text erkennen aus, um die Extraktion von vertikalem Text aus dieser PDF-Datei zu verbessern.
RAG-Konto konfigurieren [ RAG-Kontoname: "Produkt-Dokumente-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: "Produkt-Dokumente-RAG-Konto" ; Space ID: "Produkt-Wissen" ; Aktion: Daten hinzufügen ; RAG-Daten: Aus Datei ; "TechnischeDaten_DE.pdf" ; Tokens pro Textblock: 150 ]
RAG-Aktion ausführen [ RAG-Kontoname: "Produkt-Dokumente-RAG-Konto" ; Space ID: "Produkt-Wissen" ; Aktion: Daten hinzufügen ; RAG-Daten: Aus Datei ; "Vorschriften_JA.pdf" ; Vertikalen Text erkennen ; Tokens pro Textblock: 300 ]
Beispiel 5 - Datensätze als JSONL-Text hinzufügen
Fügt FAQ-Datensätze aus einer FileMaker-Tabelle im JSONL-Format zu einem RAG-Space hinzu, wobei jede Zeile einen vollständigen FAQ-Datensatz darstellt.
Das Script durchläuft die Datensätze in der FAQ-Tabelle und erstellt einen JSONL-String, in dem jede Zeile ein JSON-Objekt darstellt, das die Fragen-ID, die Frage und die Antwort enthält. Wenn dieser im JSONL-Format vorliegende Text in den RAG-Space eingefügt wird, erkennt der KI-Modellserver das Format automatisch und behandelt jede Zeile (jeden FAQ-Datensatz) als eigenständige semantische Einheit, wodurch die Grenzen der Datensätze beibehalten und die Genauigkeit der Suchergebnisse verbessert werden.
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 ]
Variable setzen [ $jsonlText ; Wert: "" ]
Gehe zu Layout [ "FAQ" (FAQ) ; Animation: Ohne ]
Gehe zu Datens./Abfrage/Seite [ Erste(r) ]
Schleife (Anfang) [ Löschen: Immer ]
Variable setzen [ $jsonZeile ; Wert:
JSONSetElement ( "{}" ;
[ "ID" ; FAQ::FrageID ; JSONString ] ;
[ "Frage" ; FAQ::Frage ; JSONString ] ;
[ "Antwort" ; FAQ::Antwort ; JSONString ]
)
]
Variable setzen [ $jsonlText ; Wert: $jsonlText & $jsonZeile & ¶ ]
Gehe zu Datens./Abfrage/Seite [ Nächste(r) ; Nach letztem beenden: Ein ]
Schleife (Ende)
RAG-Aktion ausführen [ RAG-Kontoname: "Kundensupport-RAG-Konto" ; Space ID: "knowledge-base" ; Aktion: Daten hinzufügen ; RAG-Daten: Aus Text ; $jsonlText ; Antwortziel: $RAGAntwort ]
Die resultierende Variable $jsonlText enthält JSONL-formatierten Text wie beispielsweise:
{"ID":"001","Frage":"Wie lauten Ihre Rückgabebedingungen?","Antwort":"Artikel können innerhalb von 30 Tagen zurückgegeben werden ..."}
{"ID":"002","Frage":"Wie verfolge ich meine Bestellung?","Antwort":"Sie können Ihre Bestellung anhand der Sendungsverfolgungsnummer verfolgen ..."}
{"ID":"003","Frage":"Versenden Sie auch international?","Antwort":"Ja, wir versenden in über 100 Länder weltweit ..."}
Wenn eine Zeile kurz genug ist, fasst der KI-Modellserver sie zu einem einzigen Block zusammen. Wenn eine Zeile die Obergrenze für Zeichen pro Block überschreitet, wird die Zeile in mehrere Blöcke aufgeteilt. Da Zeilen niemals zusammengefügt werden, enthalten die bei der Abfrage des RAG-Space abgerufenen Blöcke nur Inhalte aus einem einzigen FAQ-Datensatz, wodurch sich leichter feststellen lässt, welcher Datensatz die relevanten Informationen geliefert hat.