UNPKG

@aihubmix/ai-sdk-provider

Version:

<div align="center"> <a href="README.md">🇺🇸 English</a> | <a href="README.zh.md">🇨🇳 中文</a> | <a href="README.ja.md">🇯🇵 日本語</a> </div>

308 lines (237 loc) 7.08 kB
# AI SDK - Aihubmix Provider <div align="center"> <a href="README.md">🇺🇸 English</a> | <a href="README.zh.md">🇨🇳 中文</a> | <a href="README.ja.md">🇯🇵 日本語</a> </div> > **🎉 10% 折扣!** 已内置app-code,使用此方式请求所有模型可享受 10% 折扣。 **[Aihubmix 官方网站](https://aihubmix.com/)** | **[模型广场](https://aihubmix.com/models)** **[Aihubmix provider](https://sdk.vercel.ai/providers/community-providers/aihubmix)** 适用于 [AI SDK](https://ai-sdk.dev/docs) 一个网关,无限模型;一站式请求:OpenAI、Claude、Gemini、DeepSeek、Qwen 以及超过 500 个 AI 模型。 ## 安装 AI SDK v6 版本 ```bash npm i @aihubmix/ai-sdk-provider ``` ### (旧版)安装 AI SDK v5 版本 ```bash npm i @aihubmix/ai-sdk-provider@0.0.6 ``` ## 支持的功能 Aihubmix provider 支持以下 AI 功能: - **文本生成**:使用各种模型进行聊天完成 - **流式文本**:实时文本流式传输 - **图像生成**:从文本提示创建图像 - **嵌入**:单个和批量文本嵌入 - **对象生成**:使用模式的结构化数据生成 - **流式对象**:实时结构化数据流式传输 - **语音合成**:文本转语音转换 - **转录**:语音转文本转换 - **工具**:网络搜索和其他工具 ## Provider 实例 您可以从 `@aihubmix/ai-sdk-provider` 导入默认的 provider 实例 `aihubmix`: ```ts import { aihubmix } from '@aihubmix/ai-sdk-provider'; ``` ## 配置 将您的 Aihubmix API 密钥设置为环境变量: ```bash export AIHUBMIX_API_KEY="your-api-key-here" ``` 或直接传递给 provider: ```ts import { createAihubmix } from '@aihubmix/ai-sdk-provider'; const aihubmix = createAihubmix({ apiKey: 'your-api-key-here', }); ``` ## 使用 首先,导入必要的函数: ```ts 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 中仍为实验性功能。 ### 生成文本 ```ts import { aihubmix } from '@aihubmix/ai-sdk-provider'; import { generateText } from 'ai'; const { text } = await generateText({ model: aihubmix('o4-mini'), prompt: '为4个人写一个素食千层面食谱。', }); ``` ### Claude 模型 ```ts import { aihubmix } from '@aihubmix/ai-sdk-provider'; import { generateText } from 'ai'; const { text } = await generateText({ model: aihubmix('claude-3-7-sonnet-20250219'), prompt: '用简单的术语解释量子计算。', }); ``` ### Gemini 模型 ```ts import { aihubmix } from '@aihubmix/ai-sdk-provider'; import { generateText } from 'ai'; const { text } = await generateText({ model: aihubmix('gemini-2.5-flash'), prompt: '创建一个Python脚本来对数字列表进行排序。', }); ``` ### 图像生成 ```ts import { aihubmix } from '@aihubmix/ai-sdk-provider'; import { generateImage } from 'ai'; const { image } = await generateImage({ model: aihubmix.image('gpt-image-1'), prompt: '山间美丽的日落', }); ``` ### 嵌入 ```ts import { aihubmix } from '@aihubmix/ai-sdk-provider'; import { embed } from 'ai'; const { embedding } = await embed({ model: aihubmix.embedding('text-embedding-ada-002'), value: '你好,世界!', }); ``` ### 转录 ```ts import { aihubmix } from '@aihubmix/ai-sdk-provider'; import { transcribe } from 'ai'; const { text } = await transcribe({ model: aihubmix.transcription('whisper-1'), audio: audioFile, }); ``` ### 流式文本 ```ts 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); ``` ### 生成对象 ```ts 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); ``` ### 流式对象 ```ts 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); ``` ### 批量嵌入 ```ts 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); ``` ### 语音合成 ```ts 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 支持各种工具,包括网络搜索: ```ts 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 Provider 仓库](https://github.com/AIhubmix/ai-sdk-provider) - [Aihubmix 文档](https://docs.aihubmix.com/en) - [Aihubmix 控制台](https://aihubmix.com) - [Aihubmix 商务合作](mailto:business@aihubmix.com)