SDK 示例
JavaScript SDK
JavaScript/Node.js SDK 使用示例
安装
npm install openai基础配置
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'sk-your-api-key',
baseURL: 'https://api.smai.ai/v1',
});或使用环境变量:
export OPENAI_API_KEY="sk-your-api-key"
export OPENAI_BASE_URL="https://api.smai.ai/v1"import OpenAI from 'openai';
const client = new OpenAI(); // 自动读取环境变量对话补全
基础用法
const response = await client.chat.completions.create({
model: 'gpt-4.1',
messages: [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: '什么是人工智能?' },
],
});
console.log(response.choices[0].message.content);带参数
const response = await client.chat.completions.create({
model: 'gpt-4.1',
messages: [{ role: 'user', content: '写一首关于春天的诗' }],
temperature: 0.8, // 创造性程度 0-2
max_tokens: 500, // 最大输出长度
top_p: 0.9, // 核采样参数
});
console.log(response.choices[0].message.content);流式输出
const stream = await client.chat.completions.create({
model: 'gpt-4.1',
messages: [{ role: 'user', content: '讲一个故事' }],
stream: true,
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content;
if (content) {
process.stdout.write(content);
}
}多轮对话
const messages = [{ role: 'system', content: 'You are a helpful assistant.' }];
async function chat(userInput) {
messages.push({ role: 'user', content: userInput });
const response = await client.chat.completions.create({
model: 'gpt-4.1',
messages: messages,
});
const assistantMessage = response.choices[0].message.content;
messages.push({ role: 'assistant', content: assistantMessage });
return assistantMessage;
}
// 使用
console.log(await chat('你好!'));
console.log(await chat('你能做什么?'));
console.log(await chat('帮我写一段代码'));图像输入
const response = await client.chat.completions.create({
model: 'gpt-4o',
messages: [
{
role: 'user',
content: [
{ type: 'text', text: '描述这张图片' },
{
type: 'image_url',
image_url: {
url: 'https://example.com/image.jpg',
},
},
],
},
],
});
console.log(response.choices[0].message.content);错误处理
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'sk-your-api-key',
baseURL: 'https://api.smai.ai/v1',
});
try {
const response = await client.chat.completions.create({
model: 'gpt-4.1',
messages: [{ role: 'user', content: 'Hello' }],
});
console.log(response.choices[0].message.content);
} catch (error) {
if (error.status === 401) {
console.error('API Key 无效');
} else if (error.status === 429) {
console.error('请求频率超限,请稍后重试');
} else {
console.error('API 错误:', error.message);
}
}TypeScript 支持
OpenAI SDK 完全支持 TypeScript:
import OpenAI from 'openai';
import type { ChatCompletionMessageParam } from 'openai/resources/chat';
const client = new OpenAI({
apiKey: 'sk-your-api-key',
baseURL: 'https://api.smai.ai/v1',
});
const messages: ChatCompletionMessageParam[] = [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'Hello!' },
];
const response = await client.chat.completions.create({
model: 'gpt-4.1',
messages,
});
console.log(response.choices[0].message.content);