AI SDK 集成
Vercel AI SDK 是一个用于构建 AI 应用的 TypeScript 工具集。AcceleAI 完全兼容 OpenAI 接口,因此你可以直接使用 AI SDK 的 OpenAI Provider 来调用 AcceleAI 上的所有模型。
功能一览
- 文本生成与流式文本
- 结构化数据生成与流式对象
- 图像生成
- 语音合成 (TTS)
- 语音识别 (STT)
- 向量嵌入(单条与批量)
- 工具调用(如联网搜索)
安装
npm i ai @ai-sdk/openaiProvider 配置
使用 createOpenAI 创建一个指向 AcceleAI 的自定义 Provider:
import { createOpenAI } from '@ai-sdk/openai';
const acceleai = createOpenAI({
apiKey: process.env.ACCELE_AI_API_KEY,
baseURL: 'https://api.acceleai.cn/v1',
});也可以通过环境变量配置:
export OPENAI_API_KEY="<ACCELE_AI_API_KEY>"
export OPENAI_BASE_URL="https://api.acceleai.cn/v1"import { openai } from '@ai-sdk/openai';
// 将自动读取上述环境变量文本生成
import { generateText } from 'ai';
const { text } = await generateText({
model: acceleai('o4-mini'),
prompt: '为 4 个人写一个素食千层面食谱。',
});
console.log(text);使用 Claude 模型(通过 AcceleAI 的 OpenAI 兼容接口):
const { text } = await generateText({
model: acceleai('claude-sonnet-4-20250514'),
prompt: '用简单的术语解释量子计算。',
});流式文本生成
import { streamText } from 'ai';
const result = streamText({
model: acceleai('gpt-4o-mini'),
prompt: '写一个关于机器人学习绘画的短故事。',
maxTokens: 256,
temperature: 0.3,
});
for await (const textPart of result.textStream) {
process.stdout.write(textPart);
}结构化数据生成
import { generateObject } from 'ai';
import { z } from 'zod';
const result = await generateObject({
model: acceleai('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(result.object);流式结构化对象
import { streamObject } from 'ai';
import { z } from 'zod';
const result = await streamObject({
model: acceleai('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 part of result.partialObjectStream) {
console.log(part);
}图像生成
import { generateImage } from 'ai';
const { image } = await generateImage({
model: acceleai.image('gpt-image-1'),
prompt: '山间美丽的日落',
});语音合成 (TTS)
import { generateSpeech } from 'ai';
const { audio } = await generateSpeech({
model: acceleai.speech('tts-1'),
text: '你好,这是语音合成的测试。',
});语音识别 (STT)
import { transcribe } from 'ai';
const { text } = await transcribe({
model: acceleai.transcription('whisper-1'),
audio: audioFile,
});
console.log(text);向量嵌入
单条嵌入
import { embed } from 'ai';
const { embedding } = await embed({
model: acceleai.embedding('text-embedding-ada-002'),
value: '你好,世界!',
});批量嵌入
import { embedMany } from 'ai';
const { embeddings, usage } = await embedMany({
model: acceleai.embedding('text-embedding-3-small'),
values: [
'海滩上的晴天',
'城市里的雨天下午',
'山间的雪夜',
],
});工具调用(联网搜索)
import { generateText } from 'ai';
const { text } = await generateText({
model: acceleai('gpt-4o'),
prompt: 'AI 领域最新的发展动态是什么?',
tools: {
webSearchPreview: acceleai.tools.webSearchPreview({
searchContextSize: 'high',
}),
},
});
console.log(text);