未命名
发表于更新于
字数总计:574阅读时长:2分钟阅读量: 广西
安装
依赖
1 2 3
| bun add ai @ai-sdk/react zod bun add @ai-sdk/openai-compatible @ai-sdk/deepseek
|
@ai-sdk/openai-compatible基本上可以调用所有服务商,然后openai自己的还改版了!
配置环境变量 .env.local
1 2
| AI_GATEWAY_API_KEY=xxxxxxxxx AI_IFLOW_API_KEY=xxxxxx
|
创建自定义的openai格式的服务提供商
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| import { streamText, UIMessage, convertToModelMessages } from 'ai'; import { createOpenAICompatible} from "@ai-sdk/openai-compatible";
// Create an OpenAI instance,然后自定义的provider名称是iflow_openai const iflow_openai = createOpenAICompatible({ // 从环境变量里面读取IFLOW_API_KEY和IFLOW_API_URL apiKey: process.env.IFLOW_API_KEY, baseURL: process.env.IFLOW_API_URL || '', name: 'iflow_openai', });
export async function POST(req: Request) { const { messages }: { messages: UIMessage[] } = await req.json(); const result = streamText({ // 使用自定义的provider model: iflow_openai(process.env.IFLOW_API_MODEL as string || "qwen3-max"), messages: await convertToModelMessages(messages), }); return result.toUIMessageStreamResponse(); }
|
使用shadcn
安装,就是进行初始化
1
| bunx --bun shadcn@latest init
|
--bun参数讲解
bunx –bun 中添加 –bun 的目的是为了强制使用 Bun 运行时来执行一个可执行文件。
详细解释如下:
bunx 是 Bun 运行时中的一个命令行工具,类似于 npx,用于执行 npm 包中的可执行文件(CLI 工具)。
默认情况下,bunx 会遵循可执行文件(例如 JavaScript 文件)中指定的 shebang(比如 #!/usr/bin/env node)。这意味着如果 shebang 指向 Node.js,bunx 会使用 Node.js 来运行它。
当你添加 –bun 标志时,你就是在明确告诉 bunx,即使可执行文件内部指定了其他运行时(如 Node.js),也要忽略它,并强制使用 Bun 运行时来执行该文件。
重要提示: –bun 标志必须放在可执行文件名称之前,例如:bunx –bun <可执行文件名>。
AI SDK Core: Tool Calling
在返回ai内容的streamText或generateText的参数中添加工具
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| tools: { weather_iflow: tool({ description: "获取一个位置的天气。", inputSchema: z.object({ location: z.string().describe("要获取天气的位置"), }), execute: async ({ location }) => ({ location, weather: "晴天", }) }) },
stopWhen: stepCountIs(5),
|