BuildingAI 帮助文档
BuildingAI 官网
  1. 插件与框架开发
  • 欢迎使用 BuildingAI
  • 演示环境
  • 用户社群
  • 企业版咨询
  • 产品线路图
  • 更新日志
  • API 赞助商
  • 积分获取方式
  • 应用安装教程「必看」
  • 使用教程
    • 快速使用
      • 对话
      • 智能体
      • 知识库
      • 工作流
      • MCP 服务
      • 登录配置
      • 密钥配置
      • 模型计费
      • 积分充值
      • 会员订阅
      • 卡密兑换
      • DIY装修
    • 常见配置教程
      • 微信支付配置
      • 支付宝支付配置
      • 微信公众号配置
      • OSS存储配置
      • 短信配置
      • 谷歌登录配置
      • Ollama配置
    • 应用配置教程
      • 香蕉绘画-使用教程
      • Sora2短剧视频-使用教程
      • 即梦AI绘画-使用教程
      • wan2.6漫剧-使用教程
    • 大模型申请教程
      • 即梦AI密钥-申请教程
      • 豆包大模型-申请教程
      • 通义千问-申请教程
    • 老版本教程
      • 功能使用教程
      • 智能体
      • MCP工具
      • DIY中心
  • 部署教程
    • 宝塔面板部署
    • Windows 环境下 Docker 部署
    • Docker方式安装
  • 开发文档
    • 网络接口
      • 登录注册
        • 账号密码登录
        • 账号密码注册
      • 前台
        • 文件上传/下载
          • 单个上传
          • 多个上传
          • 列表
          • 详情
          • 下载
          • 删除
        • 用户
          • 算力明细
          • 登录配置
        • AI聊天
          • 对话(非流式)
          • 流式对话
          • 对话记录
          • 对话详情
          • 修改记录
          • 删除记录
          • 获取记录对话
        • MCP
          • 列表
          • 所有记录
          • 详情:id
          • 创建
          • 修改
          • 可见状态
          • 添加
          • 关联详情
          • 系统MCP
          • json导入
          • 移除
          • 删除
          • 获取快捷菜单
          • 系统MCP详情:id
          • 连通性
          • 批量连通性
        • 充值中心
          • 充值中心
          • 充值提交订单
          • 充值记录
          • 预支付
          • 获取支付结果
        • 模型厂商
          • 列表
          • 详情:id
          • 详情:code
        • AI模型
          • 列表
          • 详情:id
          • 默认模型
        • 数据分析
          • 数据记录
        • 会员中心
          • 会员中心信息
          • 获取套餐列表
          • 预支付
          • 订阅提交订单
      • 后台
        • 工作空间
          • MCP
            • 列表
            • 详情
            • 创建
            • 修改
            • 删除
            • 批量删除
            • 启用状态
            • json导入
            • 连通性
            • 批量连通性
            • 获取快捷菜单
            • 设置快捷菜单
          • AI模型
            • 厂商管理
              • 列表
              • 新增
              • 详情:id
              • 详情:provider
              • 修改
              • 删除
              • 状态
            • 模型管理
              • 列表
              • 新增
              • 详情:id
              • 修改
              • 删除:id
              • 批量删除
              • 设为默认
              • 模型类型
              • 模型支持能力
              • 父级模型类型
          • AI知识库
            • 知识库列表
            • 知识库详情
            • 转移知识库
            • 知识库删除
            • 知识库文档列表
            • 知识库文档详情
            • 知识库文档删除
            • 知识库分段列表
            • 知识库分段详情
            • 知识库分段删除
            • 数据列表接口
          • AI智能体
            • 智能体创建
            • 智能体列表
            • 智能体详情
            • 智能体对话记录列表
            • 智能体对话记录详情
            • 智能体对话
            • 智能体发布API接口对话
            • 智能体发布API获取对话列表
            • 智能体发布API获取对话消息
            • 智能体发布API更新对话
            • 智能体发布API删除对话
          • 密钥管理
            • 密钥模板
              • 列表
              • 全部列表
              • 详情
              • 创建
              • 修改
              • 删除
              • 批量删除
              • 修改状态
              • json导入
            • 密钥配置
              • 列表
              • 列表:templateId
              • 创建
              • 统计
              • 详情
              • 完整详情
              • 修改
              • 修改状态
              • 删除
              • 批量删除
        • 用户管理
          • 列表
          • 创建
          • 详情:id
          • 删除
          • 批量删除
          • 重置密码
          • 更新状态
          • 重置随机密码
          • 登录设置
          • 登录设置
        • 角色管理
          • 创建
          • 详情:id
          • 修改
          • 删除
          • 列表
        • 菜单管理
          • 创建
          • 详情:id
          • 修改
          • 删除
          • 列表
        • 插件管理
          • 我的插件
            • 列表
            • 修改
            • 详情:id
            • 创建
            • 启用列表
            • 批量删除
            • 删除:id
            • 批量状态
            • 禁用:id
            • 启用:id
            • 是否存在:identifier
            • 详情:identifier
            • 入库插件详情:identifier
            • 本地列表
            • 类型列表
            • 版本列表:identifier
            • 安装
            • 卸载
          • 插件操作
            • 下载
            • 安装
          • 平台密钥
            • 获取开发者密钥
            • 设置开发者密钥
        • 权限管理
          • 列表
          • 扫描权限
          • 同步到库
          • 扫描接口
          • 清理废弃权限
          • 详情:code
        • 字典配置
          • 列表
        • 系统操作
          • 支付配置
            • 列表
            • 详情:id
            • 状态
            • 更新
          • 系统信息
            • 安装状态
            • 安装状态
          • pm2
            • 进程列表
            • 日志
            • 重启
            • 重载
            • 停止进程
            • 进程详情
            • 进程状态
            • 清空日志
            • 保存进程
            • 健康检查
            • 删除进程
        • 套餐充值
          • 获取套餐充值配置
          • 获取套餐充值配置 Copy
        • 财务
          • 财务中心
          • 用户余额明细
        • 订单管理
          • 充值订单列表
          • 充值订单详情
          • 充值订单退款
          • 会员订单列表
        • 渠道管理
          • 公众号配置
            • 详情
            • 修改
        • 数据分析
          • 数据看板
        • VIP 会员
          • 会员等级
            • 新增会员等级
            • 会员等级列表
            • 修改会员等级
            • 会员等级详情
            • 删除会员等级
          • 订阅计划
            • 新增订阅计划
            • 订阅计划设置
            • 设置会员功能状态
            • 更改订阅计划状态
            • 订阅计划详情
            • 修改订阅计划
            • 删除订阅计划
            • 更新订阅计划排序
      • 插件
        • 文章插件
          • 前台
            • 列表
          • 后台
            • 文章
              • 列表
              • 创建
            • 分类
              • 列表
              • 创建
        • 智能体-企业微信插件
          • 对话接口
        • 配图大师
          • 后台
            • 配图记录
            • 获取配图插件
            • 插件设置
    • 插件与框架开发
      • 技术规范
      • 前置准备
      • 本地部署与开发
      • 目录结构
      • 项目配置
      • 主程序启动链路
      • 请求处理链路
      • 后端开发约定
      • BaseController 与 BaseService
      • DTO、工具与通用服务
      • 前端开发
      • 主程序计费接入
      • 数据库与实体建议
      • AI SDK 开发文档
      • BuildingAI 升级开发文档
      • 应用开发
        • 介绍
        • 创建应用
        • 模板结构
        • 应用开发
        • 打包发布
        • 插件更新
        • 插件清单文件
        • 插件后端开发
        • 插件前端开发
        • Extension SDK 怎么用
        • 插件计费接入
        • 插件 AI 能力接入建议
        • Seeds、Upgrade 与存储
        • 插件升级开发文档
        • 构建与发布
      • PC 客户端
        • 开发文档
        • 构建文档
  • 设计资源
    • 官方素材库
  • 政策
    • 开源许可
    • 服务条款
    • 隐私政策
  1. 插件与框架开发

