@aihubmix/ai-sdk-provider

中文文档
2.2.1发布于 2026/06/11Apache-2.0TypeScriptESM + CJS近 30 天下载 11.2万
中文使用文档
文档目录22 节
  1. 安装 AI SDK v6 版本
  2. (旧版)安装 AI SDK v5 版本
  3. 支持的功能
  4. Provider 实例
  5. 配置
  6. appCode (可选)
  7. baseURL (可选)
  8. 自定义 fetch
  9. 使用
  10. 生成文本
  11. Claude 模型
  12. Gemini 模型
  13. 图像生成
  14. 嵌入
  15. 转录
  16. 流式文本
  17. 生成对象
  18. 流式对象
  19. 批量嵌入
  20. 语音合成
  21. 工具
  22. 附加资源

AI SDK - Aihubmix Provider

🎉 10% 折扣! 已内置app-code,使用此方式请求所有模型可享受 10% 折扣。

Aihubmix 官方网站 | 模型广场

Aihubmix provider 适用于 AI SDK 一个网关,无限模型;一站式请求:OpenAI、Claude、Gemini、DeepSeek、Qwen 以及超过 500 个 AI 模型。

安装 AI SDK v6 版本

npm i @aihubmix/ai-sdk-provider

(旧版)安装 AI SDK v5 版本

npm i @aihubmix/[email protected]

支持的功能

Aihubmix provider 支持以下 AI 功能:

  • 文本生成:使用各种模型进行聊天完成
  • 流式文本:实时文本流式传输
  • 图像生成:从文本提示创建图像
  • 嵌入:单个和批量文本嵌入
  • 对象生成:使用模式的结构化数据生成
  • 流式对象:实时结构化数据流式传输
  • 语音合成:文本转语音转换
  • 转录:语音转文本转换
  • 工具:网络搜索和其他工具

Provider 实例

您可以从 @aihubmix/ai-sdk-provider 导入默认的 provider 实例 aihubmix:

import { aihubmix } from '@aihubmix/ai-sdk-provider';

配置

将您的 Aihubmix API 密钥设置为环境变量:

export AIHUBMIX_API_KEY="your-api-key-here"

或直接传递给 provider:

import { createAihubmix } from '@aihubmix/ai-sdk-provider';

const aihubmix = createAihubmix({
  apiKey: 'your-api-key-here',
});

appCode(可选)

每个请求都会携带 APP-Code 请求头。默认使用本包内置的值,因此通常无需设置。如果你有自己的 app code,可传入 appCode 覆盖默认值:

import { createAihubmix } from '@aihubmix/ai-sdk-provider';

const aihubmix = createAihubmix({
  apiKey: 'your-api-key-here',
  appCode: 'YOUR-APP-CODE', // 可选;不传时回退到内置默认值
});

baseURL(可选)

默认所有请求发往 https://aihubmix.com。若要走自建网关或代理,可传入 baseURL(末尾斜杠会自动去除)。/v1、/gemini/v1beta 等路径会自动拼接:

import { createAihubmix } from '@aihubmix/ai-sdk-provider';

const aihubmix = createAihubmix({
  apiKey: 'your-api-key-here',
  baseURL: 'https://your-gateway.example.com', // 可选;默认 https://aihubmix.com
});

自定义 fetch

可传入自定义 fetch 实现(用于代理、日志或测试)。它会透传给所有模型 —— OpenAI 兼容、Claude、Gemini、Responses、转录与语音:

const aihubmix = createAihubmix({
  apiKey: 'your-api-key-here',
  fetch: myCustomFetch,
});

使用

首先,导入必要的函数:

import { createAihubmix } from '@aihubmix/ai-sdk-provider';
import { 
  generateText, 
  streamText, 
  experimental_generateImage as generateImage, 
  embed, 
  embedMany, 
  generateObject, 
  streamObject, 
  experimental_generateSpeech as generateSpeech, 
  experimental_transcribe as transcribe 
} from 'ai';
import { z } from 'zod';

注意:generateImage、generateSpeech 和 transcribe 等 API 在 AI SDK v6 中仍为实验性功能。

生成文本

import { aihubmix } from '@aihubmix/ai-sdk-provider';
import { generateText } from 'ai';

const { text } = await generateText({
  model: aihubmix('o4-mini'),
  prompt: '为4个人写一个素食千层面食谱。',
});

Claude 模型

import { aihubmix } from '@aihubmix/ai-sdk-provider';
import { generateText } from 'ai';

const { text } = await generateText({
  model: aihubmix('claude-3-7-sonnet-20250219'),
  prompt: '用简单的术语解释量子计算。',
});

Gemini 模型

import { aihubmix } from '@aihubmix/ai-sdk-provider';
import { generateText } from 'ai';

const { text } = await generateText({
  model: aihubmix('gemini-2.5-flash'),
  prompt: '创建一个Python脚本来对数字列表进行排序。',
});

图像生成

import { aihubmix } from '@aihubmix/ai-sdk-provider';
import { generateImage } from 'ai';

const { image } = await generateImage({
  model: aihubmix.image('gpt-image-1'),
  prompt: '山间美丽的日落',
});

