Vercel AI SDK
概述
Kaia Agent Kit 集成了多个流行的人工智能框架,使您能够使用自己喜欢的开发工具构建支持区块链的代理。 在本指南中,您将了解如何使用 Vercel AI SDK 创建人工智能代理,并将 Kaia Agent Kit 集成到链上操作中。
先决条件
- 已安装 Node.js 和 pnpm
- 已准备好私钥的 Kaia 钱包
- Google Generative API key
- Kaia 网络的RPC Provider
- Kaiascan API Key
开始使用
在本指南中,我们将使用 Vercel AI SDK 和 Kaia Agent Kit 构建一个基本的人工智能代理,它可以..:
- 发送本地代币、可互换代币 (FT) 和 NFT。
- 检查本地代币、FT 和 NFT 的余额。
- 使用(或通过)数据 Kaiascan API 获取区块链,以检索网络摘要、Kaia 的价格、地址的代币余额等。
在本指南结束时,您将拥有一个功能强大的人工智能代理,能够与 Kaia 区块链交互、执行交易并检索关键的链上数据--所有这些都是自主完成的。
了解人工智能代理堆栈
要建立一个强大的链上人工智能代理,我们需要合适的工具。 本指南利用 Vercel AI SDK 实现人工智能功能,并利用 Kaia Agent Kit 实现区块链交互。
Vercel 人工智能 SDK - 人工智能引擎
Vercel AI SDK 是一个 TypeScript 工具包,可让您使用 React、Next.js、Vue、Svelte 和 Node.js 等框架轻松构建人工智能驱动的应用程序和代理。 它支持多种人工智能模型,在本指南中,我们将使用 Google Generative AI 作为模型提供者。
Kaia代理工具包--利用Onchain工具为人工智能代理增效
Kaia Agent Kit 为人工智能代理带来了链上工具,使他们能够与 Kaia 区块链无缝互动。 这将使代理能够在链上执行操作、获取链上信息、验证交易并与智能合约动态交互。
利用 Vercel AI SDK 和 Kaia Agent Kit,我们将创建一个能够进行自主推理、行动和区块链交互的 AI 代理。
项目初始化
Vercel AI SDK
首先创建一个新的 Next.js 应用程序。 此命令将创建一个名为 kaia-agent-kit-vercel-ai-example 的新目录,并在其中建立一个基本的 Next.js 应用程序。
pnpm create next-app@latest kaia-agent-kit-vercel-ai-example
在本指南中,请在命令行提示符下输入以下值:
✔ Would you like to use TypeScript? … No / Yes✔ Would you like to use ESLint? … No / Yes✔ Would you like to use Tailwind CSS? … No / Yes✔ Would you like your code inside a `src/` directory? … No / Yes✔ Would you like to use App Router? (recommended) … No / Yes✔ Would you like to use Turbopack for `next dev`? … No / Yes✔ Would you like to customize the import alias (`@/*` by default)? … No / Yes
导航至新建目录:
cd kaia-agent-kit-vercel-ai-example
安装依赖项
分别安装人工智能软件包ai
、@ai-sdk/react
和@ai-sdk/google
、人工智能 SDK 的 React 挂钩和人工智能 SDK 的 Google Generative AI provider。
pnpm add ai @ai-sdk/react @ai-sdk/google zod dotenv
配置 Google Generative AI API 密钥
在项目根目录下创建一个 .env
文件,并添加 Google Generative AI API Key。 此密钥用于在 Google Generative AI 服务中验证您的应用程序。
touch .env
编辑 .env 文件:
GOOGLE_GENERATIVE_AI_API_KEY=xxxxxxxxx
将 xxxxxxxxx 替换为实际的 GOOGLE_GENERATIVE_AI API 密钥
创建路由处理程序
创建路由处理程序 app/api/chat/route.ts
并添加以下代码:
import { google } from '@ai-sdk/google';import { streamText } from 'ai';// Allow streaming responses up to 30 secondsexport const maxDuration = 30;export async function POST(req: Request) { const { messages } = await req.json(); const result = streamText({ model: google('gemini-1.5-pro-latest'), messages, }); return result.toDataStreamResponse();}