> ## Documentation Index
> Fetch the complete documentation index at: https://adminroletesting-justin-client-exports.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Créer un message de l'Assistant

> Génère un message de réponse de l’Assistant pour le domaine spécifié. Compatible avec le SDK d’IA v5+.

<Info>
  L'endpoint assistant message v2 est compatible avec **AI SDK v5+**. Si vous utilisez l'AI SDK v4, utilisez plutôt l'[endpoint assistant message v1](/fr/api/assistant/create-assistant-message).
</Info>

<div id="integration-with-usechat">
  ## Intégration avec `useChat`
</div>

Le hook `useChat` de l'AI SDK de Vercel est la méthode recommandée pour intégrer l'API Assistant dans votre application.

<Steps>
  <Step title="Installer l'AI SDK">
    ```bash theme={null}
    npm i ai@^6 @ai-sdk/react
    ```
  </Step>

  <Step title="Utiliser le hook">
    ```tsx theme={null}
    import { useState } from "react";
    import { useChat } from "@ai-sdk/react";
    import { DefaultChatTransport } from "ai";

    function MyComponent({ domain }) {
      const [input, setInput] = useState("");

      const { messages, sendMessage } = useChat({
        transport: new DefaultChatTransport({
          api: `https://api.mintlify.com/discovery/v2/assistant/${domain}/message`,
          headers: {
            Authorization: `Bearer ${process.env.PUBLIC_MINTLIFY_ASSISTANT_KEY}`,
          },
          body: {
            fp: "anonymous",
            retrievalPageSize: 5,
            context: [
              {
                type: "code",
                value: 'const example = "code snippet";',
                elementId: "code-block-1",
              },
            ],
          },
        }),
      });

      return (
        <div>
          {messages.map((message) => (
            <div key={message.id}>
              {message.role === "user" ? "User: " : "Assistant: "}
              {message.parts
                .filter((part) => part.type === "text")
                .map((part) => part.text)
                .join("")}
            </div>
          ))}
          <form
            onSubmit={(e) => {
              e.preventDefault();
              if (input.trim()) {
                sendMessage({ text: input });
                setInput("");
              }
            }}
          >
            <input value={input} onChange={(e) => setInput(e.target.value)} />
            <button type="submit">Send</button>
          </form>
        </div>
      );
    }
    ```

    **Configuration requise :**

    * `transport` - Utilisez `DefaultChatTransport` pour configurer la connexion à l'API.
    * `body.fp` - Identifiant d’empreinte (utilisez `'anonymous'` ou un identifiant utilisateur unique).
    * `body.retrievalPageSize` - Nombre de résultats de recherche à utiliser (recommandé : 5).

    **Configuration optionnelle :**

    * `body.context` - Tableau d’informations contextuelles à fournir à l’Assistant. Chaque objet de contexte contient :
      * `type` - Soit `'code'` soit `'textSelection'`.
      * `value` - Le morceau de code ou le contenu textuel sélectionné.
      * `path` (optionnel) - Chemin vers le fichier source ou la page.
      * `elementId` (optionnel) - Identifiant de l’élément d’interface contenant le contexte.
    * `body.currentPath` - Chemin de la page que l’utilisateur est en train de consulter. Lorsqu’il est fourni, l’Assistant utilise ce contexte pour fournir des réponses plus pertinentes. Longueur maximale : 200 caractères.
  </Step>
</Steps>

Voir [useChat](https://ai-sdk.dev/docs/reference/ai-sdk-ui/use-chat) et [Transport](https://ai-sdk.dev/docs/ai-sdk-ui/transport) dans la documentation de l'AI SDK pour plus de détails.

<div id="rate-limits">
  ## Limites de débit
</div>

L'API Assistant est soumise aux limites suivantes :

* 10 000 requêtes par organisation Mintlify et par heure
* 10 000 requêtes par IP et par jour


## OpenAPI

````yaml fr/discovery-openapi.json POST /v2/assistant/{domain}/message
openapi: 3.0.1
info:
  title: Mintlify Assistant API
  description: >-
    Une API pour intégrer les fonctionnalités de découverte de Mintlify à votre
    produit.
  version: 1.0.0
servers:
  - url: https://api.mintlify.com/discovery
security:
  - bearerAuth: []
paths:
  /v2/assistant/{domain}/message:
    post:
      summary: Message de l’Assistant
      description: >-
        Génère un message de réponse de l’Assistant pour le domaine spécifié.
        Compatible avec le SDK d’IA v5+.
      parameters:
        - name: domain
          in: path
          required: true
          schema:
            type: string
          description: >-
            L’identifiant de domaine provenant de votre URL
            `domain.mintlify.site`. Il se trouve à la fin de l’URL de votre
            Dashboard. Par exemple, `dashboard.mintlify.com/organization/domain`
            a un identifiant de domaine égal à `domain`.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - fp
                - messages
              properties:
                fp:
                  type: string
                  description: >-
                    Identifiant d’empreinte pour le suivi des sessions de
                    conversation. Utilisez `anonymous` pour les utilisateurs non
                    authentifiés ou fournissez un identifiant utilisateur
                    unique.
                threadId:
                  default: null
                  type: string
                  description: >-
                    Identifiant optionnel utilisé pour maintenir la continuité
                    de la conversation sur plusieurs messages. Lorsqu’il est
                    fourni, il permet au système de rattacher les messages
                    suivants au même fil de conversation. Le `threadId` est
                    renvoyé dans la réponse sous la forme `event.threadId`
                    lorsque `event.type === 'finish'`.
                messages:
                  type: array
                  default:
                    - id: foobar
                      role: user
                      parts:
                        - type: text
                          text: How do I get started
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Identifiant unique du message.
                      role:
                        type: string
                        enum:
                          - system
                          - assistant
                          - user
                        description: Rôle de l’expéditeur du message.
                      createdAt:
                        type: string
                        format: date-time
                        description: Horodatage indiquant la création du message.
                      parts:
                        type: array
                        items:
                          oneOf:
                            - type: object
                              description: Segment de contenu textuel.
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - text
                                text:
                                  type: string
                              required:
                                - type
                                - text
                            - type: object
                              description: >-
                                Segment de contenu de raisonnement, avec des
                                metadata de fournisseur facultatives.
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - reasoning
                                text:
                                  type: string
                                providerMetadata:
                                  type: object
                                  description: >-
                                    Metadata spécifiques au fournisseur,
                                    facultatives.
                              required:
                                - type
                                - text
                            - type: object
                              description: Segment faisant référence à une URL source.
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - source-url
                                sourceId:
                                  type: string
                                url:
                                  type: string
                                title:
                                  type: string
                                providerMetadata:
                                  type: object
                                  description: >-
                                    Metadata spécifiques au fournisseur,
                                    facultatives.
                              required:
                                - type
                                - sourceId
                                - url
                            - type: object
                              description: Segment représentant un fichier joint.
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - file
                                mediaType:
                                  type: string
                                url:
                                  type: string
                                filename:
                                  type: string
                              required:
                                - type
                                - mediaType
                                - url
                            - type: object
                              description: Marque le début d’une nouvelle étape.
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - step-start
                              required:
                                - type
                        description: >-
                          Tableau de segments du message. Chaque segment a un
                          type et des champs spécifiques à ce type.
                      metadata:
                        type: object
                        description: Metadata facultatives associées au message.
                    required:
                      - id
                      - role
                      - parts
                  description: >-
                    Tableau des messages de la conversation. Utilisez la
                    fonction `handleSubmit` du hook `useChat` du package
                    `@ai-sdk/react` pour gérer les messages et les réponses en
                    streaming.
                retrievalPageSize:
                  type: number
                  default: 5
                  description: "Nombre de résultats de recherche dans la documentation à utiliser pour générer la réponse. Des valeurs plus élevées fournissent davantage de contexte, mais peuvent augmenter le temps de réponse. Valeur recommandée\0a0: 5."
                filter:
                  type: object
                  default: null
                  properties:
                    version:
                      type: string
                      description: Filtre facultatif par version.
                    language:
                      type: string
                      description: Filtre facultatif par langue.
                    groups:
                      type: array
                      items:
                        type: string
                      description: >-
                        Tableau facultatif d’identifiants de groupes pour
                        filtrer les résultats.
                  description: Critères de filtrage facultatifs pour la recherche.
                context:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - code
                          - textSelection
                        description: Type de contexte fourni.
                      value:
                        type: string
                        description: Extrait de code ou contenu textuel sélectionné.
                      path:
                        type: string
                        description: Chemin facultatif vers le fichier ou la page source.
                      elementId:
                        type: string
                        description: >-
                          Identifiant facultatif de l’élément d’interface
                          contenant le contexte.
                    required:
                      - type
                      - value
                  description: >-
                    Tableau facultatif d’informations contextuelles à fournir à
                    l’Assistant.
                currentPath:
                  type: string
                  description: "Chemin de la page que l’utilisateur consulte actuellement. Lorsqu’il est fourni, l’Assistant utilise ce contexte pour donner des réponses plus pertinentes. Longueur maximale\_: 200\_caractères."
      responses:
        '200':
          description: Message généré avec succès
          content:
            application/json:
              schema:
                type: object
                description: >-
                  Réponse en streaming compatible avec AI SDK v5. Utilisez le
                  [hook useChat de
                  @ai-sdk/react](https://ai-sdk.dev/docs/reference/ai-sdk-ui/use-chat#usechat)
                  pour gérer le streaming de la réponse.
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        L’en-tête Authorization attend un jeton Bearer. Utilisez une clé d’API
        Assistant (préfixée par `mint_dsc_`). Il s’agit d’une clé publique, que
        vous pouvez utiliser en toute sécurité dans du code côté client.
        Générez-en une sur la page [API
        keys](https://dashboard.mintlify.com/settings/organization/api-keys) de
        votre Dashboard.

````