Passer au contenu principal
POST
/
assistant
/
{domain}
/
message
Message de l’Assistant
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>",
  "threadId": null,
  "messages": [
    {
      "id": "foobar",
      "role": "user",
      "content": "how do i get started",
      "parts": [
        {
          "type": "text",
          "text": "How do I get started"
        }
      ]
    }
  ],
  "retrievalPageSize": 5,
  "filter": null
}
'
{}

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.
L’API de l’Assistant Mintlify est compatible avec AI SDK v4. Si vous utilisez AI SDK v5 ou une version ultérieure, vous devez configurer un transport personnalisé.
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.MINTLIFY_TOKEN}`,
    },
    body: {
      fp: 'anonymous',
      retrievalPageSize: 5,
    },
    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).
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

Authorizations

Authorization
string
header
required

L’en-tête Authorization requiert un jeton Bearer. Consultez la documentation sur la clé d’API de l’Assistant pour savoir comment obtenir votre clé d’API.

Path Parameters

domain
string
required

L’identifiant de domaine figurant dans votre URL domain.mintlify.app. Vous pouvez le trouver à la fin de l’URL de votre Dashboard. Par exemple, dashboard.mintlify.com/organization/domain a pour identifiant de domaine domain.

Body

application/json
fp
string
required

Identifiant d’empreinte permettant de suivre les sessions de conversation. Utilisez « anonymous » pour les utilisateurs anonymes ou fournissez un identifiant utilisateur unique.

messages
object[]
required

Tableau de messages dans la conversation. Côté frontend, vous voudrez probablement utiliser la fonction handleSubmit du hook useChat fourni par le package @ai-sdk pour ajouter les messages des utilisateurs 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 d’associer 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'.

retrievalPageSize
number
default:5

Nombre de résultats de recherche dans la documentation à prendre en compte pour générer la réponse. Des valeurs plus élevées offrent davantage de contexte mais peuvent augmenter le temps de réponse. Recommandé : 5.

filter
object

Critères de filtrage facultatifs pour la recherche

Response

200 - application/json

Message généré avec succès

Objet de réponse qui diffuse des segments de flux de données formatés avec le statut, les en-têtes et le contenu spécifiés. Cela correspond à ce qui est attendu par l’AI SDK, tel que documenté sur ai-sdk.dev/docs/ai-sdk-ui/streaming-data. Plutôt que d’écrire votre propre analyseur, il est recommandé d’utiliser le hook useChat d’ai-sdk, comme documenté ici.