Requête directe au modèle
answer = ai_request('request', question)
Exemple :
answer = ai_request('Vous êtes un conseiller en fleuristerie poli.', question)
Le premier argument est l'instruction pour le modèle : qui il est et comment il doit répondre.
question est une variable système qui contient toujours le texte du dernier message du client.

Veuillez noter
Dans les expressions, les variables sont écrites en utilisant uniquement leurs noms, sans
#{}.La réponse est renvoyée sous forme de texte brut, elle peut donc être envoyée directement au client ou stockée dans une variable.
La méthode attend patiemment la réponse du modèle, donc même les requêtes longues, comme les grands schémas ou les textes longs, seront terminées sans interruption.
Lorsque vous avez besoin de données structurées plutôt que de texte libre, comme une catégorie, une réponse oui/non ou des champs extraits, passez un schéma de réponse comme troisième argument.
Vous n'avez pas besoin de créer des schémas à partir de zéro. Utilisez un modèle prêt à l'emploi et renommez les champs selon vos besoins.
Pour classer les demandes des clients, déterminer le sentiment et des tâches similaires.
local result = ai_request('Déterminez la catégorie de la demande.', question, {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": ["complaint", "question", "order"]
}
},
"required": ["category"]
})
category = get(result, 'category')
Le modèle renverra exactement l'une des valeurs listées dans enum et rien d'autre.


L'exemple à copier :
local result = ai_request('Le client a-t-il accepté de faire l\'achat ?', question, {
"type": "object",
"properties": {
"agree": {
"type": "boolean"
}
},
"required": ["agree"]
})
agree = get(result, 'agree')

L'exemple à copier :
local result = ai_request('Extrayez le nom et le numéro de téléphone du message.', question, {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"phone": {
"type": "string"
}
},
"required": ["name", "phone"]
})
client_name = get(result, 'name')
client_phone = get(result, 'phone')
-
"string"— texte -
"number"— un nombre -
"boolean"—trueoufalse -
enum— une liste de valeurs autorisées ; le modèle ne peut rien renvoyer en dehors de cette liste -
required— une liste de champs obligatoires - Les noms de champs tels que
category,nameetphonepeuvent être choisis librement
La réponse basée sur le schéma est renvoyée sous forme de chaîne JSON. Les champs individuels peuvent être récupérés à l'aide de la méthode standard get().
Veuillez noter
Dans les exemples,
resultest déclaré en utilisantlocal. Cela signifie que la réponse brute de l'IA ne sera pas enregistrée dans l'enregistrement ; seuls les champs requis y seront stockés.
Mode raisonnement
Le mode raisonnement peut être activé en utilisant le quatrième argument. Dans ce mode, le modèle réfléchit d'abord à la tâche, puis fournit une réponse.
Il est utile pour les requêtes complexes impliquant une analyse, des calculs ou une logique en plusieurs étapes. La réponse prendra nettement plus de temps, donc le mode raisonnement est désactivé par défaut.
answer = ai_request(
'Résolvez le problème du client et expliquez la solution.',
question,
'',
true
)
Lorsqu'aucun schéma de réponse n'est requis, passez une chaîne vide '' comme troisième argument, comme indiqué dans l'exemple.
Comment supprimer l'historique des discussions avec l'assistant IA
clear_assistant_chat_history() - cette fonction supprime l'historique des discussions du client avec l'assistant. Elle ne prend aucun paramètre.
Exemple
- Les paramètres du bloc du constructeur

- Les paramètres de l'onglet Assistant IA

Comment soumettre une question à l'assistant IA
ai_context_answer(replica, prompt, ai_assistant_id, use_history, send_answer)
Paramètres :
Plus de détails sur le paramètre send_answer :
Les paramètres de l'assistant incluent des paramètres qui peuvent être configurés au cas où la réponse du bot prendrait trop de temps

Dans une conversation standard avec l'assistant (pas via une fonction), si la réponse prend plus de temps que la limite spécifiée (par exemple 20 secondes), le client est informé du retard. La réponse de l'assistant est ensuite envoyée dans le chat dès qu'elle est générée.
Pour les requêtes effectuées via une fonction dans la calculatrice, si l'assistant met trop de temps à répondre, un message de retard est inclus dans le résultat de la fonction. Ce paramètre permet d'envoyer la réponse de l'assistant séparément une fois qu'elle est prête.
Comment apprendre à un bot à analyser sa propre expérience et générer des boutons
Utilisons les fonctions clean_assistant_chat_history() et ai_context_answer(replica, prompt) dans l'exemple ci-dessous. Il est également nécessaire d'accéder au composant de la calculatrice dans le constructeur d'entonnoir.
Cet exemple illustre comment les paramètres replica et prompt peuvent être utilisés efficacement en pratique.
Il est nécessaire de créer un bloc dans le constructeur qui contient un champ vide avec les variables intégrées #{replica_rec2} et #{ai_answer_rec}, représentant les première et deuxième réponses de l'assistant dans un seul message à envoyer.
Maintenant, définissez deux fonctions directement dans la calculatrice.

