Passer au contenu principal
POST
/
assistant
/
{domain}
/
message
Message de l’Assistant
curl --request POST \
  --url https://api-dsc.mintlify.com/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
}
'
{}

Intégration avec useChat

La méthode recommandée pour intégrer l’API de l’Assistant à votre application consiste à utiliser le hook useChat du SDK AI de Vercel.
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 AI SDK 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-dsc.mintlify.com/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 de la clé d’API Assistant pour savoir comment obtenir votre clé d’API.

Path Parameters

domain
string
required

L’identifiant de domaine utilisé dans votre URL domain.mintlify.app. Il se trouve à 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 (« fingerprint ») pour le suivi des sessions de conversation. Utilisez « anonymous » pour les utilisateurs anonymes ou fournissez un identifiant utilisateur unique.

messages
object[]
required

Tableau de messages de la conversation. Côté frontend, vous voudrez probablement utiliser 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

Un identifiant facultatif utilisé pour maintenir la continuité de la 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 fournissent 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 Response qui diffuse des parties de flux de données formatées avec le statut, les en-têtes et le champ content spécifiés. Cela correspond à ce qui est attendu par le SDK d’IA, comme documenté sur ai-sdk.dev/docs/ai-sdk-ui/streaming-data. Au lieu d’écrire votre propre analyseur, il est recommandé d’utiliser le hook useChat d’ai-sdk, comme documenté ici.