> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # Nuxt 프로젝트에 Mastra 통합 이 가이드에서는 Mastra를 사용하여 Tool 호출 AI Agent를 구축한 다음 서버 경로에서 직접 Agent를 가져오고 호출하여 Nuxt에 연결합니다. [AI SDK UI](https://ai-sdk.dev/docs/ai-sdk-ui/overview)를 사용하여 Vue로 아름다운 대화형 채팅 환경을 만듭니다. ## 시작하기 전에 - 지원되는 [Model Provider](https://mastra.zisheng.pro/ko/models)의 API 키가 필요합니다. 선호하는 Provider가 없다면 [OpenAI](https://mastra.zisheng.pro/ko/models/providers/openai)를 사용하세요. - Node.js `v22.13.0` 이상 설치 ## 새로운 Nuxt 앱 생성(선택 사항) 이미 Nuxt 앱이 있다면 다음 단계로 건너뛰세요. 다음 명령을 실행하여 [새 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 ``` 이 명령은 `mastra-nuxt`라는 프로젝트를 생성하지만 원하는 이름으로 바꿀 수 있습니다. ## 마스트라 초기화 Nuxt 프로젝트로 이동합니다: ```bash cd mastra-nuxt ``` [`mastra init`](https://mastra.zisheng.pro/ko/reference/cli/mastra)을 실행합니다. 메시지가 표시되면 Provider(예: OpenAI)를 선택하고 키를 입력합니다. **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 ``` 그러면 예제 날씨 Agent와 다음 파일을 포함하는 `mastra` 폴더가 생성됩니다. - `index.ts`- Memory를 포함한 마스트라 구성 - `tools/weather-tool.ts`- 특정 위치의 날씨를 가져오는 Tool - `agents/weather-agent.ts`- Tool을 사용하는 Prompt가 있는 기상 요원 다음 단계에서는 Nuxt 서버 라우트에서 `weather-agent.ts`를 호출합니다. ## AI SDK UI 설치 Mastra 어댑터와 함께 AI SDK UI를 설치합니다. **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 ``` ## 채팅 경로 만들기 만들다`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 } }) ``` `POST` 핸들러는 Prompt를 받아 Agent의 응답을 AI SDK 형식으로 스트리밍하고, `GET` 핸들러는 Memory에서 메시지 기록을 가져와 클라이언트가 다시 로드될 때 UI를 hydrate할 수 있게 합니다. ## 채팅 UI 추가 `app/app.vue`의 내용을 다음으로 교체합니다. ```html ``` 이 컴포넌트는 [`Chat()`](https://ai-sdk.dev/docs/reference/ai-sdk-ui/use-chat)을 `/api/chat` 엔드포인트에 연결하여 Prompt를 전송하고 응답을 청크 단위로 스트리밍합니다. 사용자 정의 메시지 스타일을 사용하여 응답 텍스트를 렌더링하고 축소 가능한 세부 정보 요소에 Tool 호출을 표시합니다. ## Agent 테스트 1. 다음으로 Nuxt 앱을 실행하세요.`npm run dev` 2. 다음에서 채팅을 엽니다. 3. 날씨에 대해 물어보세요. API 키가 올바르게 설정되면 응답을 받게 됩니다. ## 다음 단계 Nuxt를 사용하여 Mastra Agent를 구축한 것을 축하합니다! 🎉 여기에서 자신만의 Tool와 논리를 사용하여 프로젝트를 확장할 수 있습니다. - [Agent](https://mastra.zisheng.pro/ko/docs/agents/overview)에 관해 자세히 알아보기 - Agent에 고유한 기능을 제공하는 [Tool](https://mastra.zisheng.pro/ko/docs/agents/using-tools) 추가하기 - Agent에 사람과 같은 [Memory](https://mastra.zisheng.pro/ko/docs/memory/overview) 추가하기 준비가 되면 Mastra가 AI SDK UI 및 Nuxt와 통합되는 방법과 Agent를 어디에나 배포하는 방법에 대해 자세히 알아보세요. - Mastra를 다음과 통합하세요.[AI SDK UI](https://mastra.zisheng.pro/ko/guides/build-your-ui/ai-sdk-ui) - Agent 배포[anywhere](https://mastra.zisheng.pro/ko/docs/deployment/overview)