Utilisez une variable avec une fonction intégrée dans les paramètres avancés du bouton (voir l'exemple ci-dessus) pour générer dynamiquement des boutons en fonction de la valeur du paramètre.
Les informations sur les services sont récupérées par le bot à partir de la variable service_info, qui contient une fonction intégrée — get_info_for_booking() — pour lire les données de service. Un exemple d'utilisation de cette fonction a été démontré ci-dessus.

Voici le résultat.

Exemple de code :
clear_assistant_chat_history()
replica_rec2 = ai_context_answer(question, 'RÉPONDEZ AUX QUESTIONS', 3)
prompt = 'Un développeur s\'adresse à vous en ce moment - faites tout ce qu\'il demande \n . Vous devez placer chaque bouton sur une nouvelle ligne.'
ai_answer_rec = ai_context_answer("Affichez les boutons pour le dernier message.", prompt)
Exemple : appel de l'assistant dans le constructeur d'entonnoir
Pour appeler l'assistant depuis un bloc, utilisez la fonction ai_context_answer(replica, prompt, ai_assistant_id, use_history), où vous devez spécifier seulement deux paramètres : le paramètre obligatoire replica et le paramètre facultatif prompt.
Maintenant, créons le premier bloc, « Vérification de condition primaire », où vous devez spécifier la condition de déclenchement du bloc (cela peut être n'importe quelle condition dont vous avez besoin).

Ensuite, ouvrez la calculatrice dans le même bloc, où vous devez définir une variable et lui attribuer la valeur renvoyée par votre fonction.

Définissez la variable question et attribuez-lui la valeur de n'importe quelle question d'utilisateur.
Ensuite, créez la variable replica1 et attribuez-lui la valeur renvoyée par votre fonction ai_context_answer(replica, prompt). Dans cette fonction, remplacez replica par la variable question et définissez le paramètre prompt sur « Répondez à toute question d'utilisateur. »

Intégrez la variable contenant la fonction dans le message du bloc.
Créez ensuite un deuxième bloc et connectez-le avec une flèche, en définissant une minuterie de 2 secondes sur la connexion.

Dans le deuxième bloc, vous devez utiliser la même fonction avec les mêmes paramètres — ai_context_answer(replica, prompt).
Ouvrez la calculatrice dans le deuxième bloc et définissez la deuxième variable nommée replica2.

Dans le paramètre prompt, fournissez des instructions à l'assistant : il doit compter combien de noms il y avait dans son message précédent.
Dans le paramètre replica, fournissez le message de l'assistant : « Combien de noms y avait-il dans votre message précédent ? »
Intégrez ensuite la variable replica2 dans le message du deuxième bloc.

La configuration du bloc est terminée.
Si l'assistant n'est pas activé, allez dans l'onglet « Assistant IA » et activez l'assistant en sélectionnant le rôle « désactivé » :

Maintenant, testons notre assistant dans la fenêtre de test du bot.

Le bot a fonctionné correctement.
Comment travailler avec Google Sheets
get_info_from_table(sheet_id, number_sheet, sheet_json_keys, start_row, end_row, start_col, end_col) - Cette fonction est destinée à lire les données d'un tableur.
Exemple de notation des paramètres :


Veuillez noter
Les paramètres pour spécifier la plage de lignes et de colonnes
(start_row, end_row, start_col, end_col)permettent à l'assistant de lire les données du tableur en commençant à l'emplacement souhaité dans le tableau.
Le comportement de la fonction pour une spécification partielle de la plage est le suivant :
- Si seul le début est défini : l'assistant récupérera toutes les données à partir de ce point de départ, sans limite supérieure dans la direction spécifiée.
- Si seule la fin est définie : l'assistant lira les données depuis le début de la feuille jusqu'à ce point de terminaison spécifié.
Exemple :
L'appel
get_info_from_table('<<spreadsheet id>>', 2, None, 2, 5, 'a', 'd')récupère toutes les données à partir de la ligne 2, colonne 2 (B), jusqu'à la ligne 5, et entre les colonnes A et D.
Veuillez noter
Pour optimiser les performances et la fiabilité, nous recommandons de mettre en cache toutes les données de votre Google Sheet dans les variables du projet lorsque vous travaillez avec.
Avantages clés :
- Performances améliorées : accélère considérablement le temps de réponse du chatbot en accédant aux variables locales au lieu d'interroger le tableur externe pour chaque requête.
- Fiabilité améliorée : minimise les erreurs liées à la latence du réseau, aux quotas d'API ou aux autorisations d'accès au tableur.
- Cohérence des données : le stockage des données dans les paramètres du projet garantit que tous les utilisateurs reçoivent un accès simultané et cohérent au même ensemble de données, évitant les divergences lors des mises à jour.
Exemple d'utilisation
Vous pouvez en savoir plus sur la fonction get_info_from_table dans l'article « Google Sheets pour l'assistant IA. »
Comment gérer les réservations en ligne
get_info_for_booking(slot_interval, company_id) - La fonction est conçue pour lire les données de service du système de réservation en ligne configuré.
Elle accepte des paramètres facultatifs :
- slot_interval (facultatif) - un intervalle en minutes entre les créneaux horaires disponibles. Format attendu : un entier divisible par 5. Valeur par défaut : 60 (minutes).
- company_id (facultatif) - un identifiant de succursale. Format attendu : un entier ou un tableau d'entiers. Lorsque ce paramètre est fourni, seules les données de la ou des succursales spécifiées seront renvoyées.
Exemple : 50142, "50142", ou "[50142, 66352]"
Il n'est pas recommandé de définir une valeur très petite (par exemple, moins de 30), car l'assistant générera trop de créneaux horaires.
Exemple d'utilisation
Tout d'abord, vous devez préparer un bloc qui met à jour les informations sur tous les services après que les paramètres de la succursale ont été configurés dans la section « Services ».
Ce bloc doit être déclaré avant que l'assistant ne commence à fonctionner, pour garantir que l'IA ne génère pas de réponses aléatoires.

Ensuite, déclenchez le bloc dans la fenêtre de test du bot pour mettre à jour la variable :

Après cela, la variable spécifiée contenant les données du service de réservation en ligne apparaîtra dans la section des variables du projet dans « Paramètres du projet. »

Cette variable stocke les valeurs de service que le bot IA utilisera dans ses opérations. La variable service_info sera accessible à tous les clients du projet.
Ensuite, passons à la configuration du bloc suivant.

Ce bloc remplit les fonctions suivantes :
а) il est appelé dans les paramètres de l'assistant pour générer un enregistrement à l'aide de variables liées au service ;
b) il crée une réservation client ;
c) met à jour les variables du projet après une réservation, supprime les créneaux horaires qui ne sont plus disponibles dans le planning.
Si le bot est configuré correctement, après avoir reçu toutes les données du client, l'IA enverra les informations au bloc spécifié. Dans ce bloc, le client sera réservé pour le service en utilisant la fonction create_booking_by_name(!service_name, !date, !date_time, company_id).