AI SDK 开发文档

@buildingai/ai-sdk#

基于 Vercel AI SDK 6.x 的统一 AI SDK,提供项目内统一的 Provider 注册、能力分发和常用工具封装。

特性#

统一文本、Embedding、图像、语音、转写、重排序、内容审核能力
基于 getProvider() / getProviderFor*() 统一切换 Provider
重新导出 ai 包的核心 API,减少业务层直接依赖底层 Provider SDK
提供 getReasoningOptions()、MCP 工具封装、usage 估算工具
支持运行时查询当前内置 Provider 列表

安装#

快速开始#

基础文本生成#

import { generateText, getProvider } from "@buildingai/ai-sdk";

const provider = getProvider("openai", {
    apiKey: process.env.OPENAI_API_KEY,
});

const result = await generateText({
    ...provider("gpt-4o"),
    prompt: "Hello, how are you?",
});

console.log(result.text);

流式文本生成#

import { getProvider, streamText } from "@buildingai/ai-sdk";

const provider = getProvider("openai", {
    apiKey: process.env.OPENAI_API_KEY,
});

const result = streamText({
    ...provider("gpt-4o"),
    messages: [{ role: "user", content: "Tell me a story about a robot." }],
});

for await (const chunk of result.textStream) {
    process.stdout.write(chunk);
}

结构化输出#

