博客

TanStack AI Alpha 2:所有模态,更好的 API,更小的包体积

作者:Alem Tuzlak, Jack Herrington, 和 Tanner Linsley,发布于 2025 年 12 月 19 日。

TanStack AI Alpha 2

自从我们发布 TanStack AI 的第一个 Alpha 版本以来,已经过去了两个星期。对我们来说,感觉像是过了几十年。我们已经原型化了 5-6 种不同的内部架构,以为您带来最佳体验。

我们的目标很简单:摆脱单体适配器及其复杂性,同时扩展我们公共 API 的灵活性和强大功能。此版本实现了这两点。

新的适配器架构

我们希望支持 AI 提供商提供的所有功能。图像生成、视频、音频、文本转语音、转录。而无需同时更新每个适配器。

我们是一个小团队。为图像添加支持不应该意味着扩展 BaseAdapter,更新 5+ 提供商的实现,确保每个模型的类型安全,并手动梳理文档。这需要每个提供商一周的时间。乘以 20 个提供商和 6 种模态。

所以我们拆分了单体。

以前是

ts
import { openai } from '@tanstack/ai-openai'

现在是

ts
import { openaiText, openaiImage, openaiVideo } from '@tanstack/ai-openai'

为什么这很重要

增量功能支持。 本周为 OpenAI 添加图像生成,下周为 Gemini,再下周为第三个提供商添加视频。更小的发布,相同的节奏。

更易于维护。 我们的适配器抽象已经增长到 7 个类型泛型,仅支持文本、摘要和嵌入。添加 6 种其他模态会使复杂性激增。现在每个适配器都专注于一个目标。最多 3 个泛型。

更小的包体积。 您控制引入的内容。只想使用文本?导入 openaiText。想要文本和图像?同时导入两者。您的包,您的选择。

更快的贡献。 几百行代码即可添加您最喜欢的提供商的支持。我们可以快速审查和合并它。

新的模态

我们现在支持什么?

  • 结构化输出
  • 图像生成
  • 视频生成
  • 音频生成
  • 转录
  • 文本转语音

您有使用 AI 的用例吗?我们支持它。

API 变更

我们进行了破坏性变更。以下是原因和内容。

模型移动到适配器中

之前

ts
chat({
  adapter: openai(),
  model: 'gpt-4',
  // now you get typesafety...
})

之后

ts
chat({
  adapter: openaiText('gpt-4'),
  // immediately get typesafety
})

更少的步骤来自动完成。不再因为忘记定义模型而出现类型错误。

providerOptions → modelOptions

快速术语解释

  • 提供商 (Provider):您的 LLM 提供商(OpenAI、Anthropic、Gemini)
  • 适配器 (Adapter):TanStack AI 与该提供商的接口
  • 模型 (Model):特定的模型(GPT-4、Claude 等)

以前的 providerOptions模型相关联,而不是提供商。从 gpt-4 更改为 gpt-3.5-turbo 会更改这些选项。所以我们将其重命名为

ts
chat({
  adapter: openaiText('gpt-4'),
  modelOptions: {
    text: {},
  },
})

选项扁平化到根目录

例如 temperature 这样的设置适用于所有提供商。我们的其他模态已经将配置放在根目录

ts
generateImage({
  adapter,
  numberOfImages: 3,
})

所以我们将聊天也调整为一致

ts
chat({
  adapter: openaiText('gpt-4'),
  modelOptions: {
    text: {},
  },
  temperature: 0.6,
})

开始输入以查看可用内容。

完整的 Diff

diff
chat({
-  adapter: openai(),
+  adapter: openaiText("gpt-4"),
-  model: "gpt-4",
-  providerOptions: {
+  modelOptions: {
    text: {}
  },
-  options: {
-    temperature: 0.6
-  },
+  temperature: 0.6
})

接下来是什么

标准 Schema 支持。 我们正在取消对工具和结构化输出的 Zod 约束。使用您自己的 Schema 验证库。

路线图上

  • 中间件
  • 工具强化
  • 用于 AI 组件的无头 UI 库
  • 感知上下文的工具
  • 更好的开发工具和使用情况报告
  • 更多适配器:AWS Bedrock、OpenRouter 等

欢迎社区贡献。

总结

我们已经发布了一个重大的架构调整、所有模态的新功能以及更简洁的 API。适配器易于制作、易于维护且易于理解。您的包体积保持最小。

我们对这个方向充满信心。我们认为您也会喜欢它。