嵌入

import { aihubmix } from '@aihubmix/ai-sdk-provider';
import { embed } from 'ai';

const { embedding } = await embed({
  model: aihubmix.embedding('text-embedding-ada-002'),
  value: '你好,世界!',
});

转录

import { aihubmix } from '@aihubmix/ai-sdk-provider';
import { transcribe } from 'ai';

const { text } = await transcribe({
  model: aihubmix.transcription('whisper-1'),
  audio: audioFile,
});

流式文本

import { aihubmix } from '@aihubmix/ai-sdk-provider';
import { streamText } from 'ai';

const result = streamText({
  model: aihubmix('gpt-3.5-turbo'),
  prompt: '写一个关于机器人学习绘画的短故事。',
  maxOutputTokens: 256,
  temperature: 0.3,
  maxRetries: 3,
});

let fullText = '';
for await (const textPart of result.textStream) {
  fullText += textPart;
  process.stdout.write(textPart);
}

console.log('\n使用情况:', await result.usage);
console.log('完成原因:', await result.finishReason);

生成对象

import { aihubmix } from '@aihubmix/ai-sdk-provider';
import { generateObject } from 'ai';
import { z } from 'zod';

const result = await generateObject({
  model: aihubmix('gpt-4o-mini'),
  schema: z.object({
    recipe: z.object({
      name: z.string(),
      ingredients: z.array(
        z.object({
          name: z.string(),
          amount: z.string(),
        }),
      ),
      steps: z.array(z.string()),
    }),
  }),
  prompt: '生成一个千层面食谱。',
});

console.log(JSON.stringify(result.object.recipe, null, 2));
console.log('Token使用情况:', result.usage);
console.log('完成原因:', result.finishReason);

流式对象

import { aihubmix } from '@aihubmix/ai-sdk-provider';
import { streamObject } from 'ai';
import { z } from 'zod';

const result = await streamObject({
  model: aihubmix('gpt-4o-mini'),
  schema: z.object({
    recipe: z.object({
      name: z.string(),
      ingredients: z.array(
        z.object({
          name: z.string(),
          amount: z.string(),
        }),
      ),
      steps: z.array(z.string()),
    }),
  }),
  prompt: '生成一个千层面食谱。',
});

for await (const objectPart of result.partialObjectStream) {
  console.log(objectPart);
}

console.log('Token使用情况:', result.usage);
console.log('最终对象:', result.object);

批量嵌入

import { aihubmix } from '@aihubmix/ai-sdk-provider';
import { embedMany } from 'ai';

const { embeddings, usage } = await embedMany({
  model: aihubmix.embedding('text-embedding-3-small'),
  values: [
    '海滩上的晴天',
    '城市里的雨天下午',
    '山间的雪夜',
  ],
});

console.log('嵌入向量:', embeddings);
console.log('使用情况:', usage);

语音合成

import { aihubmix } from '@aihubmix/ai-sdk-provider';
import { generateSpeech } from 'ai';

const { audio } = await generateSpeech({
  model: aihubmix.speech('tts-1'),
  text: '你好,这是语音合成的测试。',
});

// 保存音频文件
await saveAudioFile(audio);
console.log('音频生成成功:', audio);

工具

Aihubmix provider 支持各种工具,包括网络搜索:

import { aihubmix } from '@aihubmix/ai-sdk-provider';
import { generateText } from 'ai';

const { text } = await generateText({
  model: aihubmix('gpt-4'),
  prompt: 'AI的最新发展是什么?',
  tools: {
    webSearchPreview: aihubmix.tools.webSearchPreview({
      searchContextSize: 'high',
    }),
  },
});

附加资源

版本与发布记录

@aihubmix/ai-sdk-provider 共发布 19 个版本,首次发布于 2025/07/22;过去 12 个月发布了 13 个版本。

版本发布日期距今
2.2.1latest2026/06/114 个月前
2.2.02026/06/114 个月前
2.1.02026/06/114 个月前
2.0.62026/04/286 个月前
2.0.52026/03/317 个月前
2.0.42026/02/019 个月前

关于 @aihubmix/ai-sdk-provider 的常见问题

@aihubmix/ai-sdk-provider 是什么?

🇺🇸 English | 🇨🇳 中文 | 🇯🇵 日本語

如何安装 @aihubmix/ai-sdk-provider?

在项目目录运行 npm install @aihubmix/ai-sdk-provider,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:zod(^3.25.0 || ^4.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@aihubmix/ai-sdk-provider 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aihubmix/ai-sdk-provider 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@aihubmix/ai-sdk-provider 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@aihubmix/ai-sdk-provider 可以商用吗?

@aihubmix/ai-sdk-provider 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aihubmix/ai-sdk-provider 的下载量有多少?

根据 npm 官方下载统计,@aihubmix/ai-sdk-provider 在 2026/10/05 – 2026/11/03 这 30 天内被下载 112,449 次,日均约 3,748 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aihubmix/ai-sdk-provider 还在维护吗?

最新版本 2.2.1 发布于 2026/06/11(4 个月前);至今共发布 19 个版本,其中过去 12 个月发布了 13 个;首次发布于 2025/07/22。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。