R1V4
创建聊天完成请求,支持文本和图片输入,返回模型生成的回复。
接口地址
POST /api/v1/chat/completions请求参数
请求体 (JSON)
json
{
"model": "string (必填)",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "string"
},
{
"type": "image_url",
"image_url": {
"url": "string (base64 data URI)"
}
}
]
}
],
"stream": true
}参数说明
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型名称:skywork/r1v4-lite 或 skywork/r1v4-vl-planner-lite |
messages | array | 是 | 对话消息列表,包含用户消息和助手回复 |
stream | boolean | 否 | 是否使用流式响应,默认为 false。设置为 true 时返回 SSE 格式响应 |
messages 参数说明
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
role | string | 是 | 消息角色,支持 user、assistant、system |
content | array | 是 | 消息内容,支持文本和图片的混合输入 |
content 参数说明
文本内容
json
{
"type": "text",
"text": "请分析这张图片"
}图片内容
json
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,/9j/4AAQSkZJRg..."
}
}图片 URL 支持 base64 编码的 data URI 格式:
- 格式:
data:<mime_type>;base64,<base64_encoded_data> - 支持的图片格式:JPEG、PNG、GIF、WebP 等
请求示例
Python 示例
python
import requests
import base64
import os
def image_to_base64(image_path):
"""将图片文件转换为base64编码"""
with open(image_path, "rb") as f:
image_data = f.read()
image_base64 = base64.b64encode(image_data).decode("utf-8")
from mimetypes import guess_type
mime_type, _ = guess_type(image_path)
return f"data:{mime_type};base64,{image_base64}"
# 配置
base_url = "https://api.skyworkmodel.ai"
api_key = "Your-API-Key"
model = "skywork/r1v4-lite" # 也可以使用 skywork/r1v4-vl-planner-lite 来使用规划器模型
# 准备消息内容
contents = []
image_path = "path/to/your/image.jpg" # 可选,也可以仅使用纯文本内容
if image_path and os.path.exists(image_path):
image_base64 = image_to_base64(image_path)
contents.append({"type": "image_url", "image_url": {"url": image_base64}})
contents.append({"type": "text", "text": "请分析这张图片"})
# 请求数据
data = {
"messages": [{"role": "user", "content": contents}],
"model": model,
"stream": True, # 设置为 False 使用非流式响应
"enable_search": True, # 启用深度研究模式,也可以设置为 False 使用普通模式
}
# 请求头
headers = {
"Content-Type": "application/json",
"Accept": "text/event-stream",
"Authorization": f"Bearer {api_key}",
}
# 发送请求
url = f"{base_url}/api/v1/chat/completions"
response = requests.post(url, json=data, headers=headers, stream=True, timeout=600)
# 处理流式响应
if response.status_code == 200:
for line in response.iter_lines(decode_unicode=True):
if line:
print(line)
else:
print(f"请求失败: {response.status_code}")
print(f"错误信息: {response.text}")纯文本请求
bash
curl -X POST "https://api.skyworkmodel.ai/api/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <your-api-key>" \
-H "Accept: text/event-stream" \
-d '{
"model": "[MODEL_NAME]",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "怎么才能赚到一个亿?"
}
]
}
],
"stream": true
}'文本 + 图片请求
bash
curl -X POST "https://api.skyworkmodel.ai/api/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <your-api-key>" \
-H "Accept: text/event-stream" \
-d '{
"model": "[MODEL_NAME]",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,[YOUR BASE64 PICTURE]"
}
},
{
"type": "text",
"text": "请分析这张图片"
}
]
}
],
"stream": true
}'响应格式
流式响应 (stream: true)
当 stream 参数设置为 true 时,响应采用 Server-Sent Events (SSE) 格式:
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"[MODEL_NAME]","choices":[{"index":0,"delta":{"content":"你好"},"finish_reason":null}]}
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"[MODEL_NAME]","choices":[{"index":0,"delta":{"content":","},"finish_reason":null}]}
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"[MODEL_NAME]","choices":[{"index":0,"delta":{"content":"我是"},"finish_reason":null}]}
data: [DONE]每个 data: 行包含一个 JSON 对象,其中:
id: 响应 IDobject: 对象类型,通常为chat.completion.chunkcreated: 创建时间戳model: 使用的模型名称choices: 选择列表,包含:index: 选择索引delta: 增量内容,包含content字段finish_reason: 完成原因,null表示未完成,stop表示正常结束
非流式响应 (stream: false)
当 stream 参数设置为 false 或未设置时,返回完整的 JSON 响应:
json
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1694268190,
"model": "[MODEL_NAME]",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "你好,我是 AI 助手,很高兴为您服务。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 20,
"total_tokens": 30
}
}错误响应
当请求失败时,返回错误信息:
json
{
"code": 400307,
"code_msg": "Invalid API key",
}注意事项
- 图片大小限制:建议单张图片不超过 10MB,base64 编码后大小会增加约 33%
- 超时设置:流式响应可能需要较长时间,建议设置合理的超时时间(如 600 秒)
- 流式响应处理:需要正确处理 SSE 格式,逐行解析
data:开头的行 - 模型选择:根据需求选择合适的模型,不同模型有不同的能力和限制