Vercel AI SDK + Ertas
使用 Vercel AI SDK 构建 AI 功能——这是一个 TypeScript 优先的 SDK,跨 94 个提供商提供统一接口,支持流式 UI、结构化输出、工具调用,并完全支持微调本地模型。
Overview
截至 2026 年 3 月,Vercel AI SDK 是构建 AI 驱动应用程序的主流 TypeScript SDK,支持来自 94 个提供商的 3,300 多个模型。其核心价值主张是提供商无关的人体工学:相同的 `generateText`、`streamText`、`generateObject` 和 `streamObject` 调用适用于 OpenAI、Anthropic、Google、Mistral、Hugging Face、本地 Ollama 模型以及任何你配置的自定义提供商。这使得在不更改应用程序代码的情况下,轻松实现模型切换以进行成本优化、A/B 测试或回退模式。
除了统一的提供商接口外,AI SDK 还为生产中重要的模式提供了一流的原语:用 于 React、Vue 和 Svelte 的流式 UI 组件;通过 Zod 进行结构化输出验证;具有并行执行的内置工具调用;以及通过 Vercel Workflow DevKit 提供的持久化工作流模式。该 SDK 是 Mastra(生产级智能体框架)的基础,并被广泛直接用于更简单的聊天和补全用例。对于 TypeScript 团队来说,它实际上是 AI 功能的默认基础设施层。
How Ertas Integrates
Ertas 训练的模型通过官方兼容 OpenAI 的提供商与 Vercel AI SDK 集成。在 Ertas Studio 中微调模型并部署到兼容 OpenAI 的端点(Ollama、vLLM 或 Ertas Cloud)后,你使用 `createOpenAI` 创建一个指向你的端点基础 URL 的自定义提供商。从这一刻起,每个 Vercel AI SDK 功能——流式传输、结构化输出、工具调用、多模态输入、通过 Mastra 的智能体循环——都能透明地与你的微调模型协同工作。
这种组合在 TypeScript 原生 AI 产品中表现出色。Web 应用程序、Next.js 应用程序、边缘函数和 Node.js 服务都可以直接使用 Ertas 训练的模型,无需桥接到 Python——消除了跨语言 AI 架构中的常见痛点。对于托管在 Vercel 上的应用程序,AI SDK 的边缘运行时支持,结合 Ertas Cloud 的区域部署选项,可实现低延迟的全球推理。对于自托管应用程序,相同的代码路径可在你自己的基础设施上的 Ollama 或 vLLM 端点上运行,无需对应用程序级别进行任何更改。
Getting Started
- 1
在 Ertas Studio 中微调你的模型
在你的数据上训练领域特定模型。微调后的模型捕获领域词汇、模式和工具使用规范,可在你所有的 AI 功能中使用。
- 2
部署到兼容 OpenAI 的端点
导出为 GGUF 格式并通过 Ollama、vLLM 或 Ertas Cloud 提供服务。AI SDK 适用于任何暴露标准 /v1/chat/completions API 的端点。
- 3
安装 Vercel AI SDK
安装 ai(核心 SDK)和 @ai-sdk/openai(兼容 OpenAI 的提供商)。同一安装即可支持所有标准 AI SDK 功能。
- 4
为你的 Ertas 端点创建自定义提供商
使用 createOpenAI 配合你的端点基础 URL。生成的提供商可与 generateText、streamText、generateObject 和工具调用 API 协同工作。
- 5
构建流式 UI、智能体或结构化输出
使用 AI SDK 的 React 组件实现流式聊天、Zod 验证的结构化输出或并行工具调用智能体——全部由你 的 Ertas 训练模型支持。
import { createOpenAI } from "@ai-sdk/openai";
import { generateObject, streamText } from "ai";
import { z } from "zod";
// Create a provider pointed at your Ertas-trained model
const ertas = createOpenAI({
baseURL: "http://localhost:11434/v1",
apiKey: "not-needed",
});
// Streaming chat
const stream = streamText({
model: ertas("ertas-support-7b"),
messages: [{ role: "user", content: "How do I cancel my subscription?" }],
});
for await (const chunk of stream.textStream) {
process.stdout.write(chunk);
}
// Structured output with Zod validation
const ticket = await generateObject({
model: ertas("ertas-support-7b"),
schema: z.object({
category: z.enum(["billing", "technical", "account"]),
priority: z.enum(["low", "medium", "high"]),
summary: z.string(),
suggestedAction: z.string(),
}),
prompt: "Classify this support email: [email body here]",
});
console.log(ticket.object); // Type-safe, validatedBenefits
- 统一的 TypeScript 接口——相同代码适用于来自 94 个提供商的 3,300 多个模型
- 为 React、Vue、Svelte 和 SolidJS 提供一流的流式 UI 原语
- 通过 Zod 模式实现结构化输出——无需手动解析的类型安全智能体输出
- 内置并行工具调用,全程具备强类型支持
- Mastra 智能体框架和 Vercel Workflow DevKit 的基础
- 边缘运行时支持,实现低延迟的全球推理部署模式
Related Resources
Fine-Tuning
GGUF
Inference
LoRA
Getting Started with Ertas: Fine-Tune and Deploy Custom AI Models
Fine-Tune AI Models Without Writing Code
Running AI Models Locally: The Complete Guide to Local LLM Inference
Letta
Mastra
Ollama
OpenRouter
vLLM
Ertas for Customer Support
Ertas for Data Extraction
Ertas for AI Automation Agencies
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.