Exécuter une action RAG
Envoie un prompt à, ou ajoute et supprime des données de, l'espace RAG du serveur de modèle IA spécifié par un compte RAG.
Voir aussi
Options
-
Nom du compte RAG est une expression de type texte du compte RAG pour cette action de script. Dans le fichier actuel, utilisez l'action de script Configurer un compte RAG pour configurer le compte et lui attribuer ce nom avant l'exécution de cette action de script.
-
ID de l'espace est une expression de texte qui spécifie l'ID unique de l'espace RAG avec lequel travailler dans le compte RAG spécifié.
-
Action spécifie le type d'opération à effectuer dans un espace RAG. Cette option contrôle la disponibilité d'autres options dans l'action de script. Faites pour cela votre choix parmi les options suivantes :
-
Ajouter des données ajoute un document (données de texte ou fichier PDF) à un espace RAG.
-
Envoyer un prompt envoie un prompt pour interroger un espace RAG et obtenir une réponse générée par l'IA.
-
Supprimer des données supprime les documents d'un espace RAG.
-
Options supplémentaires disponibles lorsque Action est défini sur Ajouter des données :
-
Données RAG spécifie le document à ajouter à l'espace RAG :
-
Depuis texte ajoute du texte directement via une expression de texte, transférée de manière synchrone.
-
Depuis fichier ajoute un fichier PDF associé à un chemin, transféré de manière synchrone.
-
Depuis fichier (Async) ajoute un fichier PDF associé à un chemin, transféré de manière asynchrone (adapté aux fichiers volumineux).
-
Depuis conteneur ajoute un fichier PDF à partir d'une rubrique Conteneur, transféré de manière synchrone.
-
Depuis conteneur (Async) ajoute un fichier PDF à partir d'une rubrique Conteneur, transféré de manière asynchrone (adapté aux fichiers volumineux).
-
-
Fichier d'entrée spécifie une liste d'un ou plusieurs chemins pour un fichier PDF. L'action de script examine la liste et ajoute le premier fichier PDF localisé avec succès. Les chemins doivent utiliser l'un des préfixes de chemin
image. Consultez la section Création de chemins d'accès. -
Rubrique conteneur spécifie la rubrique conteneur qui stocke le fichier PDF à ajouter.
-
Détecter le texte vertical améliore l'extraction de texte à partir de fichiers PDF qui contiennent du texte vertical que l'on trouve couramment dans les ouvrages littéraires, les journaux, les documents gouvernementaux et les articles universitaires japonais. Cette option n'est pas disponible lorsque l'option Données RAG est définie sur Depuis texte.
-
Jetons par morceau de texte est une expression numérique qui spécifie le nombre de jetons à inclure dans chaque morceau de texte lors de l'ajout de textes ou de fichiers PDF à l'espace RAG. Les valeurs valides vont de 75 à 512. Si elle n'est pas spécifiée ou définie sur 0, la valeur configurée pour le serveur de modèle d'IA dans l'Admin Console est utilisée (200 jetons par défaut).
-
Cible de la réponse spécifie la rubrique ou la variable dans laquelle stocker un objet JSON renvoyé par le serveur de modèle d'IA à propos du document ajouté. Consultez la section Description.
Options supplémentaires disponibles lorsque l'option Action est définie sur Envoyer un prompt :
-
La valeur Envoyer un prompt est une expression de texte pour le prompt ou la question en langage naturel de l'utilisateur.
-
Nom de compte IA est une expression de texte pour le nom du compte IA à utiliser afin de générer une réponse. Dans le fichier actuel, utilisez l'action de script Configurer le compte IA pour configurer ce compte et lui attribuer ce nom avant l'exécution de cette action de script.
-
Modèle est le nom du modèle de génération de texte à utiliser. Spécifiez le nom du modèle en tant qu'expression de texte. Pour connaître les modèles pris en charge, consultez les caractéristiques techniques de FileMaker.
-
Flux contrôle la façon dont la réponse est fournie :
-
Activé : la réponse est récupérée et transmise de manière incrémentielle (mot par mot ou par phrases). Cela peut rendre le client FileMaker plus réactif.
-
Désactivé : l'intégralité de la réponse est récupérée avant qu'elle ne soit mise à disposition. Cela peut sembler rendre le client FileMaker moins réactif lorsqu'il attend la réponse complète.
-
-
Nom du modèle de prompt spécifie le nom d'un modèle de prompt personnalisé, configuré à l'aide de l'action de script Configurer un modèle de prompt. Utilisez cette option pour concevoir un prompt supplémentaire afin d'obtenir une réponse optimale de la part d'un modèle d'IA.
-
Cible de la réponse spécifie la rubrique ou la variable dans laquelle la réponse du modèle doit être stockée.
-
Paramètres est une expression textuelle pour un objet JSON qui peut inclure :
-
Paramètres client FileMaker traités et supprimés avant d'envoyer la requête :
CURLOPT_TIMEOUTdéfinit un délai maximum (en secondes) pour que la requête soit terminée. La valeur doit être un entier non négatif. Par exemple :{"CURLOPT_TIMEOUT": 30}. Si aucune réponse n'est obtenue passé ce délai, le client FileMaker annule la demande et cette action de script renvoie le code d'erreur 1629 ("La connexion a expiré"). -
Des paramètres du serveur de modèle d'IA remplaçant les paramètres configurés dans l'Admin Console uniquement pendant la durée de cette action de script. Si elle n'est pas spécifiée, les valeurs définies dans l'Admin Console sont utilisées. Ces paramètres sont traités et supprimés avant de passer tout autre paramètre que vous incluez dans l'objet JSON directement au fournisseur de modèles.
Consultez la section Description pour plus de détails.
-
Paramètres spécifiques au fournisseur de modèle transmis directement au fournisseur de modèles avec le prompt. Par exemple :
{"temperature": 0.7, "seed": 42}.Remarque Consultez la documentation du fournisseur de modèle pour connaître les paramètres et les valeurs pris en charge par le modèle que vous utilisez.
-
Options supplémentaires disponibles lorsque l'option Action est définie sur Supprimer des données :
-
Paramètres est une expression de texte pour un objet JSON contenant une clé
iddont la valeur est un tableau des ID des documents à supprimer de l'espace RAG spécifié. Par exemple :Copier{"id" : ["5f7677a0-3258-55a3-bc86-737005cb3574", "f95d4266-66cd-5b50-a01b-07a4dd66c501"]}Les ID de document renvoyés dans Cible de la réponse lorsque le document a été ajouté peuvent être stockés et utilisés plus tard pour supprimer un document. Ou, pour obtenir les ID de tous les documents dans un espace RAG, utilisez la fonction GetRAGSpaceInfo.
Compatibilité
| Produit | Prise en charge |
| FileMaker Pro | Oui |
| FileMaker Go | Oui |
| FileMaker WebDirect | Oui |
| FileMaker Server | Oui |
| FileMaker Cloud | Oui |
| FileMaker Data API | Oui |
| Publication Web personnalisée | Oui |
Provient de la version
22.0
Description
Cette action de script vous permet de créer et de gérer un cache de connaissances de documents (données textuelles et fichiers PDF) sur Claris AI Model Server. Vous pouvez ensuite tirer parti de ce cache avec une technique appelée génération augmentée par récupération (RAG). En utilisant cette technique, l'action de script envoie un prompt ou une question à un modèle d'IA avec les faits les plus pertinents récupérés à partir de votre cache, améliorant ainsi la fiabilité et la précision de la réponse du modèle.
L'option Action détermine ce qu'effectue cette action de script.
Action Ajouter des données
Cette action ajoute des Données RAG à partir du document spécifié : texte (n'importe quelle expression de texte), fichier PDF par chemin d'accès ou fichier PDF à partir d'une rubrique Conteneur dans l'enregistrement actuel ou lié. Le processus se présente comme suit :
-
L'action de script envoie le document au serveur de modèle d'IA.
Si vous ajoutez un fichier PDF, l'action de script envoie le fichier de manière synchrone ou asynchrone, selon l'option Données RAG. En cas d'envoi synchrone, le script ne passe pas à l'action suivante tant que le transfert de fichier n'est pas terminé. En cas d'envoi asynchrone, le script passe à l'action suivante pendant le transfert de fichiers (adapté aux fichiers volumineux), ce qui permet au client FileMaker de rester réactif aux interactions utilisateur.
-
Le serveur de modèle d'IA attribue un ID au document, puis le traite :
-
Si le document est un fichier PDF, le serveur n'extrait que le texte du fichier PDF. Le texte extrait est ensuite traité de la même manière que le texte ajouté à l'aide de l'option Depuis texte.
-
Le serveur divise le texte en morceaux en fonction de l'option Jetons par morceau de texte (si spécifié) ou de la taille du morceau configurée dans l'Admin Console.
Si le texte est au format JSONL (JSON Lines), où chaque ligne est un objet JSON valide, le serveur détecte automatiquement ce format et traite chaque ligne comme une unité sémantique distincte : chaque ligne est découpée séparément, mais les lignes ne sont jamais fusionnées. Cela permet d'améliorer la précision de la récupération des données structurées telles que celles ajoutées à partir d'une table FileMaker, où chaque enregistrement peut être formaté comme une seule ligne JSON, garantissant ainsi la préservation des limites des enregistrements.
-
Puis, le serveur obtient enfin des vecteurs d'intégration pour tous les morceaux en utilisant le modèle d'intégration de texte configuré pour RAG sur le serveur.
-
-
Si une Cible de réponse est spécifiée, le serveur de modèle d'IA renvoie un objet JSON contenant l'ID de document et les métadonnées du document ajouté. Cela vous permet de stocker l'ID du document pour une utilisation ultérieure (par exemple, si vous souhaitez ensuite supprimer le document).
L'objet JSON renvoyé contient ces clés :
-
id: ID du document attribué par le serveur de modèle d'IA en tant qu'identifiant universel unique (UUID) au format hexadécimal. Pour obtenir des informations supplémentaires sur le format d'identification, consultez les remarques. -
model: modèle d'intégration utilisé par le serveur de modèle d'IA pour générer des vecteurs d'intégration pour le document. -
rag_space_id: ID de l'espace RAG auquel le document a été ajouté. -
resultouerror:-
result: état du document ajouté lorsqu'il n'y a pas d'erreur. Pour les documents transférés avec succès de manière synchrone, la valeur est"ok". Pour les documents transférés de manière asynchrone, la valeur est une chaîne qui inclut l'ID de l'espace et le nom de fichier mis en cache, car le processus n'est pas encore terminé. -
error: chaîne de message d'erreur lorsque le serveur de modèle d'IA rencontre une erreur.
-
-
text ou file, selon l'option pour Données RAG :
-
text: texte du document lorsqu'il est ajouté à l'aide de l'option Depuis texte pour Données RAG. -
file: nom du fichier PDF lorsqu'il est ajouté à l'aide des options de fichier ou de conteneur pour Données RAG.
-
-
usage: informations d'utilisation du jeton lorsqu'un document est transféré de manière synchrone. L'objet JSON renvoyé est{"prompt_tokens":<nombre>, "total_tokens":<nombre>}, oùprompt_tokensest le nombre de jetons de la saisie (les morceaux de texte qui ont été intégrés) ettotal_tokensest le nombre total de jetons traités. Si le serveur de modèle d'IA est configuré pour ne pas enregistrer l'utilisation du jeton, aucun nombre de jetons n'est renvoyé.
Remarque Pour les documents transférés de manière asynchrone, les clés
rag_space_id,modeletusagerenvoient"N/A"car ces valeurs ne sont pas disponibles tant que le traitement n'est pas terminé. -
Action Envoyer un prompt
Cette action envoie le prompt utilisateur au serveur de modèle d'IA pour obtenir les données les plus pertinentes de l'espace RAG spécifié, puis envoie le prompt utilisateur avec le modèle de prompt et le contenu RAG au modèle d'IA. Le processus se présente comme suit :
-
L'action de script envoie le prompt spécifié par Envoyer un prompt et ID de l'espace au serveur de modèle d'IA spécifié par Nom du compte RAG.
-
Le serveur de modèle d'IA obtient des vecteurs d'intégration pour le prompt, effectue une recherche sémantique pour le prompt dans l'espace RAG spécifié, puis renvoie les résultats RAG à l'action de script.
Les résultats RAG sont les N morceaux de document les plus pertinents de l'espace RAG sous forme de texte (N peut être configuré dans l'Admin Console ou remplacé par l'option Paramètres comme indiqué ci-dessous).
-
L'action de script envoie le prompt, le modèle de prompt, les Paramètres du modèle et les résultats RAG au modèle spécifié par Nom de compte IA et Modèle.
-
Le modèle renvoie une réponse que l'action de script stocke dans Cible de la réponse.
Paramètres du serveur de modèle d'IA
Pour l'option Paramètres, vous pouvez utiliser les clés et valeurs suivantes, qui sont spécifiques au serveur de modèle d'IA, pour ajuster le comportement de cette action de script. Si spécifiées, ces valeurs remplacent celles définies dans l'Admin Console. Ceci est utile lorsque différents prompts nécessitent différents niveaux de précision ou de taille de contexte (par exemple, rechercher un grand ensemble de documents plutôt qu'un petit). Si une clé n'est pas spécifiée, les valeurs configurées dans l'Admin Console sont utilisées.
|
Clé de paramètre |
Description |
Plage de valeurs |
|
|
Score de similarité cosinus minimum pour les résultats RAG à inclure au contexte. Des valeurs plus élevées renvoient des résultats moins nombreux mais plus pertinents. |
-1 à 1 |
|
|
Nombre entier maximum de morceaux de documents les mieux classés à inclure au contexte envoyé au modèle d'IA. Une valeur de 0 n'inclut aucun contenu RAG. |
1 à 100 |
Par exemple, cet objet JSON définit ces clés de l'option Paramètres :
{
"similarity_threshold" : .5,
"num_top_ranked_results" : 10
}
Action Supprimer des données
Cette action supprime les documents d'un espace RAG. Si spécifié dans l'option Paramètres, seuls les documents spécifiés sont supprimés ; sinon, tous les documents de l'espace RAG sont supprimés.
Remarque La suppression de documents d'un espace RAG est irréversible. Assurez-vous de conserver les documents originaux séparément au cas où vous auriez besoin de les ajouter à nouveau.
Remarques
-
Un compte RAG doit être configuré à l'aide de l'action de script Configurer un compte RAG avant d'utiliser celle-ci.
-
Pour les actions Envoyer un prompt, un compte IA doit également être configuré à l'aide de l'action de script Configurer le compte IA.
-
Les fichiers PDF avec cryptage ou protection par mot de passe ne peuvent pas être traités avec l'action Ajouter des données.
-
Les espaces RAG sont persistants et conservent leurs documents jusqu'à ce qu'ils soient explicitement supprimés à l'aide de l'action Supprimer des données.
-
Si vous ajoutez un fichier PDF portant le même nom qu'un fichier déjà dans l'espace RAG, le fichier PDF existant est supprimé et le nouveau est ajouté avec un nouvel ID de document. Ce comportement est le même, que le fichier PDF soit ajouté via un chemin ou une rubrique Conteneur.
-
Les documents ajoutés à un espace RAG avant la version 26.0.1 du serveur de modèle d'IA ont des identifiants de documents numériques (par exemple,
1,2,3). À partir de la version 26.0.1, les ID de document sont des chaînes UUID (par exemple,"5f7677a0-3258-55a3-bc86-737005cb3574"). Lorsque vous travaillez avec des espaces RAG qui contiennent des documents ajoutés avant et après le changement de format d'ID, vos scripts doivent gérer les deux formats d'identification de document.Consultez l'Exemple 3.
-
Si vous spécifiez un Nom du modèle de prompt, cette action de script utilise le modèle configuré via l'action de script Configurer un modèle de prompt. Les modèles de prompt peuvent utiliser les constantes comme
:question:(remplacée par la valeur Envoyer un prompt) et:context:(remplacé par les morceaux de documents récurés par RAG dans l'espace RAG). -
Pour l'option Jetons par morceau de texte :
-
Les morceaux de plus grande taille préservent plus de contexte, mais peuvent réduire la précision de la récupération. Les morceaux de plus petite taille améliorent la précision, mais sont susceptibles de perdre certaines informations contextuelles. Envisagez d'utiliser des valeurs plus grandes (par exemple, 250 à 300) pour des langues comme le japonais, le chinois ou le coréen, où la tokenisation produit moins de caractères par jeton, de sorte qu'un nombre de jetons fixe couvre beaucoup moins de texte.
-
Pour modifier la taille des morceaux de documents existants dans un espace RAG, vous devez supprimer les documents de l'espace RAG et les ajouter à nouveau avec une nouvelle taille de morceau.
-
Si vous spécifiez une valeur en dehors de la plage valide, cette action de script renvoie le code d'erreur 887 ("Action d'espace RAG invalide").
-
-
La qualité des réponses de l'IA dépend du modèle, de la pertinence et de la qualité des documents ajoutés à l'espace RAG.
-
Dans FileMaker WebDirect, lorsque cette action de script utilise l'action Ajouter des données et que Données RAG est défini sur Depuis fichier ou Depuis fichier (Async), la boîte de dialogue Insérer s'ouvre pour que l'utilisateur choisisse un fichier PDF à uploader ; l'option Fichier d'entrée est ignorée.
Exemple 1 - Ajouter du texte à un espace RAG
Ajoute du contenu textuel à un espace RAG pour une base de connaissances client.
Configurer un compte RAG [ Nom du compte RAG: "compte-rag-support-client" ; Point de terminaison : "https://monserveur.exemple.com/llm/v1/" ; Clé API : "eyJh..." ; Vérifier les certificats SSL ]
Exécuter une action RAG [ Nom du compte RAG : "compte-rag-support-client" ; ID de l'espace: "base-connaissances" ; Action: Ajouter des données ; Données RAG: Depuis texte ; "Procédures et politiques d'assistance client pour le traitement des retours et échanges..." ]
Exemple 2 - Envoyer un prompt pour interroger un espace RAG
Envoie un prompt pour interroger le même espace RAG que dans Exemple 1 et stocke la réponse dans une rubrique.
Le script configure à la fois le compte RAG et le compte IA pour utiliser le serveur de modèle d'IA.
La variable $paramètres comprend similarity_threshold, défini sur 0,6, pour s'assurer que seuls les résultats RAG hautement pertinents sont inclus, et num_top_ranked_results, défini sur 5, pour limiter le contexte aux 5 morceaux de documents les plus pertinents (remplaçant les valeurs par défaut configurées dans l'Admin Console). Elle comprend également CURLOPT_TIMEOUT pour annuler la demande après 30 secondes s'il n'y a pas de réponse.
Lorsqu'il envoie le prompt, le script envoie les paramètres temperature et max_tokens au modèle de génération de réponse et diffuse la réponse vers une rubrique.
Configurer un compte RAG [ Nom du compte RAG: "compte-rag-support-client" ; Point de terminaison: "https://mon-serveur.exemple.com/llm/v1/" ; Clé API: Global:: Clé_API_RAG ; Vérifier les certificats SSL ]
Configurer le compte IA [ Nom de compte: "Serveur_Modèle_IA" ; Fournisseur de modèles: Autre ; Point de terminaison: "https://mon-serveur.exemple.com/llm/v1/" ; Clé API: Global::Clé_API_Gén_Texte ; Vérifier les certificats SSL ]
Définir variable [ $paramètres ; Valeur:
JSONSetElement ( "{}" ;
[ "temperature" ; .3 ; JSONNumber ] ;
[ "max_tokens" ; 500 ; JSONNumber ] ;
[ "similarity_threshold" ; .6 ; JSONNumber ] ;
[ "num_top_ranked_results" ; 5 ; JSONNumber ]
[ "CURLOPT_TIMEOUT" ; 30 ; JSONNumber ]
)
]
Exécuter une action RAG [ Nom du compte RAG: "compte-rag-support-client" ; ID de l'espace: "base-connaissance" ; Action: Envoyer un prompt ; Envoyer un prompt: "Quelle est la politique des retours pour les produits défectueux ?" ; Nom de compte IA: "Serveur_Modèle_IA" ; Modèle: Global::NomModèle ; Flux: Oui ; Cible de la réponse: Support_Client::Réponse_IA ; Paramètres: $paramètres ]
Un résultat possible dans la rubrique Support_Client::Réponse_IA peut commencer ainsi : "La politique de retour pour les produits défectueux vous permet de renvoyer l'article dans les 14 jours calendaires".
Exemple 3 - Ajouter et supprimer un fichier PDF d'un espace RAG
Ajoute un fichier PDF nommé Policies.pdf à un espace RAG, puis le supprime.
Après avoir configuré le compte RAG à utiliser sur le serveur de modèle d'IA, le script ajoute le fichier Policies.pdf à l'espace RAG en spécifiant son chemin. Avant de pouvoir supprimer le fichier, le script doit trouver l'ID du document qui a été attribué lorsque le fichier a été ajouté. L'ID du document est renvoyé par Cible de la réponse et stocké dans $réponseAjoutRag. Par exemple :
{
"file": "Policies.pdf",
"id": "f95d4266-66cd-5b50-a01b-07a4dd66c501",
"model": "multi-qa-MiniLM-L6-cos-v1",
"rag_space_id": "base-connaissance",
"result": "ok",
"usage": {
"prompt_tokens": 3803,
"total_tokens": 3803
}
}
Tout d'abord, le script obtient l'ID du document de $réponseAjoutRag et le stocke dans $id. Il obtient également le type de données de l'ID à l'aide de la fonction JSONGetElementType et le stocke dans $typeId. Le type de données sera JSONString pour les UUID ou JSONNumber pour les ID numériques (consultez les remarques pour obtenir plus de détails sur les formats d'identification).
Ensuite, le script construit la variable $idArrayToRemove en tant qu'objet JSON avec une clé id dont la valeur est un tableau contenant l'ID du document à supprimer. Lors de l'ajout de l'ID au tableau, le script utilise $typeId pour préserver le type de données d'origine de $réponseAjoutRag. Cette approche garantit que le script fonctionne correctement, quel que soit le format d'identification utilisé par le serveur de modèle d'IA.
Enfin, le script appelle Exécuter une action RAG pour supprimer les données en définissant l'option Paramètres sur $idArrayToRemove.
Configurer un compte RAG [ Nom du compte RAG: "compte-rag-support-client" ; Point de terminaison: "https://mon-serveur.exemple.com/llm/v1/" ; Clé API: Global::Clé_API_RAG ; Vérifier les certificats SSL ]
Exécuter une action RAG [ Nom du compte RAG: "compte-rag-support-client" ; ID de l'espace: "base-connaissances" ; Action: Ajouter des données ; Données RAG: Depuis fichier ; "Policies.pdf" ; Cible de la réponse: $réponseAjoutRag ]
Définir variable [ $id ; Valeur: JSONGetElement ( $réponseAjoutRag ; "id" ) ]
Définir variable [ $typeId ; Valeur: JSONGetElementType ( $réponseAjoutRag ; "id" ) ]
Définir variable [ $idArrayToRemove ; Valeur:
JSONSetElement ( "{}" ; "id" ;
JSONSetElement ( "[]" ; 0 ; $id ; $typeId ) ;
JSONArray
)
]
Exécuter une action RAG [ Nom du compte RAG: "compte-rag-support-client" ; ID de l'espace: "base-connaissances" ; Action: Supprimer des données ; Paramètres: $idArrayToRemove ]
Exemple 4 - Ajouter des documents avec différentes tailles de morceaux
Ajoute la documentation anglaise et japonaise au même espace RAG, en utilisant différentes tailles de morceaux optimisées pour chaque langue.
Le script utilise une taille de morceau plus petite (150 jetons) pour la documentation technique en anglais afin de permettre une récupération précise de détails techniques spécifiques.
Pour la documentation réglementaire japonaise, le script utilise une taille de morceau plus grande (300 jetons) parce que la tokenisation japonaise produit des segments de texte plus courts par jeton, ce qui nécessite plus de jetons pour préserver un contexte adéquat. Le script sélectionne également l'option Détecter le texte vertical pour améliorer l'extraction du texte vertical de ce fichier PDF.
Configurer un compte RAG [ Nom du compte RAG: "compte-rag-docs-produit" ; Point de terminaison: "https://mon-serveur.exemple.com/llm/v1/" ; Clé API: Global::Clé_API_RAG ; Vérifier les certificats SSL ]
Exécuter une action RAG [ Nom du compte RAG: "compte-rag-docs-produit" ; ID de l'espace: "connaissances-produit" ; Action: Ajouter des données ; Données RAG: Depuis fichier ; "TechnicalSpecs_EN.pdf" ; Jetons par morceau de texte: 150 ]
Exécuter une action RAG [ Nom du compte RAG: "compte-rag-docs-produit" ; ID de l'espace: "connaissances-produit" ; Action: Ajouter des données ; Données RAG: Depuis fichier ; "Regulations_JA.pdf" ; Détecter le texte vertical ; Jetons par morceau de texte: 300 ]
Exemple 5 - Ajouter des enregistrements en tant que texte JSONL
Ajoute des enregistrements FAQ d'une table FileMaker à un espace RAG en utilisant le format JSONL, où chaque ligne représente un enregistrement FAQ complet.
Le script fait une boucle dans les enregistrements du tableau FAQ et construit une chaîne de texte JSONL où chaque ligne est un objet JSON contenant l'ID de la question, la question et la réponse. Lorsque ce texte au format JSONL est ajouté à l'espace RAG, le serveur de modèle d'IA détecte automatiquement le format et traite chaque ligne (chaque enregistrement FAQ) comme une unité sémantique distincte, préservant les limites des enregistrements et améliorant la précision de la récupération.
Configurer un compte RAG [ Nom du compte RAG: "compte-rag-support-client" ; Point de terminaison: "https://mon-serveur.exemple.com/llm/v1/" ; Clé API: Global::Clé_API_RAG ; Vérifier les certificats SSL ]
Définir variable [ $texteJsonl ; Valeur: "" ]
Activer modèle [ "FAQ" (FAQ) ; Animation: Aucune ]
Afficher enreg/requête/page [ Premier ]
Boucle [ Purge: Systématique ]
Définir variable [ $ligneJson ; Valeur:
JSONSetElement ( "{}" ;
[ "id" ; FAQ::IDQuestion ; JSONString ] ;
[ "question" ; FAQ::Question ; JSONString ] ;
[ "réponse" ; FAQ::Réponse ; JSONString ]
)
]
Définir variable [ $texteJsonl ; Valeur: $texteJsonl & $ligneJson & ¶ ]
Afficher enreg/requête/page [ Suivante ; Sortie après dernière: Oui ]
Fin de boucle
Exécuter une action RAG [ Nom du compte RAG: "compte-rag-support-client" ; ID de l'espace: "base-connaissances" ; Action: Ajouter des données ; Données RAG: Depuis texte ; $texteJsonl ; Cible de la réponse: $résponseRag ]
La variable $texteJsonl résultante contient du texte au format JSONL, comme :
{"id":"001","question":"Quelle est votre politique de retour ?","réponse":"Les articles peuvent être renvoyés dans les 30 jours..."}
{"id":"002","question":"Comment puis-je effectuer le suivi de ma commande ?","réponse":"Vous pouvez suivre votre commande à l'aide du numéro de suivi..."}
{"id":"003","question":"Livrez-vous à l'international ?","réponse":"Oui, nous livrons à plus de 100 pays à travers le monde..."}
Si une ligne est assez courte, le serveur de modèle d'IA en fait un seul morceau. Si une ligne dépasse la limite de jetons par morceau de texte, la ligne est divisée en plusieurs morceaux. Étant donné que les lignes ne sont jamais fusionnées, lors de la recherche de l'espace RAG, les morceaux récupérés ne contiendront que le contenu d'un seul enregistrement FAQ, ce qui facilite l'identification de l'enregistrement qui a fourni les informations pertinentes.