推荐优先使用 generateText + Output.object(...),而不是手动解析 JSON。
import { generateText, getProvider, Output } from "@buildingai/ai-sdk";
import { z } from "zod";

const provider = getProvider("openai", {
    apiKey: process.env.OPENAI_API_KEY,
});

const result = await generateText({
    ...provider("gpt-4o"),
    output: Output.object({
        schema: z.object({
            name: z.string(),
            age: z.number(),
            email: z.string().email(),
        }),
    }),
    prompt: "Generate a random user profile.",
});

console.log(result.output);

Provider 用法#

使用 getProvider()(推荐)#

import { embed, generateText, getProvider } from "@buildingai/ai-sdk";

const provider = getProvider("openai", {
    apiKey: process.env.OPENAI_API_KEY,
});

const text = await generateText({
    ...provider("gpt-4o"),
    prompt: "Hello!",
});

const embedding = await embed({
    ...provider("text-embedding-3-small"),
    value: "Hello!",
});

使用专门函数#

当你明确知道要用哪种能力时,推荐使用 getProviderFor*(),类型更准确。
import {
    embed,
    experimental_generateSpeech as generateSpeech,
    generateText,
    getProviderForEmbedding,
    getProviderForSpeech,
    getProviderForText,
} from "@buildingai/ai-sdk";

const textProvider = getProviderForText("openai", {
    apiKey: process.env.OPENAI_API_KEY,
});

const text = await generateText({
    ...textProvider("gpt-4o"),
    prompt: "Hello!",
});

const embeddingProvider = getProviderForEmbedding("openai", {
    apiKey: process.env.OPENAI_API_KEY,
});

const embedding = await embed({
    ...embeddingProvider("text-embedding-3-small"),
    value: "Hello!",
});

const speechProvider = getProviderForSpeech("openai", {
    apiKey: process.env.OPENAI_API_KEY,
});

const speech = await generateSpeech({
    ...speechProvider("tts-1"),
    text: "Hello, world!",
    voice: "alloy",
});

能力检测#

import {
    experimental_generateSpeech as generateSpeech,
    getProvider,
} from "@buildingai/ai-sdk";

const provider = getProvider("openai", {
    apiKey: process.env.OPENAI_API_KEY,
});

if (provider.supports("speech")) {
    const speech = await generateSpeech({
        ...provider.speech("tts-1"),
        text: "Hello!",
    });

    console.log(speech.audio.format);
}

console.log(provider.capabilities.getAll());

获取当前内置 Provider 列表#

如果你想知道“当前版本到底支持哪些厂商”,请以运行时注册表为准:
import { listProviders } from "@buildingai/ai-sdk";

console.table(listProviders());
当前内置 Provider 的注册来源是:
packages/@buildingai/ai-sdk/src/registry/provider-registry.ts

当前内置 Providers#

以下列表按当前代码注册表整理:
Provider标识符说明
OpenAIopenaiOpenAI GPT 系列模型
DeepSeekdeepseekDeepSeek 深度求索
智谱 AIzhipuai智谱 AI GLM 系列模型
月之暗面moonshot月之暗面 Kimi
硅基流动siliconflow硅基流动
通义千问tongyi阿里云通义千问
火山引擎volcengine火山引擎豆包
腾讯混元hunyuan腾讯混元
百度文心wenxin百度文心一言
讯飞星火spark讯飞星火大模型
OllamaollamaOllama 本地模型
MiniMaxminimaxMiniMax M2 系列模型
AnthropicanthropicAnthropic Claude 系列模型
GooglegoogleGoogle Gemini 系列模型
CoherecohereCohere 系列模型
Gitee AIgitee_aiGitee AI 魔力方舟
xAIxxAI Grok 系列模型
OpenRouteropenrouterOpenRouter 统一接入 300+ 模型
AzureazureAzure AI 服务
自定义custom自定义 OpenAI 兼容 API

扩展能力#

语音合成(TTS)#

注意:当前 ai 6.x 中的语音合成导出名为 experimental_generateSpeech。
import {
    experimental_generateSpeech as generateSpeech,
    getProvider,
} from "@buildingai/ai-sdk";
import { writeFile } from "node:fs/promises";

const provider = getProvider("openai", {
    apiKey: process.env.OPENAI_API_KEY,
});

const result = await generateSpeech({
    ...provider.speech("tts-1"),
    text: "Hello, world!",
    voice: "alloy",
    speed: 1,
    outputFormat: "mp3",
});

await writeFile("output.mp3", result.audio.uint8Array);

语音识别(STT)#

注意:当前 ai 6.x 中的语音转写导出名为 experimental_transcribe。
import {
    experimental_transcribe as transcribe,
    getProvider,
} from "@buildingai/ai-sdk";
import { readFile } from "node:fs/promises";

