> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Intégrer Mastra à votre projet Nuxt Dans ce guide, vous allez créer avec Mastra un Agent d’IA capable d’appeler des Tools, puis le connecter à Nuxt en l’important et en l’appelant directement depuis vos routes serveur. Vous utiliserez [AI SDK UI](https://ai-sdk.dev/docs/ai-sdk-ui/overview) pour créer avec Vue une expérience de chat élégante et interactive. ## Avant de commencer - Vous aurez besoin d’une clé d’API fournie par un [Provider de modèle](https://mastra.zisheng.pro/fr/models) pris en charge. Si vous n’avez pas de préférence, utilisez [OpenAI](https://mastra.zisheng.pro/fr/models/providers/openai). - Installez Node.js `v22.13.0` ou une version ultérieure ## Créer une nouvelle application Nuxt (facultatif) Si vous disposez déjà d’une application Nuxt, passez à l’étape suivante. Exécutez la commande suivante pour [créer une nouvelle application Nuxt](https://nuxt.com/docs/getting-started/installation) : **npm**: ```bash npm create nuxt@latest mastra-nuxt -- --template minimal --packageManager npm --gitInit --modules ``` **pnpm**: ```bash pnpm create nuxt mastra-nuxt --template minimal --packageManager npm --gitInit --modules ``` **Yarn**: ```bash yarn create nuxt mastra-nuxt --template minimal --packageManager npm --gitInit --modules ``` **Bun**: ```bash bunx create-nuxt mastra-nuxt --template minimal --packageManager npm --gitInit --modules ``` Cette commande crée un projet nommé `mastra-nuxt`, mais vous pouvez choisir un autre nom. ## Initialiser Mastra Accédez à votre projet Nuxt : ```bash cd mastra-nuxt ``` Exécutez [`mastra init`](https://mastra.zisheng.pro/fr/reference/cli/mastra). Lorsque vous y êtes invité, choisissez un Provider, par exemple OpenAI, puis saisissez votre clé : **npm**: ```bash npx mastra@latest init ``` **pnpm**: ```bash pnpm dlx mastra@latest init ``` **Yarn**: ```bash yarn dlx mastra@latest init ``` **Bun**: ```bash bun x mastra@latest init ``` Cette commande crée un dossier `mastra` contenant un exemple d’Agent météo et les fichiers suivants : - `index.ts` : configuration de Mastra, notamment la Memory - `tools/weather-tool.ts` : Tool permettant de récupérer la météo d’un lieu donné - `agents/weather-agent.ts` : Agent météo dont le prompt utilise le Tool Vous appellerez `weather-agent.ts` depuis vos routes serveur Nuxt au cours des étapes suivantes. ## Installer AI SDK UI Installez AI SDK UI avec l’adaptateur Mastra : **npm**: ```bash npm install @mastra/ai-sdk@latest @ai-sdk/vue ai ``` **pnpm**: ```bash pnpm add @mastra/ai-sdk@latest @ai-sdk/vue ai ``` **Yarn**: ```bash yarn add @mastra/ai-sdk@latest @ai-sdk/vue ai ``` **Bun**: ```bash bun add @mastra/ai-sdk@latest @ai-sdk/vue ai ``` ## Créer une route de chat Créez `server/api/chat.ts` : ```ts import { handleChatStream } from '@mastra/ai-sdk' import { toAISdkV5Messages } from '@mastra/ai-sdk/ui' import { createUIMessageStreamResponse } from 'ai' import { mastra } from '../../src/mastra' const THREAD_ID = 'example-user-id' const RESOURCE_ID = 'weather-chat' export default defineEventHandler(async event => { const method = event.method if (method === 'POST') { const params = await readBody(event) const stream = await handleChatStream({ mastra, agentId: 'weather-agent', params: { ...params, memory: { ...params.memory, thread: THREAD_ID, resource: RESOURCE_ID, }, }, }) return createUIMessageStreamResponse({ stream }) } if (method === 'GET') { const memory = await mastra.getAgentById('weather-agent').getMemory() let response = null try { response = await memory?.recall({ threadId: THREAD_ID, resourceId: RESOURCE_ID, }) } catch { console.log('No previous messages found.') } const uiMessages = toAISdkV5Messages(response?.messages || []) return uiMessages } }) ``` Le gestionnaire `POST` accepte un prompt et renvoie la réponse de l’Agent sous forme de flux au format AI SDK, tandis que le gestionnaire `GET` récupère l’historique des messages dans la Memory afin de réhydrater l’interface utilisateur lorsque le client recharge la page. ## Ajouter l’interface de chat Remplacez le contenu de `app/app.vue` par le code suivant : ```html ``` Ce composant connecte [`Chat()`](https://ai-sdk.dev/docs/reference/ai-sdk-ui/use-chat) à l’endpoint `/api/chat` : il y envoie les prompts et reçoit la réponse sous forme de flux par fragments. Il affiche le texte de la réponse avec un style de message personnalisé et présente les appels de Tools dans un élément de détails repliable. ## Tester votre Agent 1. Lancez votre application Nuxt avec `npm run dev` 2. Ouvrez le chat à l’adresse 3. Posez une question sur la météo. Si votre clé d’API est correctement configurée, vous recevrez une réponse ## Étapes suivantes Félicitations, vous avez créé votre Agent Mastra avec Nuxt ! 🎉 Vous pouvez maintenant enrichir le projet avec vos propres Tools et votre propre logique : - En savoir plus sur les [Agents](https://mastra.zisheng.pro/fr/docs/agents/overview) - Ajouter des [Tools](https://mastra.zisheng.pro/fr/docs/agents/using-tools) à votre Agent - Ajouter une [Memory](https://mastra.zisheng.pro/fr/docs/memory/overview) similaire à la mémoire humaine à votre Agent Lorsque vous serez prêt, découvrez comment Mastra s’intègre à AI SDK UI et à Nuxt, ainsi que la manière de déployer votre Agent où vous le souhaitez : - Intégrer Mastra à [AI SDK UI](https://mastra.zisheng.pro/fr/guides/build-your-ui/ai-sdk-ui) - Déployer votre Agent [où vous le souhaitez](https://mastra.zisheng.pro/fr/docs/deployment/overview)