Skip to main content
POST
/
v2
/
assistant
/
{domain}
/
message
Message de l’Assistant v2
curl --request POST \
  --url https://api.mintlify.com/discovery/v2/assistant/{domain}/message \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "fp": "<string>",
  "messages": [
    {
      "id": "foobar",
      "role": "user",
      "parts": [
        {
          "type": "text",
          "text": "How do I get started"
        }
      ]
    }
  ],
  "threadId": null,
  "retrievalPageSize": 5,
  "filter": null,
  "context": [
    {
      "type": "code",
      "value": "<string>",
      "path": "<string>",
      "elementId": "<string>"
    }
  ]
}
'
{}
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.

Intégration avec useChat

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

Installer l'AI SDK

npm i ai@^6 @ai-sdk/react
2

Utiliser le hook

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.
Voir useChat et Transport dans la documentation de l’AI SDK pour plus de détails.

Limites de débit

L’API Assistant est soumise aux 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 IP et par jour

Authorizations

Authorization
string
header
required

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.

Path Parameters

domain
string
required

L’identifiant de domaine provenant 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 domaine égal à domain.

Body

application/json
fp
string
required

Identifiant d’empreinte pour le suivi des sessions de conversation. Utilisez anonymous pour les utilisateurs non authentifiés ou fournissez un identifiant utilisateur unique.

messages
object[]
required

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.

threadId
string

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

retrievalPageSize
number
default: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�a0: 5.

filter
object

Critères de filtrage facultatifs pour la recherche.

context
object[]

Tableau facultatif d’informations contextuelles à fournir à l’Assistant.

Response

200 - application/json

Message généré avec succès

Réponse en streaming compatible avec AI SDK v5. Utilisez le hook useChat de @ai-sdk/react pour gérer le streaming de la réponse.