mirror of
https://github.com/mintlify/docs.git
synced 2026-09-14 13:35:46 +08:00
948b6135d9
Co-authored-by: locadex-agent[bot] <217277504+locadex-agent[bot]@users.noreply.github.com>
92 lines
2.8 KiB
Plaintext
92 lines
2.8 KiB
Plaintext
---
|
||
openapi: /fr/discovery-openapi.json POST /assistant/{domain}/message
|
||
keywords: [ "message de l’Assistant", "intégration", "chat", "intégrer" ]
|
||
---
|
||
|
||
<div id="integration-with-usechat">
|
||
## Intégration avec `useChat`
|
||
</div>
|
||
|
||
Le hook `useChat` du SDK AI de Vercel est la méthode recommandée pour intégrer l’API de l’Assistant à votre application.
|
||
|
||
<Note>
|
||
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é.
|
||
</Note>
|
||
|
||
<Steps>
|
||
<Step title="Installer le SDK AI v4">
|
||
|
||
```bash
|
||
npm i ai@^4.1.15
|
||
```
|
||
|
||
</Step>
|
||
<Step title="Utiliser le hook">
|
||
|
||
```tsx
|
||
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,
|
||
context: [
|
||
{
|
||
type: 'code',
|
||
value: 'const example = "code snippet";',
|
||
elementId: 'code-block-1',
|
||
},
|
||
],
|
||
},
|
||
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).
|
||
|
||
**Configuration optionnelle :**
|
||
- `body.context` - Tableau d’informations contextuelles à fournir à l’Assistant. Chaque objet de contexte contient :
|
||
- `type` - Soit `'code'` soit `'textSelection'`.
|
||
- `value` - L’extrait de code ou le texte sélectionné.
|
||
- `elementId` (optionnel) - Identifiant de l’élément d’interface contenant le contexte.
|
||
|
||
</Step>
|
||
</Steps>
|
||
|
||
Consultez [useChat](https://ai-sdk.dev/docs/reference/ai-sdk-ui/use-chat) dans la documentation du SDK AI pour en savoir plus.
|
||
|
||
<div id="rate-limits">
|
||
## Limites de débit
|
||
</div>
|
||
|
||
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 |