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.

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 disponibles uniquement 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.

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

Options disponibles uniquement lorsque Action est défini 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 correspond à une expression de texte relative à un objet JSON qui se compose de paires clé-valeur pour des paramètres supplémentaires pris en charge par le fournisseur de modèles. Par exemple : {"temperature": 0.7, "seed": 42}. Consultez la documentation du fournisseur de modèles pour connaître les noms de clés des paramètres pris en charge et leurs plages de données valides.

    La clé context_prompt est un paramètre spécial qui permet d'ajouter des instructions ou un contexte supplémentaires dans le modèle avant le prompt principal. Par exemple : {"context_prompt": "Traiter 'aujourd'hui' comme 03/09/2025"}.

Options disponibles uniquement lorsque Action est défini sur Supprimer des données :

  • Paramètres est une expression de texte pour un objet JSON contenant une clé id dont la valeur est un tableau des ID des documents à supprimer de l'espace RAG spécifié. Par exemple, {"id" : [2, 3, 5, 7]}. Pour obtenir les ID de tous les documents dans un espace RAG, utilisez la fonction GetRAGSpaceInfo. Consultez l'Exemple 3.

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 permet de créer et de gérer un cache de documents (données textuelles et fichiers PDF) sur le serveur de modèle d'IA fourni avec FileMaker 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 Résultat

Ajouter des données

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 :

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

  2. Le serveur de modèle d'IA attribue un identifiant au document. S'il s'agit d'un fichier PDF, il en extrait uniquement le texte ; s'il s'agit d'un document texte, il décompose le document texte en morceaux. Il obtient ensuite 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.

Envoyer un prompt

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 :

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

  2. 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 premiers morceaux de document les plus pertinents de l'espace RAG sous forme de texte (N peut être configuré dans l'Admin Console de FileMaker Server).

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

  4. Le modèle renvoie une réponse que l'action de script stocke dans Cible de la réponse.

Supprimer des données

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.

  • 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 telles que :question: (remplacée par la valeur Envoyer un prompt) et :context: (remplacée par le paramètre context_prompt dans Paramètres).

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

Copier
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 fourni avec FileMaker Server. Lorsqu'il envoie le prompt, le script envoie des paramètres personnalisés au modèle pour la génération de la réponse et diffuse cette dernière vers une rubrique.

Copier
Configurer un compte RAG [ Nom du compte RAG: "compte-rag-support-client" ; Point de terminaison : "https://monserveur.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èle: Autre ; Point de terminaison : "https://monserveur.exemple.com/llm/v1/" ; Clé API : Global::Clé_API_Gén_Texte ; 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: 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: "{\"temperature\": 0.3, \"max_tokens\": 500}" ]

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é Politiques.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 Politiques.pdf à l'espace RAG en spécifiant son chemin de fichier.

Avant de pouvoir supprimer le fichier, le script doit trouver l'ID du document qui a été attribué lorsque le fichier a été ajouté. D'abord, le script utilise la fonction GetRAGSpaceInfo pour obtenir des informations sur l'espace RAG. Ensuite, pour la variable $id, il obtient le tableau values et utilise une boucle TantQue pour trouver l'élément dont la clé filename est "Politiques.pdf", renvoyant la valeur de l'id de cet élément.

Après avoir défini $idTableauASupprimer sur le JSON requis pour spécifier l'$id, le script appelle Exécuter une action RAG pour supprimer les données en définissant l'option Paramètres sur $idTableauASupprimer.

Copier
Configurer un compte RAG [ Nom du compte RAG: "compte-rag-support-client" ; Point de terminaison : "https://monserveur.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 ; "Politiques.pdf" ]

Définir variable [ $ragSpaceInfo ; Valeur: GetRAGSpaceInfo ( "compte-rag-support-client" ; "base-connaissances" ) ]

Définir variable [ $id ; Valeur: 
  Definir ( [
    json = $ragSpaceInfo ;
    values = JSONGetElement ( json ; "values" ) ;
    arrayCount = DecompteValeurs ( JSONListKeys ( values ; "" ) ) ;
    
    recherche = TantQue ( 
      [ i = 0 ; résultat = "" ] ; 
      
      i < arrayCount and EstVide ( résultat ) ; 
      
      [ 
        nomfichier = JSONGetElement ( values ; "[" & i & "].nomfichier" ) ;
        résultat = Cas ( 
          nomfichier = "Politiques.pdf" ; 
          JSONGetElement ( values ; "[" & i & "].id" ) ; 
          "" 
        ) ;
        i = i + 1 
      ] ; 
      
      résultat
    )
  ] ;

  recherche
  )
]

Définir variable [ $idTableauASupprimer ; Valeur: "{\"id\": [" & $id & "]}" ]

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: $idTableauASupprimer ]