mirror of
https://github.com/mintlify/docs.git
synced 2026-09-14 13:35:46 +08:00
d043cf3254
Co-authored-by: locadex-agent[bot] <217277504+locadex-agent[bot]@users.noreply.github.com>
801 lines
35 KiB
JSON
801 lines
35 KiB
JSON
{
|
||
"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": {
|
||
"/v1/assistant/{domain}/message": {
|
||
"post": {
|
||
"summary": "Message de l’Assistant v1",
|
||
"description": "Génère un message de réponse de l’Assistant pour le domain spécifié. Compatible avec l’AI SDK v4.",
|
||
"parameters": [
|
||
{
|
||
"name": "domain",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {
|
||
"type": "string"
|
||
},
|
||
"description": "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`."
|
||
}
|
||
],
|
||
"requestBody": {
|
||
"required": true,
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"type": "object",
|
||
"required": [
|
||
"fp",
|
||
"messages"
|
||
],
|
||
"properties": {
|
||
"fp": {
|
||
"type": "string",
|
||
"description": "Identifiant de fingerprint pour le suivi des sessions de conversation. Utilisez « anonymous » pour les utilisateurs anonymes ou fournissez un identifiant utilisateur unique."
|
||
},
|
||
"threadId": {
|
||
"default": null,
|
||
"type": "string",
|
||
"description": "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'."
|
||
},
|
||
"messages": {
|
||
"type": "array",
|
||
"default": [
|
||
{
|
||
"id": "foobar",
|
||
"role": "user",
|
||
"content": "how do i get started",
|
||
"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",
|
||
"data",
|
||
"user"
|
||
],
|
||
"description": "Rôle de l’émetteur du message."
|
||
},
|
||
"createdAt": {
|
||
"type": "string",
|
||
"format": "date-time",
|
||
"description": "Horodatage de la création du message."
|
||
},
|
||
"content": {
|
||
"type": "string",
|
||
"description": "Contenu du message."
|
||
},
|
||
"annotations": {
|
||
"type": "array",
|
||
"items": {},
|
||
"description": "Tableau optionnel d’annotations pour ce message."
|
||
},
|
||
"parts": {
|
||
"type": "array",
|
||
"items": {
|
||
"oneOf": [
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"type": {
|
||
"type": "string",
|
||
"enum": [
|
||
"text"
|
||
]
|
||
},
|
||
"text": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"required": [
|
||
"type",
|
||
"text"
|
||
]
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"type": {
|
||
"type": "string",
|
||
"enum": [
|
||
"reasoning"
|
||
]
|
||
},
|
||
"reasoning": {
|
||
"type": "string"
|
||
},
|
||
"details": {
|
||
"type": "array",
|
||
"items": {
|
||
"oneOf": [
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"type": {
|
||
"type": "string",
|
||
"enum": [
|
||
"text"
|
||
]
|
||
},
|
||
"text": {
|
||
"type": "string"
|
||
},
|
||
"signature": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"required": [
|
||
"type",
|
||
"text"
|
||
]
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"type": {
|
||
"type": "string",
|
||
"enum": [
|
||
"redacted"
|
||
]
|
||
},
|
||
"data": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"required": [
|
||
"type",
|
||
"data"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"required": [
|
||
"type",
|
||
"reasoning",
|
||
"details"
|
||
]
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"type": {
|
||
"type": "string",
|
||
"enum": [
|
||
"step-start"
|
||
]
|
||
}
|
||
},
|
||
"required": [
|
||
"type"
|
||
]
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"type": {
|
||
"type": "string",
|
||
"enum": [
|
||
"source"
|
||
]
|
||
},
|
||
"source": {
|
||
"type": "object",
|
||
"properties": {
|
||
"sourceType": {
|
||
"type": "string",
|
||
"enum": [
|
||
"url"
|
||
]
|
||
},
|
||
"id": {
|
||
"type": "string"
|
||
},
|
||
"url": {
|
||
"type": "string"
|
||
},
|
||
"title": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"required": [
|
||
"sourceType",
|
||
"id",
|
||
"url"
|
||
]
|
||
}
|
||
},
|
||
"required": [
|
||
"type",
|
||
"source"
|
||
]
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"type": {
|
||
"type": "string",
|
||
"enum": [
|
||
"tool-invocation"
|
||
]
|
||
},
|
||
"toolInvocation": {
|
||
"oneOf": [
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"state": {
|
||
"type": "string",
|
||
"enum": [
|
||
"partial-call"
|
||
]
|
||
},
|
||
"step": {
|
||
"type": "number"
|
||
},
|
||
"toolCallId": {
|
||
"type": "string"
|
||
},
|
||
"toolName": {
|
||
"type": "string"
|
||
},
|
||
"args": {}
|
||
},
|
||
"required": [
|
||
"state",
|
||
"toolCallId",
|
||
"toolName",
|
||
"args"
|
||
]
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"state": {
|
||
"type": "string",
|
||
"enum": [
|
||
"call"
|
||
]
|
||
},
|
||
"step": {
|
||
"type": "number"
|
||
},
|
||
"toolCallId": {
|
||
"type": "string"
|
||
},
|
||
"toolName": {
|
||
"type": "string"
|
||
},
|
||
"args": {}
|
||
},
|
||
"required": [
|
||
"state",
|
||
"toolCallId",
|
||
"toolName",
|
||
"args"
|
||
]
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"state": {
|
||
"type": "string",
|
||
"enum": [
|
||
"result"
|
||
]
|
||
},
|
||
"step": {
|
||
"type": "number"
|
||
},
|
||
"toolCallId": {
|
||
"type": "string"
|
||
},
|
||
"toolName": {
|
||
"type": "string"
|
||
},
|
||
"args": {},
|
||
"result": {}
|
||
},
|
||
"required": [
|
||
"state",
|
||
"toolCallId",
|
||
"toolName",
|
||
"args",
|
||
"result"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"required": [
|
||
"type",
|
||
"toolInvocation"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"description": "Tableau de segments de message avec différents types, dont le texte, le raisonnement, les sources et les appels d’outils."
|
||
},
|
||
"experimental_attachments": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"properties": {
|
||
"name": {
|
||
"type": "string"
|
||
},
|
||
"contentType": {
|
||
"type": "string"
|
||
},
|
||
"url": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"required": [
|
||
"url"
|
||
]
|
||
},
|
||
"description": "Tableau facultatif de pièces jointes expérimentales associées au message."
|
||
}
|
||
},
|
||
"required": [
|
||
"id",
|
||
"role",
|
||
"content",
|
||
"parts"
|
||
]
|
||
},
|
||
"description": "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."
|
||
},
|
||
"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 : 5."
|
||
},
|
||
"filter": {
|
||
"type": "object",
|
||
"default": null,
|
||
"properties": {
|
||
"version": {
|
||
"type": "string",
|
||
"description": "Filtre de version facultatif."
|
||
},
|
||
"language": {
|
||
"type": "string",
|
||
"description": "Filtre de langue facultatif."
|
||
}
|
||
},
|
||
"description": "Critères de filtrage facultatifs pour la recherche."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "Message généré avec succès.",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"type": "object",
|
||
"description": "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](https://ai-sdk.dev/docs/ai-sdk-ui/streaming-data). Utilisez le [hook useChat de ai-sdk](https://ai-sdk.dev/docs/reference/ai-sdk-ui/use-chat#usechat) pour gérer le flux de réponse."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/v2/assistant/{domain}/message": {
|
||
"post": {
|
||
"summary": "Message de l’Assistant v2",
|
||
"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.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`."
|
||
}
|
||
],
|
||
"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\u0000a0: 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."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"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."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/v1/search/{domain}": {
|
||
"post": {
|
||
"x-mint": {
|
||
"mcp": {
|
||
"enabled": true
|
||
}
|
||
},
|
||
"summary": "Rechercher dans la documentation",
|
||
"description": "Effectuez des recherches sémantiques et par mots-clés dans votre documentation, avec un filtrage et une pagination configurables.",
|
||
"parameters": [
|
||
{
|
||
"name": "domain",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {
|
||
"type": "string"
|
||
},
|
||
"description": "L’identifiant de domaine extrait de votre URL `domain.mintlify.app`. Il se trouve à la fin de l’URL de votre Dashboard. Par exemple, dans `dashboard.mintlify.com/organization/domain`, l’identifiant de domaine est `domain`."
|
||
}
|
||
],
|
||
"requestBody": {
|
||
"required": true,
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"type": "object",
|
||
"required": [
|
||
"query"
|
||
],
|
||
"properties": {
|
||
"query": {
|
||
"type": "string",
|
||
"description": "La requête de recherche à exécuter sur le contenu de votre documentation."
|
||
},
|
||
"pageSize": {
|
||
"type": "number",
|
||
"default": 10,
|
||
"description": "Nombre de résultats de recherche à retourner. La valeur par défaut est 10 si aucune valeur n’est spécifiée."
|
||
},
|
||
"filter": {
|
||
"type": "object",
|
||
"description": "Paramètres de filtrage optionnels permettant de restreindre les résultats de recherche.",
|
||
"properties": {
|
||
"version": {
|
||
"type": "string",
|
||
"description": "Filtrer les résultats par version de la documentation."
|
||
},
|
||
"language": {
|
||
"type": "string",
|
||
"description": "Filtrer les résultats par langue du contenu."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "Résultats de recherche",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"properties": {
|
||
"content": {
|
||
"type": "string",
|
||
"description": "Le contenu correspondant issu de votre documentation."
|
||
},
|
||
"path": {
|
||
"type": "string",
|
||
"description": "Le chemin d’accès ou l’URL du document source."
|
||
},
|
||
"metadata": {
|
||
"type": "object",
|
||
"description": "Metadata supplémentaires relatives au résultat de recherche."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"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."
|
||
}
|
||
}
|
||
}
|
||
} |