mirror of
https://github.com/mintlify/docs.git
synced 2026-09-14 13:35:46 +08:00
d2c78e1753
Co-authored-by: locadex-agent[bot] <217277504+locadex-agent[bot]@users.noreply.github.com>
116 lines
3.6 KiB
Plaintext
116 lines
3.6 KiB
Plaintext
---
|
||
tag: "Dernier"
|
||
openapi: /fr/discovery-openapi.json POST /v2/assistant/{domain}/message
|
||
keywords:
|
||
[
|
||
"assistant message",
|
||
"embed",
|
||
"chat",
|
||
"intégrer",
|
||
"v2",
|
||
"ai sdk v5",
|
||
"ai sdk v6"
|
||
]
|
||
---
|
||
|
||
<Info>
|
||
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](/fr/api-reference/assistant/create-assistant-message).
|
||
</Info>
|
||
|
||
<div id="integration-with-usechat">
|
||
## Intégration avec `useChat`
|
||
</div>
|
||
|
||
Le hook `useChat` de l'AI SDK de Vercel est la méthode recommandée pour intégrer l'API Assistant dans votre application.
|
||
|
||
<Steps>
|
||
<Step title="Installer l'AI SDK">
|
||
```bash
|
||
npm i ai@^6 @ai-sdk/react
|
||
```
|
||
</Step>
|
||
|
||
<Step title="Utiliser le hook">
|
||
```tsx
|
||
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.
|
||
</Step>
|
||
</Steps>
|
||
|
||
Voir [useChat](https://ai-sdk.dev/docs/reference/ai-sdk-ui/use-chat) et [Transport](https://ai-sdk.dev/docs/ai-sdk-ui/transport) dans la documentation de l'AI SDK pour plus de détails.
|
||
|
||
<div id="rate-limits">
|
||
## Limites de débit
|
||
</div>
|
||
|
||
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 |