# Fonctions de l’assistant IA

## **Comment supprimer l'historique d'une conversation avec l'assistant IA**

clear\_assistant\_chat\_history() - cette fonction supprime l'historique des conversations du client avec l'assistant. Elle ne prend aucun paramètre.

### Exemple&#x20;

1. Les paramètres du bloc du constructeur

<div data-with-frame="true"><figure><img src="/files/7cda495c17d9b714de6574bb41e923a1a89fd783" alt=""><figcaption></figcaption></figure></div>

2. Les paramètres de l'onglet Assistant IA

<div data-with-frame="true"><figure><img src="/files/12405fbd0fa78e82fa86f2875fa5cc44df3656fe" alt="" width="563"><figcaption></figcaption></figure></div>

## **Comment envoyer une question à l'assistant IA**

ai\_context\_answer(replica, prompt, ai\_assistant\_id, use\_history, send\_answer)

Paramètres :

<table><thead><tr><th width="173">Paramètre</th><th width="221">Description</th><th>Remarque</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark> replica </td><td>paramètre obligatoire, message destiné à l'assistant</td><td></td></tr><tr><td>prompt</td><td>paramètre facultatif, instructions pour l'assistant</td><td>si le paramètre n'est pas spécifié mais que le paramètre ai_assistant_id est fourni, les instructions des paramètres de l'assistant spécifié seront utilisées</td></tr><tr><td>ai_assistant_id </td><td>ID de l'assistant auquel la question sera envoyée ;</td><td>s'il n'est pas fourni, l'assistant sans paramètres par défaut sera utilisé</td></tr><tr><td>use_history</td><td>si l'assistant doit utiliser l'historique de conversation pour répondre à la question</td><td>True - utiliser, False - ne pas utiliser. Par défaut - True</td></tr><tr><td>send_answer</td><td>envoyer la réponse après le délai d'attente de l'assistant</td><td>Pour activer, passez "1"</td></tr></tbody></table>

Plus de détails sur `le send_answer` paramètre :

Les paramètres de l'assistant incluent des paramètres qui peuvent être configurés au cas où la réponse du bot prendrait beaucoup de temps

<div data-with-frame="true"><figure><img src="/files/89a67512478c207acfc188fb9dd8c3fd78582c07" alt="" width="375"><figcaption></figcaption></figure></div>

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 délai. La réponse de l'assistant est alors envoyée au 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 délai est inclus dans le résultat de la fonction. Ce paramètre permet d'envoyer séparément la réponse de l'assistant dès qu'elle est prête.&#x20;

### Comment apprendre à un bot à analyser sa propre expérience et à générer des boutons

Utilisons les `clean_assistant_chat_history()` et `ai_context_answer(replica, prompt)` fonctions dans l'exemple ci-dessous. Il est également nécessaire d'accéder au composant calculatrice dans le constructeur de tunnel.

Cet exemple illustre comment les `replica` et `prompt` paramètres peuvent être utilisés efficacement en pratique.&#x20;

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 la première et la deuxième réponse de l'assistant dans un seul message à envoyer.

Maintenant, définissez directement deux fonctions dans la calculatrice.

<div data-with-frame="true"><figure><img src="/files/5c2a779433a1e69e965b7a864d6b73d6cd0a7c1b" alt=""><figcaption></figcaption></figure></div>

