模型接口
接口概述
模型接口用于获取和管理 ZGI 提供的各种 AI 模型信息,包括模型列表、模型能力和使用限制等。
基本信息
- 接口路径:
GET /v1/models
- 需要认证:是
- 请求方式:GET
- 数据格式:JSON
可用模型
对话模型
模型名称 |
描述 |
最大 Token |
特点 |
zgi-1 |
通用对话模型 |
4096 |
支持中英文,擅长对话和内容生成 |
zgi-1-turbo |
轻量对话模型 |
2048 |
响应速度快,成本低 |
zgi-1-pro |
专业对话模型 |
8192 |
更强的理解能力,支持复杂任务 |
向量模型
模型名称 |
描述 |
向量维度 |
特点 |
zgi-embedding-1 |
通用向量模型 |
1024 |
适用于大多数场景 |
zgi-embedding-1-light |
轻量向量模型 |
512 |
更快的处理速度 |
zgi-embedding-1-pro |
专业向量模型 |
2048 |
更高的精确度 |
API 接口
获取模型列表
请求
GET /v1/models
Authorization: Bearer your-api-key
响应
{
"data": [
{
"id": "zgi-1",
"object": "model",
"created": 1677649963,
"owned_by": "zgi",
"permission": [],
"root": "zgi-1",
"parent": null,
"capabilities": {
"chat": true,
"stream": true,
"functions": true
}
},
{
"id": "zgi-embedding-1",
"object": "model",
"created": 1677649963,
"owned_by": "zgi",
"permission": [],
"root": "zgi-embedding-1",
"parent": null,
"capabilities": {
"embeddings": true
}
}
],
"object": "list"
}
获取模型详情
请求
GET /v1/models/{model_id}
Authorization: Bearer your-api-key
响应
{
"id": "zgi-1",
"object": "model",
"created": 1677649963,
"owned_by": "zgi",
"permission": [],
"root": "zgi-1",
"parent": null,
"capabilities": {
"chat": true,
"stream": true,
"functions": true
},
"limits": {
"max_tokens": 4096,
"max_requests_per_min": 60,
"max_concurrent_requests": 5
},
"pricing": {
"prompt_tokens": 0.002,
"completion_tokens": 0.002
}
}
代码示例
获取模型列表
const models = await client.models.list();
console.log('可用模型:', models.data);
获取模型详情
const model = await client.models.retrieve('zgi-1');
console.log('模型详情:', model);
模型选择
async function selectModel(task, requirements) {
const models = await client.models.list();
if (task === 'chat') {
if (requirements.speed === 'fast') {
return 'zgi-1-turbo';
} else if (requirements.quality === 'high') {
return 'zgi-1-pro';
} else {
return 'zgi-1';
}
}
if (task === 'embedding') {
if (requirements.speed === 'fast') {
return 'zgi-embedding-1-light';
} else if (requirements.accuracy === 'high') {
return 'zgi-embedding-1-pro';
} else {
return 'zgi-embedding-1';
}
}
}
错误处理
常见错误码
错误码 |
说明 |
解决方案 |
404 |
模型不存在 |
检查模型ID是否正确 |
401 |
未授权 |
检查 API 密钥是否有效 |
403 |
无权访问 |
检查模型访问权限 |
错误处理示例
try {
const model = await client.models.retrieve('invalid-model');
} catch (error) {
if (error.response?.status === 404) {
console.error('模型不存在');
} else {
console.error('获取模型失败:', error.message);
}
}
最佳实践
1. 模型选择策略
function chooseModel(params) {
const {
taskType,
inputLength,
qualityRequirement,
speedRequirement,
costSensitive
} = params;
if (inputLength > 4000) {
return 'zgi-1-pro';
}
if (speedRequirement === 'high') {
return 'zgi-1-turbo';
}
if (qualityRequirement === 'high') {
return 'zgi-1-pro';
}
return 'zgi-1';
}
2. 模型能力检查
async function checkModelCapability(modelId, capability) {
const model = await client.models.retrieve(modelId);
return model.capabilities[capability] === true;
}
if (await checkModelCapability('zgi-1', 'stream')) {
const stream = await client.chat.create({
model: 'zgi-1',
messages: [...],
stream: true
});
}
3. 成本优化
async function optimizeModelUsage(text) {
const length = text.length;
if (length < 1000) {
return 'zgi-1-turbo';
} else if (length < 4000) {
return 'zgi-1';
} else {
return 'zgi-1-pro';
}
}
限制说明
1. 请求限制
- 每个模型有不同的 QPS 限制
- 并发请求数有上限
- 单次请求的 token 数有限制
2. 内容限制
- 输入文本长度限制
- 某些类型的内容可能被过滤
- 特定场景可能需要审核
3. 费用限制
- 不同模型收费标准不同
- 按 token 数计费
- 可能有最低使用费用
计费说明
1. 计费方式
- 按使用量计费(token数)
- 不同模型费率不同
- 支持批量请求优惠
2. 费用优化
- 选择合适的模型
- 优化输入长度
- 使用缓存机制
- 批量处理请求
更新日志
v1.1.0 (2024-02-01)
v1.0.0 (2024-01-01)
- 基础模型发布
- 支持对话和向量能力
- 提供模型管理接口