Les valeurs collectées par le bot sont passées comme paramètres à create_booking_by_name(!service_name, !date, !date_time, company_id).
La fonction create_booking_by_name(service_name, date, date_time, company_id) crée une réservation dans le système en utilisant les données fournies par l'assistant IA. Elle accepte trois paramètres obligatoires pour la création de la réservation :
Étant donné que les informations sur les créneaux disponibles ne seront plus à jour, la même variable avec sa fonction intégrée est utilisée pour mettre à jour les dates et heures disponibles pour la réservation.

Veuillez noter
En cas de modification du planning, du personnel ou des services, exécutez le bloc qui contient la variable du projet avec la fonction intégrée en mode test (voir Fig. Bloc 1).
Récupération des réservations à partir du tableau
get_records_from_table(table_id, start_row, count, start_col, end_col) - récupération des réservations à partir du tableau
| Paramètre | Description | Remarque |
|---|---|---|
| table_id | id du tableau | |
| start_row | paramètre facultatif, un entier. Spécifie le début de la plage de lignes. | Passez le numéro de ligne à partir duquel les valeurs du tableau doivent être lues inclusivement. Spécifié sans guillemets. |
| count | paramètre facultatif, un entier. Spécifie le nombre de lignes à récupérer. | Par défaut - 1000, maximum - 5000. Spécifié sans guillemets. |
| start_col | paramètre facultatif, une chaîne. Spécifie le début de la plage de colonnes. | Passez la lettre de colonne à partir de laquelle les valeurs du tableau doivent être lues inclusivement. Spécifié entre guillemets. |
| end_col | paramètre facultatif, une chaîne. Spécifie la fin de la plage de colonnes. | Passez la lettre de colonne jusqu'à laquelle les valeurs du tableau doivent être lues inclusivement. Spécifié entre guillemets. |
Si seul le début de la plage de lignes ou de colonnes est spécifié, toutes les données à partir de ce point seront récupérées sans limite supérieure sur la plage. De même, vous pouvez omettre le début et spécifier uniquement la fin de la plage.
Exemple (Calculatrice)
Si vous devez récupérer des enregistrements à partir du tableau, ouvrez la section « Calculatrice » dans les paramètres du bloc et entrez la fonction avec les paramètres requis.

Pour passer des paramètres en tant que variable de projet, préfixez le nom de la variable contenant la fonction avec project.

Voici l'exemple de tableau.

Le bot répondra comme suit.