const provider = getProvider("openai", {
    apiKey: process.env.OPENAI_API_KEY,
});

const audio = await readFile("audio.mp3");

const result = await transcribe({
    ...provider.transcription("whisper-1"),
    audio,
    providerOptions: {
        openai: {
            language: "zh",
            response_format: "json",
        },
    },
});

console.log(result.text);

图像生成#

import { generateImage, getProvider } from "@buildingai/ai-sdk";

const provider = getProvider("openai", {
    apiKey: process.env.OPENAI_API_KEY,
});

const result = await generateImage({
    ...provider.image("dall-e-3"),
    prompt: "A beautiful sunset over mountains",
    size: "1024x1024",
    providerOptions: {
        openai: {
            quality: "hd",
        },
    },
});

console.log(result.images[0]);

内容审核#

当前包提供了 moderation model 能力,但没有额外封装一个顶层 moderate() 辅助函数。推荐直接调用 moderation model 的 doModerate():
import { getProvider } from "@buildingai/ai-sdk";

const provider = getProvider("openai", {
    apiKey: process.env.OPENAI_API_KEY,
});

const moderationModel = provider.moderation("text-moderation-latest").model;
const result = await moderationModel.doModerate({
    input: "Some text to check",
});

console.log(result.results[0].flagged);

文档重排序#

import { getProvider, rerankV3 } from "@buildingai/ai-sdk";

const provider = getProvider("zhipuai", {
    apiKey: process.env.OPENAI_API_KEY,
});

const result = await rerankV3({
    ...provider.rerank("rerank-1"),
    query: "AI technology trends",
    documents: [
        "Machine learning is a subset of AI",
        "Deep learning uses neural networks",
        "Natural language processing enables text understanding",
    ],
    topN: 2,
});

result.ranking.forEach((item) => {
    console.log(`Index: ${item.originalIndex}, Score: ${item.score}`);
});

错误处理#

import {
    generateText,
    getProvider,
    isAPIError,
    isProviderCapabilityError,
    isRateLimitError,
} from "@buildingai/ai-sdk";

try {
    const provider = getProvider("openai", {
        apiKey: process.env.OPENAI_API_KEY,
    });

    const result = await generateText({
        ...provider("gpt-4o"),
        prompt: "Hello!",
    });

    console.log(result.text);
} catch (error) {
    if (isProviderCapabilityError(error)) {
        console.error(`Provider doesn't support: ${error.capability}`);
    } else if (isRateLimitError(error)) {
        console.error(`Rate limited, retry after: ${error.retryAfter}ms`);
    } else if (isAPIError(error)) {
        console.error(`API error: ${error.statusCode} - ${error.message}`);
    } else {
        throw error;
    }
}

Tool 调用#

推荐使用 inputSchema,这也是当前项目内实际使用的写法。
import { generateText, getProvider, tool } from "@buildingai/ai-sdk";
import { z } from "zod";

const provider = getProvider("openai", {
    apiKey: process.env.OPENAI_API_KEY,
});

const result = await generateText({
    ...provider("gpt-4o"),
    prompt: "What is the weather in Tokyo?",
    tools: {
        getWeather: tool({
            description: "Get weather for a location",
            inputSchema: z.object({
                location: z.string().describe("City name"),
            }),
            execute: async ({ location }) => {
                return { location, temperature: 22, condition: "sunny" };
            },
        }),
    },
    maxSteps: 5,
});

console.log(result.text);

API 参考#

核心导出#

导出说明
generateText文本生成
streamText流式文本生成
Output结构化输出定义工具
embed文本向量化
embedMany批量向量化
generateImage图像生成
rerankAI SDK 原生重排序
rerankV3rerank 的兼容别名
tool定义工具
ToolLoopAgent多步工具调用 Agent

兼容导出#

以下 API 仍然会随着 ai 包一起被重新导出,但新代码通常更推荐使用上面的主路径:
导出说明
generateObject兼容导出,优先考虑 generateText + Output.object(...)
streamObject流式结构化输出
experimental_generateSpeech语音合成
experimental_transcribe语音转写

Provider 相关导出#

导出说明
getProvider获取通用 Provider
getProviderForText获取文本模型 Provider
getProviderForEmbedding获取 Embedding Provider
getProviderForSpeech获取语音合成 Provider
getProviderForTranscription获取语音转写 Provider
getProviderForImage获取图像模型 Provider
getProviderForModeration获取内容审核 Provider
getProviderForRerank获取重排序 Provider
listProviders列出当前内置 Provider
getReasoningOptions根据 Provider 生成 reasoning 参数

License#

MIT
修改于 2026-04-17 07:54:48
上一页
数据库与实体建议
下一页
BuildingAI 升级开发文档
Built with