Passer au contenu principal
POST
/
v1
/
assistant
/
{domain}
/
message
Message de l’Assistant v1
curl --request POST \
  --url https://api.mintlify.com/discovery/v1/assistant/{domain}/message \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "fp": "<string>",
  "messages": [
    {
      "id": "foobar",
      "role": "user",
      "content": "how do i get started",
      "parts": [
        {
          "type": "text",
          "text": "How do I get started"
        }
      ]
    }
  ],
  "threadId": null,
  "retrievalPageSize": 5,
  "filter": null
}
'
{}
Obsolète
Le point de terminaison assistant message v1 est compatible avec AI SDK v4. Si vous utilisez AI SDK v5 ou une version ultérieure, utilisez plutôt le point de terminaison assistant message v2.

Intégration avec useChat

Le hook useChat du SDK AI de Vercel est la méthode recommandée pour intégrer l’API de l’Assistant à votre application.
1

Installer le SDK AI v4

npm i ai@^4.1.15
2

Utiliser le hook

import { useChat } from 'ai/react';

function MyComponent({ domain }) {
  const { messages, input, handleInputChange, handleSubmit, isLoading } = useChat({
    api: `https://api.mintlify.com/discovery/v1/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',
        },
      ],
    },
    streamProtocol: 'data',
    sendExtraMessageFields: true,
  });

  return (
    <div>
      {messages.map((message) => (
        <div key={message.id}>
          {message.role === 'user' ? 'Utilisateur : ' : 'Assistant : '}
          {message.content}
        </div>
      ))}
      <form onSubmit={handleSubmit}>
        <input value={input} onChange={handleInputChange} />
        <button type="submit">Envoyer</button>
      </form>
    </div>
  );
}
Configuration requise pour Mintlify :
  • streamProtocol: 'data' - Requis pour les réponses en streaming.
  • sendExtraMessageFields: true - Requis pour envoyer les métadonnées des messages.
  • body.fp - Identifiant d’empreinte (utilisez ‘anonymous’ ou un identifiant utilisateur).
  • 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 - L’extrait de code ou le texte sélectionné.
    • elementId (optionnel) - Identifiant de l’élément d’interface contenant le contexte.
Consultez useChat dans la documentation du SDK AI pour en savoir plus.

Limites de débit

L’API de l’Assistant applique les limites suivantes :
  • 10 000 utilisations par key et par mois
  • 10 000 requêtes par organisation Mintlify et par heure
  • 10 000 requêtes par adresse IP et par jour

Autorisations

Authorization
string
header
requis

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 de votre Dashboard.

Paramètres de chemin

domain
string
requis

L’identifiant de domain à partir de votre URL domain.mintlify.app. Il se trouve à la fin de l’URL de votre Dashboard. Par exemple, dashboard.mintlify.com/organization/domain a un identifiant de domain de domain.

Corps

application/json
fp
string
requis

Identifiant de fingerprint pour le suivi des sessions de conversation. Utilisez « anonymous » pour les utilisateurs anonymes ou fournissez un identifiant utilisateur unique.

messages
object[]
requis

Tableau de messages représentant la conversation. Côté frontend, vous utiliserez probablement la fonction handleSubmit du hook useChat du package @ai-sdk pour ajouter les messages utilisateur et gérer les réponses en streaming, plutôt que de définir manuellement les objets de ce tableau, car ils comportent de très nombreux paramètres.

threadId
string

Identifiant facultatif utilisé pour maintenir la continuité d’une conversation sur plusieurs messages. Lorsqu’il est fourni, il permet au système de rattacher les messages suivants au même fil de discussion. Le threadId est renvoyé dans la réponse sous la forme event.threadId lorsque event.type === 'finish'.

retrievalPageSize
number
défaut:5

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 : 5.

filter
object

Critères de filtrage facultatifs pour la recherche.

Réponse

200 - application/json

Message généré avec succès.

Objet de réponse dont les parties du flux de données sont formatées avec le status, les en-têtes et le champ content spécifiés. Pour plus d’informations, consultez la documentation de l’AI SDK sur ai-sdk.dev/docs/ai-sdk-ui/streaming-data. Utilisez le hook useChat de ai-sdk pour gérer le flux de réponse.