Files
opencode-skills/image-service/docs/api-reference.md
2026-02-11 22:02:47 +08:00

234 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# API 参考文档
## 概述
本技能使用两套 API
1. **Lyra Flash API** - 用于图像生成和编辑(文生图、图生图)
2. **Qwen2.5-VL API** - 用于视觉识别(图生文)
---
## 一、Lyra Flash API图像生成
### 1.1 基础配置
| 配置项 | 值 |
|-------|-----|
| Base URL | `${IMAGE_API_BASE_URL}` |
| Model | `lyra-flash-9` |
| 认证方式 | Bearer Token |
### 1.2 文生图接口
**端点**
```
POST /images/generations
```
**请求头**
```json
{
"Content-Type": "application/json",
"Authorization": "Bearer ${IMAGE_API_KEY}"
}
```
**请求体**
```json
{
"model": "lyra-flash-9",
"prompt": "中文图像描述",
"size": "1792x1024",
"response_format": "b64_json"
}
```
**参数说明**
| 参数 | 类型 | 必填 | 说明 |
|-----|------|-----|------|
| model | string | 是 | 固定使用 `lyra-flash-9` |
| prompt | string | 是 | 中文图像生成提示词 |
| size | string | 否 | 图片尺寸,默认 `1792x1024` |
| response_format | string | 否 | 响应格式,推荐 `b64_json` |
**响应体**
```json
{
"created": 1641234567,
"data": [
{
"b64_json": "base64编码的图片数据"
}
]
}
```
### 1.3 图生图接口
**端点**
```
POST /images/edits
```
**请求体**
```json
{
"model": "lyra-flash-9",
"prompt": "中文编辑指令",
"image": "data:image/png;base64,{base64数据}",
"size": "1792x1024",
"response_format": "b64_json"
}
```
**参数说明**
| 参数 | 类型 | 必填 | 说明 |
|-----|------|-----|------|
| model | string | 是 | 固定使用 `lyra-flash-9` |
| prompt | string | 是 | 中文图片编辑指令 |
| image | string | 是 | Base64 编码的参考图片(含 data URL 前缀) |
| size | string | 否 | 输出尺寸 |
| response_format | string | 否 | 响应格式 |
**响应体**
```json
{
"data": [
{
"b64_json": "base64编码的生成图片"
}
]
}
```
---
## 二、Qwen2.5-VL API视觉识别
### 2.1 基础配置
| 配置项 | 值 |
|-------|-----|
| Base URL | `${IMAGE_API_BASE_URL}` |
| Model | `qwen2.5-vl-72b-instruct` |
| 认证方式 | Bearer Token |
### 2.2 图生文接口
**端点**
```
POST /chat/completions
```
**请求头**
```json
{
"Content-Type": "application/json",
"Authorization": "Bearer ${VISION_API_KEY}"
}
```
**请求体**
```json
{
"model": "qwen2.5-vl-72b-instruct",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "请描述这张图片"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,{base64数据}"
}
}
]
}
],
"max_tokens": 2000,
"temperature": 0.7
}
```
**参数说明**
| 参数 | 类型 | 必填 | 说明 |
|-----|------|-----|------|
| model | string | 是 | 视觉模型名称 |
| messages | array | 是 | 消息列表,包含文本和图片 |
| max_tokens | int | 否 | 最大输出 token 数 |
| temperature | float | 否 | 温度参数0-1 |
**响应体**
```json
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1641234567,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "这是一张..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 100,
"completion_tokens": 50,
"total_tokens": 150
}
}
```
---
## 三、错误码说明
| 状态码 | 说明 | 处理建议 |
|-------|------|---------|
| 400 | 请求参数错误 | 检查请求体格式和参数 |
| 401 | API 密钥无效 | 检查 API Key 是否正确 |
| 403 | 权限不足 | 检查 API Key 权限 |
| 429 | 请求频率限制 | 等待后重试 |
| 500 | 服务器内部错误 | 稍后重试 |
| 503 | 服务不可用 | 稍后重试 |
---
## 四、最佳实践
### 4.1 超时设置
- 文生图:建议 120-180 秒
- 图生图:建议 180-300 秒
- 图生文:建议 60-120 秒
### 4.2 重试策略
建议实现指数退避重试:
1. 首次重试:等待 1 秒
2. 第二次重试:等待 2 秒
3. 第三次重试:等待 4 秒
### 4.3 图片格式
- 支持格式PNG、JPG、JPEG、WebP、GIF
- 推荐格式PNG无损或 JPEG有损但体积小
- 最大文件大小:建议不超过 4MB
### 4.4 Base64 编码
图片必须使用完整的 Data URL 格式:
```
data:image/png;base64,iVBORw0KGgo...
```