z-ai-web-dev-sdk
Version:
SDK for Z AI Web Dev
226 lines (170 loc) • 5.79 kB
Markdown
这个指南说明如何使用 `z-ai-sdk` 与自定义 AI 接口进行交互,包括聊天对话和图片生成功能。
在使用 SDK 之前,您必须创建一个名为 `.z-ai-config` 的配置文件。SDK 会按以下顺序搜索此文件:
1. 当前项目目录 (`./.z-ai-config`)
2. 用户主目录 (`~/.z-ai-config`)
3. 系统目录 (`/etc/.z-ai-config`)
配置文件必须是有效的 JSON 格式,具有以下结构:
```json
{
"baseUrl": "YOUR_API_BASE_URL",
"apiKey": "YOUR_API_KEY",
"chatId": "OPTIONAL_CHAT_ID",
"userId": "OPTIONAL_USER_ID"
}
```
```bash
npm install z-ai-web-dev-sdk
```
以下是导入和使用 SDK 创建聊天对话的简单示例:
```javascript
import ZAI from 'z-ai-web-dev-sdk';
async function main() {
try {
// 实例化类时会自动加载配置
const zai = await ZAI.create();
const completion = await zai.chat.completions.create({
// model 是可选的
// model: 'your-model-name',
messages: [
{
role: 'system',
content: 'You are a helpful assistant.'
},
{
role: 'user',
content: 'Hello, who are you?'
}
],
// 其他参数如 temperature, max_tokens 等可以在这里添加
});
console.log('完整 API 响应:', completion);
// 示例:从第一个选择中访问消息内容
const messageContent = completion.choices[0]?.message?.content;
if (messageContent) {
console.log('助手回复:', messageContent);
}
} catch (error) {
console.error('发生错误:', error.message);
}
}
main();
```
SDK 现在支持图片生成功能,返回 base64 格式的图片数据:
```javascript
import ZAI from 'z-ai-web-dev-sdk';
async function generateImage() {
try {
const zai = await ZAI.create();
const response = await zai.images.generations.create({
model: 'cogview-4-250304', // 必需:模型代码
prompt: '一只可爱的小猫咪', // 必需:图片描述
quality: 'hd', // 可选:standard 或 hd (默认: standard)
size: '1024x1024', // 可选:图片尺寸 (默认: 1024x1024)
user_id: 'your-user-id' // 可选:用户ID
});
console.log('图片生成时间:', new Date(response.created * 1000));
// 获取 base64 格式的图片数据
const imageBase64 = response.data[0].base64;
console.log('图片 base64 数据:', imageBase64);
// 可以直接在 HTML 中使用:
// <img src="${imageBase64}" alt="Generated Image" />
} catch (error) {
console.error('图片生成失败:', error.message);
}
}
generateImage();
```
- **模型**: `cogview-4-250304` (最新), `cogview-4`, `cogview-3-flash`
- **质量**:
- `standard`: 快速生成,5-10 秒
- `hd`: 更精细,更详细,约 20 秒
- **尺寸**: `1024x1024`, `768x1344`, `864x1152`, `1344x768`, `1152x864`, `1440x720`, `720x1440`
SDK 提供了一个命令行工具,可以直接生成图片并保存到指定路径。
全局安装 SDK 以使用 CLI 命令:
```bash
npm install -g z-ai-web-dev-sdk
```
```bash
z-ai-generate --prompt "一只可爱的小猫" --output "./cat.png"
z-ai-generate -p "美丽的风景" -o "./landscape.jpg"
z-ai-generate -p "现代建筑设计" -o "./building.png" -q hd -s 1344x768
z-ai-generate -p "抽象艺术" -o "./art.png" -m cogview-4-250304
z-ai-generate --help
```
- `--prompt, -p <文本>`: **必需** - 图片描述文本
- `--output, -o <路径>`: **必需** - 输出图片文件路径
- `--model, -m <模型>`: 可选 - 模型代码 (默认: cogview-4-250304)
- `--quality, -q <质量>`: 可选 - 图片质量 (standard|hd, 默认: standard)
- `--size, -s <尺寸>`: 可选 - 图片尺寸 (默认: 1024x1024)
- `--help, -h`: 显示帮助信息
```bash
z-ai-generate \
--prompt "雪山湖泊,倒影清晰,4K高清" \
--output "./mountain_lake.png" \
--quality hd \
--size 1344x768
z-ai-generate \
-p "专业商务人士头像,正装,白色背景" \
-o "./portraits/business_portrait.jpg" \
-q hd
z-ai-generate \
-p "简约科技图标,蓝色渐变" \
-o "./icons/tech_icon.png" \
-q standard \
-s 1024x1024
```
```javascript
try {
const zai = await ZAI.create();
// API 调用...
} catch (error) {
if (error.message.includes('Configuration file not found')) {
console.error('请创建 .z-ai-config 配置文件');
} else if (error.message.includes('API request failed')) {
console.error('API 请求失败,请检查网络连接和配置');
} else {
console.error('未知错误:', error.message);
}
}
```
SDK 完全支持 TypeScript,提供完整的类型定义:
```typescript
import ZAI, { CreateChatCompletionBody, CreateImageGenerationBody, ImageGenerationResponse } from 'z-ai-web-dev-sdk';
const completion: CreateChatCompletionBody = {
messages: [
{ role: 'user', content: 'Hello' }
]
};
const imageRequest: CreateImageGenerationBody = {
model: 'cogview-4-250304',
prompt: '美丽的花朵',
quality: 'hd'
};
```
- 确保配置文件中的 `baseUrl` 和 `apiKey` 正确
- 图片 URL 链接有效期为 30 天,建议及时下载保存
- CLI 工具会自动创建输出目录(如果不存在)
- 生成的图片格式取决于 API 返回的内容类型
- 建议在生产环境中添加适当的错误处理和重试机制