Utilisez une variable avec une fonction intégrée dans les paramètres avancés des boutons (voir l'exemple ci-dessus) pour générer des boutons dynamiquement en fonction de la valeur du paramètre.&#x20;

Les informations sur les services sont récupérées par le bot à partir de la `service_info` variable, qui contient une fonction intégrée — `get_info_for_booking()` — pour lire les données des services. Un exemple d'utilisation de cette fonction a été présenté ci-dessus.

<div data-with-frame="true"><figure><img src="/files/8b40103390b83dabc60605e4ba1fb17af231c3d8" alt="" width="375"><figcaption></figcaption></figure></div>

Voici le résultat.

<div data-with-frame="true"><figure><img src="/files/4ee822ca92240a7c94001b31a0c0f81c7b4029f5" alt="" width="563"><figcaption></figcaption></figure></div>

**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 de tunnel

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 `replica` paramètre obligatoire et le `prompt`.

Maintenant, créons le premier bloc, « Vérification de la condition principale », où vous devez spécifier la condition de déclenchement du bloc (cela peut être n'importe quelle condition requise).

<div data-with-frame="true"><figure><img src="/files/75838c9af78830d2ed8bf1a1523a83d9e8f22bbc" alt=""><figcaption></figcaption></figure></div>

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.

<div data-with-frame="true"><figure><img src="/files/8d2886521475f988c86ca37918b5d6cde6c3cf91" alt="" width="563"><figcaption></figcaption></figure></div>

Définissez la variable **question** et attribuez-lui la valeur de n'importe quelle question de l'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 de l'utilisateur."

<div data-with-frame="true"><figure><img src="/files/b1763b18bdd0bd151d1748bd719152e696a3902e" alt="" width="563"><figcaption></figcaption></figure></div>

Intégrez la variable contenant la fonction dans le message du bloc.

Puis créez un deuxième bloc et reliez-le par une flèche, en définissant un minuteur de 2 secondes sur la connexion.

<div data-with-frame="true"><figure><img src="/files/c953a598180d2390a564457bd495532d37c857f1" alt=""><figcaption></figcaption></figure></div>

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.

<div data-with-frame="true"><figure><img src="/files/40498e6b508a8fc1f6cf80b4b038bac409727ea4" alt=""><figcaption></figcaption></figure></div>

Dans le paramètre prompt, fournissez des instructions à l'assistant : il doit compter combien de noms se trouvaient dans son message précédent.

Dans le paramètre replica, fournissez le message de l'assistant : "Combien de noms se trouvaient dans votre message précédent ?"

Puis intégrez la variable replica2 dans le message du deuxième bloc.

<div data-with-frame="true"><figure><img src="/files/ec54edd19896d7ca77ea244bcda5e66d4bb082a7" alt="" width="563"><figcaption></figcaption></figure></div>

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é" :

<div data-with-frame="true"><figure><img src="/files/13d1c8cc41b60c617a705ead4cce272e60fbb1f5" alt="" width="292"><figcaption></figcaption></figure></div>

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

<div data-with-frame="true"><figure><img src="/files/a62bc4bf2d73f8a1cee507b4732447606f637b89" alt="" width="375"><figcaption></figcaption></figure></div>

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 des données depuis une feuille de calcul.

<table><thead><tr><th width="248">Paramètres</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark> sheet_id</td><td>id google-spreadsheet</td></tr><tr><td>number_sheet</td><td>numéro de feuille dans une feuille de calcul ; par défaut = 1</td></tr><tr><td>sheet_json_keys </td><td>paramètre facultatif — clé d'accès aux données de la feuille de calcul</td></tr><tr><td>start_row</td><td><p>paramètre facultatif, un entier. Spécifie le début de la plage de lignes.</p><p>Saisissez le numéro de la ligne à partir de laquelle les valeurs du tableau doivent être lues de manière inclusive. La valeur doit être fournie sans guillemets.</p></td></tr><tr><td>end_row</td><td>paramètre facultatif, un entier. Spécifie la fin de la plage de lignes.<br>Saisissez le numéro de la ligne jusqu'à laquelle les valeurs du tableau doivent être lues de manière inclusive. La valeur doit être fournie sans guillemets.</td></tr><tr><td>start_col</td><td>paramètre facultatif, une chaîne de caractères. Spécifie le début de la plage de colonnes.<br>Saisissez la lettre de colonne à partir de laquelle les valeurs du tableau doivent être lues de manière inclusive. La valeur doit être entourée de guillemets</td></tr><tr><td>end_col</td><td>paramètre facultatif, une chaîne de caractères. Spécifie la fin de la plage de colonnes.<br>Saisissez la lettre de colonne jusqu'à laquelle les valeurs du tableau doivent être lues de manière inclusive. La valeur doit être entourée de guillemets.</td></tr></tbody></table>

Exemple de notation des paramètres :

<div data-with-frame="true"><figure><img src="/files/e56928468e6e90e961bc6ba8eeef0c3af88c6873" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/32f136a18633db3f7d754754fbe266c68b29ccba" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="warning" %}

## 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 de la feuille de calcul à partir de l'emplacement souhaité dans le tableau.
{% endhint %}

{% hint style="info" %}
Le comportement de la fonction pour la 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 **du début de la feuille jusqu'à ce point de fin 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.
{% endhint %}

{% hint style="warning" %}

## 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 lors de son utilisation.

**Principaux avantages :**

1. **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 la feuille de calcul externe pour chaque requête.
2. **Fiabilité améliorée :** réduit au minimum les erreurs liées à la latence du réseau, aux quotas de l'API ou aux autorisations d'accès à la feuille de calcul.
3. **Cohérence des données :** le stockage des données dans les paramètres du projet garantit **que tous les utilisateurs bénéficient d'un accès simultané et cohérent** au même ensemble de données, évitant ainsi les divergences lors des mises à jour.
   {% endhint %}

#### Exemple d’utilisation

{% hint style="info" %}
Vous pouvez en savoir plus sur la **get\_info\_from\_table** fonction dans l'article "[Google Sheets pour l'assistant IA](/doc/fr/chatbot/ai/google-sheets-pour-lassistant-ia.md)."
{% endhint %}

## 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 des services à partir du système de réservation en ligne configuré.

Elle accepte des paramètres facultatifs :

1. 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).
2. 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]"

{% hint style="warning" %}
Il n'est pas recommandé de définir une valeur très petite (par exemple inférieure à 30), car l'assistant générera trop de créneaux horaires. &#x20;
{% endhint %}

### Exemple d’utilisation

Tout d'abord, vous devez préparer un bloc qui met à jour les informations sur tous les services après la configuration des paramètres de la succursale dans la section "Services".

Ce bloc doit être déclaré avant que l'assistant ne commence à fonctionner, afin de garantir que l'IA ne génère pas de réponses aléatoires.

<div data-with-frame="true"><figure><img src="/files/73988c2f5e13a1e002118ec769dcfae533f2510e" alt=""><figcaption></figcaption></figure></div>

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

<div data-with-frame="true"><figure><img src="/files/4fb2a325b92ffc3343f87dd445451e292d22d4df" alt="" width="375"><figcaption></figcaption></figure></div>

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

<div data-with-frame="true"><figure><img src="/files/e70fb5e253f3220a61dbae8da67f3020469e1304" alt="" width="563"><figcaption></figcaption></figure></div>

Cette variable stocke les valeurs des services que le bot IA utilisera dans ses opérations. La variable service\_info sera accessible à tous les clients du projet.

Passons ensuite à la configuration du bloc suivant.

<div data-with-frame="true"><figure><img src="/files/3b49ff38535ce03f3ae1d215ee5c219319c8507e" alt=""><figcaption></figcaption></figure></div>

Ce bloc remplit les fonctions suivantes :

a) 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) il met à jour les variables du projet après une réservation, supprime les créneaux horaires qui ne sont plus disponibles dans l'agenda.

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 à l'aide de la fonction create\_booking\_by\_name(!service\_name, !date, !date\_time, company\_id).

<div data-with-frame="true"><figure><img src="/files/148acf01cc127a19a2dca8207e174565bbbcc09d" alt=""><figcaption></figcaption></figure></div>

Les valeurs collectées par le bot sont transmises 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 à l'aide des données fournies par l'assistant IA. Elle accepte trois paramètres obligatoires pour la création de la réservation :

<table><thead><tr><th width="297">Paramètres</th><th>Description</th></tr></thead><tbody><tr><td>! service_name</td><td>paramètre obligatoire, nom du service</td></tr><tr><td>! date</td><td>date au format jj.mm.aaaa</td></tr><tr><td>! date_time</td><td>heure du service au format hh:mm</td></tr><tr><td>company_id </td><td>identifiant de succursale, facultatif.<br>S'il est spécifié, la réservation sera créée pour le service portant le nom donné et appartenant à cette succursale particulière.<br>Ce paramètre peut être nécessaire dans les cas où plusieurs succursales ont des services portant le même nom.</td></tr></tbody></table>

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

<div data-with-frame="true"><figure><img src="/files/66bc12aca094f3e9c441cdbb8a0b0da669a036a2" alt=""><figcaption></figcaption></figure></div>

{% hint style="warning" %}

## Veuillez noter

S'il y a des changements dans l'agenda, le personnel ou les services, exécutez le bloc qui contient la variable du projet avec la fonction intégrée en mode test (voir Fig. Bloc 1).
{% endhint %}

{% hint style="info" %}
[La lecture de la configuration d'un bot IA pour les réservations en ligne a été expliquée dans l'article du même nom.](/doc/fr/chatbot/ai/online-booking.md)
{% endhint %}

## Récupération de réservation depuis le tableau

get\_records\_from\_table(table\_id, start\_row, count, start\_col, end\_col) - récupération de réservation depuis le 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.                  | Saisissez le numéro de la ligne à partir de laquelle les valeurs du tableau doivent être lues de manière inclusive. 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 de caractères. Spécifie le début de la plage de colonnes. | Saisissez la lettre de colonne à partir de laquelle les valeurs du tableau doivent être lues de manière inclusive. Spécifié entre guillemets. |
| end\_col   | paramètre facultatif, une chaîne de caractères. Spécifie la fin de la plage de colonnes.   | Saisissez la lettre de colonne jusqu'à laquelle les valeurs du tableau doivent être lues de manière inclusive. 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 de 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 depuis le tableau, ouvrez la section "Calculatrice" dans les paramètres du bloc et saisissez la fonction avec les paramètres requis.

<div data-with-frame="true"><figure><img src="/files/5022b04bd7a02c47052a2393fe92e01ff78192d2" alt=""><figcaption></figcaption></figure></div>

Pour transmettre des paramètres sous forme de variable de projet, préfixez le nom de la variable contenant la fonction avec **project**.

<div data-with-frame="true"><figure><img src="/files/a36ffcd9f136a87c9c02b692f9020abc6528813f" alt=""><figcaption></figcaption></figure></div>

Voici l'exemple du tableau.

<div data-with-frame="true"><figure><img src="/files/caa2eab9f79d542bf57fcf1ec76dbd779bc5ac22" alt="" width="563"><figcaption></figcaption></figure></div>

Le bot répondra comme suit.

<div data-with-frame="true"><figure><img src="/files/a4ce9fd9d97f89fddf8fd336f3035c6d7fd3fa94" alt="" width="375"><figcaption></figcaption></figure></div>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/fr/chatbot/ai/functions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
