環宇互聯 API 文档#
本文档基于“快速开始”至“常见问题答疑”的 API 调用文档整理,已统一替换为環宇互聯品牌与接口配置。
- API 基础地址:
https://hk.hyucloud.com/ - 接口路径保持 OpenAI 兼容规范,例如:
https://hk.hyucloud.com/v1/chat/completions、https://hk.hyucloud.com/v1/models。
目录#
- 快速开始
- 认证鉴权
- 错误码
- API Key 精细化权限控制
- 获取模型列表
- 各模型支持的协议
- OpenAI Chat Completions 说明
- /v1/responses 接口文档
- Claude (Anthropic) 兼容说明
- Gemini 快速开始
- Gemini 批量任务 API
- Gemini 媒体分析功能和上传文件到
GCSAPI - Embedding 向量嵌入
- Gemini-Embedding-2 向量嵌入
- Rerank 文本排序
- DeepSeek-OCR 模型
- DeepSeek 模型开启关闭思考说明
- Doubao豆包模型思考功能参数说明
- Qwen-MT翻译模型参数说明
- EasyLink Fin-Chat 金融投研知识问答
- EasyLink EasyDoc-Parse 智能文档解析
- EasyLink EMR-Mask 病历脱敏
- EasyLink EasyDoc-Extract 文档信息抽取
- Wan-AI/Wan2.7 Image API
- gemini-2.5-flash-image( nano banana )
- gemini-3-pro-image ( nano banana pro )
- gemini-3.1-flash-image ( nano banana 2 )
- flux-2-pro
- flux-kontext-pro
- flux-pro-1.1
- stepfun-ai/step1x-edit API
- Qwen/Qwen-Image-Edit API
- Qwen/Qwen-Image API
- gpt-image-1 API
- gpt-image-1-mini API
- gpt-image-1.5 API
- gpt-image-2 API
- doubao-seedream API
- Midjourney API
- OpenAI/Sora2-T2V
- OpenAI/Sora2-I2V
- Sora-2
- Wan-AI/Wan2.2-I2V
- Wan-AI/Wan2.2-T2V
- Wan-AI/Wan2.5-I2V
- Wan-AI/Wan2.5-T2V
- Wan-AI/Wan2.6-I2V
- Wan-AI/Wan2.6-T2V
- Wan-AI/Wan2.6-R2V
- Wan-AI/Wan2.6-R2V-Flash
- HappyHorse-T2V
- HappyHorse-I2V
- HappyHorse-R2V
- HappyHorse-Video-Edit
- Vidu/Text2Video
- Vidu/Img2Video
- Vidu/Reference2Video
- Vidu/首尾帧生视频
- Vidu/视频延长
- Vidu/LipSync
- Vidu/一键生成mv
- doubao-seedance-1-5-pro
- doubao-seedance-2-0
- 火山方舟素材管理
- MiniMax/Hailuo-2.3-I2V
- MiniMax/Hailuo-2.3-T2V
- MiniMax/Hailuo-2.3-Fast
- MiniMax/Hailuo-02
- Kling/O1
- Kling/v2.6-I2V
- Kling/v2.6-T2V
- Kling/V3-Omni
- Kling/v3
- Veo-3.1
- Pixverse/Pixverse-v6
- IndexTeam/IndexTTS-2文档
- 自定义音色管理 API 文档
- IndexTeam/IndexTTS 系列模型扩展参数说明
- suno
- suno-cover
- minimax-speech
- 通义千问 Qwen-TTS
- ElevenLabs Music
- ElevenLabs Text to Sound v2
- GPT-4o mini Transcribe 语音转文字
- 常见问题
快速开始#
本指南旨在帮助您快速熟悉并调用環宇互聯的API。跟随以下步骤,您将在几分钟内完成第一次API调用。
我们强烈推荐你使用OpenAI API的调用方式。因为OpenAI的API已经成为大模型行业的事实标准,这意味着有海量的教程、工具和代码库都可以直接复用。我们的服务完全兼容这套标准,让你能无缝衔接主流生态,节约大量学习成本。
OpenAI 兼容接口当前支持:
/v1/chat/completions核心接口,用于与模型进行对话。/v1/responseOpenAI 最先进的模型响应生成接口。支持文本和图像输入,以及文本输出。/v1/models用于获取模型列表。
第一步:获取API密钥#
在调用任何API之前,您需要一个有效的API密钥。请前往【认证鉴权】文档,查看如何获取和管理您的密钥。
第二步:选择API节点#
根据您的地理位置和访问需求,选择合适的API节点:
| 节点域名 | 地区 | 说明 |
|---|---|---|
hk.hyucloud.com | 中国大陆 | 国内用户推荐,访问延迟低 |
hk.hyucloud.com | 新加坡 | 东南亚用户推荐,访问更快 |
hk.hyucloud.com | 美国洛杉矶 | 海外用户推荐,数据不回国 |
hk.hyucloud.com | 法兰克福 | 欧洲用户推荐,访问更快 |
第三步:选择模型#
你可以通过下方API获取模型列表,选择你需要的模型。
GET https://hk.hyucloud.com/v1/models
# 新加坡节点
GET https://hk.hyucloud.com/v1/models
# 美国洛杉矶节点
GET https://hk.hyucloud.com/v1/models
# 法兰克福节点
GET https://hk.hyucloud.com/v1/models请求示例:
# 默认使用中国大陆节点
export ENDPOINT="https://hk.hyucloud.com"
# 或者使用新加坡节点
export ENDPOINT="https://hk.hyucloud.com"
# 或者使用美国洛杉矶节点
export ENDPOINT="https://hk.hyucloud.com"
# 或者使用法兰克福节点
export ENDPOINT="https://hk.hyucloud.com"
curl $ENDPOINT/v1/models \
-H "Content-Type: application/json" | jq .预期返回:
{
"data": [
{
"created": 1762741377,
"id": "deepseek-ai/DeepSeek-R1",
"object": "model",
"owned_by": "環宇互聯"
},
{
"created": 1762741326,
"id": "gpt-5",
"object": "model",
"owned_by": "環宇互聯"
},
......
],
"object": "list"
}其中id字段即为模型名称,以实际返回为准。
第四步:调用API#
典型方式1 - 任何语言通过http调用#
这是最基础、最通用的调用方式。无论你使用什么编程语言,只要能发送网络请求(HTTP请求),就可以通过这种方式调用API。你需要知道三个核心信息:模型名称、你的API密钥和我们的API地址。
我们完全支持OpenAI API请求规范,因为OpenAI API接口标准也经常更新,所以建议直接以OpenAI API官网文档为准。
请将{api_key}替换为您的API密钥,将{model_name}替换为您上一步获取到列表中的模型名称(选择一个即可)。
# or
# export ENDPOINT="https://hk.hyucloud.com"
# export ENDPOINT="https://hk.hyucloud.com"
# export ENDPOINT="https://hk.hyucloud.com"
# export ENDPOINT="https://hk.hyucloud.com"
curl $ENDPOINT/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {api_key}" \
-d '{
"model": "{model_name}",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "一句话描述環宇互聯这家公司。"
}
],
"stream": true
}' 参数说明:
- model:模型名称,填入上一步获取的 id,例如 "deepseek-ai/DeepSeek-R1"。
- messages:你要发送给模型的内容。
- stream:是否“流式”返回。
- true:模型会像打字一样,逐字或逐词地返回结果,适合用于实时聊天界面。(任然是json格式数据) - false:模型会一次性生成全部答案后,再完整地返回给你。
预期返回如下,其中主要关注choices字段,它包含模型的回复,usage字段包含模型的使用情况(内容可能不相同,仅供参考):
{
"id": "52ba2d24-f745-42b3-82c3-610a7b2658b0",
"object": "chat.completion",
"created": 1763020876,
"model": "gemini-2.5-pro",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "環宇互聯 是一家中立、安全、可靠的云计算服务平台,致力于为全球企业级客户提供全面的云服务解决方案。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 1505,
"total_tokens": 1514,
"prompt_tokens_details": {
"audio_tokens": 0,
"cached_tokens": 0
},
"completion_tokens_details": {
"audio_tokens": 0,
"reasoning_tokens": 1357,
"accepted_prediction_tokens": 0,
"rejected_prediction_tokens": 0
}
},
"system_fingerprint": "",
"search_result": null
}典型方式2 - OpenAI SDK#
OpenAI官方为开发者提供了非常便捷的SDK(软件开发工具包),它把复杂的HTTP请求封装成了简单的函数调用,代码更易读、更易维护。这是我们最推荐开发者使用的方式。
可以参考OpenAI SDK文档。也可在OpenAI GitHub中寻找需要的语言SDK。
pip install -U openaifrom openai import OpenAI
import os
# or
# export ENDPOINT="https://hk.hyucloud.com"
# export ENDPOINT="https://hk.hyucloud.com"
# export ENDPOINT="https://hk.hyucloud.com"
# export ENDPOINT="https://hk.hyucloud.com"
ENDPOINT = os.getenv("ENDPOINT", "https://hk.hyucloud.com")
client = OpenAI(
api_key="{api_key}",
base_url=ENDPOINT + "/v1/",
)
chat_completion = client.chat.completions.create(
messages=[
{
"role": "user",
"content": "一句话描述環宇互聯这家公司。",
}
],
model="{model_name}",
)
print(chat_completion.choices[0].message.content)
典型方式3 - LangChain#
当你不再满足于简单的“一问一答”,想要构建更复杂的AI应用(比如能调用工具的AI助理、能分析文档的机器人等)时,LangChain就是一个强大的开发框架。它能很好地与我们的API兼容。
可以参考LangChain Python SDK文档 或 LangChain JavaScript SDK文档。
from langchain_openai import ChatOpenAI
from langchain import LLMChain
from langchain.prompts import ChatPromptTemplate
# or
# export ENDPOINT="https://hk.hyucloud.com"
# export ENDPOINT="https://hk.hyucloud.com"
# export ENDPOINT="https://hk.hyucloud.com"
# export ENDPOINT="https://hk.hyucloud.com"
ENDPOINT = os.getenv("ENDPOINT", "https://hk.hyucloud.com")
llm = ChatOpenAI(
model_name="{model_name}",
openai_api_key="{api_key}",
openai_api_base=ENDPOINT + "/v1/",
)
prompt = ChatPromptTemplate.from_template(
"""
{input}
"""
)
chain = LLMChain(llm=llm, prompt=prompt)
print(chain.run("一句话描述環宇互聯这家公司。"))认证鉴权#
简介#
hyucloud API 使用 API Key 进行认证。所有 API 请求都必须在 HTTP 请求头中包含有效的 API Key。
获取API Key#
请访问 控制台 来创建和管理您的 API Key。
注意:请妥善保管您的 API Key,不要泄露给他人。
调用地址#
環宇互聯 API地址提供两种方式,两个地址调用内容一样。
调用地址1:
GET https://hk.hyucloud.com/v1/models调用地址2:
主要用于海外无法使用.cn域名场景
GET https://hk.hyucloud.com/v1/models最简调用#
请将 {api_key} 替换为您的 API Key。
curl --location 'https://hk.hyucloud.com/v1/chat/completions' \
--header "Authorization: Bearer {api_key}" \
--header 'Content-Type: application/json' \
--data '{
"model": "deepseek-ai/DeepSeek-R1",
"messages": [
{
"role": "user",
"content": "一句话描述環宇互聯这家公司。"
}
]
}' | jq .你可能看到的返回结果。
{
"id": "0a7919c4-981e-438b-ad30-e943b96882b6",
"object": "chat.completion",
"created": 1763015400,
"model": "deepseek-r1-250528",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "用中立、安全、本土化的云计算服务,专注服务中国企业数字化转型的科创板上市云服务商。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 348,
"total_tokens": 358,
"prompt_tokens_details": null,
"completion_tokens_details": {
"audio_tokens": 0,
"reasoning_tokens": 185,
"accepted_prediction_tokens": 0,
"rejected_prediction_tokens": 0
}
},
"system_fingerprint": "",
"search_result": null
}错误码#
如果请求错误,服务器返回的 JSON 文本包含以下参数。
| HTTP 状态码 | 类型 | 错误码 | 错误信息 | 描述 |
|---|---|---|---|---|
| 400 | invalid_request_error | param_error | Invalid param | 参数不合法,调用我们未支持的接口时会触发 |
| 400 | invalid_request_error | invalid_messages | Sensitive chat messages | 对话内容触发敏感词/合规校验 |
| 400 | invalid_request_error | sensitive_check_error | Sensitive check error | 合规/敏感内容检测失败 |
| 400 | invalid_request_error | websearch_error | Web search error | 联网搜索失败或不可用 |
| 400 | invalid_request_error | model_error | No permission to use the model | 没有模型权限 |
| 400 | invalid_request_error | tokens_too_long | Prompt tokens too long | 提示词过长 |
| 401 | invalid_request_error | auth_error | Validate Certification failed | token 无效,用户可以参考鉴权说明获取最新密钥 |
| 408 | timeout | timeout | Request timeout, please try again later | 请求超时,请稍后重试 |
| 429 | rate_limit_error | rate_limit | Rate limit exceeded, please try again later | 触发限流,请稍后重试 |
| 500 | internal_error | internal_error | Internal Server Error | 服务器内部错误 |
| 500 | internal_error | model_server_error | Request llm server Error | LLM 服务异常 |
| 504 | timeout | gateway_timeout_error | Gateway timeout, please try again later or use stream api | 网关超时,请稍后重试或使用流式接口 |
API Key 精细化权限控制#
简介#
2026-03-20 新增 API Key 精细化权限控制功能,支持按额度、按模型、按IP白名单维度进行权限控制。
注意:此功能为实验性功能,如需使用,请联系产品开通新平台权限。
功能说明#
额度控制#
API Key 支持设置 每日 或 每月 费用额度上限,超过上限后将无法继续调用API。额度可以在创建/更新 API Key时设置。
注意:额度为可选配置,不配置时默认不限制费用额度。
额度限制以该key真实消费的费用为准,而非预估费用。(费用订单为后付费,每小时结算一次,因此额度限制可能存在一定的延迟,建议设置时预留一定的余量)
额度在费用结算后可能因扣费流程存在短暂的延迟。
操作步骤如下#
1. 登录控制台,进入API Key管理页面 2. 点击"创建API Key"或"编辑API Key" 3. 在"额度控制"区域,填写"每日"或"每月"额度上限 4. 点击"创建"按钮或"保存"按钮
调用示例#
curl https://hk.hyucloud.com/v1/responses\
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "gpt-5.4",
"input": "Hello! Who are you?"
}'
{"error":{"message":"Access forbidden: api key quota exceeded, key_id=uminferapikey-1j3gwjgyhkwc, daily_limit_amount=100 , monthly_limit_amount=1000","type":"permission_error","param":"c2ad1049-66a6-4640-b2b5-1711dc401092","code":"forbidden"}}模型控制#
API Key 支持设置可调用的模型列表,仅可调用列表中的模型。模型可以在创建/更新 API Key时设置。
注意:模型控制为可选配置,不配置时默认可调用所有模型。
页面选择支持按照供应商等选择模型,但是不支持新增模型自动添加到列表中。如需添加新模型,需要手动添加。
例:创建 API Key 时,勾选全部OpenAI模型为可调用模型,在此时间点后推出新模型,该API Key仍无法调用新模型。如需调用新模型,需要更新API Key的可调用模型列表。
调用示例#
curl https://hk.hyucloud.com/v1/responses\
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "gpt-5.4",
"input": "Hello! Who are you?"
}'
{"error":{"message":"No permission to use the model: apikey [uminferapikey-1j3gwjgyhkwc] not support model [gpt-5.4]","type":"invalid_request_error","param":"6d7248f8-ebaa-437e-bfc2-d79e7c54004c","code":"model_error"}}IP白名单控制#
API Key 支持设置可调用的IP白名单,未设置时可从任意IP使用该API Key调用API,设置后仅可从IP白名单中的IP调用API。IP白名单可以在创建/更新 API Key时设置。
注意:IP白名单为可选配置,不配置时默认可从任意IP使用该API Key调用API。当前仅支持IPv4地址。
支持IP和网段格式,如
192.168.1.1、192.168.1.0/24、192.168.1.10-192.168.1.20。
调用示例#
curl https://hk.hyucloud.com/v1/responses\
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "gpt-5.4",
"input": "Hello! Who are you?"
}'
{"error":{"message":"Access forbidden: api key ip not in whitelist, key_id=uminferapikey-1j3gwjgyhkwc, ip=127.0.0.1","type":"permission_error","param":"c2ad1049-66a6-4640-b2b5-1711dc401092","code":"forbidden"}}获取模型列表#
您可以通过 API 端点获取当前所有可用模型的列表。我们同时支持 OpenAI 和 Gemini 两种格式的 API(并非所有模型都支持 Gemini)。
OpenAI 兼容模型列表#
请求#
请求地址#
GET https://hk.hyucloud.com/v1/models请求示例#
您可以直接使用 curl 命令来调用此接口
⚠️注意此接口只会返回文本生成的模型,若需要使用生图模型,请见【图片生成】
curl https://hk.hyucloud.com/v1/models \
-H "Content-Type: application/json" | jq .响应#
响应示例#
调用成功后,会返回一个 JSON 对象,其中包含一个模型对象列表。
{
"data": [
{
"created": 1762741377,
"id": "deepseek-ai/DeepSeek-R1",
"object": "model",
"owned_by": "環宇互聯"
},
{
"created": 1762741326,
"id": "gpt-5",
"object": "model",
"owned_by": "環宇互聯"
},
......
],
"object": "list"
}响应体参数说明#
| 参数 | 类型 | 描述 |
|---|---|---|
id | string | 模型的唯一标识符。 |
object | string | 对象类型,此处恒为 model。 |
created | integer | 模型创建时间的 Unix 时间戳。 |
owned_by | string | 模型所有者。 |
Gemini 兼容模型列表#
请求#
请求地址#
GET https://hk.hyucloud.com/v1beta/models请求示例#
您可以使用 curl 命令来调用此接口。
⚠️注意此接口只会返回支持gemini协议的模型
curl --location 'https://hk.hyucloud.com/v1beta/models' \
-H "Content-Type: application/json" 响应#
响应示例#
调用成功后,会返回一个 JSON 对象,其中包含一个模型对象列表。
{
"models": [
{
"name": "models/gemini-2.5-flash-image",
"baseModelId": "gemini-2.5-flash-image",
"version": "",
"displayName": "gemini-2.5-flash-image",
"description": "gemini-2.5-flash-image",
"inputTokenLimit": 0,
"outputTokenLimit": 0,
"supportedActions": [
"generateContent"
]
},
{
"name": "models/gemini-2.5-pro",
"baseModelId": "gemini-2.5-pro",
"version": "",
"displayName": "gemini-2.5-pro",
"description": "gemini-2.5-pro",
"inputTokenLimit": 0,
"outputTokenLimit": 0,
"supportedActions": [
"generateContent"
]
},
{
"name": "models/gemini-2.5-flash",
"baseModelId": "gemini-2.5-flash",
"version": "",
"displayName": "gemini-2.5-flash",
"description": "gemini-2.5-flash",
"inputTokenLimit": 0,
"outputTokenLimit": 0,
"supportedActions": [
"generateContent"
]
}
]
}响应体参数说明#
| 参数 | 类型 | 描述 |
|---|---|---|
name | string | 模型的完整资源名称。 |
baseModelId | string | 基础模型的 ID。 |
version | string | 模型版本号。 |
displayName | string | 模型的显示名称。 |
description | string | 模型的描述信息。 |
inputTokenLimit | integer | 输入 Token 的最大限制。 |
outputTokenLimit | integer | 输出 Token 的最大限制。 |
supportedActions | array | 模型支持的操作列表。 |
各模型支持的协议#
本页用于说明不同模型在各协议下的兼容情况。 约定:
- ✅:当前推荐、经过验证的主要调用方式。
- 空白:可以尝试,但未充分验证或可能不稳定或完全无法使用,使用前建议在测试环境验证,不保证其兼容性。
说明:实际兼容性可能会随官方协议演进而调整,请以官方最新文档和测试结果为准。
如何查看支持的模型列表#
您可以通过 /v1/models 接口获取所有支持的模型:
curl https://hk.hyucloud.com/v1/models \
-H "Content-Type: application/json"推荐使用 Cherry Studio 客户端,配置 API 地址后点击管理按钮即可直观查看所有支持的模型。详细配置教程请参考:Cherry Studio 配置教程。
OpenAI / GPT 系列#
| 模型 ID | OpenAI Chat 协议 /v1/chat/completions | OpenAI Response 协议/v1/responses | Gemini协议 /v1beta/models | Anthropic协议 /v1/messages | 备注 |
|---|---|---|---|---|---|
| gpt-5.1-chat | ✅ | ✅ | 不支持 max_tokens 参数,请使用max_completion_tokens,图像需用 base64 | ||
| gpt-5.1 | ✅ | ✅ | 不支持 max_tokens 参数,请使用max_completion_tokens,图像需用 base64 | ||
| gpt-5.1-codex-mini | ✅ | 仅支持 /v1/responses 接口 | |||
| gpt-5.1-codex | ✅ | 仅支持 /v1/responses 接口 | |||
| gpt-5 | ✅ | ✅ | 不支持 max_tokens 参数,请使用max_completion_tokens,图像需用 base64 | ||
| gpt-5-chat | ✅ | ✅ | 不支持 max_tokens 参数,请使用max_completion_tokens,图像需用 base64 | ||
| gpt-5-codex | ✅ | 仅支持 /v1/responses 接口 | |||
| gpt-4o-mini | ✅ | ||||
| gpt-4.1-nano | ✅ | ||||
| gpt-4.1-mini | ✅ | ||||
| o1 | ✅ | ✅ | 不支持 max_tokens 参数,请使用max_completion_tokens,图像需用 base64 | ||
| openai/gpt-5.1-chat | ✅ | ✅ | 不支持 max_tokens 参数,请使用max_completion_tokens,图像需用 base64 | ||
| openai/gpt-5.1-codex | ✅ | 仅支持 /v1/responses 接口 | |||
| openai/gpt-5.1-codex-mini | ✅ | 仅支持 /v1/responses 接口 | |||
| openai/gpt-5.1 | ✅ | ✅ | 不支持 max_tokens 参数,请使用max_completion_tokens,图像需用 base64 | ||
| openai/gpt-4o | ✅ | ✅ | |||
| openai/gpt-5-nano | ✅ | ✅ | 不支持 max_tokens 参数,请使用max_completion_tokens,图像需用 base64 | ||
| openai/gpt-4.1 | ✅ | ✅ | |||
| openai/gpt-5 | ✅ | ✅ | 不支持 max_tokens 参数,请使用max_completion_tokens,图像需用 base64 | ||
| openai/gpt-5-mini | ✅ | ✅ | 不支持 max_tokens 参数,请使用max_completion_tokens,图像需用 base64 | ||
| openai/gpt-oss-20b | ✅ | ||||
| openai/gpt-oss-120b | ✅ | ||||
| o4-mini-deep-research | ✅ | 仅支持 /v1/responses 接口 | |||
| o4-mini | ✅ | ✅ | 不支持 max_tokens 参数,请使用max_completion_tokens,图像需用 base64 |
Claude 系列#
| 模型 ID | OpenAI Chat 协议 /v1/chat/completions | OpenAI Response 协议/v1/responses | Gemini协议 /v1beta/models | Anthropic协议 /v1/messages | 备注 |
|---|---|---|---|---|---|
| claude-opus-4-1-20250805 | ✅ | ✅ | |||
| claude-sonnet-4-5-20250929-thinking | ✅ | ✅ | temperature 和 top_p 只能指定一个,temperature 取值范围为[0,1) | ||
| claude-sonnet-4-5-20250929 | ✅ | ✅ | |||
| claude-sonnet-3.7 | ✅ | ✅ | |||
| claude-opus-4.1-thinking | ✅ | ✅ | |||
| claude-opus-4.0-thinking | ✅ | ✅ | |||
| claude-sonnet-4.0-thinking | ✅ | ✅ | |||
| claude-sonnet-3.5 | ✅ | ✅ | |||
| claude-4-opus | ✅ | ✅ | |||
| claude-4-sonnet | ✅ | ✅ | |||
| claude-sonnet-4.5-thinking | ✅ | ✅ | temperature 和 top_p 只能指定一个,temperature 取值范围为[0,1) | ||
| claude-sonnet-4.5 | ✅ | ✅ | temperature 和 top_p 只能指定一个,temperature 取值范围为[0,1) |
参数限制说明:Claude Sonnet 4.5 仅支持指定
temperature或top_p参数中的一个,不能同时使用这两个参数。详见 官方文档说明。
Grok 系列#
| 模型 ID | OpenAI Chat 协议 /v1/chat/completions | OpenAI Response 协议/v1/responses | Gemini协议 /v1beta/models | Anthropic协议 /v1/messages | 备注 |
|---|---|---|---|---|---|
| grok-4-1-fast-reasoning | ✅ | ||||
| grok-4-1-fast-non-reasoning | ✅ | ||||
| grok-4-fast-reasoning | ✅ | ||||
| grok-4-fast | ✅ | ||||
| grok-4 | ✅ |
Qwen 系列#
| 模型 ID | OpenAI Chat 协议 /v1/chat/completions | OpenAI Response 协议/v1/responses | Gemini协议 /v1beta/models | Anthropic协议 /v1/messages | 备注 |
|---|---|---|---|---|---|
| Qwen/Qwen3-vl-Plus | ✅ | ||||
| Qwen/Qwen3-235B-A22B-Thinking-2507 | ✅ | ||||
| Qwen/Qwen-Plus-Thinking | ✅ | ||||
| Qwen/Qwen-Plus | ✅ | ||||
| Qwen/Qwen3-Max | ✅ | ||||
| Qwen/Qwen3-VL-235B-A22B-Instruct | ✅ | ||||
| Qwen/Qwen3-VL-235B-A22B-Thinking | ✅ | ||||
| Qwen/Qwen3-32B | ✅ | ||||
| Qwen/Qwen3-30B-A3B | ✅ | ||||
| Qwen/Qwen3-Coder | ✅ | ||||
| Qwen/Qwen3-235B-A22B | ✅ | ||||
| Qwen/QwQ-32B | ✅ | ||||
| qwen/qwen2.5-vl-72b-instruct | ✅ |
Gemini 系列(支持 /v1beta/models)#
| 模型 ID | OpenAI Chat 协议 /v1/chat/completions | OpenAI Response 协议/v1/responses | Gemini协议 /v1beta/models | Anthropic协议 /v1/messages | 备注 |
|---|---|---|---|---|---|
| gemini-3-pro-preview | ✅ | 推荐使用 /v1beta/models 接口 | |||
| gemini-2.5-pro | ✅ | 推荐使用 /v1beta/models 接口 | |||
| gemini-2.5-flash | ✅ | 推荐使用 /v1beta/models 接口 |
思考过程配置:使用 Gemini 协议的
v1beta/models接口,可通过thinkingConfig参数开启/关闭思考过程。详见 Gemini 协议兼容安全等级配置:Gemini 支持通过
safetySettings配置内容过滤策略,包括仇恨言论、色情内容、危险内容、骚扰内容和公民诚信五个类别。详见 Google 官方安全设置文档
DeepSeek 系列#
| 模型 ID | OpenAI Chat 协议 /v1/chat/completions | OpenAI Response 协议/v1/responses | Gemini协议 /v1beta/models | Anthropic协议 /v1/messages | 备注 |
|---|---|---|---|---|---|
| deepseek-ai/DeepSeek-OCR | ✅ | ||||
| deepseek-ai/DeepSeek-V3.1-Think | ✅ | ||||
| deepseek-ai/DeepSeek-V3.2-Exp-Think | ✅ | ||||
| deepseek-ai/DeepSeek-V3.2-Exp | ✅ | ||||
| deepseek-ai/DeepSeek-V3.1-Terminus | ✅ | ||||
| deepseek-ai/DeepSeek-V3.1 | ✅ | ||||
| deepseek-ai/DeepSeek-R1-Distill-Llama-70B | ✅ | ||||
| deepseek-ai/DeepSeek-R1-0528 | ✅ | ||||
| deepseek-ai/DeepSeek-V3-0324 | ✅ | ||||
| deepseek-ai/DeepSeek-R1 | ✅ |
Doubao(豆包)系列#
| 模型 ID | OpenAI Chat 协议 /v1/chat/completions | OpenAI Response 协议/v1/responses | Gemini协议 /v1beta/models | Anthropic协议 /v1/messages | 备注 |
|---|---|---|---|---|---|
| ByteDance/doubao-1-5-pro-32k-250115 | ✅ | ||||
| ByteDance/doubao-1-5-pro-256k-250115 | ✅ | ||||
| ByteDance/doubao-seed-1.6 | ✅ | ||||
| ByteDance/doubao-seed-1.6-thinking | ✅ | ||||
| ByteDance/doubao-1.5-thinking-vision-pro | ✅ |
Baidu 系列#
| 模型 ID | OpenAI Chat 协议 /v1/chat/completions | OpenAI Response 协议/v1/responses | Gemini协议 /v1beta/models | Anthropic协议 /v1/messages | 备注 |
|---|---|---|---|---|---|
| baidu/ernie-x1-turbo-32k | ✅ | ||||
| baidu/ernie-4.5-turbo-128k | ✅ | ||||
| baidu/ernie-4.5-turbo-vl-32k | ✅ |
其他模型#
| 模型 ID | OpenAI Chat 协议 /v1/chat/completions | OpenAI Response 协议/v1/responses | Gemini协议 /v1beta/models | Anthropic协议 /v1/messages | 备注 |
|---|---|---|---|---|---|
| moonshotai/Kimi-K2-Thinking | ✅ | ||||
| moonshotai/Kimi-K2-Instruct-0905 | ✅ | ||||
| moonshotai/Kimi-K2-Instruct | ✅ | ||||
| zai-org/glm-4.6 | ✅ | ||||
| zai-org/glm-4.5v | ✅ | ||||
| zai-org/glm-4.5 | ✅ | ||||
| kat-coder-256k | ✅ |
OpenAI Chat Completions 说明#
重要提示:我们的服务完全兼容OpenAI API标准,因此我们强烈推荐直接参考OpenAI官方API文档获取最全面、最新的参数细节和示例。这能让你利用OpenAI的丰富资源(如教程、SDK)。以下是简化的接口概述,聚焦核心字段和使用说明。如果需要高级功能或更新,请优先查阅官方文档。我们已补充字段的具体含义,以补足快速开始文档的简单实用性。
概述#
/v1/chat/completions 接口用于基于对话消息生成模型响应,支持文本、图像和音频输入。适用于聊天、内容生成等场景。支持流式响应(streaming)。请求方法:POST。端点:https://hk.hyucloud.com/v1/chat/completions(兼容OpenAI格式)。
认证:使用API密钥,通过Authorization: Bearer {api_key}传递。 注意:某些参数仅适用于特定模型(如推理模型的reasoning_effort)。弃用参数(如functions)请避免使用,改用tools。
主要核心字段#
请求字段(Request Parameters)#
| 字段 | 类型 | 是否必需 | 默认值 | 含义与说明 |
|---|---|---|---|---|
| messages | array | 是 | 无 | 对话消息列表。每个消息包含role(system/user/assistant)和content(文本/图像/音频)。含义:定义对话上下文,模型据此生成响应。示例:[{"role": "user", "content": "Hello!"}]。支持多模态输入。 |
| model | string | 是 | 无 | 模型ID,如gpt-4o。含义:指定生成响应的模型。参考/v1/models获取可用模型列表。 |
| frequency_penalty | number | 否 | 0 | 频率惩罚(-2.0到2.0)。含义:减少重复token生成,提高输出多样性。 |
| logit_bias | map | 否 | 无 | token偏置映射。含义:调整特定token的生成概率(如禁止某些词)。 |
| logprobs | boolean | 否 | false | 是否返回token对数概率。含义:用于分析模型置信度。 |
| max_completion_tokens | integer | 否 | 无 | 最大完成token数(包括推理token)。含义:控制响应长度,防止过长输出。 |
| max_tokens | integer | 否 | 无 | 最大token数(已弃用)。含义:类似max_completion_tokens,用于旧模型。 |
| n | integer | 否 | 1 | 生成选项数量。含义:返回多个备选响应,注意会增加token消耗。 |
| presence_penalty | number | 否 | 0 | 存在惩罚(-2.0到2.0)。含义:鼓励新主题,避免重复。 |
| response_format | object | 否 | 无 | 输出格式。含义:如{"type": "json_schema"}确保结构化JSON输出。 |
| seed | integer | 否 | 无 | 随机种子。含义:确保响应确定性(重复请求返回相同结果)。 |
| stop | string/array | 否 | 无 | 停止序列。含义:生成到此停止(如"END")。 |
| stream | boolean | 否 | false | 是否流式响应。含义:实时返回chunk,便于交互式应用。 |
| temperature | number | 否 | 1 | 采样温度(0到2)。含义:控制随机性,高值更创意,低值更确定。 |
| tool_choice | string/object | 否 | auto(若有工具) | 工具选择策略。含义:如auto让模型决定调用工具。 |
| tools | array | 否 | 无 | 可用工具列表。含义:启用函数调用或内置工具(如web search)。 |
| top_p | number | 否 | 1 | 核采样(0到1)。含义:控制多样性,与temperature互斥。 |
| user | string | 否 | 无 | 用户标识。含义:用于监控和滥用检测。 |
- 其他字段:如
metadata(存储额外信息)、modalities(输出类型,如["text", "audio"])等。参考官方文档获取完整列表。
响应字段(Response)#
| 字段 | 类型 | 含义与说明 |
|---|---|---|
| choices | array | 完成选项列表。含义:每个选项包含index、message(响应内容)和finish_reason(停止原因)。 |
| created | integer | 创建时间戳。含义:Unix秒,表示响应生成时间。 |
| id | string | 响应ID。含义:唯一标识此次完成。 |
| model | string | 使用模型。含义:确认实际模型。 |
| object | string | 对象类型:chat.completion。含义:响应类型标识。 |
| service_tier | string | 服务层级。含义:如果指定,返回实际使用层级。 |
| system_fingerprint | string | 系统指纹。含义:监控后端变化影响确定性。 |
| usage | object | 使用统计。含义:包含prompt_tokens、completion_tokens、total_tokens,用于计费。 |
- 流式响应:返回chunk序列,每个chunk的object为
chat.completion.chunk,包含delta(增量内容)。以[DONE]结束。
使用文档#
基本流程#
1. 构建请求:准备messages数组,确保角色正确。 2. 发送请求:使用HTTP POST,携带密钥。 3. 解析响应:从choices中提取message.content。 4. 流式处理:若stream=true,逐chunk读取delta.content。
示例(Curl,非流式)#
curl https://hk.hyucloud.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {api_key}" \
-d '{
"model": "{model_name}",
"messages": [{"role": "user", "content": "Hello!"}]
}'示例(Python,流式)#
import openai
client = openai.OpenAI(api_key="{api_key}", base_url="https://hk.hyucloud.com/v1/")
stream = client.chat.completions.create(
model="{model_name}",
messages=[{"role": "user", "content": "Hello!"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")更多示例和高级用法,请直接参考OpenAI官方文档。
/v1/responses 接口文档#
重要提示:我们的服务完全兼容OpenAI Responses API标准,因此我们强烈推荐直接参考OpenAI官方API文档获取最全面、最新的参数细节和示例。这能让你利用OpenAI的丰富资源(如教程、SDK)。以下是精简版接口概述,聚焦核心字段和使用说明,以减少参数过多带来的复杂性(完整参数约30个,仅列出必需/常用)。如果需要高级功能或完整列表,请优先查阅官方文档。
概述#
/v1/responses 是OpenAI最先进的响应生成接口,支持文本/图像输入、文本/JSON输出、多轮对话、工具调用(如web search、file search)和背景处理。适用于状态化交互和外部数据集成。请求方法:POST。端点:https://hk.hyucloud.com/v1/responses(兼容OpenAI格式)。
认证:使用API密钥,通过Authorization: Bearer {api_key}传递。 注意:参数过多(约30个),建议从核心开始使用。支持流式响应和工具扩展。某些参数(如reasoning)仅适用于o-series模型。
主要核心字段#
请求字段(Request Parameters)#
精选必需和常用字段(约10个),完整列表请查官方文档。
| 字段 | 类型 | 是否必需 | 默认值 | 含义与说明 |
|---|---|---|---|---|
| input | string | 否 | 无 | 输入内容(文本/图像/文件)。 |
| model | string | 是 | 无 | 模型ID,如gpt-4o或o3。含义:指定响应生成模型。 |
| instructions | string | 否 | 无 | 系统消息。含义:指导模型行为,可覆盖先前指令。 |
| max_tokens | integer | 否 | 无 | 最大输出token数(包括推理)。含义:控制响应长度。 |
| tools | array | 否 | 无 | 工具列表(如函数/web search)。含义:扩展模型能力。 |
| tool_choice | string/object | 否 | auto | 工具选择(如auto)。含义:决定是否调用工具。 |
| stream | boolean | 否 | false | 是否流式。含义:实时返回事件流。 |
| temperature | number | 否 | 1 | 采样温度(0-2)。含义:控制随机性。 |
| top_p | number | 否 | 1 | 核采样(0-1)。含义:控制多样性,与temperature互斥。 |
| background | boolean | 否 | false | 是否后台运行。含义:异步处理,长任务适用。 |
- 精简提示:其他常用如
previous_response_id(多轮对话)、reasoning(推理配置)。避免非必需参数以简化调用。
响应字段(Response)#
核心响应对象,流式时返回事件序列。
| 字段 | 类型 | 含义与说明 |
|---|---|---|
| output | array | 生成内容(如文本/工具调用)。含义:模型输出结果。 |
| status | string | 状态(如completed、failed)。含义:响应处理结果。 |
| created | number | 创建时间戳。含义:Unix秒。 |
| id | string | 响应ID。含义:唯一标识。 |
| model | string | 使用模型。含义:确认模型。 |
| usage | object | token使用统计。含义:计费依据。 |
- 流式事件:如
response.created、response.output_item.added等。以response.done结束。完整事件列表见官方文档。
使用文档#
基本流程#
1. 构建请求:指定model和input_items。 2. 发送请求:POST携带密钥。 3. 解析响应:提取output内容。 4. 流式:处理事件流。
示例(Curl,非流式)#
curl https://hk.hyucloud.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {api_key}" \
-d '{
"model": "{model_name}",
"input": "Hello! Who are you?"
}'预期响应(简化):
{
"id": "resp-123",
"object": "response",
"created": 1677652288,
"model": "gpt-4o",
"output": [{"type": "text", "text": "Hi!"}],
"status": "completed",
"usage": {"total_tokens": 20}
}示例(Python,流式)#
import openai
client = openai.OpenAI(api_key="{api_key}", base_url="https://hk.hyucloud.com/v1/")
stream = client.responses.create(
model="{model_name}",
input_items=[{"type": "text", "text": "Hello!"}],
stream=True
)
for event in stream:
print(event) # 如 response.delta更多细节,请直接参考OpenAI官方文档。
Claude (Anthropic) 兼容说明#
重要提示:我们提供兼容 Anthropic 标准的API服务,因此我们强烈推荐直接参考 Anthropic 官方 API 文档 获取最全面、最新的参数细节和示例。以下是简化的接口概述,聚焦核心字段和使用说明。
概述#
環宇互聯 平台提供了与 Anthropic Claude API 兼容的 Messages 接口,开发者可以使用 Anthropic SDK 或其他支持的工具直接调用 環宇互聯 上的模型。
- 请求方法:POST
- 端点:
https://hk.hyucloud.com/v1/messages - 认证:使用 API 密钥,通过
x-api-key: {api_key}或Authorization: Bearer {api_key}传递
注意:
/v1/messages端点仅支持 Claude 系列模型。其他模型(如 GPT、Gemini、DeepSeek 等)请使用 OpenAI 兼容的/v1/chat/completions端点。虽然 Claude 和 OpenAI 都使用/v1/models来获取模型列表,但调用接口不同。
主要核心字段#
请求字段(Request Parameters)#
| 字段 | 类型 | 是否必需 | 默认值 | 含义与说明 |
|---|---|---|---|---|
| model | string | 是 | 无 | 模型 ID,如 claude-sonnet-4-5-20250929。指定生成响应的模型。 |
| messages | array | 是 | 无 | 对话消息列表。每个消息包含 role(user/assistant)和 content(文本/图像)。 |
| max_tokens | integer | 是 | 无 | 最大生成 token 数。控制响应长度,防止过长输出。 |
| system | string/array | 否 | 无 | 系统提示词。定义模型的行为和角色。 |
| temperature | number | 否 | 1.0 | 采样温度(0 到 1)。控制随机性,高值更创意,低值更确定。 |
| top_p | number | 否 | 无 | 核采样(0 到 1)。控制多样性。 |
| top_k | integer | 否 | 无 | Top-K 采样。仅从概率最高的 K 个 token 中采样。 |
| stop_sequences | array | 否 | 无 | 停止序列列表。生成到此停止。 |
| stream | boolean | 否 | false | 是否流式响应。实时返回增量内容。 |
| metadata | object | 否 | 无 | 元数据对象,可包含 user_id 用于追踪。 |
| tools | array | 否 | 无 | 可用工具列表。启用函数调用功能。 |
| tool_choice | object | 否 | auto | 工具选择策略。如 {"type": "auto"} 让模型决定调用工具。 |
响应字段(Response)#
| 字段 | 类型 | 含义与说明 |
|---|---|---|
| id | string | 响应 ID。唯一标识此次完成。 |
| type | string | 对象类型:message。 |
| role | string | 角色:assistant。 |
| content | array | 内容块列表。每个块包含 type 和对应内容(如 text)。 |
| model | string | 使用的模型 ID。 |
| stop_reason | string | 停止原因:end_turn、max_tokens、stop_sequence、tool_use。 |
| stop_sequence | string | 触发停止的序列(如适用)。 |
| usage | object | 使用统计。包含 input_tokens 和 output_tokens。 |
快速开始#
安装 Anthropic SDK#
pip install anthropic示例代码#
Python#
import anthropic
client = anthropic.Anthropic(
api_key="<hyucloud_API_KEY>",
base_url="https://hk.hyucloud.com"
)
message = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
messages=[
{"role": "user", "content": "Hello, how are you?"}
]
)
print(message.content[0].text)Python 流式#
import anthropic
client = anthropic.Anthropic(
api_key="<hyucloud_API_KEY>",
base_url="https://hk.hyucloud.com"
)
with client.messages.stream(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
messages=[
{"role": "user", "content": "Write a short story about AI."}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)curl#
curl https://hk.hyucloud.com/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: $hyucloud_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-5-20250929",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, how are you?"}
]
}'curl 流式#
curl https://hk.hyucloud.com/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: $hyucloud_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-5-20250929",
"max_tokens": 1024,
"stream": true,
"messages": [
{"role": "user", "content": "Hello, how are you?"}
]
}'多模态支持#
Claude 兼容接口支持图像输入,可以通过 base64 编码或 URL 方式传递图像:
使用 URL 方式#
import anthropic
client = anthropic.Anthropic(
api_key="<hyucloud_API_KEY>",
base_url="https://hk.hyucloud.com"
)
# 使用 URL 传递图像
message = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "url",
"url": "https://hk.hyucloud.com/hyucloud-maxcot.jpg"
}
},
{
"type": "text",
"text": "What's in this image?"
}
]
}
]
)
print(message.content[0].text)使用 base64 编码#
import anthropic
import base64
client = anthropic.Anthropic(
api_key="<hyucloud_API_KEY>",
base_url="https://hk.hyucloud.com"
)
# 使用 base64 编码图像
with open("image.png", "rb") as f:
image_data = base64.standard_b64encode(f.read()).decode("utf-8")
message = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": image_data
}
},
{
"type": "text",
"text": "What's in this image?"
}
]
}
]
)
print(message.content[0].text)工具调用(Function Calling)#
import anthropic
client = anthropic.Anthropic(
api_key="<hyucloud_API_KEY>",
base_url="https://hk.hyucloud.com"
)
tools = [
{
"name": "get_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
}
},
"required": ["location"]
}
}
]
message = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
tools=tools,
messages=[
{"role": "user", "content": "What's the weather like in Beijing?"}
]
)
print(message.content)模型列表#
更多受支持的 Claude 兼容模型,请参考【获取模型列表】或访问 環宇互聯 模型中心。
更多字段详情,见 Anthropic 官方文档
Gemini 快速开始#
環宇互聯 平台提供了与 Google Gemini API 兼容的 Models 接口,开发者可以使用 Gemini SDK 或其他支持的工具直接调用 環宇互聯 上的 Gemini 模型。
本文将向您介绍如何快速在 環宇互聯 平台发出您的第一个 Gemini API 请求。
快速开始#
安装 Google GenAI SDK#
安装 python 语言的 sdk
使用 Python 3.9 及更高版本,通过以下 pip 命令安装 google-genai 软件包:
pip install google-genai示例#
以下示例使用 generateContent 方法,通过gemini-3-flash-preview模型向 環宇互聯 API 发送请求。
请确保将
$hyucloud_API_KEY替换为您自己的 API Key,获取 API Key。
非流式调用#
您可以使用以下代码进行调用。请注意,我们需要通过 http_options 来指定 環宇互聯 的 API 地址。
python#
from google import genai
from google.genai import types
client = genai.Client(
api_key="<hyucloud_API_KEY>",
http_options=types.HttpOptions(
base_url="https://hk.hyucloud.com"
),
)
response = client.models.generate_content(
model="gemini-3-flash-preview",
contents=[
{"text": "How does AI work?"},
],
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(thinking_budget=0),
),
)
print(response.text)参数说明:开启思考总结#
详细内容可参考官方文档
如需开启思考总结,可在 thinking_config 中添加:
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(
include_thoughts=True
)
)curl#
curl "https://hk.hyucloud.com/v1beta/models/gemini-3-flash-preview:generateContent" \
-H "x-goog-api-key: $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"contents": [
{
"parts": [
{
"text": "How does AI work?"
}
]
}
],
"generationConfig": {
"thinkingConfig": {
"thinkingBudget": 0
}
}
}'流式调用#
python#
from google import genai
from google.genai import types
client = genai.Client(
api_key="<hyucloud_API_KEY>",
http_options=types.HttpOptions(
base_url="https://hk.hyucloud.com"
),
)
response = client.models.generate_content_stream(
model="gemini-3-flash-preview", contents=["Explain how AI works"]
)
for chunk in response:
print(chunk.text, end="")
curl#
curl "https://hk.hyucloud.com/v1beta/models/gemini-3-flash-preview:GenerateContent?alt=sse" \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{
"role": "user",
"parts": [
{
"text": "Explain how AI works"
}
]
}
]
}'Google Search(联网检索)使用说明#
Gemini 支持通过 tools.google_search 调用实时网络检索能力。启用后,模型会在需要时自动发起搜索,并在响应中返回可追溯的来源信息(groundingMetadata)。
详细字段定义与能力说明可参考 Google Gemini 官方文档:https://ai.google.dev/gemini-api/docs/google-search?hl=zh-cn
适用场景:
- 需要最新信息(如近期事件、价格、公告)。
- 需要可验证来源与引用链路。
- 需要降低纯参数知识带来的幻觉风险。
请求要点#
- 请求体中增加
tools,并传入{"google_search": {}}。 - 建议使用支持 Google Search 工具的 Gemini 模型(如
gemini-3-flash-preview)。 - 使用 環宇互聯 兼容地址与鉴权:
* Base URL: https://hk.hyucloud.com * API Key Header: x-goog-api-key: $hyucloud_API_KEY
示例:Python SDK(環宇互聯)#
from google import genai
from google.genai import types
client = genai.Client(
api_key="<hyucloud_API_KEY>",
http_options=types.HttpOptions(base_url="https://hk.hyucloud.com"),
)
response = client.models.generate_content(
model="gemini-3-flash-preview",
contents="请告诉我今天 AI 领域最重要的三条新闻,并给出来源。",
config=types.GenerateContentConfig(
tools=[types.Tool(google_search=types.GoogleSearch())]
),
)
print(response.text)
# 可选:读取 grounding 元数据(若模型触发了搜索)
if response.candidates and response.candidates[0].grounding_metadata:
gm = response.candidates[0].grounding_metadata
if gm.grounding_chunks:
for idx, chunk in enumerate(gm.grounding_chunks, 1):
if chunk.web:
print(f"[{idx}] {chunk.web.title}: {chunk.web.uri}")示例:curl(環宇互聯)#
curl "https://hk.hyucloud.com/v1beta/models/gemini-3-flash-preview:generateContent" \
-H "x-goog-api-key: $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"contents": [
{
"parts": [
{
"text": "请基于网络信息,概括一下今天全球 AI 相关新闻,并附带来源。"
}
]
}
],
"tools": [
{
"google_search": {}
}
]
}'响应字段说明(重点)#
当请求触发联网检索时,candidates[*].groundingMetadata 常见字段包括:
webSearchQueries:模型实际发起的搜索词。groundingChunks:候选来源列表(含uri、title)。groundingSupports:回答片段与来源索引的映射,可用于做内联引用。
建议在前端展示来源链接,提升回答可解释性与用户信任。
文档理解#
Gemini 模型可以处理 PDF 格式的文档,并使用原生视觉功能来理解整个文档的上下文。这不仅仅是提取文本,还让 Gemini 能够:
- 分析和解读内容,包括文本、图片、图表、图表和表格,即使是长达 1,000 页的文档也能轻松应对。
- 以结构化输出格式提取信息。
- 根据文档中的视觉和文本元素总结内容并回答问题。
- 转写文档内容(例如转写为 HTML),同时保留布局和格式,以便在下游应用中使用。
您也可以通过相同的方式传递非 PDF 文档,但 Gemini 会将这些文档视为普通文本,从而消除图表或格式等上下文。
以内嵌方式传递 PDF 数据#
您可以在向 generateContent 发出的请求中内嵌传递 PDF 数据。此方法最适合处理较小的文档或临时处理,因为您无需在后续请求中引用该文件。
以下示例展示了如何从网址提取 PDF 并将其转换为字节以进行处理:
python#
from google import genai
from google.genai import types
import httpx
client = genai.Client(
api_key="<hyucloud_API_KEY>",
http_options=types.HttpOptions(
base_url="https://hk.hyucloud.com"
),
)
doc_url = "https://hk.hyucloud.com/gemini-pdf.pdf"
# Retrieve and encode the PDF byte
doc_data = httpx.get(doc_url).content
prompt = "Summarize this document"
response = client.models.generate_content(
model="gemini-3-flash-preview",
contents=[
types.Part.from_bytes(
data=doc_data,
mime_type='application/pdf',
),
prompt
]
)
print(response.text)curl#
DOC_URL="https://hk.hyucloud.com/gemini-pdf.pdf"
PROMPT="Summarize this document"
DISPLAY_NAME="base64_pdf"
# Download the PDF
wget -O "${DISPLAY_NAME}.pdf" "${DOC_URL}"
# Check for FreeBSD base64 and set flags accordingly
if [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
B64FLAGS="--input"
else
B64FLAGS="-w0"
fi
# Base64 encode the PDF
ENCODED_PDF=$(base64 $B64FLAGS "${DISPLAY_NAME}.pdf")
# Generate content using the base64 encoded PDF
curl "https://hk.hyucloud.com/v1beta/models/gemini-3-flash-preview:generateContent" \
-H "x-goog-api-key: $hyucloud_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[
{"inline_data": {"mime_type": "application/pdf", "data": "'"$ENCODED_PDF"'"}},
{"text": "'$PROMPT'"}
]
}]
}' 2> /dev/null > response.json
cat response.json
echo
jq ".candidates[].content.parts[].text" response.json
# Clean up the downloaded PDF
rm "${DISPLAY_NAME}.pdf"您还可以从本地文件读取 PDF 以进行处理:
from google import genai
from google.genai import types
import pathlib
client = genai.Client(
api_key="<hyucloud_API_KEY>",
http_options=types.HttpOptions(
base_url="https://hk.hyucloud.com"
),
)
# Retrieve and encode the PDF byte
filepath = pathlib.Path('file.pdf')
prompt = "Summarize this document"
response = client.models.generate_content(
model="gemini-3-flash-preview",
contents=[
types.Part.from_bytes(
data=filepath.read_bytes(),
mime_type='application/pdf',
),
prompt])
print(response.text)模型ID说明#
更多受支持的gemini模型,请参考【获取模型列表】
更多字段详情,见Gemini官方文档
Gemini 批量任务 API#
本文档描述通过 hyucloud 创建、查询与下载 Gemini(Vertex 风格)批量预测任务的接口,适用于大批量异步文本生成场景。
当前支持的模型 ID(创建任务时 model 字段仅支持以下三种):
| 模型 ID |
|---|
publishers/google/models/gemini-3.1-pro-preview |
publishers/google/models/gemini-3-flash-preview |
publishers/google/models/gemini-3-pro-image-preview |
认证说明#
所有接口支持以下任一方式携带 API Key(请勿在文档或代码中写真实 Key,使用环境变量或配置占位符):
Authorization: Bearer <your_api_key>x-goog-api-key: <your_api_key>
Base URL 示例:https://hk.hyucloud.com(海外可用 https://hk.hyucloud.com)。
流程概览#
1. 上传输入文件:将 JSONL 输入文件上传到平台存储(GCS),获得文件标识。 2. 创建批量任务:提交批量任务,指定模型、输入文件 URI、输出目录前缀。 3. 查询任务状态:轮询任务状态,直至完成或失败。 4. 下载结果文件:任务完成后,根据输出目录下载 predictions.jsonl。
1. 上传批量任务输入文件#
将批量任务的输入文件(JSONL)上传到平台,用于后续创建任务时作为输入源。
请求
- 方法 / 路径:
POST /v1/files - Content-Type:
multipart/form-data - 必填字段:
- purpose:固定为 batch:gcs(用于 Gemini 批量任务时必须填写)。 - file:输入文件(JSONL)。
响应
返回 OpenAI 风格文件对象,主要字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| id | string | 文件在存储中的对象名 |
| object | string | 固定为 "file" |
| bytes | int64 | 文件大小(字节) |
| created_at | int64 | 创建时间戳 |
| purpose | string | 即请求中的 batch:gcs |
与创建任务的约定:上传接口返回的 id 为文件在 GCS 中的对象名。创建批量任务时,inputConfig.gcsSource.uris 需填写完整 GCS URI,格式为:gs://<bucket>/<id>,其中 <bucket> 由平台为批量任务分配,以控制台或当前环境说明为准(例如 gs://gemini-batch-001/<id>)。不可使用数组,仅支持字符串形式的单个 URI。
示例
curl -X POST "https://hk.hyucloud.com/v1/files" \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-F "purpose=batch:gcs" \
-F "file=@your-input.jsonl"返回
{
"id": "1773236148797418904_gemini-3.1-pro-preview.jsonl",
"object": "file",
"bytes": 224,
"created_at": 1773236150,
"expires_at": 0,
"filename": "1773236148797418904_gemini-3.1-pro-preview.jsonl",
"purpose": "batch:gcs"
}
2. 创建批量任务#
请求
- 方法 / 路径:
POST /v1beta/batchPredictionJobs - Content-Type:
application/json
请求体(仅列与 Gemini 批量任务相关字段)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| displayName | string | 否 | 任务展示名称 |
| model | string | 是 | 模型资源名,如 publishers/google/models/gemini-3.1-pro-preview |
| inputConfig.instancesFormat | string | 是 | 输入格式,如 jsonl |
| inputConfig.gcsSource.uris | string | 是 | 输入文件 GCS URI(字符串),bucket 必须为gemini-batch-001,即 gs://gemini-batch-001/<上传返回的id> |
| outputConfig.predictionsFormat | string | 是 | 输出格式,如 jsonl |
| outputConfig.gcsDestination.outputUriPrefix | string | 是 | 输出目录前缀,必须指定 gs://gemini-batch-001/output |
响应
返回 Vertex 风格任务对象。成功创建时,响应中会包含 name 字段(可能为长资源名)。服务会将其中最后一段作为 batch_id / job_id 供后续查询与下载使用;客户端可按 name 或服务返回的简短 id 作为任务唯一标识。
示例
curl -X POST "https://hk.hyucloud.com/v1beta/batchPredictionJobs" \
-H "X-Goog-Api-Key: $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"displayName": "my-cloud-storage-batch-inference-job",
"model": "publishers/google/models/gemini-3-flash-preview",
"inputConfig": {
"instancesFormat": "jsonl",
"gcsSource": {
"uris": "gs://gemini-batch-001/<上传返回的id>"
}
},
"outputConfig": {
"predictionsFormat": "jsonl",
"gcsDestination": {
"outputUriPrefix": "gs://gemini-batch-001/output"
}
}
}'返回
{
"name": "projects/279887244472/locations/global/batchPredictionJobs/7737084104264384512",
"displayName": "my-cloud-storage-batch-inference-job",
"model": "publishers/google/models/gemini-3-flash-preview",
"inputConfig": {
"instancesFormat": "jsonl",
"gcsSource": {
"uris": [
"gs://gvideo.hyucloud.cn/batch_prompt_for_batch_gemini_predict.jsonl"
]
}
},
"outputConfig": {
"predictionsFormat": "jsonl",
"gcsDestination": {
"outputUriPrefix": "gs://gvideo.hyucloud.cn/test"
}
},
"outputInfo": {
"gcsOutputDirectory": "gs://gvideo.hyucloud.cn/test/prediction-model-2026-02-28T08:22:20.427871Z"
},
"state": "JOB_STATE_SUCCEEDED",
"completionStats": {
"successfulCount": "2"
},
"createTime": "2026-02-28T08:22:22.313780Z",
"startTime": "2026-02-28T08:23:12.172401Z",
"endTime": "2026-02-28T08:27:35.914509Z",
"updateTime": "2026-02-28T08:27:35.914509Z",
"encryptionSpec": {},
"hyucloudionId": "1"
}3. 查询批量任务状态#
请求
- 方法 / 路径:
GET /v1beta/batchPredictionJobs/:job_id - 路径参数:
job_id为创建任务后得到的任务 ID(即name中最后一段或接口返回的 id)。
响应
返回 Vertex 风格任务详情,主要字段包括:
{
"name": "projects/279887244472/locations/global/batchPredictionJobs/7737084104264384512",
"displayName": "my-cloud-storage-batch-inference-job",
"model": "publishers/google/models/gemini-3-flash-preview",
"inputConfig": {
"instancesFormat": "jsonl",
"gcsSource": {
"uris": [
"gs://gvideo.hyucloud.cn/batch_prompt_for_batch_gemini_predict.jsonl"
]
}
},
"outputConfig": {
"predictionsFormat": "jsonl",
"gcsDestination": {
"outputUriPrefix": "gs://gvideo.hyucloud.cn/test"
}
},
"outputInfo": {
"gcsOutputDirectory": "gs://gvideo.hyucloud.cn/test/prediction-model-2026-02-28T08:22:20.4172871Z"
},
"state": "JOB_STATE_SUCCEEDED",
"completionStats": {
"successfulCount": "2"
},
"createTime": "2026-02-28T08:22:22.313780Z",
"startTime": "2026-02-28T08:23:12.172401Z",
"endTime": "2026-02-28T08:27:35.914509Z",
"updateTime": "2026-02-28T08:27:35.914509Z",
"encryptionSpec": {},
"hyucloudionId": "1"
}| 字段 | 类型 | 说明 |
|---|---|---|
| name | string | 任务资源名或短 id |
| state | string | 任务状态,见下方状态码说明 |
| outputInfo.gcsOutputDirectory | string | 输出目录(用于下载时作为 file_id) |
| completionStats | object | 完成统计(如 successfulCount) |
任务状态码(state)
| state 取值 | 含义 |
|---|---|
JOB_STATE_PENDING | 已创建,等待调度 |
JOB_STATE_RUNNING | 执行中 |
JOB_STATE_SUCCEEDED | 成功完成 |
JOB_STATE_FAILED | 失败 |
JOB_STATE_CANCELLED | 已取消 |
JOB_STATE_PAUSED | 已暂停 |
任务完成后,使用 outputInfo.gcsOutputDirectory 作为下一步下载接口的 file_id(传入的是目录,不是单文件路径)。
示例(Gemini 格式认证)
curl -X GET "https://hk.hyucloud.com/v1beta/batchPredictionJobs/<job_id>" \
-H "x-goog-api-key: $hyucloud_API_KEY"4. 下载批量任务结果文件#
任务状态为完成后,可通过本接口下载该任务的结果文件(固定为 predictions.jsonl)。
请求
- 方法 / 路径:
GET /v1/batchPredictionJobs/content?file_id=<gcsOutputDirectory> - 查询参数:
- file_id(必填):任务输出目录的 GCS URI(即查询任务接口返回的 outputInfo.gcsOutputDirectory),例如 gs://gemini-batch-001/output/prediction-model-2026-03-11T06:15:44.636340Z。服务会在该目录下定位并返回 predictions.jsonl,因此传入的是目录,不要传单文件名。
响应
- 成功:返回
predictions.jsonl文件流(如Content-Type: application/octet-stream或application/jsonl)。 - 失败:返回相应 HTTP 状态码与错误信息。
示例
# 将 <output_directory> 替换为查询任务接口返回的 outputInfo.gcsOutputDirectory
curl -X GET "https://hk.hyucloud.com/v1/batchPredictionJobs/content?file_id=<output_directory>" \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-o predictions.jsonl小结#
| 步骤 | 接口 | 说明 |
|---|---|---|
| 1 | POST /v1/files | 上传输入文件,purpose 固定为 batch:gcs;返回的 id 用于拼成 gs:/// |
| 2 | POST /v1beta/batchPredictionJobs | 创建任务,uris 为字符串,填完整 GCS URI |
| 3 | GET /v1beta/batchPredictionJobs/:job_id | 查询状态,从响应中取 outputInfo.gcsOutputDirectory |
| 4 | GET /v1/batchPredictionJobs/content?file_id=<目录> | 下载结果,file_id 填输出目录,服务返回该目录下 predictions.jsonl |
Gemini 媒体分析功能和上传文件到GCS API#
本文档描述通过 hyucloud 网关调用 Gemini 的媒体分析功能和上传文件到GCS,输入可为图片、视频、音频。 Gemini官方文档
认证说明#
所有接口支持以下任一方式携带 API Key(示例中仅使用脱敏占位符):
Authorization: Bearer <your_api_key>x-goog-api-key: <your_api_key>
Base URL 示例:https://hk.hyucloud.com(海外可用 https://hk.hyucloud.com)。
流程概览#
1. 上传媒体文件到GCS平台:POST /v1/files 2. 从上传响应中获取文件地址(s3_url) 3. 调用 Gemini 媒体分析接口:POST /v1beta/models/{model}:generateContent 4. 从响应中提取文本分析结果
1. 上传媒体文件#
将图片、视频或音频文件上传到平台,获取可在后续请求中引用的 s3_url。
请求
- 方法 / 路径:
POST /v1/files - Content-Type:
multipart/form-data - 表单字段:
- file:媒体文件(二进制) - purpose:必选;(batch:gcs)
示例
curl https://hk.hyucloud.com/v1/files \
-H "Authorization: Bearer <$hyucloud_API_KEY>" \
-F purpose="batch:gcs" \
-F "file=@gemini-3.1-pro-preview.jpg" 成功返回示例
{
"id": "1773236148797418904_demo-image.jpg",
"object": "file",
"bytes": 224123,
"created_at": 1773236150,
"expires_at": 0,
"filename": "1773236148797418904_demo-image.jpg",
"purpose": "",
"s3_url": "https://example-file-host/hyucloud/1773236148797418904_demo-image.jpg"
}后续媒体分析请求可使用 s3_url 作为 file_data.file_uri。
异常返回示例
{
"error": {
"message": "this is error meesage",
"type": "internal_error",
"param": "e4b4cf3f-24a0-4620-b53e-fee919c9d914",
"code": "model_server_error"
}
} 2. 调用 Gemini 媒体分析接口#
请求
- 方法 / 路径:
POST /v1beta/models/{model}:generateContent - Content-Type:
application/json
contents[].parts[] 常见字段:
| 字段 | 类型 | 说明 |
|---|---|---|
text | string | 问题或指令文本 |
file_data.mime_type | string | 媒体 MIME,例如 image/jpeg、video/mp4、audio/mpeg |
file_data.file_uri | string | 媒体地址,建议使用上传接口返回的 s3_url |
3. 示例:文本分析#
IMAGE_URL="https://example-file-host/hyucloud/1773236148797418904_demo-image.jpg"
curl -X POST "https://hk.hyucloud.com/v1beta/models/gemini-3-flash-preview:generateContent" \
-H "x-goog-api-key: $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{
"parts": [
{
"fileData": {
"fileUri": "https://storage.googleapis.com/gemini-batch-001/1774000031757082682_gemini-3-flash-preview.jsonl?Expires=1774604833&GoogleAccessId=bucket%40stacyzhang0708-1218-01.iam.gserviceaccount.com&Signature=c4QsHdf89aWeTNX0JzVqT%2BL4VtM2%2Bx7PEpjjNSVU%2FBNjrvJB2kKbpbIWmKvexQvOA4BO9no0KbZxazCvAQbNttK4Ecng7Za4K4FslNLBJ7fucapF7xdE0b%2BSO690ph%2BXWX5erZJixmzV%2BhiGZay0mBdYAxOfVwZb%2Bc5RA%2FQzPqBsdbdKb1%2FzzD4AcwCHu0w0So54JMQt3qcDQVi56NZaOZA4aC9SLZGcVdYakMF75XKn9Z99e2rXgFtEo2P7%2BuRBY8hD%2Bv%2B6dHC9k6fa9nABZEw38wi3Ozfsf7eQ0PmTmrQ2ue6n97zMjbg6rSn2RmKFWc4iWBl48ikkyFmA1GhKsA%3D%3D",
"mimeType": "text/plain"
}
},
{
"text": "What is in the text?"
}
],
"role": "user"
}
]
}
'4. 示例:视频分析#
VIDEO_URL="https://example-file-host/hyucloud/1773236148797418904_demo-video.mp4"
curl -X POST "https://hk.hyucloud.com/v1beta/models/gemini-3-flash-preview:generateContent" \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{
"role": "user",
"parts": [
{
"file_data": {
"mime_type": "video/mp4",
"file_uri": "'"$VIDEO_URL"'"
}
},
{
"text": "请总结这个视频的主要事件,并按时间顺序列出关键片段。"
}
]
}
]
}'5. 示例:音频分析#
AUDIO_URL="https://example-file-host/hyucloud/1773236148797418904_demo-audio.mp3"
curl -X POST "https://hk.hyucloud.com/v1beta/models/gemini-3-flash-preview:generateContent" \
-H "x-goog-api-key: $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{
"role": "user",
"parts": [
{
"file_data": {
"mime_type": "audio/mpeg",
"file_uri": "'"$AUDIO_URL"'"
}
},
{
"text": "请转写这段音频,并总结其核心观点。"
}
]
}
]
}'6. SDK Python#
以下示例使用 Python 完成:
1. 上传媒体文件到 /v1/files 2. 使用返回的 s3_url 调用 /v1beta/models/{model}:generateContent
from google import genai
from google.genai.types import HttpOptions,Part
client = genai.Client(
http_options=HttpOptions(
api_version="v1beta",
base_url="https://hk.hyucloud.com",
),
api_key='<$hyucloud_API_KEY>',
)
prompt = "Describe the key events in this video, providing both audio and visual details. Include timestamps for salient moments."
response = client.models.generate_content(
model="gemini-3-flash-preview",
contents=[
Part.from_uri(
file_uri="https://storage.googleapis.com/gemini-batch-001/1774000031757082682_gemini-3-flash-preview.jsonl?Expires=1774604833&GoogleAccessId=bucket%40stacyzhang0708-1218-01.iam.gserviceaccount.com&Signature=c4QsHdf89aWeTNX0JzVqT%2BL4VtM2%2Bx7PEpjjNSVU%2FBNjrvJB2kKbpbIWmKvexQvOA4BO9no0KbZxazCvAQbNttK4Ecng7Za4K4FslNLBJ7fucapF7xdE0b%2BSO690ph%2BXWX5erZJixmzV%2BhiGZay0mBdYAxOfVwZb%2Bc5RA%2FQzPqBsdbdKb1%2FzzD4AcwCHu0w0So54JMQt3qcDQVi56NZaOZA4aC9SLZGcVdYakMF75XKn9Z99e2rXgFtEo2P7%2BuRBY8hD%2Bv%2B6dHC9k6fa9nABZEw38wi3Ozfsf7eQ0PmTmrQ2ue6n97zMjbg6rSn2RmKFWc4iWBl48ikkyFmA1GhKsA%3D%3D",
mime_type="text/plain",
),
"What is in the text?",
],
)
print(response.text)7. 常见错误与排查#
400 INVALID_ARGUMENT:mime_type与实际文件不匹配,或请求体字段拼写错误400 FAILED_PRECONDITION:媒体地址不可访问,或文件尚未可读401 UNAUTHENTICATED:API Key 无效、缺失或格式错误403 PERMISSION_DENIED:当前 Key 无权限调用对应模型429 RESOURCE_EXHAUSTED:请求过快触发限流,请重试并加退避
建议优先检查:
1. 是否使用了脱敏 Key 占位符并在运行时注入真实环境变量 2. file_data.file_uri 是否可被服务端访问 3. mime_type 是否与媒体格式一致 4. model 是否为可用的 Gemini 模型 ID
Embedding 向量嵌入#
获取给定输入的向量表示,可以轻松被机器学习模型和算法使用。
什么是嵌入向量?#
嵌入向量是浮点数的向量(列表),用于衡量文本字符串的相关性。两个向量之间的距离衡量它们的相关性:小距离表示高相关性,大距离表示低相关性。
嵌入通常用于:
- 搜索 - 结果按与查询字符串的相关性排序
- 聚类 - 文本字符串按相似性分组
- 推荐 - 推荐具有相关文本字符串的项目
- 异常检测 - 识别相关性较低的异常值
- 分类 - 文本字符串按其最相似的标签分类
快速开始#
安装 SDK#
pip install openai基础示例#
请确保将
$hyucloud_API_KEY替换为您自己的 API Key,获取 API Key。
Python#
from openai import OpenAI
client = OpenAI(
api_key="YOUR_hyucloud_API_KEY",
base_url="https://hk.hyucloud.com/v1"
)
response = client.embeddings.create(
input="Your text string goes here",
model="text-embedding-3-large"
)
print(response.data[0].embedding)curl#
curl https://hk.hyucloud.com/v1/embeddings \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": "Your text string goes here",
"model": "text-embedding-3-large"
}'响应包含嵌入向量(浮点数列表)以及一些附加元数据。您可以提取嵌入向量,将其保存在向量数据库中,并用于许多不同的用例。
API 参考#
POST https://hk.hyucloud.com/v1/embeddings
请求参数#
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string 或 array | 是 | 要嵌入的输入文本,编码为字符串或 token 数组。要在单个请求中嵌入多个输入,请传递字符串数组。输入不得超过 8192 个 token,不能为空字符串。单个请求中所有输入的 token 总和最多为 300,000 个。 |
| model | string | 是 | 要使用的模型 ID,如 text-embedding-3-large。 |
| dimensions | integer | 否 | 生成的输出嵌入向量应具有的维度数。仅在 text-embedding-3 及更高版本的模型中支持。 |
| encoding_format | string | 否 | 返回嵌入向量的格式。可以是 float 或 base64。默认值:float |
响应示例#
{
"object": "list",
"data": [
{
"object": "embedding",
"embedding": [0.0023064255, -0.009327292, ..., -0.0028842222],
"index": 0
}
],
"model": "text-embedding-3-large",
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}响应字段说明#
| 字段 | 类型 | 说明 |
|---|---|---|
| embedding | array | 嵌入向量,是一个浮点数列表。向量的长度取决于模型。 |
| index | integer | 嵌入在嵌入列表中的索引。 |
| object | string | 对象类型,始终为 "embedding"。 |
嵌入模型#
| 模型 | 默认维度 | 最大输入 | MTEB 评估性能 |
|---|---|---|---|
| text-embedding-3-large | 3072 | 8192 | 64.6% |
| text-embedding-ada-002 | 1536 | 8192 | 61.0% |
降低嵌入维度#
使用较大的嵌入向量通常成本更高,消耗更多的计算、内存和存储。您可以通过传入 dimensions 参数来缩短嵌入维度,而不会丢失嵌入的概念表示属性。
例如,text-embedding-3-large 嵌入可以缩短到 256 维,同时仍然优于 1536 维的 text-embedding-ada-002。
Python#
from openai import OpenAI
client = OpenAI(
api_key="YOUR_hyucloud_API_KEY",
base_url="https://hk.hyucloud.com/v1"
)
response = client.embeddings.create(
model="text-embedding-3-large",
input="Testing 123",
dimensions=256 # 指定输出维度
)
print(response.data[0].embedding)curl#
curl https://hk.hyucloud.com/v1/embeddings \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": "Testing 123",
"model": "text-embedding-3-large",
"dimensions": 256
}'手动归一化维度#
如果需要手动截断并归一化嵌入向量:
from openai import OpenAI
import numpy as np
client = OpenAI(
api_key="YOUR_hyucloud_API_KEY",
base_url="https://hk.hyucloud.com/v1"
)
def normalize_l2(x):
x = np.array(x)
if x.ndim == 1:
norm = np.linalg.norm(x)
if norm == 0:
return x
return x / norm
else:
norm = np.linalg.norm(x, 2, axis=1, keepdims=True)
return np.where(norm == 0, x, x / norm)
response = client.embeddings.create(
model="text-embedding-3-large",
input="Testing 123",
encoding_format="float"
)
cut_dim = response.data[0].embedding[:256]
norm_dim = normalize_l2(cut_dim)
print(norm_dim)使用场景#
1. 文本搜索#
使用查询的嵌入向量和每个文档之间的余弦相似度,返回得分最高的文档。
from openai import OpenAI
import numpy as np
client = OpenAI(
api_key="YOUR_hyucloud_API_KEY",
base_url="https://hk.hyucloud.com/v1"
)
def cosine_similarity(a, b):
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
def get_embedding(text, model="text-embedding-3-large"):
response = client.embeddings.create(input=text, model=model)
return response.data[0].embedding
def search_documents(documents, query, n=3):
query_embedding = get_embedding(query)
results = []
for doc in documents:
doc_embedding = get_embedding(doc)
similarity = cosine_similarity(query_embedding, doc_embedding)
results.append((doc, similarity))
results.sort(key=lambda x: x[1], reverse=True)
return results[:n]
# 示例
documents = ["Python 是一种编程语言", "机器学习很有趣", "今天天气很好"]
results = search_documents(documents, "编程")
print(results)2. 基于嵌入的问答#
将相关文档放入模型的上下文窗口中进行问答。
from openai import OpenAI
client = OpenAI(
api_key="YOUR_hyucloud_API_KEY",
base_url="https://hk.hyucloud.com/v1"
)
# 假设已通过嵌入搜索找到相关文章
relevant_article = "2022年冬季奥运会冰壶金牌由..."
query = f"""使用以下文章回答问题。如果找不到答案,请写"我不知道。"
文章:
\"\"\"
{relevant_article}
\"\"\"
问题:哪些运动员在 2022 年冬季奥运会上获得了冰壶金牌?
"""
response = client.chat.completions.create(
messages=[
{'role': 'system', 'content': '你回答有关 2022 年冬季奥运会的问题。'},
{'role': 'user', 'content': query},
],
model="gpt-4o",
temperature=0,
)
print(response.choices[0].message.content)3. 聚类分析#
使用嵌入向量对文本进行聚类分组。
import numpy as np
from sklearn.cluster import KMeans
# 假设 embeddings 是已获取的嵌入向量列表
embeddings = [...] # 从 API 获取的嵌入向量
matrix = np.vstack(embeddings)
n_clusters = 4
kmeans = KMeans(
n_clusters=n_clusters,
init='k-means++',
random_state=42
)
kmeans.fit(matrix)
# 每个文本的聚类标签
labels = kmeans.labels_4. 推荐系统#
基于嵌入向量的相似度进行推荐。
from openai import OpenAI
import numpy as np
client = OpenAI(
api_key="YOUR_hyucloud_API_KEY",
base_url="https://hk.hyucloud.com/v1"
)
def get_embedding(text, model="text-embedding-3-large"):
response = client.embeddings.create(input=text, model=model)
return response.data[0].embedding
def recommend_similar(items, source_index, n=3):
"""返回与源项目最相似的 n 个项目"""
embeddings = [get_embedding(item) for item in items]
source_embedding = embeddings[source_index]
similarities = []
for i, emb in enumerate(embeddings):
if i != source_index:
sim = np.dot(source_embedding, emb)
similarities.append((i, items[i], sim))
similarities.sort(key=lambda x: x[2], reverse=True)
return similarities[:n]5. 零样本分类#
无需训练数据,使用嵌入进行分类。
from openai import OpenAI
import numpy as np
client = OpenAI(
api_key="YOUR_hyucloud_API_KEY",
base_url="https://hk.hyucloud.com/v1"
)
def get_embedding(text, model="text-embedding-3-large"):
response = client.embeddings.create(input=text, model=model)
return response.data[0].embedding
def cosine_similarity(a, b):
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
def classify_text(text, labels):
text_embedding = get_embedding(text)
label_embeddings = [get_embedding(label) for label in labels]
similarities = [cosine_similarity(text_embedding, le) for le in label_embeddings]
best_index = np.argmax(similarities)
return labels[best_index]
# 示例
labels = ["positive", "negative", "neutral"]
result = classify_text("这个产品太棒了!", labels)
print(result) # 输出: positive常见问题#
如何计算字符串的 token 数量?#
使用 OpenAI 的分词器 tiktoken:
import tiktoken
def num_tokens_from_string(string: str, encoding_name: str = "cl100k_base") -> int:
"""返回文本字符串中的 token 数量。"""
encoding = tiktoken.get_encoding(encoding_name)
num_tokens = len(encoding.encode(string))
return num_tokens
print(num_tokens_from_string("tiktoken is great!")) # 输出: 4对于第三代嵌入模型(如
text-embedding-3-large),使用cl100k_base编码。
如何快速检索 K 个最近的嵌入向量?#
为了快速搜索大量向量,建议您使用向量数据库,如:
- AI 数据库(参考文档:AI数据库)
- pgvector (参考文档:PostgreSQL)
应该使用哪个距离函数?#
推荐使用余弦相似度。OpenAI 嵌入已归一化为长度 1,这意味着:
- 余弦相似度可以仅使用点积计算,速度更快
- 余弦相似度和欧几里得距离将产生相同的排名
Gemini-Embedding-2 向量嵌入#
Gemini-Embedding-2 是 Google 推出的多模态嵌入模型,支持文本、图片、视频、音频和文档等多种内容类型的向量嵌入。
什么是 Gemini-Embedding-2#
Gemini-Embedding-2 是一个多模态嵌入模型,可以将文本、图片、视频、音频和 PDF 文档转换为高维向量表示。这些嵌入向量可用于:
- 多模态搜索 - 支持跨文本、图片、视频、音频的语义搜索
- 内容推荐 - 基于多模态内容的相似度推荐
- 聚类分析 - 对混合类型的内容进行分组
- 异常检测 - 识别不相关或异常的内容
快速开始#
请求示例#
curl --location --globoff 'https://hk.hyucloud.com/v1beta/models/gemini-embedding-2:embedContent' \
--header 'Authorization: Bearer YOUR_hyucloud_API_KEY' \
--header 'Content-Type: application/json' \
-d '{
"content": {
"parts": [
{
"text": "Whats this"
},
{
"text": "Whats this like"
},
{
"file_data": {
"mime_type": "video/mp4",
"file_uri": "https://example.com/video.mp4"
}
},
{
"file_data": {
"mime_type": "image/png",
"file_uri": "https://example.com/image.png"
}
},
{
"file_data": {
"mime_type": "audio/wav",
"file_uri": "https://example.com/audio.wav"
}
},
{
"file_data": {
"mime_type": "application/pdf",
"file_uri": "https://example.com/document.pdf"
}
}
]
}
}'响应示例#
{
"embedding": {
"values": [
0.0015015427,
0.014678672,
-0.018105509,
-0.013457718,
0.015227248,
0.003112343
]
},
"usageMetadata": {
"promptTokenCount": 2517,
"totalTokenCount": 2517,
"promptTokensDetails": [
{
"modality": "VIDEO",
"tokenCount": 330
},
{
"modality": "TEXT",
"tokenCount": 5
},
{
"modality": "DOCUMENT",
"tokenCount": 1548
},
{
"modality": "IMAGE",
"tokenCount": 258
},
{
"modality": "AUDIO",
"tokenCount": 376
}
]
}
}API 参考#
POST https://hk.hyucloud.com/v1beta/models/gemini-embedding-2:embedContent
请求头#
| 参数 | 说明 |
|---|---|
| Authorization | Bearer YOUR_hyucloud_API_KEY |
| Content-Type | application/json |
请求体参数#
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| content | object | 是 | 包含要嵌入的内容 |
| content.parts | array | 是 | 内容部件数组,支持多种模态 |
| outputDimensionality | integer | 否 | 输出嵌入向量的维度,可选值范围 128 至 3072,默认为 3072 |
输出维度配置#
Gemini-Embedding-2 支持自定义输出维度,可根据场景需求调整:
| 模型 | 默认维度(最高) | 支持的维度(范围) | 建议的较低维度 |
|---|---|---|---|
| gemini-embedding-2 | 3072 | 128 至 3072 | 128、768 或 1536 |
使用建议:
- 使用较低维度(如 768 或 1536)可减少存储空间和计算成本
- 较低维度可能会略微降低语义搜索的精度,但在大多数场景下差异不明显
- 如需最高精度,请使用默认的 3072 维度
content.parts 部件类型#
文本部件#
{
"text": "要嵌入的文本内容"
}文件部件#
{
"file_data": {
"mime_type": "video/mp4",
"file_uri": "https://example.com/video.mp4"
}
}支持的 MIME 类型:
| 类型 | MIME Type |
|---|---|
| 视频 | video/mp4, video/mpeg, video/mov, video/avi 等 |
| 图片 | image/png, image/jpeg, image/webp, image/gif 等 |
| 音频 | audio/wav, audio/mp3, audio/mpeg, audio/ogg 等 |
| 文档 | application/pdf |
响应字段说明#
| 字段 | 类型 | 说明 |
|---|---|---|
| embedding.values | array | 嵌入向量,浮点数列表 |
| usageMetadata.promptTokenCount | integer | 输入内容的总 token 数 |
| usageMetadata.totalTokenCount | integer | 总 token 数 |
| usageMetadata.promptTokensDetails | array | 各模态的 token 使用详情 |
| promptTokensDetails.modality | string | 模态类型:TEXT、IMAGE、VIDEO、AUDIO、DOCUMENT |
| promptTokensDetails.tokenCount | integer | 该模态的 token 数量 |
使用场景#
1. 多模态语义搜索#
结合文本、图片、视频等多种内容进行语义搜索:
curl --location --globoff 'https://hk.hyucloud.com/v1beta/models/gemini-embedding-2:embedContent' \
--header 'Authorization: Bearer YOUR_hyucloud_API_KEY' \
--header 'Content-Type: application/json' \
-d '{
"content": {
"parts": [
{
"text": "查找关于机器学习的视频教程"
},
{
"file_data": {
"mime_type": "image/png",
"file_uri": "https://example.com/ml-diagram.png"
}
}
]
}
}'2. 视频内容分析#
提取视频内容的嵌入向量用于分类或推荐:
curl --location --globoff 'https://hk.hyucloud.com/v1beta/models/gemini-embedding-2:embedContent' \
--header 'Authorization: Bearer YOUR_hyucloud_API_KEY' \
--header 'Content-Type: application/json' \
-d '{
"content": {
"parts": [
{
"file_data": {
"mime_type": "video/mp4",
"file_uri": "https://example.com/tutorial.mp4"
}
}
]
}
}'3. 文档理解#
将 PDF 文档转换为嵌入向量:
curl --location --globoff 'https://hk.hyucloud.com/v1beta/models/gemini-embedding-2:embedContent' \
--header 'Authorization: Bearer YOUR_hyucloud_API_KEY' \
--header 'Content-Type: application/json' \
-d '{
"content": {
"parts": [
{
"text": "总结这份报告的关键点"
},
{
"file_data": {
"mime_type": "application/pdf",
"file_uri": "https://example.com/report.pdf"
}
}
]
}
}'4. 音频内容嵌入#
处理音频文件获取其语义表示:
curl --location --globoff 'https://hk.hyucloud.com/v1beta/models/gemini-embedding-2:embedContent' \
--header 'Authorization: Bearer YOUR_hyucloud_API_KEY' \
--header 'Content-Type: application/json' \
-d '{
"content": {
"parts": [
{
"file_data": {
"mime_type": "audio/wav",
"file_uri": "https://example.com/speech.wav"
}
}
]
}
}'5. 指定输出维度#
使用 outputDimensionality 参数指定输出向量的维度(如 768):
curl --location --globoff 'https://hk.hyucloud.com/v1beta/models/gemini-embedding-2:embedContent' \
--header 'Authorization: Bearer YOUR_hyucloud_API_KEY' \
--header 'Content-Type: application/json' \
-d '{
"outputDimensionality": 768,
"content": {
"parts": [
{
"text": "Whats this"
},
{
"file_data": {
"mime_type": "video/mp4",
"file_uri": "gs://cloud-samples-data/generative-ai/video/pixel8.mp4"
}
}
]
}
}'技术规范#
图片#
| 限制项 | 规格 |
|---|---|
| 每个提示的图片数量上限 | 6 |
| 内嵌数据或通过控制台直接上传的每个文件的文件大小上限 | 无限制 |
| Google Cloud Storage 中每个文件的文件大小上限 | 无限制 |
| 每个提示的输出图片数量上限 | 不适用 |
| 支持的 MIME 类型 | image/png、image/jpeg、image/webp、image/bmp、image/heic、image/heif、image/avif |
文档#
| 限制项 | 规格 |
|---|---|
| 每个提示的文件数量上限 | 1 |
| 每个文件的页数上限 | 6 |
| 每个文件的文件大小上限 | 不适用 |
| 支持的 MIME 类型 | application/pdf |
视频#
| 限制项 | 规格 |
|---|---|
| 视频时长上限(包含音频) | 80 秒 |
| 视频时长上限(不含音频) | 120 秒 |
| 每个提示的视频数量上限 | 1 |
| 支持的 MIME 类型 | video/mpeg、video/mp4 |
音频#
| 限制项 | 规格 |
|---|---|
| 每个提示的音频长度上限 | 180 秒 |
| 每个提示的音频文件数量上限 | 1 |
| 支持的 MIME 类型 | audio/mp3、audio/wav |
注意事项#
1. 文件 URI:文件需要通过可公开访问的 URL 提供,或者使用 Gemini 的文件上传 API 获取 URI 2. 文件大小限制:不同模态的文件有不同的大小限制,请参考上方技术规范 3. Token 计算:多模态内容的 token 计算方式不同,具体使用量请参考响应中的 usageMetadata 4. 嵌入维度:Gemini-Embedding-2 支持通过 outputDimensionality 参数自定义输出维度(128 至 3072),默认为 3072。使用较低维度可减少存储成本,具体请参考上方"输出维度配置"章节
与标准 Embeddings API 的区别#
| 特性 | Gemini-Embedding-2 | 标准 Embeddings API |
|---|---|---|
| 支持的模态 | 文本、图片、视频、音频、PDF | 仅文本 |
| API 端点 | /v1beta/models/gemini-embedding-2:embedContent | /v1/embeddings |
| 请求格式 | Gemini 原生格式 | OpenAI 兼容格式 |
| 多模态混合 | 支持单请求多模态 | 不支持 |
相关文档#
- Embeddings 向量嵌入 - 标准文本嵌入 API
- Gemini 快速开始 - Gemini 模型使用指南
- Gemini 媒体分析 - 媒体文件处理说明
Rerank 文本排序#
Rerank(重排序)能提高检索的准确性和相关性,本文介绍Rerank接口的使用。
接口地址#
https://hk.hyucloud.com/v1/rerank
请求参数#
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型名称。此处为:bge-reranker-v2-m3 |
| query | string | 是 | 查询的内容。 |
| documents | array[string] | 是 | 待排序的候选文档列表。每个元素是一个字符串。 |
| top_n | int | 否 | 返回排序后的top_n个文档。默认返回全部文档。如果top_n值大于文档总数,将返回全部文档。 |
注意事项#
1. 文本长度限制:一个 {query+ document} 的最大长度限制为 8192
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl -X POST https://hk.hyucloud.com/v1/rerank \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bge-reranker-v2-m3",
"query": "what is panda?",
"documents": [
"hi",
"The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China."
],
"top_n": 2
}'响应参数#
| 参数 | 类型 | 说明 |
|---|---|---|
| results | array | 排序结果,按 relevance_score 从高到低排列。 |
| document | object | 文档原文对象。 |
| document.text | string | 文档原文 |
| index | int | 表示对应于输入 documents 列表中的原始索引位置。 |
| relevance_score | double | 文档与查询的语义相关性得分,取值范围为 0.0 到 1.0。分数越高,相关性越强。 |
响应示例#
{
"model": "BAAI/bge-reranker-v2-m3",
"usage": {
"total_tokens": 53
},
"results": [{
"index": 1,
"document": {
"text": "The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.",
"multi_modal": null
},
"relevance_score": 0.9948425889015198
}, {
"index": 0,
"document": {
"text": "hi",
"multi_modal": null
},
"relevance_score": 0.0002801174996420741
}]
}DeepSeek-OCR 模型#
DeepSeek-OCR 是一款先进的 OCR 模型,能够识别图片中的文字并将其转换为指定的文本格式。
请求示例#
您可以通过向 https://hk.hyucloud.com/v1/chat/completions 端点发送请求来使用 DeepSeek-OCR 模型。
说明:
DeepSeek-OCR 支持
max_tokens参数最大设置为 8192。当前该模型免费开放使用,无需付费。注意: 该模型输入仅支持 base64 编码的图片(即 "data:image/..." 格式),不支持直接通过 image_url 远程图片地址。如果你的图片在远程地址,可以通过如下命令一键获取 base64 字符串:
```bash
curl -s https://hk.hyucloud.com/hyucloud-maxcot.jpg | base64 | tr -d '\n'
```
非流式请求#
cURL#
curl https://hk.hyucloud.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $YOUR_API_KEY" \
-d '{
"model": "deepseek-ai/DeepSeek-OCR",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "convert to markdown"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,'$(curl -s https://hk.hyucloud.com/hyucloud-maxcot.jpg | base64 | tr -d '\n')'"
}
}
]
}
]
}'Python#
import base64
import os
from openai import OpenAI
# Function to encode the image
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode('utf-8')
# Path to your image
image_path = os.path.expanduser("hyucloud.png")
# Getting the base64 string
base64_image = encode_image(image_path)
client = OpenAI(
api_key=os.getenv("hyucloud_API_KEY", "<YOUR_hyucloud_API_KEY>"),
base_url="https://hk.hyucloud.com/v1/",
)
response = client.chat.completions.create(
model="deepseek-ai/DeepSeek-OCR",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "convert to markdown"
},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{base64_image}"
}
}
]
}
]
)
print(response.choices[0].message.content)流式请求#
通过将 stream 参数设置为 true,您可以实现流式响应。
cURL#
curl https://hk.hyucloud.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $YOUR_API_KEY" \
-d '{
"model": "deepseek-ai/DeepSeek-OCR",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "convert to markdown"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,'$(curl -s https://hk.hyucloud.com/hyucloud-maxcot.jpg | base64 | tr -d '\n')'"
}
}
]
}
],
"stream": true
}'Python#
import base64
import os
from openai import OpenAI
# Function to encode the image
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode('utf-8')
# Path to your image
image_path = os.path.expanduser("hyucloud.png")
# Getting the base64 string
base64_image = encode_image(image_path)
client = OpenAI(
api_key=os.getenv("hyucloud_API_KEY", "<YOUR_hyucloud_API_KEY>"),
base_url="https://hk.hyucloud.com/v1/",
)
stream = client.chat.completions.create(
model="deepseek-ai/DeepSeek-OCR",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "convert to markdown"
},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{base64_image}"
}
}
]
}
],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")DeepSeek 模型开启关闭思考说明#
概念介绍#
思考参数(thinking)用于控制模型在响应前是否显示思考过程。该功能适用于需要观察模型推理过程的场景。
DeepSeek V3.1 模型开启思考说明#
参数说明#
thinking 参数是一个结构,用于配置模型的思考过程。
对象结构:
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
thinking.type | String | 是 | 用于控制是否显示思考过程。 |
type 字段可选值:
enabled: 强制开启思考过程。disabled: 强制关闭思考过程。
json示例
{
"model": "deepseek-ai/DeepSeek-V3.1-Terminus",
...
"thinking": {
"type": "enabled"
}
}模型支持情况见下表
- deepseek-ai/DeepSeek-V3.1
- deepseek-ai/DeepSeek-V3.1-Terminus
API 接口示例#
import json
import requests
# 配置API密钥
api_key = "******" # 替换为你的 APIKEY
url = "https://hk.hyucloud.com/v1/chat/completions"
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
data = {
"model": "deepseek-ai/DeepSeek-V3.1-Terminus", # 指定模型
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "9.9和9.11哪个大", # 用户提问
}
],
}
],
"thinking": {"type": "enabled"}, # 开启思考功能,可选 enabled disabled auto
}
try:
response = requests.post(url, headers=headers, json=data)
response.raise_for_status()
print("请求成功!")
print(json.dumps(response.json(), indent=2, ensure_ascii=False))
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
DeepSeek V3.2 模型开启思考说明#
参数说明#
chat_template_kwargs 参数是一个结构,用于配置模型的思考过程。
对象结构:
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
chat_template_kwargs.thinking | Boolean | 是 | 用于控制是否显示思考过程。 |
chat_template_kwargs 字段可选值:
true: 强制开启思考过程。false: 强制关闭思考过程。
json示例
{
"model": "deepseek-ai/DeepSeek-V3.2",
...
"chat_template_kwargs": {
"thinking": true
}
}模型支持情况见下表
- deepseek-ai/DeepSeek-V3.2
API 接口示例#
import json
import requests
# 配置API密钥
api_key = "******" # 替换为你的 APIKEY
url = "https://hk.hyucloud.com/v1/chat/completions"
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
data = {
"model": "deepseek-ai/DeepSeek-V3.2", # 指定模型
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "9.9和9.11哪个大", # 用户提问
}
],
}
],
"chat_template_kwargs": {
"thinking": true
}
}
try:
response = requests.post(url, headers=headers, json=data)
response.raise_for_status()
print("请求成功!")
print(json.dumps(response.json(), indent=2, ensure_ascii=False))
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
Doubao豆包模型思考功能参数说明#
概念介绍#
思考功能(thinking)是豆包模型的一个特性参数,用于控制模型在响应前是否显示思考过程。该功能适用于需要观察模型推理过程的场景。
参数说明#
thinking 参数是一个结构,用于配置模型的思考过程。
对象结构:
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
thinking.type | String | 是 | 用于控制是否显示思考过程。 |
type 字段可选值:
enabled: 强制开启思考过程。disabled: 强制关闭思考过程。auto: 由模型自动决定是否显示思考过程。
json示例
{
"model": "ByteDance/doubao-seed-1.6",
...
"thinking": {
"type": "enabled"
}
}模型支持情况见下表
- ByteDance/doubao-seed-1.6
- ByteDance/doubao-1.5-thinking-vision-pro
API 接口示例#
import json
import requests
# 配置API密钥
api_key = "******" # 替换为你的 APIKEY
url = "https://hk.hyucloud.com/v1/chat/completions"
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
data = {
"model": "ByteDance/doubao-seed-1.6", # 指定模型
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "9.9和9.11哪个大", # 用户提问
}
],
}
],
"thinking": {"type": "enabled"}, # 开启思考功能,可选 enabled disabled auto
}
try:
response = requests.post(url, headers=headers, json=data)
response.raise_for_status()
print("请求成功!")
print(json.dumps(response.json(), indent=2, ensure_ascii=False))
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
注意事项#
1. 思考功能会增加少量响应时间 2. 对于简单问题建议使用disabled或auto模式 3. 复杂推理问题使用enabled模式可获得更好的可解释性
Qwen-MT翻译模型参数说明#
概念介绍#
Qwen-MT 是通义千问系列的翻译专用模型,针对多语言翻译场景进行了优化。该模型支持多种语言之间的双向翻译,在保持翻译质量的同时提供高效的推理性能。
参数说明#
基础参数#
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
model | String | 是 | 模型名称,如 qwen-mt-flash |
messages | Array | 是 | 对话消息列表 |
translation_options | Object | 否 | 翻译配置选项 |
translation_options 参数#
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
source_lang | String | 否 | 源语言,如 "Chinese"、"auto" |
target_lang | String | 否 | 目标语言,如 "English"、"Japanese" |
支持的语言#
| 语言 | 英文名 | 代码 |
|---|---|---|
| 自动检测 | Auto | auto |
| 英语 | English | en |
| 简体中文 | Chinese | zh |
| 繁体中文 | Traditional Chinese | zh_tw |
| 俄语 | Russian | ru |
| 日语 | Japanese | ja |
| 韩语 | Korean | ko |
| 西班牙语 | Spanish | es |
| 法语 | French | fr |
| 葡萄牙语 | Portuguese | pt |
| 德语 | German | de |
| 意大利语 | Italian | it |
| 泰语 | Thai | th |
| 越南语 | Vietnamese | vi |
| 印度尼西亚语 | Indonesian | id |
| 马来语 | Malay | ms |
| 阿拉伯语 | Arabic | ar |
| 印地语 | Hindi | hi |
| 希伯来语 | Hebrew | he |
| 缅甸语 | Burmese | my |
| 泰米尔语 | Tamil | ta |
| 乌尔都语 | Urdu | ur |
| 孟加拉语 | Bengali | bn |
| 波兰语 | Polish | pl |
| 荷兰语 | Dutch | nl |
| 罗马尼亚语 | Romanian | ro |
| 土耳其语 | Turkish | tr |
| 高棉语 | Khmer | km |
| 老挝语 | Lao | lo |
| 粤语 | Cantonese | yue |
| 捷克语 | Czech | cs |
| 希腊语 | Greek | el |
| 瑞典语 | Swedish | sv |
| 匈牙利语 | Hungarian | hu |
| 丹麦语 | Danish | da |
| 芬兰语 | Finnish | fi |
| 乌克兰语 | Ukrainian | uk |
| 保加利亚语 | Bulgarian | bg |
| 塞尔维亚语 | Serbian | sr |
| 泰卢固语 | Telugu | te |
| 南非荷兰语 | Afrikaans | af |
| 亚美尼亚语 | Armenian | hy |
| 阿萨姆语 | Assamese | as |
| 阿斯图里亚斯语 | Asturian | ast |
| 巴斯克语 | Basque | eu |
| 白俄罗斯语 | Belarusian | be |
| 波斯尼亚语 | Bosnian | bs |
| 加泰罗尼亚语 | Catalan | ca |
| 宿务语 | Cebuano | ceb |
| 克罗地亚语 | Croatian | hr |
| 埃及阿拉伯语 | Egyptian Arabic | arz |
| 爱沙尼亚语 | Estonian | et |
| 加利西亚语 | Galician | gl |
| 格鲁吉亚语 | Georgian | ka |
| 古吉拉特语 | Gujarati | gu |
| 冰岛语 | Icelandic | is |
| 爪哇语 | Javanese | jv |
| 卡纳达语 | Kannada | kn |
| 哈萨克语 | Kazakh | kk |
| 拉脱维亚语 | Latvian | lv |
| 立陶宛语 | Lithuanian | lt |
| 卢森堡语 | Luxembourgish | lb |
| 马其顿语 | Macedonian | mk |
| 马加希语 | Maithili | mai |
| 马耳他语 | Maltese | mt |
| 马拉地语 | Marathi | mr |
| 美索不达米亚阿拉伯语 | Mesopotamian Arabic | acm |
| 摩洛哥阿拉伯语 | Moroccan Arabic | ary |
| 内志阿拉伯语 | Najdi Arabic | ars |
| 尼泊尔语 | Nepali | ne |
| 北阿塞拜疆语 | North Azerbaijani | az |
| 北黎凡特阿拉伯语 | North Levantine Arabic | apc |
| 北乌兹别克语 | Northern Uzbek | uz |
| 书面语挪威语 | Norwegian Bokmål | nb |
| 新挪威语 | Norwegian Nynorsk | nn |
| 奥克语 | Occitan | oc |
| 奥里亚语 | Odia | or |
| 邦阿西楠语 | Pangasinan | pag |
| 西西里语 | Sicilian | scn |
| 信德语 | Sindhi | sd |
| 僧伽罗语 | Sinhala | si |
| 斯洛伐克语 | Slovak | sk |
| 斯洛文尼亚语 | Slovenian | sl |
| 南黎凡特阿拉伯语 | South Levantine Arabic | ajp |
| 斯瓦希里语 | Swahili | sw |
| 他加禄语 | Tagalog | tl |
| 塔伊兹-亚丁阿拉伯语 | Ta'izzi-Adeni Arabic | acq |
| 托斯克阿尔巴尼亚语 | Tosk Albanian | sq |
| 突尼斯阿拉伯语 | Tunisian Arabic | aeb |
| 威尼斯语 | Venetian | vec |
| 瓦莱语 | Waray | war |
| 威尔士语 | Welsh | cy |
| 西波斯语 | Western Persian | fa |
注意:source_lang 和 target_lang 可以使用语言代码(如 en、zh)或语言英文名(如 English、Chinese)。
API 接口示例#
cURL 示例#
curl -s -X POST https://hk.hyucloud.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-mt-flash",
"messages": [
{
"role": "user",
"content": "看完这个视频我没有笑"
}
],
"translation_options": {
"source_lang": "auto",
"target_lang": "English"
}
}'响应示例#
{
"choices": [
{
"message": {
"content": "I didn't laugh after watching this video.",
"role": "assistant"
},
"finish_reason": "stop",
"index": 0,
"logprobs": null
}
],
"object": "chat.completion",
"usage": {
"prompt_tokens": 32,
"completion_tokens": 9,
"total_tokens": 41
},
"created": 1782376798,
"system_fingerprint": null,
"model": "qwen-mt-flash",
"id": "chatcmpl-1f33275d-d0bf-999d-bfa8-0f6029ff5ae4"
}注意事项#
1. 语言自动检测:source_lang 设置为 "auto" 时,模型会自动检测源语言 2. 语言名称格式:source_lang 和 target_lang 可以使用语言代码(如 "en"、"zh")或语言英文名(如 "English"、"Chinese") 3. translation_options:翻译参数需要放在 translation_options 对象中 4. 长文本处理:建议将长文本分段翻译,以获得更好的翻译质量 5. 专业术语:对于特定领域的专业术语,建议在提示中提供上下文说明
模型支持情况#
qwen-mt-flash
EasyLink Fin-Chat 金融投研知识问答#
概述#
Fin-Chat 是一个专注于金融投研领域的知识问答模型,基于海量金融文档构建。支持公司财报分析、行业研究、股价趋势等专业问题,响应内容附带原始文档引用(文件名、页码、访问链接),方便溯源核查。
接口采用 OpenAI Chat Completions 兼容格式,支持流式和非流式两种响应方式,可直接使用 OpenAI SDK 接入。
更多细节请参考 EasyLink 官方文档。
请求地址:https://hk.hyucloud.com/v1/chat/completions
支持模型#
easydoc-fin-chat
请求参数#
| 字段 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型名称,固定为 easydoc-fin-chat |
| messages | array | 是 | 对话消息数组,支持 user / assistant / system |
| stream | boolean | 否 | 是否启用流式返回,默认 false |
| temperature | float | 否 | 温度参数,范围 0-2,默认 1 |
| max_tokens | integer | 否 | 最大生成 token 数 |
响应字段#
非流式响应#
| 字段 | 类型 | 说明 |
|---|---|---|
| choices[0].message.content | string | 生成的回答文本 |
| choices[0].message.annotations | array | 文档引用列表,见下方说明 |
| choices[0].finish_reason | string | 完成原因:stop / length |
| usage.prompt_tokens | integer | 输入 token 数 |
| usage.completion_tokens | integer | 输出 token 数 |
| usage.total_tokens | integer | 总 token 数 |
流式响应(SSE)#
每条消息以 data: 开头,流结束时发送 data: [DONE]。delta 对象字段与非流式 message 一致。
annotations 文档引用#
| 字段 | 类型 | 说明 |
|---|---|---|
| file_name | string | 来源文档文件名 |
| url | string | 文档访问链接(带签名,有时效性) |
| page_number | integer | 引用页码 |
示例#
Curl 示例#
非流式:
curl -X POST https://hk.hyucloud.com/v1/chat/completions \
-H "Authorization: Bearer {api_key}" \
-H "Content-Type: application/json" \
-d '{
"model": "easydoc-fin-chat",
"messages": [
{"role": "user", "content": "比亚迪2024年Q3营收同比增长率?"}
]
}'流式:
curl -X POST https://hk.hyucloud.com/v1/chat/completions \
-H "Authorization: Bearer {api_key}" \
-H "Content-Type: application/json" \
--no-buffer \
-d '{
"model": "easydoc-fin-chat",
"messages": [
{"role": "user", "content": "比亚迪2024年Q3营收同比增长率?"}
],
"stream": true
}'Python 示例#
from openai import OpenAI
client = OpenAI(
api_key="******", # 替换为你的 API Key
base_url="https://hk.hyucloud.com/v1",
)
# 流式调用
response = client.chat.completions.create(
model="easydoc-fin-chat",
messages=[
{"role": "user", "content": "比亚迪2024年Q3营收同比增长率?"}
],
stream=True,
)
for chunk in response:
delta = chunk.choices[0].delta
# 处理文本内容
if delta.content:
print(delta.content, end="", flush=True)
# 处理文档引用(自定义扩展字段)
if hasattr(delta, "annotations") and delta.annotations:
for annotation in delta.annotations:
print(f"\n引用: {annotation['file_name']} 第 {annotation['page_number']} 页")
print(f"链接: {annotation['url']}")响应示例#
非流式响应:
{
"id": "resp_xxxxxxxxxxxxxxxx",
"object": "chat.completion",
"created": 1700000000,
"model": "easydoc-fin-chat",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "根据比亚迪2024年第三季度财报,营收为2011.25亿元,同比增长24.04%。",
"annotations": [
{
"file_name": "比亚迪:2024年三季度报告.pdf",
"url": "https://oss.easylink-ai.com/easylink-investplatform/file_md5/xxx.pdf?signature=...",
"page_number": 2
}
]
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 128,
"completion_tokens": 64,
"total_tokens": 192
}
}使用说明#
1. OpenAI SDK 兼容:将 base_url 设为 https://hk.hyucloud.com/v1,api_key 设为你的 環宇互聯 API Key,即可直接使用 OpenAI SDK 调用。 2. 文档引用:响应中的 annotations 是扩展字段,标准 OpenAI SDK 解析时需通过 hasattr 判断是否存在后再读取。 3. 引用链接时效:annotations[].url 带签名参数,有有效期限制,请及时访问,不要长期存储。 4. 流式建议:使用 cURL 测试流式响应时加 --no-buffer 参数,否则内容可能延迟输出。 5. 计费:按 token 计费,用量通过 usage.prompt_tokens 和 usage.completion_tokens 返回。
EasyLink EasyDoc-Parse 智能文档解析#
概述#
EasyDoc-Parse 是一个智能文档解析模型。上传文档(PDF/图片)后,模型会自动识别文档结构,返回包含标题、文本、表格、图形等节点信息的结构化 JSON,以及 Markdown 格式内容,适用于文档数字化、内容提取、RAG 知识库构建等场景。
本接口为异步模式:提交任务后获得任务 ID,通过轮询接口查询结果。解析结果以文件形式存储,通过 output.urls[0] 返回下载链接,有效期 7 天。
更多细节请参考 EasyLink 官方文档。
请求地址:https://hk.hyucloud.com/v1/tasks/submit
支持模型#
easydoc-parse-premium
请求参数#
提交任务#
| 字段 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型名称,固定为 easydoc-parse-premium |
| input.img_url | string | 是 | 待解析文件的 URL,支持 PDF / JPG / PNG / BMP / TIFF |
查询任务状态#
| 字段 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
| task_id | string | 是 | 提交任务时返回的任务 ID |
响应字段#
提交响应#
| 字段 | 类型 | 说明 |
|---|---|---|
| output.task_id | string | 任务 ID,用于后续查询 |
| request_id | string | 请求 ID |
状态查询响应#
| 字段 | 类型 | 说明 |
|---|---|---|
| output.task_status | string | 任务状态:Pending / Running / Success / Failure |
| output.urls | array | 解析结果文件的下载链接列表(成功时返回,有效期 7 天) |
| output.error_message | string | 错误信息(失败时返回) |
| usage.page_count | integer | 文件页数,用于计费 |
output.urls[0] 下载后得到的 JSON 结构:
| 字段 | 类型 | 说明 |
|---|---|---|
| file_name | string | 文件名 |
| nodes | array | 文档节点数组,见下方说明 |
| markdown | string | Markdown 格式的文档内容 |
nodes 每个元素的结构:
| 字段 | 类型 | 说明 |
|---|---|---|
| id | integer | 节点 ID |
| type | string | 节点类型:Title(标题)/ Text(文本)/ Table(表格)/ Figure(图形) |
| text | string | 节点文本内容 |
| parent_id | integer | 父节点 ID,-1 表示根节点 |
| composing_blocks | array | 坐标位置信息,包含 page_number、coordinates [x1,y1,x2,y2]、layout_width、layout_height |
| path_info | object | 节点路径信息 |
示例#
Curl 示例#
提交任务:
curl -X POST https://hk.hyucloud.com/v1/tasks/submit \
-H "Authorization: Bearer {api_key}" \
-H "Content-Type: application/json" \
-d '{
"model": "easydoc-parse-premium",
"input": {
"img_url": "https://example.com/document.pdf"
}
}'查询任务状态:
curl "https://hk.hyucloud.com/v1/tasks/status?task_id={task_id}" \
-H "Authorization: Bearer {api_key}"下载解析结果:
curl "{output.urls[0]}" -o result.jsonPython 示例#
import json
import time
import requests
api_key = "******" # 替换为你的 API Key
base_url = "https://hk.hyucloud.com/v1"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
}
# 提交任务
submit_data = {
"model": "easydoc-parse-premium",
"input": {
"img_url": "https://example.com/document.pdf",
},
}
resp = requests.post(f"{base_url}/tasks/submit", headers=headers, json=submit_data)
task_id = resp.json()["output"]["task_id"]
print(f"task_id: {task_id}")
# 轮询查询结果
while True:
result = requests.get(
f"{base_url}/tasks/status",
headers=headers,
params={"task_id": task_id},
).json()
status = result["output"]["task_status"]
print(f"status: {status}")
if status == "Success":
download_url = result["output"]["urls"][0]
print(f"结果下载链接: {download_url}")
parsed = requests.get(download_url).json()
print(f"文件名: {parsed['file_name']}")
print(f"节点数量: {len(parsed['nodes'])}")
print(f"总页数: {result['usage']['page_count']}")
break
elif status == "Failure":
print(f"失败: {result['output'].get('error_message')}")
break
time.sleep(10)响应示例#
提交成功:
{
"output": {
"task_id": "parse_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
},
"request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}任务完成:
{
"output": {
"task_id": "parse_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"task_status": "Success",
"urls": [
"https://text-store.cn-wlcb.ufileos.com/easylink/parse/parse_xxxxxxxx.json?Expires=xxxxxxxxxx&Signature=xxx&環宇互聯PublicKey=xxx"
],
"submit_time": 1700000000,
"finish_time": 1700000060
},
"usage": {
"duration": 60,
"page_count": 5
},
"request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}下载链接返回的 JSON 结构示例:
{
"file_name": "document.pdf",
"nodes": [
{
"id": 1,
"type": "Title",
"text": "文档标题",
"parent_id": -1,
"composing_blocks": [
{
"page_number": 1,
"coordinates": [582, 271, 1121, 328],
"system": "PixelSpace",
"layout_width": 1708,
"layout_height": 2212
}
],
"path_info": {
"path_context": "",
"path": []
}
}
],
"markdown": "# 文档标题\n\n正文内容..."
}使用说明#
1. 文件格式:支持 PDF、JPG、PNG、BMP、TIFF,通过 input.img_url 传入文件的公网访问地址。 2. 结果获取:任务成功后,output.urls[0] 是解析结果 JSON 文件的下载链接,需要额外发起一次请求下载才能获取结构化内容。 3. 链接有效期:下载链接有效期为 7 天,请及时下载保存。 4. 计费:按文件页数计费,页数通过 usage.page_count 返回。
EasyLink EMR-Mask 病历脱敏#
概述#
EMR-Mask 是一个专业的病历文档智能脱敏模型。上传医疗文档(PDF/图片)后,模型会自动识别并遮蔽患者姓名、身份证号、联系电话等敏感信息,返回脱敏后的文件下载链接,保障医疗数据在共享、归档、训练等场景下的安全与合规性。
本接口为异步模式:提交任务后获得任务 ID,通过轮询接口查询结果。
更多细节请参考 EasyLink 官方文档。
请求地址:https://hk.hyucloud.com/v1/tasks/submit
支持模型#
easydoc-emr-mask
请求参数#
提交任务#
| 字段 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型名称,固定为 easydoc-emr-mask |
| input.img_url | string | 是 | 待脱敏文件的 URL,支持 PDF / JPG / PNG / TIFF |
| input.prompt | string | 是 | 脱敏规则,JSON Schema 格式字符串,指定需要脱敏的字段 |
input.prompt 示例(指定需要脱敏的字段):
{
"type": "object",
"properties": {
"患者姓名": {"type": "string"},
"患者性别": {"type": "string"},
"入院时间": {"type": "string"},
"出院时间": {"type": "string"},
"年龄": {"type": "string"},
"住院时长": {"type": "string"}
}
}查询任务状态#
| 字段 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
| task_id | string | 是 | 提交任务时返回的任务 ID |
响应字段#
提交响应#
| 字段 | 类型 | 说明 |
|---|---|---|
| output.task_id | string | 任务 ID,用于后续查询 |
| request_id | string | 请求 ID |
状态查询响应#
| 字段 | 类型 | 说明 |
|---|---|---|
| output.task_status | string | 任务状态:Pending / Running / Success / Failure |
| output.urls | array | 脱敏后的文件下载链接列表(1小时有效) |
| output.error_message | string | 错误信息(失败时返回) |
| usage.page_count | integer | 文件页数,用于计费 |
示例#
Curl 示例#
提交任务:
curl -X POST https://hk.hyucloud.com/v1/tasks/submit \
-H "Authorization: Bearer {api_key}" \
-H "Content-Type: application/json" \
-d '{
"model": "easydoc-emr-mask",
"input": {
"img_url": "https://example.com/medical_record.pdf",
"prompt": "{\"type\":\"object\",\"properties\":{\"患者姓名\":{\"type\":\"string\"},\"患者性别\":{\"type\":\"string\"},\"年龄\":{\"type\":\"string\"}}}"
}
}'查询任务状态:
curl "https://hk.hyucloud.com/v1/tasks/status?task_id={task_id}" \
-H "Authorization: Bearer {api_key}"Python 示例#
import time
import requests
api_key = "******" # 替换为你的 API Key
base_url = "https://hk.hyucloud.com/v1"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
}
# 提交任务
submit_data = {
"model": "easydoc-emr-mask",
"input": {
"img_url": "https://example.com/medical_record.pdf",
"prompt": '{"type":"object","properties":{"患者姓名":{"type":"string"},"患者性别":{"type":"string"},"年龄":{"type":"string"}}}',
},
}
resp = requests.post(f"{base_url}/tasks/submit", headers=headers, json=submit_data)
task_id = resp.json()["output"]["task_id"]
print(f"task_id: {task_id}")
# 轮询查询结果
while True:
result = requests.get(
f"{base_url}/tasks/status",
headers=headers,
params={"task_id": task_id},
).json()
status = result["output"]["task_status"]
print(f"status: {status}")
if status == "Success":
print("脱敏后文件链接:")
for url in result["output"]["urls"]:
print(url)
print(f"页数: {result['usage']['page_count']}")
break
elif status == "Failure":
print(f"失败: {result['output'].get('error_message')}")
break
time.sleep(5)响应示例#
提交成功:
{
"output": {
"task_id": "b_mask_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
},
"request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}任务完成:
{
"output": {
"task_id": "b_mask_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"task_status": "Success",
"urls": [
"https://oss.easylink-ai.com/easylink-easydoc-task/mask_merge/xxxxxxxx.pdf?..."
],
"submit_time": 1700000000,
"finish_time": 1700000060
},
"usage": {
"duration": 60,
"page_count": 3
},
"request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}使用说明#
1. 文件格式:支持 PDF、JPG、PNG、TIFF,通过 input.img_url 传入文件的公网访问地址。 2. 脱敏规则:通过 input.prompt 传入 JSON Schema 字符串,指定需要脱敏的字段名。不传或传空会导致任务失败。 3. 结果链接有效期:返回的脱敏文件 URL 有效期为 1 小时,请及时下载保存。 4. 计费:按文件页数计费,页数通过 usage.page_count 返回。
EasyLink EasyDoc-Extract 文档信息抽取#
概述#
EasyDoc-Extract 是一个智能文档信息抽取模型。上传文档(PDF/图片)后,模型会自动从中抽取结构化信息,返回 JSON 格式的抽取结果,适用于合同要素提取、发票解析、表单数据录入等场景。
本接口为异步模式:提交任务后获得任务 ID,通过轮询接口查询结果。
更多细节请参考 EasyLink 官方文档。
请求地址:https://hk.hyucloud.com/v1/tasks/submit
支持模型#
easydoc-extract
抽取模式说明#
| 模式 | 触发条件 | 说明 |
|---|---|---|
| 封闭式 | parameters.json_schema 有效 JSON | 按指定 Schema 抽取字段,结果为结构化 JSON 对象 |
| 自定义 Prompt | parameters.json_schema 无效 + parameters.prompt_cus 非空 | 按自然语言描述抽取,结果为字符串 |
| 开放式 | 两者均为空 | 自动识别文档类型并抽取所有可识别字段 |
请求参数#
提交任务#
| 字段 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型名称,固定为 easydoc-extract |
| input.img_url | string | 是 | 待抽取文件的 URL,支持 PDF / JPG / PNG / BMP / TIFF |
| parameters.json_schema | string | 否 | 封闭式模式:JSON Schema 格式字符串,指定需要抽取的字段 |
| parameters.prompt_cus | string | 否 | 自定义 Prompt 模式:自然语言描述抽取需求 |
parameters.json_schema 示例(封闭式模式,抽取合同关键字段):
{
"type": "object",
"properties": {
"甲方名称": {"type": "string"},
"乙方名称": {"type": "string"},
"合同金额": {"type": "string"},
"签订日期": {"type": "string"},
"合同编号": {"type": "string"}
}
}查询任务状态#
| 字段 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
| task_id | string | 是 | 提交任务时返回的任务 ID |
响应字段#
提交响应#
| 字段 | 类型 | 说明 |
|---|---|---|
| output.task_id | string | 任务 ID,用于后续查询 |
| request_id | string | 请求 ID |
状态查询响应#
| 字段 | 类型 | 说明 |
|---|---|---|
| output.task_status | string | 任务状态:Pending / Running / Success / Failure |
| output.result | array | 抽取结果列表(成功时返回),每个元素对应一个文件,见下方说明 |
| output.error_message | string | 错误信息(失败时返回) |
| usage.page_count | integer | 文件总页数,用于计费 |
output.result 每个元素的结构:
| 字段 | 类型 | 说明 |
|---|---|---|
| page_count | integer | 当前文件页数 |
| key_index | array | 抽取字段名列表(封闭式模式返回) |
| extracted_fields | object/string | 抽取结果:封闭式模式为 JSON 对象,自定义 Prompt 模式为字符串 |
示例#
Curl 示例#
提交任务(封闭式模式):
curl -X POST https://hk.hyucloud.com/v1/tasks/submit \
-H "Authorization: Bearer {api_key}" \
-H "Content-Type: application/json" \
-d '{
"model": "easydoc-extract",
"input": {
"img_url": "https://example.com/contract.pdf"
},
"parameters": {
"json_schema": "{\"type\":\"object\",\"properties\":{\"甲方名称\":{\"type\":\"string\"},\"乙方名称\":{\"type\":\"string\"},\"合同金额\":{\"type\":\"string\"},\"签订日期\":{\"type\":\"string\"}}}"
}
}'提交任务(开放式模式):
curl -X POST https://hk.hyucloud.com/v1/tasks/submit \
-H "Authorization: Bearer {api_key}" \
-H "Content-Type: application/json" \
-d '{
"model": "easydoc-extract",
"input": {
"img_url": "https://example.com/document.pdf"
}
}'查询任务状态:
curl "https://hk.hyucloud.com/v1/tasks/status?task_id={task_id}" \
-H "Authorization: Bearer {api_key}"Python 示例#
import json
import time
import requests
api_key = "******" # 替换为你的 API Key
base_url = "https://hk.hyucloud.com/v1"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
}
# 提交任务(封闭式模式)
json_schema = {
"type": "object",
"properties": {
"甲方名称": {"type": "string"},
"乙方名称": {"type": "string"},
"合同金额": {"type": "string"},
"签订日期": {"type": "string"},
},
}
submit_data = {
"model": "easydoc-extract",
"input": {
"img_url": "https://example.com/contract.pdf",
},
"parameters": {
"json_schema": json.dumps(json_schema, ensure_ascii=False),
},
}
resp = requests.post(f"{base_url}/tasks/submit", headers=headers, json=submit_data)
task_id = resp.json()["output"]["task_id"]
print(f"task_id: {task_id}")
# 轮询查询结果
while True:
result = requests.get(
f"{base_url}/tasks/status",
headers=headers,
params={"task_id": task_id},
).json()
status = result["output"]["task_status"]
print(f"status: {status}")
if status == "Success":
print("抽取结果:")
for item in result["output"]["result"]:
print(f" 页数: {item.get('page_count')}")
print(f" 字段名: {item.get('key_index')}")
print(f" 抽取内容: {item.get('extracted_fields')}")
print(f"总页数: {result['usage']['page_count']}")
break
elif status == "Failure":
print(f"失败: {result['output'].get('error_message')}")
break
time.sleep(5)响应示例#
提交成功:
{
"output": {
"task_id": "b_extract_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
},
"request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}任务完成(封闭式模式):
{
"output": {
"task_id": "b_extract_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"task_status": "Success",
"result": [
{
"page_count": 5,
"key_index": ["甲方名称", "乙方名称", "合同金额", "签订日期"],
"extracted_fields": {
"甲方名称": "北京示例科技有限公司",
"乙方名称": "上海示例贸易有限公司",
"合同金额": "人民币壹拾万元整",
"签订日期": "2024年1月1日"
}
}
],
"submit_time": 1700000000,
"finish_time": 1700000060
},
"usage": {
"duration": 60,
"page_count": 5
},
"request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}使用说明#
1. 文件格式:支持 PDF、JPG、PNG、BMP、TIFF,通过 input.img_url 传入文件的公网访问地址。 2. 抽取模式选择: - 字段明确时推荐使用封闭式模式(传入 parameters.json_schema),结果最为准确。 - 需要灵活描述抽取需求时使用自定义 Prompt 模式(传入 parameters.prompt_cus)。 - 无特定需求时可使用开放式模式(两者均不传),自动识别并抽取文档中的所有可识别字段。 3. json_schema 格式:传入的是 JSON Schema 的序列化字符串(即对 JSON 对象调用 json.dumps() 后的结果),而非 JSON 对象本身。 4. 结果格式:抽取结果通过 output.result 字段返回,为 JSON 数组,每个元素对应一个输入文件。 5. 计费:按文件总页数计费,页数通过 usage.page_count 返回。
Wan-AI/Wan2.7 Image API#
本文介绍 wan2.7-image、wan2.7-image-pro 模型调用 API 的输入输出参数,供您使用接口时查阅字段含义。
- 同步接口:
/v1/images/generations - 异步接口:
/v1/tasks/submit+/v1/tasks/status
模型列表#
| 模型名 | 说明 |
|---|---|
wan2.7-image | Wan2.7 图片生成模型 |
wan2.7-image-pro | Wan2.7 图片生成 Pro 模型 |
能力概览#
Wan2.7 当前支持:
- 文生图
- 单图编辑
- 多图融合 / 多图编辑
- 连续多图生成 / 组图生成
OpenAI 兼容接口(同步)#
接口#
POST https://hk.hyucloud.com/v1/images/generations
认证方式#
Authorization: Bearer $hyucloud_API_KEY
请求参数#
| 字段名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
| model | string | 必须 | - | 模型名称,可选值:wan2.7-image、wan2.7-image-pro |
| prompt | string | 可选 | - | 文本提示词。prompt、image、images 至少需要提供一项。 |
| image | string | 可选 | - | 单图输入,支持公网 URL 或 Base64。适用于单图编辑场景。图片要求见下方「图片输入说明」。 |
| images | array[string] | 可选 | - | 多图输入,支持公网 URL 或 Base64,最多 9 张。适用于多图融合、多图编辑场景。若同时传入 images 和 image,优先使用 images。图片要求见下方「图片输入说明」。 |
| size | string | 可选 | 2K | 输出尺寸。支持档位 1K/2K/4K,或像素值 宽*高(如 1280*720,兼容 宽x高 写法)。两种方式语义不同,取值范围见下方「size 取值说明」。 |
| n | int | 可选 | 1 | 生成图片数量。普通模式取值 1~4;开启 enable_sequential 时取值 1~12(实际张数由模型决定,不超过 n)。 |
| seed | int | 可选 | - | 随机种子。建议传正整数;传 0 或不传时按未设置处理。 |
| watermark | boolean | 可选 | false | 是否添加水印。 |
| thinking_mode | boolean | 可选 | true | 是否开启深度思考模式。仅在未开启组图模式且无图片输入时生效,开启可提升出图质量但会增加耗时。 |
| enable_sequential | boolean | 可选 | false | 是否开启连续多图生成 / 组图模式。建议与 n 配合使用。 |
size 取值说明#
支持两种取值方式,语义不同,不可混用:
方式一:档位 1K / 2K / 4K(默认 2K)
- 总像素分别对应 1024×1024、2048×2048、4096×4096。有图片输入时,输出宽高比跟随输入图(多图时取最后一张);无图片输入时输出为正方形。
wan2.7-image-pro:文生图(无图片输入且未开启组图)支持1K/2K/4K;图像编辑、组图场景仅支持1K/2K。wan2.7-image:仅支持1K/2K,不支持4K。
**方式二:像素值 宽*高(如 1280*720,兼容 1280x720 写法)**
- 精确指定输出宽高(实际输出像素可能存在微小差异),宽高比需在
1:8~8:1之间。 wan2.7-image-pro:文生图场景总像素范围[768×768, 4096×4096];其他场景[768×768, 2048×2048]。wan2.7-image:所有场景总像素范围[768×768, 2048×2048]。
图片输入说明#
- 格式:JPEG/JPG、PNG(不支持透明通道)、BMP、WEBP
- 分辨率:宽和高均需在
[240, 8000]像素之间,宽高比1:8~8:1 - 大小:单张不超过 20MB;最多传入 9 张,按数组顺序定义图像顺序
请求示例#
1. 文生图#
curl --location 'https://hk.hyucloud.com/v1/images/generations' \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "wan2.7-image",
"prompt": "A futuristic cloud data center floating above the sea at sunrise",
"size": "1K",
"seed": 123456,
"watermark": false
}'2. 单图编辑#
curl --location 'https://hk.hyucloud.com/v1/images/generations' \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "wan2.7-image-pro",
"prompt": "把这只猫改成赛博朋克风格,霓虹灯光,电影感构图",
"image": "https://hk.hyucloud.com/hyucloud-maxcot.jpg",
"size": "2K",
"thinking_mode": true,
"watermark": false
}'3. 多图融合#
curl --location 'https://hk.hyucloud.com/v1/images/generations' \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "wan2.7-image-pro",
"prompt": "融合两张参考图的主体特征,生成一张高级感品牌海报",
"images": [
"https://hk.hyucloud.com/hyucloud-maxcot.jpg",
"https://hk.hyucloud.com/hyucloud-maxcot.jpg"
],
"size": "2048*2048",
"thinking_mode": true,
"seed": 20260402
}'4. 连续多图生成#
curl --location 'https://hk.hyucloud.com/v1/images/generations' \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "wan2.7-image-pro",
"prompt": "生成一组同一角色在春夏秋冬四季中的海报,人物形象保持一致",
"size": "2K",
"thinking_mode": true,
"enable_sequential": true,
"n": 4
}'响应参数#
| 字段名 | 类型 | 描述 |
|---|---|---|
| created | integer | 本次请求创建时间的 Unix 时间戳(秒) |
| data | array | 输出图片信息列表 |
| data.url | string | 生成图片的下载地址。链接有效期为 24 小时,请及时转存。 |
响应示例#
{
"created": 1775558400,
"data": [
{
"url": "https://example.com/generated-image-1.png"
},
{
"url": "https://example.com/generated-image-2.png"
}
]
}异步任务接口#
提交任务#
接口#
POST https://hk.hyucloud.com/v1/tasks/submit
认证方式#
Authorization: Bearer $hyucloud_API_KEY
请求体#
{
"model": "wan2.7-image-pro",
"input": {
"prompt": "一只坐在咖啡馆窗边的布偶猫",
"images": [
"https://hk.hyucloud.com/hyucloud-maxcot.jpg"
]
},
"parameters": {
"size": "2K",
"prompt_extend": true,
"enable_sequential": true,
"n": 4,
"seed": 123456,
"watermark": false
}
}请求参数#
| 字段名 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| model | string | 必须 | 模型名称,可选值:wan2.7-image、wan2.7-image-pro |
| input.prompt | string | 可选 | 文本提示词。input.prompt、input.images、input.img_url、input.first_frame_url 至少需要提供一项。 |
| input.images | array[string] | 可选 | 多图输入,支持公网 URL 或 Base64。若同时传入 input.images、input.img_url、input.first_frame_url,优先使用 input.images。 |
| input.img_url | string | 可选 | 单图输入,支持公网 URL 或 Base64。适用于单图编辑场景。 |
| input.first_frame_url | string | 可选 | 单图兼容字段,支持公网 URL 或 Base64。在 Wan2.7 图片任务中会按普通图片输入处理。 |
| parameters.size | string | 可选 | 输出尺寸。支持档位 1K/2K/4K,或像素值 宽*高(如 1280*720,兼容 宽x高 写法)。取值规则同同步接口的「size 取值说明」。 |
| parameters.n | int | 可选 | 生成图片数量。普通模式取值 1~4;开启 enable_sequential 时取值 1~12(实际张数由模型决定,不超过 n)。 |
| parameters.seed | int | 可选 | 随机种子。建议传正整数;传 0 或不传时按未设置处理。 |
| parameters.watermark | boolean | 可选 | 是否添加水印。 |
| parameters.enable_sequential | boolean | 可选 | 是否开启连续多图生成 / 组图模式。通常建议与 parameters.n 配合使用。 |
| parameters.prompt_extend | boolean | 可选 | 提示词增强开关,传 true 时会映射为 Wan2.7 的 thinking_mode=true。 |
请求示例#
##### 1. 文生图
curl --location 'https://hk.hyucloud.com/v1/tasks/submit' \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "wan2.7-image",
"input": {
"prompt": "A futuristic cloud data center floating above the sea at sunrise"
},
"parameters": {
"size": "1K",
"seed": 123456
}
}'##### 2. 单图编辑
curl --location 'https://hk.hyucloud.com/v1/tasks/submit' \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "wan2.7-image-pro",
"input": {
"prompt": "把这只猫改成赛博朋克风格,霓虹灯光,电影感构图",
"img_url": "https://hk.hyucloud.com/hyucloud-maxcot.jpg"
},
"parameters": {
"size": "2K",
"prompt_extend": true,
"watermark": false
}
}'##### 3. 多图融合
curl --location 'https://hk.hyucloud.com/v1/tasks/submit' \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "wan2.7-image-pro",
"input": {
"prompt": "融合两张参考图的主体特征,生成一张高级感品牌海报",
"images": [
"https://hk.hyucloud.com/hyucloud-maxcot.jpg",
"https://hk.hyucloud.com/hyucloud-maxcot.jpg"
]
},
"parameters": {
"size": "2048*2048",
"prompt_extend": true,
"seed": 20260402
}
}'##### 4. 连续多图生成
curl --location 'https://hk.hyucloud.com/v1/tasks/submit' \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "wan2.7-image-pro",
"input": {
"prompt": "生成一组同一角色在春夏秋冬四季中的海报,人物形象保持一致"
},
"parameters": {
"size": "2K",
"prompt_extend": true,
"enable_sequential": true,
"n": 4
}
}'提交响应参数#
| 字段名 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务唯一标识 |
| request_id | string | 请求唯一标识 |
提交响应示例#
{
"output": {
"task_id": "3c7d6b6c-7cdb-4f37-bf41-7f2b0f1a9f0d"
},
"request_id": "req_202604021530000001"
}查询任务状态#
接口#
GET https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header "Authorization: Bearer $hyucloud_API_KEY"响应参数#
| 字段名 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务唯一标识 |
| output.task_status | string | 任务状态:Pending、Running、Success、Failure、Cancelled |
| output.urls | array[string] | 图片结果 URL 列表。链接有效期为 24 小时,请及时转存。 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.completion_tokens | integer | 可选,输出 token 数 |
| usage.total_tokens | integer | 可选,总 token 数 |
| request_id | string | 请求唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "3c7d6b6c-7cdb-4f37-bf41-7f2b0f1a9f0d",
"task_status": "Success",
"urls": [
"https://example.com/generated-image-1.png",
"https://example.com/generated-image-2.png",
"https://example.com/generated-image-3.png",
"https://example.com/generated-image-4.png"
],
"submit_time": 1775115000,
"finish_time": 1775115038
},
"usage": {
"completion_tokens": 4,
"total_tokens": 4
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "3c7d6b6c-7cdb-4f37-bf41-7f2b0f1a9f0d",
"task_status": "Failure",
"submit_time": 1775115000,
"finish_time": 1775115012,
"error_message": "code=InvalidParameter, message=invalid image url"
},
"request_id": ""
}gemini-2.5-flash-image( nano banana )#
本文介绍 gemini-2.5-flash-image 模型调用 API 的输入输出参数,供您使用接口时查阅字段含义。
以下只展示部分使用到的字段说明,Gemini API 详细字段见Gemini 官网文档
请求参数#
请求体#
| 字段名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
| contents | array | 必须 | - | 请求的内容,包含一个或多个部分。 |
| contents.role | string | 必须 | "user" | 内容的角色,此处固定为 "user"。 |
| contents.parts | array | 必须 | - | 内容的具体部分。 |
| contents.parts.text | string | 可选 | - | 提示词文本。 |
| contents.parts.inlineData | object | 可选 | - | 内联数据(如图像)。 |
| contents.parts.inlineData.mimeType | string | 可选 | - | 数据的 MIME 类型。 |
| contents.parts.inlineData.data | string | 可选 | - | Base64 编码的数据。 |
| contents.parts.fileData | object | 可选 | - | 文件数据,支持 snake_case: file_data。 |
| contents.parts.fileData.mimeType | string | 可选 | - | 文件的 MIME 类型。 |
| contents.parts.fileData.fileUri | string | 可选 | - | 文件的 URI。 |
| generationConfig | object | 可选 | - | 生成配置。 |
| generationConfig.responseModalities | array | 可选 | ["TEXT", "IMAGE"] | 期望的响应形式,可以是文本或图像。 |
响应参数#
| 字段名 | 类型 | 描述 |
|---|---|---|
| candidates | array | 返回的候选内容列表。 |
| candidates.content | object | 候选内容。 |
| candidates.content.parts | array | 内容的具体部分,可能包含文本和图像数据。 |
| candidates.content.parts.text | string | 模型返回的文本描述。 |
| candidates.content.parts.inlineData | object | 内联的图像数据。 |
| candidates.content.parts.inlineData.data | string | Base64 编码的图像数据。 |
| candidates.content.parts.inlineData.mimeType | string | 数据的 MIME 类型,例如 "image/png"。 |
| candidates.content.role | string | 内容的角色,此处为 "model"。 |
| candidates.finishReason | string | 生成结束的原因,例如 "STOP"。 |
| usageMetadata | object | token 使用情况的元数据。 |
| usageMetadata.candidatesTokenCount | integer | 候选内容消耗的 token 数。 |
| usageMetadata.promptTokenCount | integer | 提示词消耗的 token 数。 |
| usageMetadata.totalTokenCount | integer | 总共消耗的 token 数。 |
| error | Object | 错误信息对象 |
| error.code | string | 错误码 |
| error.message | string | 错误提示信息 |
| error.param | string | 请求 id |
示例#
Gemini 兼容接口#
我们兼容gemini的 {xxx}/v1beat/models接口,您可以直接使用官方SDK调用,例如 python-genai
POST https://hk.hyucloud.com/v1beta/models/gemini-2.5-flash-image:generateContent
图片生成(文本转图片)#
⚠️ 注意:您必须在配置中添加 responseModalities: ["TEXT", "IMAGE"]。这些模型不支持仅图片输出。
curl#
curl --location 'https://hk.hyucloud.com/v1beta/models/gemini-2.5-flash-image:generateContent' \
--header "x-goog-api-key: $hyucloud_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"contents": [
{
"role": "user",
"parts": [
{
"text": "Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme"
}
]
}
],
"generationConfig": {
"responseModalities": [
"TEXT",
"IMAGE"
]
}
}' | jq -r '.candidates[0].content.parts[] | select(.inlineData and (.thought | not)) | .inlineData.data' | head -1 \
| base64 -d > hyucloud_generated_image.pngpython#
from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO
import os
client = genai.Client(
api_key=os.getenv("hyucloud_API_KEY", "<hyucloud_API_KEY>"), # 您的API_KEY
http_options=types.HttpOptions(
base_url="https://hk.hyucloud.com"
),
)
contents = [
{
"text": "Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme.",
},
]
generation_config = types.GenerationConfig(
response_modalities=["text", "image"],
)
response = client.models.generate_content(
model="gemini-2.5-flash-image",
contents=contents,
config={
"response_modalities": ["text", "image"],
},
)
for part in response.candidates[0].content.parts:
# 跳过思考过程中的中间图片,只保留最终输出图片
if getattr(part, "thought", False):
continue
if part.text is not None:
print(part.text)
elif part.inline_data is not None:
image = Image.open(BytesIO(part.inline_data.data))
image.save("hyucloud_generated_image.png")
图片编辑(文本和图片转图片)#
curl#
cat <<EOF | curl -X POST \
--header "Authorization: Bearer ${hyucloud_API_KEY}" \
--header "Content-Type: application/json" \
--data @- \
https://hk.hyucloud.com/v1beta/models/gemini-2.5-flash-image:generateContent | jq -r '.candidates[0].content.parts[] | select(.inlineData and (.thought | not)) | .inlineData.data' | head -1 | base64 --decode > hyucloud_generated_image.png
{
"contents": [
{
"role": "user",
"parts": [
{"text": "Convert this photo to black and white, in a cartoonish style."},
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "$(curl -s https://hk.hyucloud.com/hyucloud-maxcot.jpg | base64 | tr -d '\n')"
}
}
]
}
],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"]
}
}
EOFpython#
from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO
import os
client = genai.Client(
api_key=os.getenv("hyucloud_API_KEY", "<hyucloud_API_KEY>"), # 您的API_KEY
http_options=types.HttpOptions(
base_url="https://hk.hyucloud.com"
),
)
response = client.models.generate_content(
model="gemini-2.5-flash-image",
contents=[
types.Content(
role="user",
parts=[
types.Part(
text="Convert this photo to black and white, in a cartoonish style."
),
types.Part(
file_data=types.FileData(
mime_type="image/jpeg",
file_uri="https://hk.hyucloud.com/hyucloud-maxcot.jpg",
)
),
],
)
],
config=types.GenerateContentConfig(response_modalities=["TEXT", "IMAGE"]),
)
for part in response.candidates[0].content.parts:
# 跳过思考过程中的中间图片,只保留最终输出图片
if getattr(part, "thought", False):
continue
if part.text is not None:
print(part.text)
elif part.inline_data is not None:
image = Image.open(BytesIO(part.inline_data.data))
image.save("hyucloud_generated_image.png")
响应示例#
{
"candidates": [
{
"content": {
"parts": [
{
"text": "That sounds incredibly unique! Here's a picture of a nano banana dish in a fancy restaurant with a Gemini theme:\n\n"
},
{
"inlineData": {
"data": "xxx",
"mimeType": "image/png"
}
}
],
"role": "model"
},
"finishReason": "STOP"
}
],
"usageMetadata": {
"candidatesTokenCount": 1315,
"candidatesTokensDetails": [
{
"modality": "IMAGE",
"tokenCount": 1290
},
{
"modality": "TEXT",
"tokenCount": 25
}
],
"promptTokenCount": 16,
"promptTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 16
}
],
"totalTokenCount": 1331,
"trafficType": "ON_DEMAND"
}
}{
"error": {
"message": "error_message",
"type": "error_type",
"param": "request_id",
"code": "error_code"
}
}gemini-3-pro-image ( nano banana pro )#
本文介绍 gemini-3-pro-image-preview (模型ID: gemini-3-pro-image-preview) 模型调用 API 的输入输出参数,供您使用接口时查阅字段含义。
以下只展示部分使用到的字段说明,详细说明请参考官方文档 Gemini 3 Pro 图片功能的新变化
请求参数#
请求体#
| 字段名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
| contents | array | 必须 | - | 请求的内容,包含一个或多个部分。 |
| contents.role | string | 必须 | "user" | 内容的角色,此处固定为 "user"。 |
| contents.parts | array | 必须 | - | 内容的具体部分。 |
| contents.parts.text | string | 可选 | - | 提示词文本。 |
| generationConfig | object | 可选 | - | 生成配置。 |
| generationConfig.responseModalities | array | 可选 | ["TEXT", "IMAGE"] | 期望的响应形式,可以是文本或图像。 |
| generationConfig.imageConfig | object | 可选 | - | 图片生成配置。 |
| generationConfig.imageConfig.aspectRatio | string | 可选 | "1:1" | 图片宽高比。支持 "1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9"。 |
| generationConfig.imageConfig.imageSize | string | 可选 | "1K" | 图片分辨率。支持 "1K", "2K", "4K"。 |
响应参数#
| 字段名 | 类型 | 描述 |
|---|---|---|
| candidates | array | 返回的候选内容列表。 |
| candidates.content | object | 候选内容。 |
| candidates.content.parts | array | 内容的具体部分,可能包含文本和图像数据。 |
| candidates.content.parts.text | string | 模型返回的文本描述。 |
| candidates.content.parts.inlineData | object | 内联的图像数据。 |
| candidates.content.parts.inlineData.data | string | Base64 编码的图像数据。 |
| candidates.content.parts.inlineData.mimeType | string | 数据的 MIME 类型,例如 "image/png"。 |
| candidates.finishReason | string | 生成结束的原因,例如 "STOP"。 |
| usageMetadata | object | token 使用情况的元数据。 |
| error | Object | 错误信息对象 |
示例#
Gemini 兼容接口#
POST https://hk.hyucloud.com/v1beta/models/gemini-3-pro-image-preview:generateContent
图片生成(文本转图片)#
⚠️ 注意:您必须在配置中添加 responseModalities: ["TEXT", "IMAGE"]。
curl#
curl -s -X POST \
"https://hk.hyucloud.com/v1beta/models/gemini-3-pro-image-preview:generateContent" \
-H "x-goog-api-key: $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{"parts": [{"text": "Da Vinci style anatomical sketch of a dissected Monarch butterfly. Detailed drawings of the head, wings, and legs on textured parchment with notes in English."}]}],
"tools": [{"google_search": {}}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {"aspectRatio": "1:1", "imageSize": "1K"}
}
}' | jq -r '.candidates[0].content.parts[] | select(.inlineData and (.thought | not)) | .inlineData.data' | head -1 | base64 --decode > butterfly.pngpython#
from google import genai
from google.genai import types
import os
client = genai.Client(
api_key=os.getenv("hyucloud_API_KEY", "<hyucloud_API_KEY>"), # 您的API_KEY
http_options=types.HttpOptions(
base_url="https://hk.hyucloud.com"
),
)
prompt = "Da Vinci style anatomical sketch of a dissected Monarch butterfly. Detailed drawings of the head, wings, and legs on textured parchment with notes in English."
aspect_ratio = "1:1" # "1:1","2:3","3:2","3:4","4:3","4:5","5:4","9:16","16:9","21:9"
resolution = "1K" # "1K", "2K", "4K"
response = client.models.generate_content(
model="gemini-3-pro-image-preview",
contents=prompt,
config=types.GenerateContentConfig(
response_modalities=["TEXT", "IMAGE"],
image_config=types.ImageConfig(
aspect_ratio=aspect_ratio, image_size=resolution
),
),
)
for part in response.parts:
# 跳过思考过程中的中间图片,只保留最终输出图片
if getattr(part, "thought", False):
continue
if part.text is not None:
print(part.text)
elif image := part.as_image():
image.save("butterfly.png")
响应示例#
{
"candidates": [
{
"content": {
"parts": [
{
"text": "Here is the anatomical sketch of a dissected Monarch butterfly in Da Vinci style..."
},
{
"inlineData": {
"data": "iVBORw0KGgoAAAANSUhEUgAA...",
"mimeType": "image/png"
}
}
],
"role": "model"
},
"finishReason": "STOP"
}
],
"usageMetadata": {
"candidatesTokenCount": 1315,
"totalTokenCount": 1331
}
}{
"error": {
"message": "error_message",
"type": "error_type",
"param": "request_id",
"code": "error_code"
}
}gemini-3.1-flash-image ( nano banana 2 )#
本文介绍 gemini-3.1-flash-image-preview (模型ID: gemini-3.1-flash-image-preview) 模型调用 API 的输入输出参数,供您使用接口时查阅字段含义。
以下只展示部分使用到的字段说明,详细说明请参考官方文档 Gemini 3 Pro 图片功能的新变化
请求参数#
请求体#
| 字段名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
| contents | array | 必须 | - | 请求的内容,包含一个或多个部分。 |
| contents.role | string | 必须 | "user" | 内容的角色,此处固定为 "user"。 |
| contents.parts | array | 必须 | - | 内容的具体部分。 |
| contents.parts.text | string | 可选 | - | 提示词文本。 |
| generationConfig | object | 可选 | - | 生成配置。 |
| generationConfig.responseModalities | array | 可选 | ["TEXT", "IMAGE"] | 期望的响应形式,可以是文本或图像。 |
| generationConfig.imageConfig | object | 可选 | - | 图片生成配置。 |
| generationConfig.imageConfig.aspectRatio | string | 可选 | "1:1" | 图片宽高比。支持 "1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9"。 |
| generationConfig.imageConfig.imageSize | string | 可选 | "1K" | 图片分辨率。支持 "512"(0.5K), "1K", "2K", "4K"。注意:512 不带 K 后缀。 |
响应参数#
| 字段名 | 类型 | 描述 |
|---|---|---|
| candidates | array | 返回的候选内容列表。 |
| candidates.content | object | 候选内容。 |
| candidates.content.parts | array | 内容的具体部分,可能包含文本和图像数据。 |
| candidates.content.parts.text | string | 模型返回的文本描述。 |
| candidates.content.parts.inlineData | object | 内联的图像数据。 |
| candidates.content.parts.inlineData.data | string | Base64 编码的图像数据。 |
| candidates.content.parts.inlineData.mimeType | string | 数据的 MIME 类型,例如 "image/png"。 |
| candidates.finishReason | string | 生成结束的原因,例如 "STOP"。 |
| usageMetadata | object | token 使用情况的元数据。 |
| error | Object | 错误信息对象 |
示例#
Gemini 兼容接口#
POST https://hk.hyucloud.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent
图片生成(文本转图片)#
⚠️ 注意:您必须在配置中添加 responseModalities: ["TEXT", "IMAGE"]。
curl#
curl -s -X POST \
"https://hk.hyucloud.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent" \
-H "x-goog-api-key: $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{"parts": [{"text": "Da Vinci style anatomical sketch of a dissected Monarch butterfly. Detailed drawings of the head, wings, and legs on textured parchment with notes in English."}]}],
"tools": [{"google_search": {}}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {"aspectRatio": "1:1", "imageSize": "1K"}
}
}' | jq -r '.candidates[0].content.parts[] | select(.inlineData and (.thought | not)) | .inlineData.data' | head -1 | base64 --decode > butterfly.pngpython#
from google import genai
from google.genai import types
import os
client = genai.Client(
api_key=os.getenv("hyucloud_API_KEY", "<hyucloud_API_KEY>"), # 您的API_KEY
http_options=types.HttpOptions(
base_url="https://hk.hyucloud.com"
),
)
prompt = "Da Vinci style anatomical sketch of a dissected Monarch butterfly. Detailed drawings of the head, wings, and legs on textured parchment with notes in English."
aspect_ratio = "1:1" # "1:1","2:3","3:2","3:4","4:3","4:5","5:4","9:16","16:9","21:9"
resolution = "1K" # "512"(0.5K), "1K", "2K", "4K"
response = client.models.generate_content(
model="gemini-3.1-flash-image-preview",
contents=prompt,
config=types.GenerateContentConfig(
response_modalities=["TEXT", "IMAGE"],
image_config=types.ImageConfig(
aspect_ratio=aspect_ratio, image_size=resolution
),
),
)
for part in response.parts:
# 跳过思考过程中的中间图片,只保留最终输出图片
if getattr(part, "thought", False):
continue
if part.text is not None:
print(part.text)
elif image := part.as_image():
image.save("butterfly.png")
响应示例#
{
"candidates": [
{
"content": {
"parts": [
{
"text": "Here is the anatomical sketch of a dissected Monarch butterfly in Da Vinci style..."
},
{
"inlineData": {
"data": "iVBORw0KGgoAAAANSUhEUgAA...",
"mimeType": "image/png"
}
}
],
"role": "model"
},
"finishReason": "STOP"
}
],
"usageMetadata": {
"candidatesTokenCount": 1315,
"totalTokenCount": 1331
}
}{
"error": {
"message": "error_message",
"type": "error_type",
"param": "request_id",
"code": "error_code"
}
}0.5K 分辨率请求示例#
curl -s -X POST \
"https://hk.hyucloud.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent" \
-H "x-goog-api-key: $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{"parts": [{"text": "一只坐着的橙色小猫,正面,纯色背景"}]}],
"generationConfig": {
"responseModalities": ["IMAGE"],
"imageConfig": {"aspectRatio": "1:1", "imageSize": "512"}
}
}'flux-2-pro#
本文介绍 flux-2-pro 模型调用 API 的输入输出参数,供您使用接口时查阅字段含义。
以下只展示部分使用到的字段说明,flux-2-pro API 详细字段见flux-2-pro 官网文档
请求地址#
POST https://hk.hyucloud.com/v1/flux-2-pro
认证方式#
API Key#
与官方不同,我们不使用 x-key,而是使用 Authorization。
请求参数#
请求体#
| 字段名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
| prompt | string | 是 | 无 | 提示词 |
| input_image | string | 否 | 无 | 图片base64 |
| input_image_2 | string | 否 | 无 | 图片base64 |
| input_image_3 | string | 否 | 无 | 图片base64 |
| input_image_4 | string | 否 | 无 | 图片base64 |
| input_image_5 | string | 否 | 无 | 图片base64 |
| input_image_6 | string | 否 | 无 | 图片base64 |
| input_image_7 | string | 否 | 无 | 图片base64 |
| input_image_8 | string | 否 | 无 | 图片base64 |
| seed | int | 否 | 无 | 种子,可选种子以保证可重复性。 |
| width | int | 否 | 无 | 图片宽度,x >= 64,必须是32的倍数 |
| height | int | 否 | 无 | 图片高度,x >= 64,必须是32的倍数 |
| safety_tolerance | string | 否 | 无 | 输入和输出调节的容忍水平,可选值为1-6。0表示最严格,6表示最不严格。 |
| output_format | jpeg/png | 否 | png | 输出格式,可选值为png,jpg。 |
| webhook_url | string | 否 | 无 | Webhook URL,用于接收生成结果。 |
| webhook_secret | string | 否 | 无 | Webhook Secret,用于验证Webhook请求。 |
响应参数#
| 字段名 | 类型 | 描述 |
|---|---|---|
| createed | int | 创建时间 |
| input_mp | int | 输入图片像素,单位 百万,向上取整 |
| output_mp | int | 输出图片像素,单位 百万,向上取整 |
| total_pixels | int | 总像素 |
| data | [object] | 图片数据 |
| data.[].b64_json | string | 图片base64 |
示例#
curl#
curl -X POST "https://hk.hyucloud.com/v1/flux-2-pro" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-d '{
"prompt" : "A photograph of a red fox in an autumn forest",
"width": 1024,
"height": 1024
}' | jq -r '.data[0].b64_json' | base64 --decode > flux-2-pro.pngpython#
import requests
import os
url = "https://hk.hyucloud.com/v1/flux-2-pro"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {os.getenv('hyucloud_API_KEY')}"
}
payload = {
"prompt": "A photograph of a red fox in an autumn forest",
"width": 1024,
"height": 1024
}
response = requests.post(url, headers=headers, json=payload)
result = response.json()
print(result)flux-kontext-pro#
本文介绍 flux-kontext-pro 模型调用 API 的输入输出参数,供您使用接口时查阅字段含义。
以下只展示部分使用到的字段说明,flux-kontext-pro API 详细字段见flux-kontext-pro 官网文档
请求地址#
POST https://hk.hyucloud.com/v1/flux-kontext-pro
认证方式#
API Key#
与官方不同,我们不使用 x-key,而是使用 Authorization。
请求参数#
请求体#
| 字段名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
| prompt | string | 是 | 无 | 提示词 |
| input_image | string | 否 | 无 | 图片base64 |
| input_image_2 | string | 否 | 无 | 图片base64 |
| input_image_3 | string | 否 | 无 | 图片base64 |
| input_image_4 | string | 否 | 无 | 图片base64 |
| seed | int | 否 | 无 | 种子,可选种子以保证可重复性。 |
| aspect_ratio | string | 否 | 无 | 图像的宽高比介于21:9到9:21之间 |
| output_format | jpeg/png | 否 | png | 输出格式,可选值为png,jpg。 |
| webhook_url | string | 否 | 无 | Webhook URL,用于接收生成结果。 |
| webhook_secret | string | 否 | 无 | Webhook Secret,用于验证Webhook请求。 |
| prompt_upsampling | bool | 否 | false | 是否对提示进行上采样。如果激活,会自动修改提示词以实现更具创意的生成。 |
| safety_tolerance | string | 否 | 无 | 输入和输出调节的容忍水平,可选值为1-6。0表示最严格,6表示最不严格。 |
响应参数#
| 字段名 | 类型 | 描述 |
|---|---|---|
| createed | int | 创建时间 |
| data | [object] | 图片数据 |
| data.[].b64_json | string | 图片base64 |
示例#
curl#
curl -X POST "https://hk.hyucloud.com/v1/flux-kontext-pro" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-d '{
"prompt" : "A photograph of a red fox in an autumn forest"
}' | jq -r '.data[0].b64_json' | base64 --decode > flux-pro-1.1.pngpython#
import requests
import os
url = "https://hk.hyucloud.com/v1/flux-kontext-pro"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {os.getenv('hyucloud_API_KEY')}"
}
payload = {
"prompt": "A photograph of a red fox in an autumn forest"
}
response = requests.post(url, headers=headers, json=payload)
result = response.json()
print(result)flux-pro-1.1#
本文介绍 flux-pro-1.1 模型调用 API 的输入输出参数,供您使用接口时查阅字段含义。
以下只展示部分使用到的字段说明,flux-pro-1.1 API 详细字段见flux-pro-1.1 官网文档
请求地址#
POST https://hk.hyucloud.com/v1/flux-pro-1.1
认证方式#
API Key#
与官方不同,我们不使用 x-key,而是使用 Authorization。
请求参数#
请求体#
| 字段名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
| prompt | string | 是 | 无 | 提示词 |
| image_prompt | string | 否 | 无 | 图片base64 |
| width | int | 否 | 无 | 图片宽度,256 <= x <= 1440,必须是32的倍数 |
| height | int | 否 | 无 | 图片高度,256 <= x <= 1440,必须是32的倍数 |
| prompt_upsampling | bool | 否 | false | 是否对提示进行上采样。如果激活,会自动修改提示词以实现更具创意的生成。 |
| seed | int | 否 | 无 | 种子,可选种子以保证可重复性。 |
| safety_tolerance | int | 否 | 2 | 输入和输出调节的容忍水平,可选值为1-6。0表示最严格,6表示最不严格。 |
| output_format | jpeg/png | 否 | png | 输出格式,可选值为png,jpg。 |
| webhook_url | string | 否 | 无 | Webhook URL,用于接收生成结果。 |
| webhook_secret | string | 否 | 无 | Webhook Secret,用于验证Webhook请求。 |
响应参数#
| 字段名 | 类型 | 描述 |
|---|---|---|
| createed | int | 创建时间 |
| data | [object] | 图片数据 |
| data.[].b64_json | string | 图片base64 |
示例#
curl#
curl -X POST "https://hk.hyucloud.com/v1/flux-pro-1.1" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-d '{
"prompt" : "A photograph of a red fox in an autumn forest",
"width": 1024,
"height": 1024
}' | jq -r '.data[0].b64_json' | base64 --decode > flux-pro-1.1.pngpython#
import requests
import os
url = "https://hk.hyucloud.com/v1/flux-pro-1.1"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {os.getenv('hyucloud_API_KEY')}"
}
payload = {
"prompt": "A photograph of a red fox in an autumn forest",
"width": 1024,
"height": 1024,
}
response = requests.post(url, headers=headers, json=payload)
result = response.json()
print(result)stepfun-ai/step1x-edit API#
本文介绍 stepfun-ai/step1x-edit 模型调用 API 的输入输出参数,供您使用接口时查阅字段含义。
请求参数#
请求体#
| 字段名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
| prompt | string | 必须 | - | 提示词 |
| model | string | 必须 | - | 本次请求使用的模型名称,此处为 stepfun-ai/step1x-edit。 |
| image | string | 必须 | - | base64 数据或图片链接 http://xxx |
| n | int | 可选 | 1 | 生成图片数量,取值范围为 1~4 |
| strength | float | 可选 | 0.8 | 转换参考图像的程度, 取值范围 0~1 |
| seed | int | 可选 | -1 | 随机数种子,用于控制模型生成内容的随机性。如果希望生成内容保持一致,可以使用相同的 seed 参数值。 |
| steps | int | 可选 | 20 | 推理次数, 取值范围 1~50 |
| guidance_scale | float | 可选 | 2.5 | 模型输出结果与 prompt 的一致程度,即生成图像的自由度;值越大,模型自由度越小,与用户输入的提示词相关性越强。<br/>取值[1, 10]。 |
| negative_prompt | string | 可选 | - | 负面提示词,用于指定不希望在生成图像中出现的内容 |
| response_format | string | 可選 | "url" | 指定返回生成图像的格式,默认为 url |
响应参数#
| 字段名 | 类型 | 描述 |
|---|---|---|
| created | integer | 本次请求创建时间的 Unix 时间戳(秒)。 |
| data | array | 输出图像的信息,包括图像下载的 URL 或 Base64。<br/>• 当指定返回生成图像的格式为 url 时,则相应参数的子字段为 url;<br/>• 当指定返回生成图像的格式为 b64_json 时,则相应参数的子字段为 b64_json。<br/>注意:链接将在生成后 7 天内失效,请务必及时保存图像。 |
| error | Object | 错误信息对象 |
| error.code | string | 错误码 |
| error.message | string | 错误提示信息 |
| error.param | string | 请求 id |
示例#
OPENAI 兼容接口#
POST https://hk.hyucloud.com/v1/images/generations
同步请求#
curl --location 'https://hk.hyucloud.com/v1/images/generations' \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "stepfun-ai/step1x-edit",
"prompt": "Convert to quick pencil sketch",
"image": "data:image/png;base64,{image_base64_string}",
"negative_prompt": "blurry, low quality"
}'import os
from openai import OpenAI
client = OpenAI(
base_url=os.getenv("BASE_URL", "https://hk.hyucloud.com/v1"),
api_key=os.getenv("API_KEY", "$hyucloud_API_KEY")
)
response = client.images.generate(
model="stepfun-ai/step1x-edit",
prompt="Convert to quick pencil sketch",
extra_body={
"image": "data:image/png;base64,{image_base64_string}",
"negative_prompt": "blurry, low quality"
}
)
print(response.data[0].url)响应#
{
"created": 1750667997,
"data": [
{
"url": "https://xxxxx/xxxx.png",
"b64_json": "data:image/png;base64,{image_base64_string}"
}
],
"usage": {
"input_tokens_details": {}
}
}{
"error": {
"message": "error_message",
"type": "error_type",
"param": "request_id",
"code": "error_code"
}
}{/* TODO:异步请求
异步请求#
---
# Qwen/Qwen-Image-Edit API
本文介绍 `Qwen/Qwen-Image-Edit` 模型调用 API 的输入输出参数,供您使用接口时查阅字段含义。
---
## 请求参数
### 请求体
| 字段名 | 类型 | 是否必须 | 默认值 | 描述 |
| ------ | ------ | -------- | ------ | ------------------------------------------------------------------------------------------------ |
| prompt | string | 必须 | - | 提示词 |
| model | string | 必须 | - | 本次请求使用的模型名称,此处为 `Qwen/Qwen-Image-Edit`。 |
| image | string | 必须 | - | base64 数据或图片链接 `http://xxx` |
| seed | int | 可选 | -1 | 随机数种子,用于控制模型生成内容的随机性。如果希望生成内容保持一致,可以使用相同的 seed 参数值。 |
| size | string | 可选 | `1664x928` | 生成图像的尺寸(宽x高)。默认 `1664x928`,可选值及对应比例:`1664x928`(16:9)、`1472x1104`(4:3)、`1328x1328`(1:1)、`1104x1472`(3:4)、`928x1664`(9:16) |
## 响应参数
| 字段名 | 类型 | 描述 |
| ------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| created | `integer` | 本次请求创建时间的 Unix 时间戳(秒)。 |
| data | `array` | 输出图像的信息,包括图像下载的 URL 或 Base64。<br/>• 当指定返回生成图像的格式为 url 时,则相应参数的子字段为 url;<br/>• 当指定返回生成图像的格式为 b64_json 时,则相应参数的子字段为 b64_json。<br/>注意:链接将在生成后 7 天内失效,请务必及时保存图像。 |
| error | `Object` | 错误信息对象 |
| error.code | `string` | 错误码 |
| error.message | `string` | 错误提示信息 |
| error.param | `string` | 请求 id |
## 示例
### OPENAI 兼容接口
`POST https://hk.hyucloud.com/v1/images/generations`
#### 同步请求
curl --location 'https://hk.hyucloud.com/v1/images/generations' \ --header "Authorization: Bearer $hyucloud_API_KEY" \ --header 'Content-Type: application/json' \ --data '{ "model": "Qwen/Qwen-Image-Edit", "prompt": "Convert to quick pencil sketch", "image": "data:image/png;base64,{image_base64_string}", "size": "1024x1024" }'
import os from openai import OpenAI
client = OpenAI( base_url=os.getenv("BASE_URL", "https://hk.hyucloud.com/v1"), api_key=os.getenv("API_KEY", "$hyucloud_API_KEY") )
response = client.images.generate( model="Qwen/Qwen-Image-Edit", prompt="Convert to quick pencil sketch", extra_body={ "image": "data:image/png;base64,{image_base64_string}", "size": "1024x1024" } )
print(response.data[0].url)
### 响应
{ "created": 1750667997, "data": [ { "url": "https://xxxxx/xxxx.png", "b64_json": "data:image/png;base64,{image_base64_string}" } ], "usage": { "input_tokens_details": {} } }
{ "error": { "message": "error_message", "type": "error_type", "param": "request_id", "code": "error_code" } }
{/*
TODO:异步请求
### 异步请求
Qwen/Qwen-Image API#
本文介绍 Qwen/Qwen-Image 模型调用 API 的输入输出参数,供您使用接口时查阅字段含义。
请求参数#
请求体#
| 字段名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
| prompt | string | 必须 | - | 提示词 |
| model | string | 必须 | - | 本次请求使用的模型名称,此处为 Qwen/Qwen-Image。 |
| seed | int | 可选 | -1 | 随机数种子,用于控制模型生成内容的随机性。如果希望生成内容保持一致,可以使用相同的 seed 参数值。 |
| size | string | 可选 | 1664x928 | 生成图像的尺寸(宽x高)。默认 1664x928,可选值及对应比例:1664x928(16:9)、1472x1104(4:3)、1328x1328(1:1)、1104x1472(3:4)、928x1664(9:16) |
响应参数#
| 字段名 | 类型 | 描述 |
|---|---|---|
| created | integer | 本次请求创建时间的 Unix 时间戳(秒)。 |
| data | array | 输出图像的信息,包括图像下载的 URL 或 Base64。<br/>• 当指定返回生成图像的格式为 url 时,则相应参数的子字段为 url;<br/>• 当指定返回生成图像的格式为 b64_json 时,则相应参数的子字段为 b64_json。<br/>注意:链接将在生成后 7 天内失效,请务必及时保存图像。 |
| error | Object | 错误信息对象 |
| error.code | string | 错误码 |
| error.message | string | 错误提示信息 |
| error.param | string | 请求 id |
示例#
OPENAI 兼容接口#
POST https://hk.hyucloud.com/v1/images/generations
同步请求#
curl --location 'https://hk.hyucloud.com/v1/images/generations' \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "Qwen/Qwen-Image",
"prompt": "Convert to quick pencil sketch",
"size": "1024x1024"
}'import os
from openai import OpenAI
client = OpenAI(
base_url=os.getenv("BASE_URL", "https://hk.hyucloud.com/v1"),
api_key=os.getenv("API_KEY", "$hyucloud_API_KEY")
)
response = client.images.generate(
model="Qwen/Qwen-Image",
prompt="Convert to quick pencil sketch",
size="1024x1024"
)
print(response.data[0].url)响应#
{
"created": 1750667997,
"data": [
{
"url": "https://xxxxx/xxxx.png",
"b64_json": "data:image/png;base64,{image_base64_string}"
}
],
"usage": {
"input_tokens_details": {}
}
}{
"error": {
"message": "error_message",
"type": "error_type",
"param": "request_id",
"code": "error_code"
}
}{/* TODO:异步请求
异步请求#
---
# gpt-image-1 API
本文介绍 `gpt-image-1` 模型调用 API 的输入输出参数,供您使用接口时查阅字段含义。
---
## 请求参数
### 请求体
| 字段名 | 类型 | 是否必须 | 默认值 | 描述 |
| ------------------- | ------ | -------- | ------------- | -------------------------------------------------------------------------------------------------------------------------- |
| prompt | string | 必须 | - | 提示词 |
| model | string | 必须 | - | 本次请求使用的模型名称,此处为 `gpt-image-1`。 |
| n | int | 可选 | 1 | 生成图片数量,取值范围为 1~4 |
| size | string | 可选 | "1024x1024" | 分辨率。GPT‑image‑1 支持 `1024x1024`、`1024x1536`、`1536x1024`。 |
| quality | string | 可选 | - | 图片质量,支持 `low`、`medium`、`high`;质量越高耗时越长。 |
| output_format | string | 可选 | "png" | 输出图片格式,支持 `png`、`jpeg`。 |
| output_compression | int | 可选 | 100 | 图片压缩强度,取值 0~100;`0` 为不压缩,`100` 为最大压缩。 |
## 响应参数
| 字段名 | 类型 | 描述 |
| ------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| created | `integer` | 本次请求创建时间的 Unix 时间戳(秒)。 |
| data | `array` | 输出图像的信息,包括图像下载的 URL 或 Base64,gpt-image-1模型返回的是base64数据。<br/>• 当指定返回生成图像的格式为 url 时,则相应参数的子字段为 url;<br/>• 当指定返回生成图像的格式为 b64_json 时,则相应参数的子字段为 b64_json。<br/>注意:链接将在生成后 7 天内失效,请务必及时保存图像。 |
| error | `Object` | 错误信息对象 |
| error.code | `string` | 错误码 |
| error.message | `string` | 错误提示信息 |
| error.param | `string` | 请求 id |
## 示例
### OPENAI 兼容接口
`POST https://hk.hyucloud.com/v1/images/generations`
#### 同步请求
#### curl
curl --location 'https://hk.hyucloud.com/v1/images/generations' \ --header "Authorization: Bearer $hyucloud_API_KEY" \ --header 'Content-Type: application/json' \ --data '{ "model": "gpt-image-1", "prompt": "a beautiful flower", "size": "1024x1024", "quality": "high", "output_format": "png", "output_compression": 100 }'
#### python
import os, base64 from openai import OpenAI
client = OpenAI( base_url="https://hk.hyucloud.com/v1", api_key=os.getenv("hyucloud_API_KEY", "YOUR_API_KEY") )
res = client.images.generate( model="gpt-image-1", prompt="a beautiful flower", size="1024x1024", quality="high", )
gpt-image-1 返回 base64 数据#
image_b64 = res.data[0].b64_json raw = image_b64.split(",")[-1] if image_b64.startswith("data:") else image_b64 with open("image.png", "wb") as f: f.write(base64.b64decode(raw)) print("Saved to image.png")
### 图片编辑
`POST https://hk.hyucloud.com/v1/images/edits`
使用 multipart/form-data 传参,至少包含待编辑图片 `image`(可选 `mask`)、以及 `model`、`prompt` 等字段;其余参数如 `size`、`quality`、`output_format`、`output_compression` 与生成接口一致。
#### curl
curl --location 'https://hk.hyucloud.com/v1/images/edits' \ --header "Authorization: Bearer $hyucloud_API_KEY" \ -F "image=@/path/to/your/image.png" \ -F "mask=@/path/to/your/mask.png" \ -F "model=gpt-image-1" \ -F "prompt=Add a beach ball in the center" \ -F "size=1024x1024" \ -F "n=1" \ -F "quality=high" \ -F "output_format=png" \ -F "output_compression=100"
#### python
import os, base64, requests
url = "https://hk.hyucloud.com/v1/images/edits" headers = {"Authorization": f"Bearer {os.getenv('hyucloud_API_KEY', '$hyucloud_API_KEY')}"}
files = { "image": ("beach.png", open("beach.png", "rb"), "image/png"), # 可选:提供 mask 来限定编辑区域 # "mask": ("mask.png", open("mask.png", "rb"), "image/png"), }
data = { "model": "gpt-image-1", "prompt": "Add a beach ball in the center", "size": "1024x1024", "n": "1", "quality": "high", "output_format": "png", "output_compression": "100", }
r = requests.post(url, headers=headers, files=files, data=data) r.raise_for_status() resp = r.json()
image_b64 = resp["data"][0]["b64_json"] raw = image_b64.split(",")[-1] if image_b64.startswith("data:") else image_b64 with open("edit.png", "wb") as f: f.write(base64.b64decode(raw)) print("Saved to edit.png")
### 响应
{ "created": 1750667997, "data": [ { "b64_json": "{image_base64_string}" } ], "usage": { "total_tokens": 4169, "input_tokens": 9, "output_tokens": 4160, "input_tokens_details": { "text_tokens": 9 } } }
{ "error": { "message": "error_message", "type": "error_type", "param": "request_id", "code": "error_code" } }
{/*
TODO:异步请求
### 异步请求
gpt-image-1-mini API#
本文介绍 gpt-image-1-mini 模型调用 API 的输入输出参数,供您使用接口时查阅字段含义。
请求参数#
请求体#
| 字段名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
| prompt | string | 必须 | - | 提示词 |
| model | string | 必须 | - | 本次请求使用的模型名称,此处为 gpt-image-1-mini。 |
| n | int | 可选 | 1 | 生成图片数量,取值范围为 1~10 |
| size | string | 可选 | 1024x1536 | 分辨率。支持 1024x1024、1024x1536、1536x1024。 |
| quality | string | 可选 | - | 图片质量,支持 low、medium、high;质量越高耗时越长。 |
| background | string | 可选 | auto | 背景透明度,支持 transparent(透明)、opaque(不透明)、auto(自动)。设为 transparent 时需配合 output_format=png。 |
| moderation | string | 可选 | auto | 内容审核级别,支持 auto(默认)、low(宽松)。 |
| output_format | string | 可选 | png | 输出图片格式,支持 png、jpeg。 |
| output_compression | int | 可选 | - | 图片压缩强度,取值 0~100;0 为不压缩,100 为最大压缩。仅对 jpeg 格式生效。 |
| user | string | 可选 | - | 终端用户标识符,透传给上游用于滥用检测,不影响生成结果。 |
响应参数#
| 字段名 | 类型 | 描述 |
|---|---|---|
| created | integer | 本次请求创建时间的 Unix 时间戳(秒)。 |
| background | string | 本次生成图片的背景类型,与请求参数 background 对应,如 opaque、transparent。 |
| output_format | string | 本次生成图片的格式,与请求参数 output_format 对应,如 png、jpeg。 |
| quality | string | 本次生成图片的质量,与请求参数 quality 对应,如 low、medium、high。 |
| size | string | 本次生成图片的分辨率,与请求参数 size 对应,如 1024x1024。 |
| data | array | 输出图像的信息,gpt-image-1-mini 模型返回的是 base64 数据。<br/>• b64_json:base64 编码的图片数据,解码后即为原始图片文件。 |
| usage | object | 本次请求的 token 用量。 |
| usage.input_tokens | integer | 输入消耗的 token 总数。 |
| usage.input_tokens_details.text_tokens | integer | 输入中文字 prompt 消耗的 token 数。 |
| usage.input_tokens_details.image_tokens | integer | 输入中图片消耗的 token 数(图片编辑接口传入图片时有值,纯文字生图时为 0)。 |
| usage.output_tokens | integer | 输出消耗的 token 总数。 |
| usage.output_tokens_details.image_tokens | integer | 输出图片消耗的 token 数。 |
| usage.total_tokens | integer | 本次请求消耗的 token 总数。 |
| error | Object | 错误信息对象 |
| error.code | string | 错误码 |
| error.message | string | 错误提示信息 |
| error.param | string | 请求 id |
示例#
OPENAI 兼容接口#
POST https://hk.hyucloud.com/v1/images/generations
同步请求#
curl#
curl --location 'https://hk.hyucloud.com/v1/images/generations' \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-image-1-mini",
"prompt": "a beautiful flower",
"size": "1024x1024",
"quality": "high",
"output_format": "png",
"output_compression": 100
}'python#
import os, base64
from openai import OpenAI
client = OpenAI(
base_url="https://hk.hyucloud.com/v1",
api_key=os.getenv("hyucloud_API_KEY", "YOUR_API_KEY")
)
res = client.images.generate(
model="gpt-image-1-mini",
prompt="a beautiful flower",
size="1024x1024",
quality="high",
)
# gpt-image-1-mini 返回 base64 数据
image_b64 = res.data[0].b64_json
raw = image_b64.split(",")[-1] if image_b64.startswith("data:") else image_b64
with open("image.png", "wb") as f:
f.write(base64.b64decode(raw))
print("Saved to image.png")图片编辑#
POST https://hk.hyucloud.com/v1/images/edits
使用 multipart/form-data 传参,至少包含待编辑图片 image(可选 mask)、以及 model、prompt 等字段;其余参数如 size、quality、output_format、output_compression 与生成接口一致。
mask 说明:mask 为可选参数,用于指定图片中需要编辑的区域(透明区域=需要编辑,不透明区域=保留)。使用时需满足以下两个条件:
1. 必须为 PNG 格式且包含 alpha 通道(RGBA 模式),普通 RGB 的 PNG 或 JPEG 不支持;
2. 尺寸必须与原图
image完全一致。
curl#
curl --location 'https://hk.hyucloud.com/v1/images/edits' \
--header "Authorization: Bearer $hyucloud_API_KEY" \
-F "image=@/path/to/your/image.png" \
-F "mask=@/path/to/your/mask.png" \
-F "model=gpt-image-1-mini" \
-F "prompt=Add a beach ball in the center" \
-F "size=1024x1024" \
-F "n=1" \
-F "quality=high" \
-F "output_format=png" \
-F "output_compression=100"python#
import os, base64, requests
url = "https://hk.hyucloud.com/v1/images/edits"
headers = {"Authorization": f"Bearer {os.getenv('hyucloud_API_KEY', '$hyucloud_API_KEY')}"}
files = {
"image": ("beach.png", open("beach.png", "rb"), "image/png"),
# 可选:提供 mask 来限定编辑区域
# "mask": ("mask.png", open("mask.png", "rb"), "image/png"),
}
data = {
"model": "gpt-image-1-mini",
"prompt": "Add a beach ball in the center",
"size": "1024x1024",
"n": "1",
"quality": "high",
"output_format": "png",
"output_compression": "100",
}
r = requests.post(url, headers=headers, files=files, data=data)
r.raise_for_status()
resp = r.json()
image_b64 = resp["data"][0]["b64_json"]
raw = image_b64.split(",")[-1] if image_b64.startswith("data:") else image_b64
with open("edit.png", "wb") as f:
f.write(base64.b64decode(raw))
print("Saved to edit.png")响应#
{
"created": 1748484857,
"background": "opaque",
"output_format": "png",
"quality": "low",
"size": "1024x1024",
"data": [
{
"b64_json": "{image_base64_string}"
}
],
"usage": {
"total_tokens": 280,
"input_tokens": 8,
"output_tokens": 272,
"input_tokens_details": {
"image_tokens": 0,
"text_tokens": 8
},
"output_tokens_details": {
"image_tokens": 272,
"text_tokens": 0
}
}
}{
"error": {
"message": "error_message",
"type": "error_type",
"param": "request_id",
"code": "error_code"
}
}gpt-image-1.5 API#
本文介绍 gpt-image-1.5 模型调用 API 的输入输出参数,供您使用接口时查阅字段含义。
请求参数#
请求体#
| 字段名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
| prompt | string | 必须 | - | 提示词 |
| model | string | 必须 | - | 本次请求使用的模型名称,此处为 gpt-image-1.5。 |
| n | int | 可选 | 1 | 生成图片数量,取值范围为 1~4 |
| size | string | 可选 | "1024x1024" | 分辨率。GPT‑image‑1.5 支持 1024x1024、1024x1536、1536x1024。 |
| quality | string | 可选 | - | 图片质量,支持 low、medium、high;质量越高耗时越长。相比 1.0 版本,生成速度提升 4 倍,成本降低 20%。 |
| output_format | string | 可选 | "png" | 输出图片格式,支持 png、jpeg、webp。 |
| output_compression | int | 可选 | 100 | 图片压缩强度,取值 0~100;0 为不压缩,100 为最大压缩。 |
响应参数#
| 字段名 | 类型 | 描述 |
|---|---|---|
| created | integer | 本次请求创建时间的 Unix 时间戳(秒)。 |
| data | array | 输出图像的信息,包括图像下载的 URL 或 Base64,gpt-image-1.5模型返回的是base64数据。<br/>• 当指定返回生成图像的格式为 url 时,则相应参数的子字段为 url;<br/>• 当指定返回生成图像的格式为 b64_json 时,则相应参数的子字段为 b64_json。<br/>注意:链接将在生成后 7 天内失效,请务必及时保存图像。 |
| error | Object | 错误信息对象 |
| error.code | string | 错误码 |
| error.message | string | 错误提示信息 |
| error.param | string | 请求 id |
示例#
OPENAI 兼容接口#
POST https://hk.hyucloud.com/v1/images/generations
同步请求#
curl#
curl --location 'https://hk.hyucloud.com/v1/images/generations' \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-image-1.5",
"prompt": "a beautiful flower",
"size": "1024x1024",
"quality": "high",
"output_format": "png",
"output_compression": 100
}'python#
import os, base64
from openai import OpenAI
client = OpenAI(
base_url="https://hk.hyucloud.com/v1",
api_key=os.getenv("hyucloud_API_KEY", "YOUR_API_KEY")
)
res = client.images.generate(
model="gpt-image-1.5",
prompt="a beautiful flower",
size="1024x1024",
quality="high",
)
# gpt-image-1.5 返回 base64 数据
image_b64 = res.data[0].b64_json
raw = image_b64.split(",")[-1] if image_b64.startswith("data:") else image_b64
with open("image.png", "wb") as f:
f.write(base64.b64decode(raw))
print("Saved to image.png")图片编辑#
POST https://hk.hyucloud.com/v1/images/edits
gpt-image-1.5 支持更精确的局部编辑功能,能够针对特定区域进行修改,同时保持其他区域的构图、色调和人物外观一致,避免整体重绘。
使用 multipart/form-data 传参,至少包含待编辑图片 image(可选 mask)、以及 model、prompt 等字段;其余参数如 size、quality、output_format、output_compression 与生成接口一致。
curl#
curl --location 'https://hk.hyucloud.com/v1/images/edits' \
--header "Authorization: Bearer $hyucloud_API_KEY" \
-F "image=@/path/to/your/image.png" \
-F "mask=@/path/to/your/mask.png" \
-F "model=gpt-image-1.5" \
-F "prompt=Add a beach ball in the center" \
-F "size=1024x1024" \
-F "n=1" \
-F "quality=high" \
-F "output_format=png" \
-F "output_compression=100"python#
import os, base64, requests
url = "https://hk.hyucloud.com/v1/images/edits"
headers = {"Authorization": f"Bearer {os.getenv('hyucloud_API_KEY', '$hyucloud_API_KEY')}"}
files = {
"image": ("beach.png", open("beach.png", "rb"), "image/png"),
# 可选:提供 mask 来限定编辑区域
# "mask": ("mask.png", open("mask.png", "rb"), "image/png"),
}
data = {
"model": "gpt-image-1.5",
"prompt": "Add a beach ball in the center",
"size": "1024x1024",
"n": "1",
"quality": "high",
"output_format": "png",
"output_compression": "100",
}
r = requests.post(url, headers=headers, files=files, data=data)
r.raise_for_status()
resp = r.json()
image_b64 = resp["data"][0]["b64_json"]
raw = image_b64.split(",")[-1] if image_b64.startswith("data:") else image_b64
with open("edit.png", "wb") as f:
f.write(base64.b64decode(raw))
print("Saved to edit.png")响应#
{
"created": 1750667997,
"data":
[
{
"b64_json": "{image_base64_string}"
}
],
"usage":
{
"total_tokens": 4169,
"input_tokens": 9,
"output_tokens": 4160,
"input_tokens_details":
{
"text_tokens": 9
}
}
}{
"error": {
"message": "error_message",
"type": "error_type",
"param": "request_id",
"code": "error_code"
}
}gpt-image-2 API#
本文介绍 gpt-image-2 模型调用 API 的输入输出参数,供您使用接口时查阅字段含义。
请求参数#
请求体#
| 字段名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
| prompt | string | 必须 | - | 提示词 |
| model | string | 必须 | - | 本次请求使用的模型名称,此处为 gpt-image-2。 |
| n | int | 可选 | 1 | 生成图片数量,取值范围为 1~10 |
| size | string | 可选 | "auto" | 分辨率。GPT‑image‑2 支持任意分辨率:宽高都必须是 16 像素的倍数;最高支持 3840 像素(4K);宽高比最高支持 3:1;像素总数范围为 655360–8294400。推荐: 1024x1024、1024x1536、1536x1024、2048x2048、2048x1152、2160x3840。 |
| quality | string | 可选 | - | 图片质量,支持 low、medium、high;质量越高耗时越长。 |
| output_format | string | 可选 | "png" | 输出图片格式,支持 png、jpeg。 |
| output_compression | int | 可选 | 100 | 图片压缩强度,取值 0~100;0 为不压缩,100 为最大压缩。 |
响应参数#
| 字段名 | 类型 | 描述 |
|---|---|---|
| created | integer | 本次请求创建时间的 Unix 时间戳(秒)。 |
| data | array | 输出图像的信息,包括图像下载的 URL 或 Base64,gpt-image-2模型返回的是base64数据。<br>• 当指定返回生成图像的格式为 url 时,则相应参数的子字段为 url;<br>• 当指定返回生成图像的格式为 b64_json 时,则相应参数的子字段为 b64_json。<br>注意:链接将在生成后 7 天内失效,请务必及时保存图像。 |
| error | Object | 错误信息对象 |
| error.code | string | 错误码 |
| error.message | string | 错误提示信息 |
| error.param | string | 请求 id |
示例#
OPENAI 兼容接口#
POST https://hk.hyucloud.com/v1/images/generations
同步请求#
<!-- tabs:start -->
curl #
curl --location 'https://hk.hyucloud.com/v1/images/generations' \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-image-2",
"prompt": "a beautiful flower",
"size": "1024x1024",
"quality": "high",
"output_format": "png",
"output_compression": 100
}'python #
import os, base64
from openai import OpenAI
client = OpenAI(
base_url="https://hk.hyucloud.com/v1",
api_key=os.getenv("hyucloud_API_KEY", "YOUR_API_KEY")
)
res = client.images.generate(
model="gpt-image-2",
prompt="a beautiful flower",
size="1024x1024",
quality="high",
)
# gpt-image-2 返回 base64 数据
image_b64 = res.data[0].b64_json
raw = image_b64.split(",")[-1] if image_b64.startswith("data:") else image_b64
with open("image.png", "wb") as f:
f.write(base64.b64decode(raw))
print("Saved to image.png")<!-- tabs:end -->
图片编辑#
POST https://hk.hyucloud.com/v1/images/edits
gpt-image-2 支持两种编辑模式:
- 局部编辑:针对单张图片的特定区域进行修改,同时保持其他区域的构图、色调和人物外观一致,避免整体重绘。可配合
mask字段限定编辑区域。 - 多图合成:传入多张参考图(通过重复字段
image[]),模型将所有图片的内容融合为一张新图,适合礼盒组合、产品拼图、场景合成等场景。
使用 multipart/form-data 传参,至少包含待编辑图片 image(单图)或 image[](多图,可重复),以及 model、prompt 等字段;其余参数如 size、quality、output_format、output_compression 与生成接口一致。
<!-- tabs:start -->
curl #
curl --location 'https://hk.hyucloud.com/v1/images/edits' \
--header "Authorization: Bearer $hyucloud_API_KEY" \
-F "image=@/path/to/your/image.png" \
-F "mask=@/path/to/your/mask.png" \
-F "model=gpt-image-2" \
-F "prompt=Add a beach ball in the center" \
-F "size=1024x1024" \
-F "n=1" \
-F "quality=low" \
-F "output_format=png" \
-F "output_compression=100"python #
import os, base64, requests
url = "https://hk.hyucloud.com/v1/images/edits"
headers = {"Authorization": f"Bearer {os.getenv('hyucloud_API_KEY', '$hyucloud_API_KEY')}"}
files = {
"image": ("beach.png", open("beach.png", "rb"), "image/png"),
# 可选:提供 mask 来限定编辑区域
# "mask": ("mask.png", open("mask.png", "rb"), "image/png"),
}
data = {
"model": "gpt-image-2",
"prompt": "Add a beach ball in the center",
"size": "1024x1024",
"n": "1",
"quality": "high",
"output_format": "png",
"output_compression": "100",
}
r = requests.post(url, headers=headers, files=files, data=data)
r.raise_for_status()
resp = r.json()
image_b64 = resp["data"][0]["b64_json"]
raw = image_b64.split(",")[-1] if image_b64.startswith("data:") else image_b64
with open("edit.png", "wb") as f:
f.write(base64.b64decode(raw))
print("Saved to edit.png")<!-- tabs:end -->
多图合成示例#
将多张产品图合成为一张礼盒展示图,通过重复字段 image[] 传入多张图片:
输入图片(4 张)
| body-lotion.png | bath-bomb.png | incense-kit.png | soap.png |
|---|---|---|---|
| !body-lotion | !bath-bomb | !incense-kit | !soap |
输出图片
<!-- tabs:start -->
curl #
curl --location 'https://hk.hyucloud.com/v1/images/edits' \
--header "Authorization: Bearer $hyucloud_API_KEY" \
-F "model=gpt-image-2" \
-F "image[]=@./body-lotion.png" \
-F "image[]=@./bath-bomb.png" \
-F "image[]=@./incense-kit.png" \
-F "image[]=@./soap.png" \
-F "prompt=a beautiful gift basket containing all these products arranged elegantly"python #
import os, base64, requests
url = "https://hk.hyucloud.com/v1/images/edits"
headers = {"Authorization": f"Bearer {os.getenv('hyucloud_API_KEY', '$hyucloud_API_KEY')}"}
image_paths = [
"body-lotion.png",
"bath-bomb.png",
"incense-kit.png",
"soap.png",
]
# image[] 重复字段需用列表形式传入
files = [("image[]", (p, open(p, "rb"), "image/png")) for p in image_paths]
data = {
"model": "gpt-image-2",
"prompt": "a beautiful gift basket containing all these products arranged elegantly",
}
r = requests.post(url, headers=headers, files=files, data=data)
r.raise_for_status()
resp = r.json()
image_b64 = resp["data"][0]["b64_json"]
with open("output.png", "wb") as f:
f.write(base64.b64decode(image_b64))
print("Saved to output.png")<!-- tabs:end -->
注意:多图合成时无需传
mask;输出尺寸由模型自动决定,不一定为正方形。
响应#
{
"created": 1750667997,
"data":
[
{
"b64_json": "{image_base64_string}"
}
],
"usage":
{
"total_tokens": 4169,
"input_tokens": 9,
"output_tokens": 4160,
"input_tokens_details":
{
"text_tokens": 9
}
}
}{
"error": {
"message": "error_message",
"type": "error_type",
"param": "request_id",
"code": "error_code"
}
}doubao-seedream API#
本文介绍 doubao-seedream-4.5,doubao-seedream-5-0-260128 模型调用 API 的输入输出参数,供您使用接口时查阅字段含义。
请求参数#
请求体#
| 字段名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
| model | string | 必须 | - | 本次请求使用的模型名称,此处可填:<br/>doubao-seedream-4.5<br/>doubao-seedream-5-0-260128 |
| prompt | string | 必须 | - | 用于生成图像的提示词,支持中英文,建议不超过300个汉字或600个英文单词。 |
| images | array(string) | 可选 | - | 输入的图片信息,支持 URL 或 Base64 编码。支持单图或多图输入,最多支持传入 14 张参考图。<br/>图片URL:请确保图片URL可被访问。<br/>Base64编码:请遵循此格式data:image/<图片格式>;base64,<Base64编码>。注意 <图片格式> 需小写,如 data:image/png;base64,<base64_image>。 |
| size | string | 可选 | - | 指定生成图像的尺寸信息,支持以下两种方式,不可混用。<br/>方式 1 : 指定生成图像的分辨率,并在prompt中用自然语言描述图片宽高比、图片形状或图片用途,最终由模型判断生成图片的大小。可选值:2K、4K。<br/>方式2:指定生成图像的宽高像素值,默认值:2048x2048,总像素取值范围:[2560x1440=3686400, 4096x4096=16777216] ,宽高比取值范围:[1/16, 16],推荐:2048x2048,2304x1728,1728x2304,2560x1440,1440x2560,2496x1664,1664x2496,3024x1296 |
| sequential_image_generation | string | 可选 | disabled | 控制是否关闭组图功能。<br/>auto:自动判断模式,模型会根据用户提供的提示词自主判断是否返回组图以及组图包含的图片数量。<br/>disabled:关闭组图功能,模型只会生成一张图。 |
| sequential_image_generation<br/>_options | object | 可选 | - | 组图功能的配置。仅当 sequential_image_generation 为 auto 时生效。 |
| sequential_image_generation<br/>_options.max_images | integer | 可选 | - | 指定本次请求,最多可生成的图片数量。取值范围: [1, 15] |
| stream | Boolean | 可选 | false | 控制是否开启流式输出模式。<br/>false:非流式输出模式,等待所有图片全部生成结束后再一次性返回所有信息。<br/>true:流式输出模式,即时返回每张图片输出的结果。在生成单图和组图的场景下,流式输出模式均生效。 |
| response_format | string | 可选 | url | 指定生成图像的返回格式。<br/>生成的图片为 jpeg 格式,支持以下两种返回方式:<br/>url:返回图片下载链接;链接在图片生成后24小时内有效,请及时下载图片。<br/>b64_json:以 Base64 编码字符串的 JSON 格式返回图像数据。 |
| watermark | Boolean | 可选 | true | 是否在生成的图片中添加水印。<br/>false:不添加水印。<br/>true:在图片右下角添加“AI生成”字样的水印标识。 |
| optimize_prompt_options | object | 可选 | - | 提示词优化功能的配置。 |
| tools | array[object] | 可选 | - | 配置模型要调用的工具。仅 doubao-seedream-5-0-260128 支持该参数 |
| tools.type | string | 可选 | web_search | web_search:联网搜索功能。<br/>开启联网搜索后,模型会根据用户的提示词自主判断是否搜索互联网内容(如商品、天气等),提升生成图片的时效性,但也会增加一定的时延。 |
| output_format | string | 可选 | jpeg | 指定生成图像的文件格式。仅 doubao-seedream-5-0-260128 支持该参数。<br/>可选值:<br/>png<br/>jpeg |
非stream响应参数#
| 字段名 | 类型 | 描述 |
|---|---|---|
| model | string | 本次请求使用的模型 ID (模型名称-版本)。 |
| created | integer | 本次请求创建时间的 Unix 时间戳(秒)。 |
| data | array | 输出图像的信息。可能是图像信息,也可能是错误信息。 |
| data.url | string | 图片的 url 信息,当 response_format 指定为 url 时返回。该链接将在生成后 24 小时内失效,请务必及时保存图像。 |
| data.b64_json | string | 图片的 base64 信息,当 response_format 指定为 b64_json 时返回。 |
| data.size | string | 图像的宽高像素值,格式 <宽像素>x<高像素>,如2048×2048。 |
| data.error | object | 错误信息结构体。 |
| data.error.code | string | 某张图片生成错误的错误码。 |
| data.error.message | string | 某张图片生成错误的提示信息。 |
| usage | object | 本次请求的用量信息。 |
| usage.generated_images | integer | 模型成功生成的图片张数,不包含生成失败的图片。仅对成功生成图片按张数进行计费。 |
| usage.output_tokens | integer | 模型生成的图片花费的 token 数量。<br/>计算逻辑为:计算 sum(图片长*图片宽)/256 ,然后取整。 |
| usage.total_tokens | integer | 本次请求消耗的总 token 数量。<br/>当前不计算输入 token,故与 output_tokens 值一致。 |
| error | object | 本次请求,如发生错误,对应的错误信息。 |
| error.code | string | 错误码。 |
| error.message | string | 错误提示信息。 |
stream响应参数#
当您调用图片生成API 并将 stream 设置为 true 时,服务器会在生成响应的过程中,通过 Server-Sent Events(SSE)实时向客户端推送事件。以下为服务器会推送的各类事件。
image_generation.partial_succeeded:#
在流式响应模式下,当任意图片生成成功时返回该事件。
| 字段名 | 类型 | 描述 |
|---|---|---|
| type | string | 在流式响应模式下,当任意图片生成成功时返回该事件。这里应为:image_generation.partial_succeeded。 |
| model | string | 本次请求使用的模型 ID。 |
| created | integer | 本次请求创建时间的 Unix 时间戳(秒)。 |
| image_index | integer | 本次生图请求中,本次事件对应图片在请求中的序号。从 0开始累加,不管生图是否成功,即在 image_generation.partial_succeeded、image_generation.partial_failed 事件,均会自动累加 1。 |
| url | string | 本次事件对应图片的下载 URL。当请求中配置字段 response_format 为 url 时返回。 |
| b64_json | string | 本次事件对应图片的 Base64 编码。当请求中配置字段 response_format 为 b64_json 时返回。 |
| size | string | 图像的宽高像素值,格式<宽像素>×<高像素>,如 2048×2048。 |
image_generation.partial_failed:#
在流式返回模式下,当任意图片生成失败时返回该事件。
| 字段名 | 类型 | 描述 |
|---|---|---|
| type | string | 此处应为 image_generation.partial_failed |
| model | string | 本次请求使用的模型 ID。 |
| created | integer | 本次请求创建时间的 Unix 时间戳(秒)。 |
| image_index | integer | 本次生图请求中,本次事件对应图片在请求中的序号。从 0开始累加,不管图片是否生成成功,即在image_generation.partial_succeeded、image_generation.partial_failed 事件,均会自动累加 1。 |
| error | object | 本次生图请求中,本次事件对应的错误原因。 |
| error.code | string | 错误码。 |
| error.message | string | 错误提示信息。 |
image_generation.completed:#
请求的所有图片(无论成功或失败)均处理完毕后返回,是该流式返回的最后一个响应事件。
| 字段名 | 类型 | 描述 |
|---|---|---|
| type | string | 此处应为 image_generation.completed。 |
| model | string | 本次请求使用的模型 ID。 |
| created | integer | 本次请求创建时间的 Unix 时间戳(秒)。 |
| usage | object | 本次请求的用量信息。 |
| usage.generated_images | integer | 模型成功生成的图片张数,不包含生成失败的图片。仅对成功生成图片按张数进行计费。 |
| usage.output_tokens | integer | 模型生成的图片花费的 token 数量。<br/>计算逻辑为:计算sum(图片长*图片宽)/256 ,然后取整 |
| usage.total_tokens | integer | 本次请求消耗的总 token 数量。当前不计算输入 token,故与 output_tokens 值一致。 |
示例#
OPENAI 兼容接口#
POST https://hk.hyucloud.com/v1/images/generations
curl#
curl --location 'https://hk.hyucloud.com/v1/images/generations' \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedream-4.5",
"prompt": "将图片转换为铅笔素描",
"images": ["https://hk.hyucloud.com/hyucloud-maxcot.jpg"],
"size": "2k",
"watermark": false,
"stream": false,
"response_format":"url"
}'
```
#### ** seedream-5.0联网搜索 **curl --location 'https://hk.hyucloud.com/v1/images/generations' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $hyucloud_API_KEY" \ -d '{ "model": "doubao-seedream-5-0-260128", "prompt": "制作一张上海未来5日的天气预报图,采用现代扁平化插画风格,清晰展示每日天气、温度和穿搭建议。", "size": "2k", "tools": [ { "type": "web_search" } ], "output_format":"jpeg", "response_format": "url", "watermark": false }' ```
python#
import os
from openai import OpenAI
client = OpenAI(
base_url="https://hk.hyucloud.com/v1",
api_key=os.getenv("hyucloud_API_KEY", "YOUR_API_KEY")
)
response = client.images.generate(
model="doubao-seedream-4.5",
prompt="Convert to quick pencil sketch",
extra_body={
"images":["https://hk.hyucloud.com/hyucloud-maxcot.jpg"],
"size":"2K",
"response_format":"url",
"watermark":False
}
)
print(response.data[0].url)响应#
{
"model": "doubao-seedream-4-5-251128",
"created": 1767939740,
"data": [{
"url": "https://xxxxxx",
"size": "2048x2048"
}],
"usage": {
"generated_images": 1,
"output_tokens": 16384,
"total_tokens": 16384
}
}Midjourney API#
本文介绍通过 環宇互聯 调用 Midjourney 的完整流程,包含文生图、放大、变体和重新生成四个操作。
模型列表#
| 模型名 | 功能 |
|---|---|
midjourney-fast-imagine | 文生图,输入提示词,返回 4 张图的拼合网格图 |
midjourney-fast-upscale | 放大单张图(U1~U4 及后续二次操作) |
midjourney-fast-variation | 变体,基于某张图重新生成 4 张(V1~V4) |
midjourney-fast-reroll | 重新生成全部 4 张(🔄) |
服务地址#
| 接口 | 方法 | 地址 |
|---|---|---|
| 提交任务 | POST | https://hk.hyucloud.com/v1/tasks/submit |
| 查询状态 | GET | https://hk.hyucloud.com/v1/tasks/status |
认证方式:Authorization: Bearer <your-api-key>
工作流#
所有 Midjourney 任务均为异步执行:
1. POST /v1/tasks/submit 提交任务,得到 task_id 2. 轮询 GET /v1/tasks/status?task_id=<task_id>,直到 task_status 为 Success 或 Failure
接口详情#
提交任务#
POST https://hk.hyucloud.com/v1/tasks/submit
请求体#
{
"model": "<模型名>",
"input": {
"prompt": "<提示词,仅 imagine 需要>"
},
"parameters": {
"mj_task_id": "<上一步操作的 task_id,upscale / variation / reroll 必填>",
"mj_custom_id": "<buttons 中的 custom_id,upscale / variation / reroll 必填>"
}
}参数说明#
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
model | string | 必须 | 模型名,见上方模型列表 |
input.prompt | string | imagine 必须 | 文生图提示词 |
parameters.mj_task_id | string | upscale / variation / reroll 必须 | 关联的上一步任务 ID |
parameters.mj_custom_id | string | upscale / variation / reroll 必须 | 来自上一步查询结果 buttons 中的 custom_id |
响应#
{
"output": {
"task_id": "1775203239196609"
},
"request_id": "abc123..."
}查询任务状态#
GET https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
响应#
{
"output": {
"task_id": "1775203239196609",
"task_status": "Success",
"urls": ["https://...图片地址..."],
"submit_time": 1775203239,
"buttons": [
{"custom_id": "MJ::JOB::upsample::1::431a5822-...", "label": "U1"},
{"custom_id": "MJ::JOB::upsample::2::431a5822-...", "label": "U2"},
{"custom_id": "MJ::JOB::upsample::3::431a5822-...", "label": "U3"},
{"custom_id": "MJ::JOB::upsample::4::431a5822-...", "label": "U4"},
{"custom_id": "MJ::JOB::reroll::0::431a5822-...::SOLO", "emoji": "🔄"},
{"custom_id": "MJ::JOB::variation::1::431a5822-...", "label": "V1"},
{"custom_id": "MJ::JOB::variation::2::431a5822-...", "label": "V2"},
{"custom_id": "MJ::JOB::variation::3::431a5822-...", "label": "V3"},
{"custom_id": "MJ::JOB::variation::4::431a5822-...", "label": "V4"}
]
}
}task_status 枚举#
| 值 | 含义 |
|---|---|
Pending | 排队中 |
Running | 生成中 |
Success | 成功 |
Failure | 失败,见 error_message 字段 |
响应字段说明#
| 字段 | 类型 | 说明 |
|---|---|---|
output.task_id | string | 任务 ID |
output.task_status | string | 任务状态,见上方枚举 |
output.urls | array | 图片直链列表。imagine / variation / reroll 返回 1 张网格拼合图;upscale 返回 1 张单图 |
output.submit_time | integer | 提交时间的 Unix 时间戳(秒) |
output.buttons | array | 可继续操作的按钮列表,每项含 custom_id |
完整示例#
Step 1 — 文生图(imagine)#
curl -X POST https://hk.hyucloud.com/v1/tasks/submit \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "midjourney-fast-imagine",
"input": {
"prompt": "a cute cat sitting on a cloud, anime style"
}
}'提交后轮询查询接口,直到 task_status 为 Success:
curl "https://hk.hyucloud.com/v1/tasks/status?task_id=1775203239196609" \
-H "Authorization: Bearer $hyucloud_API_KEY"成功后记录:
urls[0]:4 张图的拼合网格图地址task_id:后续 upscale / variation / reroll 需要buttons:后续操作的custom_id来源
Step 2a — 放大单张(upscale,以 U1 为例)#
从 buttons 中找到 label 为 "U1" 的项,取其 custom_id:
curl -X POST https://hk.hyucloud.com/v1/tasks/submit \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "midjourney-fast-upscale",
"input": {},
"parameters": {
"mj_task_id": "1775203239196609",
"mj_custom_id": "MJ::JOB::upsample::1::431a5822-bfb2-4c55-8fc5-fc101abebd91"
}
}'upscale 成功后同样返回 buttons,包含更多二次操作选项(二次放大、Vary、Zoom、Pan、Animate 等),均可继续通过 midjourney-fast-upscale 模型发起。
Step 2b — 变体(variation,以 V1 为例)#
从 buttons 中找到 label 为 "V1" 的项,取其 custom_id:
curl -X POST https://hk.hyucloud.com/v1/tasks/submit \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "midjourney-fast-variation",
"input": {},
"parameters": {
"mj_task_id": "1775203239196609",
"mj_custom_id": "MJ::JOB::variation::1::431a5822-bfb2-4c55-8fc5-fc101abebd91"
}
}'variation 成功后返回新的 buttons,可继续对新图执行 upscale 等操作。
Step 2c — 重新生成(reroll)#
从 buttons 中找到 emoji 为 "🔄" 的项,取其 custom_id:
curl -X POST https://hk.hyucloud.com/v1/tasks/submit \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "midjourney-fast-reroll",
"input": {},
"parameters": {
"mj_task_id": "1775203239196609",
"mj_custom_id": "MJ::JOB::reroll::0::431a5822-bfb2-4c55-8fc5-fc101abebd91::SOLO"
}
}'OpenAI/Sora2-T2V#
文生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 openai/sora-2/text-to-video |
| input.prompt | string | 是 | 提示词,用于指导视频生成 |
| parameters.size | string | 否 | 生成视频的尺寸。 <br/>可选的分辨率: <br/>- 720x1280<br/>- 1280x720<br/>默认为 720x1280 |
| parameters.duration | int | 否 | 视频生成时长(秒),可选值 4, 8, 12,默认为 4 |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "openai/sora-2/text-to-video",
"input": {
"prompt": "A beautiful girl is dancing"
},
"parameters": {
"size": "720x1280",
"duration": 4
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 任务执行时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 4
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}OpenAI/Sora2-I2V#
图生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 openai/sora-2/image-to-video |
| input.first_frame_url | string | 是 | 视频首帧图片 URL,可为 URL 或 Base64 |
| input.prompt | string | 否 | 提示词,用于指导视频生成 |
| parameters.duration | int | 否 | 视频生成时长(秒),可选值 4, 8, 12,默认为 4 |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "openai/sora-2/image-to-video",
"input": {
"first_frame_url": "https://test2-im.cn-bj.ufileos.com/image/Adobe%20Express%20-%20file.png",
"prompt": "The image is coming to life"
},
"parameters": {
"size": "720x1280",
"duration": 4
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 任务执行时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 4
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}Sora-2#
视频模型,此接口与submit调用方式不同,与openai 官方接口调用方式一致,模型功能无差异。
异步提交任务#
接口#
https://hk.hyucloud.com/v1/videos
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 sora-2 |
| prompt | string | 是 | 提示词,用于指导视频生成 |
| size | string | 否 | 生成视频的尺寸。 <br/>可选的分辨率: <br/>- 720x1280<br/>- 1280x720<br/> |
| duration | string | 否 | 视频生成时长(秒),可选值 4, 8, 12 |
| input_reference | string | 否 | 首帧图 |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl -X POST "https://hk.hyucloud.com/v1/videos" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F prompt="She turns around and smiles, then slowly walks out of the frame." \
-F model="sora-2" \
-F size="1280x720" \
-F seconds="8" \
-F input_reference="@sample_720p.jpeg;type=image/jpeg"输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| id | string | 异步任务的唯一标识 |
| object | string | 类型 |
| model | string | 模型名称 |
| status | string | 任务状态,queued, in_progress, completed, and failed |
| progress | int | 任务进度 |
| size | string | 分辨率 |
| seconds | string | 时长 |
响应示例#
{
"id": "video_456",
"object": "video",
"model": "sora-2",
"status": "queued",
"progress": 0,
"created_at": 1712698600,
"size": "720x1280",
"seconds": "8"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/videos/<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/videos/video_6982fa1cd4f081908b619dc53cfc2435' \
-H "Authorization: Bearer $OPENAI_API_KEY"输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| id | string | 异步任务的唯一标识 |
| object | string | 类型 |
| model | string | 模型名称 |
| status | string | 任务状态,queued, in_progress, completed, and failed |
| progress | int | 任务进度 |
| size | string | 分辨率 |
| seconds | string | 时长 |
响应示例(成功)#
{
"id": "video_456",
"object": "video",
"model": "sora-2",
"status": "queued",
"progress": 0,
"created_at": 1712698600,
"size": "720x1280",
"seconds": "8"
}响应示例(失败)#
{
"error": {
"message": "error",
"type": "invalid_request_error",
"param": null,
"code": null
}
}下载视频#
接口#
https://hk.hyucloud.com/v1/videos/<task_id>/content
请求示例#
curl --location 'https://hk.hyucloud.com/v1/videos/<task_id>/content' \
-H "Authorization: Bearer $OPENAI_API_KEY"
--output video.mp4正常返回#
返回二进制流
异常返回#
{
"error": {
"message": "task is not completed yet, current status: Pending",
"type": "invalid_request_error"
}
}remix#
接口#
https://hk.hyucloud.com/v1/videos/<task_id>/remix
请求示例#
curl -X POST "https://hk.hyucloud.com/v1/videos/<task_id>/remix" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "赛博朋克风格"
}'正常返回#
{
"id": "video_456",
"object": "video",
"model": "sora-2",
"status": "queued",
"progress": 0,
"created_at": 1712698600,
"size": "720x1280",
"seconds": "8",
"remixed_from_video_id": "video_123"
}异常返回#
{
"error": {
"message": "Invalid param: prompt is required",
"type": "invalid_request_error",
"param": "6217f8ed-396d-434a-9b78-96775c0d2f99",
"code": "param_error"
}
}Wan-AI/Wan2.2-I2V#
图生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 Wan-AI/Wan2.2-I2V |
| input.first_frame_url | string | 是 | 视频首帧图片 URL,可为 URL 或 Base64 |
| input.last_frame_url | string | 否 | 视频末帧图片 URL,可为 URL 或 Base64 |
| input.prompt | string | 是 | 提示词,用于指导视频生成 |
| input.negative_prompt | string | 否 | 反向提示词,用于限制不希望出现的内容 |
| parameters.resolution | string | 否 | 生成视频的分辨率档位,当前仅支持720P、480P |
| parameters.duration | int | 否 | 视频生成时长(秒),支持5 8 |
| parameters.seed | int | 否 | 随机数种子,范围[0, 2147483647] |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "Wan-AI/Wan2.2-I2V",
"input": {
"first_frame_url": "https://hk.hyucloud.com/hyucloud-maxcot.jpg",
"last_frame_url": "https://hk.hyucloud.com/hyucloud-maxcot.jpg",
"prompt": "Convert to quick pencil sketch"
},
"parameters": {
"resolution": "720P"
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 任务执行时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}Wan-AI/Wan2.2-T2V#
文生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 Wan-AI/Wan2.2-T2V |
| input.prompt | string | 是 | 提示词,用于生成视频的内容描述 |
| input.negative_prompt | string | 否 | 反向提示词,用于限制不希望出现的内容 |
| parameters.size | string | 否 | 输出尺寸,分辨率选择 480P 时,size 支持832x480, 480x832<br/>分辨率选择 720P 时,size 支持1280x720, 720x1280 |
| parameters.resolution | string | 否 | 生成视频的分辨率档位,当前仅支持720P、480P |
| parameters.duration | int | 否 | 视频生成时长(秒),支持5 8 |
| parameters.seed | int | 否 | 随机数种子,范围[0, 2147483647] |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "Wan-AI/Wan2.2-T2V",
"input": {
"prompt": "a beautiful flower",
"negative_prompt": "low quality"
},
"parameters": {
"resolution": "720P",
"seed": 12345
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>' \输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 任务执行时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756958375,
"finish_time": 1756958428
},
"usage": {
"duration": 5
},
"request_id": "request_id"
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756958375,
"finish_time": 1756958380,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}Wan-AI/Wan2.5-I2V#
图生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 | |
|---|---|---|---|---|
| model | string | 是 | 模型名称,此处为 Wan-AI/Wan2.5-I2V | |
| input.negative_prompt | string | 否 | 反向提示词,用于限制不希望出现的内容 | |
| input.first_frame_url | string | 是 | 视频首帧图片 URL | |
| input.audio_url | string | 否 | 音频 URL,用于指导生成。如果音频时长超过指定的视频时长,将被截断;如果短于视频时长,视频后半部分将无声。 | |
| input.prompt | string | 是 | 提示词,用于指导视频生成 | |
| parameters.resolution | string | 是 | 视频分辨率选择,支持:480p, 720p, 1080p | |
| parameters.duration | int | 否 | 视频生成时长(秒),可选值 5 或 10,默认为 5 | |
| parameters.enable_prompt_expansion | boolean | 否 | 是否启用提示词优化,默认为 false | |
| parameters.seed | int | 否 | 随机数种子,范围[-1, 2147483647],-1表示随机 |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "Wan-AI/Wan2.5-I2V",
"input": {
"first_frame_url": "https://hk.hyucloud.com/hyucloud-maxcot.jpg",
"audio_url": "https://hk.hyucloud.com/%E9%94%A6%E7%91%9F.mp3",
"prompt": "make it swim"
},
"parameters": {
"resolution": "720p",
"duration": 5
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 任务执行时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}Wan-AI/Wan2.5-T2V#
文生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 Wan-AI/Wan2.5-T2V |
| input.prompt | string | 是 | 提示词,用于指导视频生成 |
| input.negative_prompt | string | 否 | 反向提示词,用于限制不希望出现的内容 |
| input.audio_url | string | 否 | 音频文件 URL,用于指导生成,可选 |
| parameters.size | string | 是 | 生成视频的尺寸。 <br/>可选的视频分辨率及其对应的视频宽高比为: <br/>480P档位:<br/>- 832x480:16:9<br/>- 480x832:9:16<br/>720P档位:<br/>- 1280x720:16:9<br/>- 720x1280:9:16<br/>1080P档位:<br/>- 1920x1080: 16:9<br/>- 1080x1920: 9:16 |
| parameters.duration | int | 否 | 视频生成时长(秒),可选值 5 或 10,默认为 5 |
| parameters.prompt_extend | bool | 否 | 是否开启prompt智能改写。开启后使用大模型对输入prompt进行智能改写。对于较短的prompt生成效果提升明显,但会增加耗时。默认false |
| parameters.seed | int | 否 | 随机数种子,范围[-1, 2147483647],-1表示随机 |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "Wan-AI/Wan2.5-T2V",
"input": {
"prompt": "A beautiful girl is dancing",
"audio_url": "https://example.com/audio.mp3"
},
"parameters": {
"size": "832x480",
"duration": 5
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 任务执行时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}Wan-AI/Wan2.6-I2V#
图生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 Wan-AI/Wan2.6-I2V |
| input.prompt | string | 是 | 提示词,用于指导视频生成 |
| input.negative_prompt | string | 否 | 反向提示词,用于限制不希望出现的内容 |
| input.img_url | string | 否 | 视频首帧图片 URL |
| input.audio_url | string | 否 | 音频 URL,用于指导生成。如果音频时长超过指定的视频时长,将被截断;如果短于视频时长,视频后半部分将无声。 |
| parameters | object | 否 | 视频处理参数,如设置视频分辨率、设置视频时长、开启prompt智能改写、添加水印等 |
| parameters.resolution | string | 否 | 指定生成的视频分辨率档位,用于调整视频的清晰度(总像素)。模型根据选择的分辨率档位,自动缩放至相近总像素,视频宽高比将尽量与输入图像 img_url 的宽高比保持一致。重要:resolution 直接影响费用,同一模型:1080P > 720P ,请在调用前确认模型价格。对于 Wan-AI/Wan2.6-I2V:可选值:720P、1080P。默认值为 1080P。示例值:1080P |
| parameters.duration | int | 否 | 视频生成时长(秒),可选值 5 或10 或15 |
| parameters.seed | int | 否 | 随机数种子,范围 [0, 4294967295] |
| parameters.prompt_extend | boolean | 否 | 是否开启prompt智能改写。开启后使用大模型对输入prompt进行智能改写。对于较短的prompt生成效果提升明显,但会增加耗时。默认值:true。示例值:true |
| parameters.shot_type | string | 否 | 指定生成视频的镜头类型,即视频是由一个连续镜头还是多个切换镜头组成。生效条件:仅当 prompt_extend 为 true 时生效。参数优先级:shot_type > prompt。例如,若 shot_type 设置为 single,即使 prompt 中包含"生成多镜头视频",模型仍会输出单镜头视频。可选值:single(默认值,输出单镜头视频)、multi(输出多镜头视频)。示例值:single |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "Wan-AI/Wan2.6-I2V",
"input": {
"img_url": "https://hk.hyucloud.com/hyucloud-maxcot.jpg",
"prompt": "make it swim"
},
"parameters": {
"resolution": "1080P",
"duration": 5,
"prompt_extend": true,
"shot_type": "single"
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 任务执行时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}Wan-AI/Wan2.6-T2V#
文生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 Wan-AI/Wan2.6-T2V |
| input.prompt | string | 是 | 提示词,用于指导视频生成 |
| input.negative_prompt | string | 否 | 反向提示词,用于限制不希望出现的内容 |
| input.audio_url | string | 否 | 频 URL,用于指导生成。如果音频时长超过指定的视频时长,将被截断;如果短于视频时长,视频后半部分将无声。可选 |
| parameters.size | string | 是 | 生成视频的尺寸。 <br/>可选的视频分辨率及其对应的视频宽高比为: <br/>720P档位:<br/>- 1280x720:16:9<br/>- 720x1280:9:16 <br/>1080P档位:<br/>- 1920x1080: 16:9<br/>- 1080x1920: 9:16 。 |
| parameters.duration | int | 否 | 视频生成时长(秒),可选值 5 或 10 或 15,默认为 5
| parameters.seed | int | 否 | 随机数种子,范围[0, 2147483647] |
|---|---|---|---|
| parameters.shot_type | string | 否 | 指定生成视频的镜头类型,即视频是由一个连续镜头还是多个切换镜头组成。生效条件:仅当 prompt_extend 为 true 时生效。参数优先级:shot_type > prompt。例如,若 shot_type 设置为 single,即使 prompt 中包含"生成多镜头视频",模型仍会输出单镜头视频。可选值:single(默认值,输出单镜头视频)、multi(输出多镜头视频)。示例值:single |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "Wan-AI/Wan2.6-T2V",
"input": {
"prompt": "A beautiful girl is dancing",
"audio_url": "https://example.com/audio.mp3"
},
"parameters": {
"size": "1280x720",
"duration": 5
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 任务执行时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}Wan-AI/Wan2.6-R2V#
参考生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 | |
|---|---|---|---|---|
| model | string | 是 | 模型名称,此处为 wan2.6-r2v | |
| input.prompt | string | 是 | 提示词,用于指导视频生成 | |
| input.reference_urls | []string | 是 | 上传的参考文件 URL 数组,支持传入视频和图像。用于提取角色形象与音色(如有),以生成符合参考特征的视频。 <br/>每个 URL 可指向 一张图像 或 一段视频,传入多个参考文件时,按照数组顺序定义角色的顺序。即第 1 个 URL 对应 character1,第 2 个对应 character2,以此类推。每个参考文件仅包含一个主体角色。例如 character1 为小女孩,character2 为闹钟。图片与视频的数量限制如下:<br/> - 图像数量:0~5。 <br/> - 视频数量:0~3。<br/> - 总数限制:图像 + 视频 ≤ 5。<br/><strong>参考视频要求:</strong><ul><li>格式:MP4、MOV</li><li>时长:1s~30s</li><li>文件大小:不超过100MB</li></ul><strong>参考图像要求:</strong><ul><li>格式:JPEG、JPG、PNG(不支持透明通道)、BMP、WEBP</li><li>分辨率:宽高均需在[240,8000]像素之间</li><li>文件大小:不超过20MB</li></ul> | |
| parameters.size | string | 是 | 生成视频的尺寸。 <br/>可选的视频分辨率及其对应的视频宽高比为: <br/>720P档位:<br/>- 1280x720:16:9<br/>- 720x1280:9:16 <br/>1080P档位:<br/>- 1920x1080: 16:9<br/>- 1080x1920: 9:16 。 |
| parameters.duration | int | 否 | 视频生成时长(秒),可选值 5 或 10 ,默认为 5
| parameters.shot_type | string | 否 | 指定生成视频的镜头类型,即视频是由一个连续镜头还是多个切换镜头组成。参数优先级:shot_type > prompt。例如,若 shot_type 设置为 single,即使 prompt 中包含"生成多镜头视频",模型仍会输出单镜头视频。可选值:single(默认值,输出单镜头视频)、multi(输出多镜头视频)。示例值:single |
|---|
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "wan2.6-r2v",
"input": {
"prompt": "Character2 坐在靠窗的椅子上,手持 character3,在 character4 旁演奏一首舒缓的美国乡村民谣。Character1 对Character2开口说道:“听起来不错”",
"reference_urls": [
"https://example.com/wan-r2v-role1.mp4",
"https://example.com/wan-r2v-role2.mp4",
"https://example.com/wan-r2v-object4.png",
"https://example.com/wan-r2v-backgroud5.png"
]
},
"parameters": {
"size": "1920x1080",
"duration": 5,
"shot_type": "single"
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 任务执行时长(秒) |
| request_id | string | 请求的唯一标识 |
| error.message | string | 错误信息 |
| error.type | string | 错误类型 |
| error.code | string | 错误code |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}Wan-AI/Wan2.6-R2V-Flash#
参考生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 | |
|---|---|---|---|---|
| model | string | 是 | 模型名称,此处为 wan2.6-r2v-flash | |
| input.prompt | string | 是 | 提示词,用于指导视频生成 | |
| input.reference_urls | []string | 是 | 上传的参考文件 URL 数组,支持传入视频和图像。用于提取角色形象与音色(如有),以生成符合参考特征的视频。 <br/>每个 URL 可指向 一张图像 或 一段视频,传入多个参考文件时,按照数组顺序定义角色的顺序。即第 1 个 URL 对应 character1,第 2 个对应 character2,以此类推。每个参考文件仅包含一个主体角色。例如 character1 为小女孩,character2 为闹钟。图片与视频的数量限制如下:<br/> - 图像数量:0~5。 <br/> - 视频数量:0~3。<br/> - 总数限制:图像 + 视频 ≤ 5。<br/><strong>参考视频要求:</strong><ul><li>格式:MP4、MOV</li><li>时长:1s~30s</li><li>文件大小:不超过100MB</li></ul><strong>参考图像要求:</strong><ul><li>格式:JPEG、JPG、PNG(不支持透明通道)、BMP、WEBP</li><li>分辨率:宽高均需在[240,8000]像素之间</li><li>文件大小:不超过20MB</li></ul> | |
| parameters.size | string | 是 | 生成视频的尺寸。 <br/>可选的视频分辨率及其对应的视频宽高比为: <br/>720P档位:<br/>- 1280x720:16:9<br/>- 720x1280:9:16 <br/>1080P档位:<br/>- 1920x1080: 16:9<br/>- 1080x1920: 9:16 。 |
| parameters.duration | int | 否 | 视频生成时长(秒),可选值 5 或 10 ,默认为 5
| parameters.shot_type | string | 否 | 指定生成视频的镜头类型,即视频是由一个连续镜头还是多个切换镜头组成。参数优先级:shot_type > prompt。例如,若 shot_type 设置为 single,即使 prompt 中包含"生成多镜头视频",模型仍会输出单镜头视频。可选值:single(默认值,输出单镜头视频)、multi(输出多镜头视频)。示例值:single |
|---|---|---|---|
| parameters.audio | bool | 否 | 是否输出声音,默认是false |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "wan2.6-r2v-flash",
"input": {
"prompt": "Character2 坐在靠窗的椅子上,手持 character3,在 character4 旁演奏一首舒缓的美国乡村民谣。Character1 对Character2开口说道:“听起来不错”",
"reference_urls": [
"https://example.com/wan-r2v-role1.mp4",
"https://example.com/wan-r2v-role2.mp4",
"https://example.com/wan-r2v-object4.png",
"https://example.com/wan-r2v-backgroud5.png"
]
},
"parameters": {
"size": "1920x1080",
"duration": 5,
"audio":true,
"shot_type": "single"
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 任务执行时长(秒) |
| request_id | string | 请求的唯一标识 |
| error.message | string | 错误信息 |
| error.type | string | 错误类型 |
| error.code | string | 错误code |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}HappyHorse-T2V#
文生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 happyhorse-1.0-t2v、happyhorse-1.1-t2v |
| input.prompt | string | 是 | 文本提示词,用于描述期望生成的视频内容 |
| parameters.resolution | string | 否 | 生成视频的分辨率档位,可选值:720P、1080P,默认 1080P |
| parameters.ratio | string | 否 | 生成视频的宽高比,可选值:16:9、9:16、1:1,默认 16:9 |
| parameters.duration | int | 否 | 视频时长(秒),取值范围 3 到 15,默认 5 |
| parameters.watermark | boolean | 否 | 是否添加水印,默认 true |
| parameters.seed | int | 否 | 随机数种子,范围 [0, 2147483647] |
请求示例#
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'X-DashScope-Async: enable' \
--header 'Content-Type: application/json' \
--data '{
"model": "happyhorse-1.0-t2v",
"input": {
"prompt": "一座由硬纸板和瓶盖搭建的微型城市,在夜晚焕发出生机。"
},
"parameters": {
"resolution": "720P",
"ratio": "16:9",
"duration": 5
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 计费视频时长(秒) |
| usage.output_video_duration | number | 输出视频时长(秒) |
| usage.video_count | integer | 输出视频数量 |
| usage.SR | integer | 输出视频分辨率高度,例如 720、1080 |
| usage.ratio | string | 输出视频宽高比 |
| request_id | string | 请求的唯一标识 |
HappyHorse-I2V#
图生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 happyhorse-1.0-i2v、happyhorse-1.1-i2v |
| input.prompt | string | 否 | 文本提示词,用于描述期望生成的视频内容 |
| input.img_url | string | 是 | 视频首帧图片 URL。也兼容 input.first_frame_url 或 input.images[0] |
| parameters.resolution | string | 否 | 生成视频的分辨率档位,可选值:720P、1080P,默认 1080P |
| parameters.duration | int | 否 | 视频时长(秒),取值范围 3 到 15,默认 5 |
| parameters.watermark | boolean | 否 | 是否添加水印,默认 true |
| parameters.seed | int | 否 | 随机数种子,范围 [0, 2147483647] |
请求示例#
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'X-DashScope-Async: enable' \
--header 'Content-Type: application/json' \
--data '{
"model": "happyhorse-1.0-i2v",
"input": {
"prompt": "一只猫在草地上奔跑",
"img_url": "https://example.com/cat.png"
},
"parameters": {
"resolution": "720P",
"duration": 5
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 计费视频时长(秒) |
| usage.output_video_duration | number | 输出视频时长(秒) |
| usage.video_count | integer | 输出视频数量 |
| usage.SR | integer | 输出视频分辨率高度,例如 720、1080 |
| request_id | string | 请求的唯一标识 |
HappyHorse-R2V#
参考图生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 happyhorse-1.0-r2v、happyhorse-1.1-r2v |
| input.prompt | string | 是 | 文本提示词。可使用 character1、character2 等指代 input.images 中对应顺序的参考图 |
| input.images | string[] | 是 | 参考图像 URL 列表,支持 1 到 9 张 |
| parameters.resolution | string | 否 | 生成视频的分辨率档位,可选值:720P、1080P,默认 1080P |
| parameters.ratio | string | 否 | 生成视频的宽高比,可选值:16:9、9:16、1:1,默认 16:9 |
| parameters.duration | int | 否 | 视频时长(秒),取值范围 3 到 15,默认 5 |
| parameters.watermark | boolean | 否 | 是否添加水印,默认 true |
| parameters.seed | int | 否 | 随机数种子,范围 [0, 2147483647] |
请求示例#
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'X-DashScope-Async: enable' \
--header 'Content-Type: application/json' \
--data '{
"model": "happyhorse-1.0-r2v",
"input": {
"prompt": "character1 手持 character2,在镜头前展示产品细节。",
"images": [
"https://example.com/person.jpg",
"https://example.com/product.jpg"
]
},
"parameters": {
"resolution": "720P",
"ratio": "16:9",
"duration": 5
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 计费视频时长(秒) |
| usage.output_video_duration | number | 输出视频时长(秒) |
| usage.video_count | integer | 输出视频数量 |
| usage.SR | integer | 输出视频分辨率高度,例如 720、1080 |
| usage.ratio | string | 输出视频宽高比 |
| request_id | string | 请求的唯一标识 |
HappyHorse-Video-Edit#
视频编辑模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 happyhorse-1.0-video-edit |
| input.prompt | string | 是 | 文本指令,用于描述视频编辑意图 |
| input.video_url | string | 是 | 待编辑视频 URL |
| input.images | string[] | 否 | 参考图像 URL 列表,最多 5 张 |
| parameters.resolution | string | 否 | 生成视频的分辨率档位,可选值:720P、1080P,默认 1080P |
| parameters.watermark | boolean | 否 | 是否添加水印,默认 true |
| parameters.audio_setting | string | 否 | 声音控制,可选值:auto、origin,默认 auto |
| parameters.seed | int | 否 | 随机数种子,范围 [0, 2147483647] |
请求示例#
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'X-DashScope-Async: enable' \
--header 'Content-Type: application/json' \
--data '{
"model": "happyhorse-1.0-video-edit",
"input": {
"prompt": "让视频中的角色穿上参考图中的条纹毛衣",
"video_url": "https://example.com/input.mp4",
"images": [
"https://example.com/reference.webp"
]
},
"parameters": {
"resolution": "720P",
"audio_setting": "origin"
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 计费视频时长(秒) |
| usage.input_video_duration | number | 输入视频时长(秒) |
| usage.output_video_duration | number | 输出视频时长(秒) |
| usage.video_count | integer | 输出视频数量 |
| usage.SR | integer | 输出视频分辨率高度,例如 720、1080 |
| request_id | string | 请求的唯一标识 |
Vidu/Text2Video#
文生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,可选值:viduq2 |
| input.prompt | string | 是 | 文本提示词,用于生成视频的描述,最长 2000 字符 |
| parameters.vidu_type | string | 是 | Vidu 接口类型,此处为 text2video |
| parameters.duration | int | 否 | 视频时长参数,默认值依据模型而定:<br/> - viduq2 : 默认5秒,可选:1-10 |
| parameters.seed | int | 否 | 随机种子,默认 0 表示使用随机数 |
| parameters.aspect_ratio | string | 否 | 长宽比,可选值:16:9、9:16、3:4、4:3、1:1,默认 16:9 |
| parameters.resolution | string | 否 | 分辨率参数,默认值依据模型和视频时长而定: <br/> - viduq2(1-10秒):默认 720p,可选:540p、720p、1080p |
| parameters.guidance_scale | float64 | 否 | 引导系数,控制生成结果与提示词的相关性 |
| parameters.bgm | bool | 否 | 是否添加背景音乐,默认 false |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "viduq2",
"input": {
"prompt": "In an ultra-realistic fashion photography style featuring light blue and pale amber tones, an astronaut in a spacesuit walks through the fog. The background consists of enchanting white and golden lights, creating a minimalist still life and an impressive panoramic scene."
},
"parameters": {
"vidu_type": "text2video",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "720p",
"bgm": true
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 视频时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}Vidu/Img2Video#
图生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,可选值:viduq3-pro、viduq2-pro、viduq2-turbo、viduq2-pro-fast<br/> - viduq3-pro:支持音画同步,支持生成分镜视频<br/> - viduq2-pro-fast:价格触底、效果好,生成速度较viduq2-turbo提高2-3倍<br/> - viduq2-pro:新模型,情感表达强,动态细节丰富<br/> - viduq2-turbo:新模型,效果好,生成快 |
| input.first_frame_url | string | 是 | 首帧图片,支持图片 URL 或 Base64 编码 |
| input.prompt | string | 否 | 文本提示词,用于指导视频生成,最长 2000 字符。 |
| parameters.vidu_type | string | 是 | Vidu 接口类型,此处为 img2video |
| parameters.duration | int | 否 | 视频时长<br/> - viduq3-pro 默认为 5,可选:1 - 16<br/> - viduq2-pro/viduq2-turbo/viduq2-pro-fast 默认为 5,可选:1-10 |
| parameters.seed | int | 否 | 随机种子,默认 0 表示使用随机数 |
| parameters.resolution | string | 否 | 分辨率<br/> - viduq3-pro 1-16秒:默认 720p,可选:360p、540p、720p、1080p、2K<br/> - viduq2-pro-fast/viduq2-pro/viduq2-turbo 1-10秒:默认 720p,可选:360p、540p、720p、1080p (其中Pro支持540p,fast不支持360p/540p) |
| parameters.movement_amplitude | string | 否 | 运动幅度,可选值:auto、small、medium、large,默认 auto<br/> 注:q2、q3模型该参数不生效 |
| parameters.bgm | bool | 否 | 是否添加背景音乐,默认 false<br/> 注:q3模型该参数不生效 |
| parameters.audio | bool | 否 | 是否使用音视频直出能力,默认为false,枚举值为:<br/> - false:不需要音视频直出,输出静音视频 <br/> - true:需要音视频直出,输出带台词以及背景音的视频 <br/> 注1:该参数为true时,voice_id参数才生效<br/> 注2:当model 为q3 时,该参数默认值为true,且不可关闭 |
| parameters.voice_id | string | 否 | 音色id <br/> 用来决定视频中的声音音色,为空时系统会自动推荐,可选枚举值参考列表:新音色列表<br/> 注:q3模型该参数不生效 |
注意事项:
- 图片支持 png、jpeg、jpg、webp 格式
- 图片比例需要小于 1:4 或者 4:1
- 图片大小不超过 50 MB
- Base64 编码格式示例:
data:image/png;base64,{base64_encode}
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "viduq3-pro",
"input": {
"first_frame_url": "https://prod-ss-images.s3.cn-northwest-1.amazonaws.com.cn/vidu-maas/template/image2video.png",
"prompt": "make it dance."
},
"parameters": {
"vidu_type": "img2video",
"duration": 5,
"resolution": "1080p",
"movement_amplitude": "auto",
"audio": true
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 视频时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}Vidu/Reference2Video#
参考生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,可选值:viduq2 |
| input.prompt | string | 是 | 文本提示词,用于指导视频生成,最长 2000 字符 |
| input.subjects | []object | 是 | 图片主体信息支持1-7个主体 |
| input.subjects.id | string | 是 | 主体id,后续生成时可以通过@主体id的方式使用 |
| input.subjects.images | []string | 是 | 该主体对应的图片url,每个主体最多支持3张图片 <br/> 注:支持传入图片 Base64 编码或图片URL(确保可访问) |
| input.subjects.voice_id | string | 是 | 音色id <br/> 用来决定视频中的声音音色,为空时系统会自动推荐,可选枚举值参考列表:新音色列表 |
| parameters.vidu_type | string | 是 | Vidu 接口类型,此处为 reference2video |
| parameters.duration | int | 否 | 视频时长参数,默认值依据模型而定: <br/> viduq2:默认5秒,可选:1-10 |
| parameters.seed | int | 否 | 随机种子,默认 0 表示使用随机数 |
| parameters.aspect_ratio | string | 否 | 长宽比,可选值:16:9、9:16、4:3、3:4、1:1,默认 16:9,注:4:3、3:4 仅支持 q2 |
| parameters.resolution | string | 否 | 分辨率参数,默认值依据模型和视频时长而定:<br/> viduq2 (1-8秒):默认 720p, 可选:540p、720p、1080p |
| parameters.movement_amplitude | string | 否 | 运动幅度,可选值:auto、small、medium、large,默认 auto,注:q2 模型不支持该参数 |
| parameters.bgm | bool | 否 | 是否添加背景音乐,默认 false |
| parameters.audio | bool | 否 | 是否使用音视频直出能力,默认false,可选值 true、false <br/> - true:使用音视频直出能力。<br/> - false:不使用音视频直出能力。 |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "viduq2",
"input": {
"prompt": "让@1与@2一起跑步,一起喊加油",
"subjects": [
{
"id": "1",
"images" : ["https://hk.hyucloud.com/hyucloud-maxcot.jpg"],
"voice_id":""
},
{
"id": "2",
"images" : ["https://hk.hyucloud.com/hyucloud-maxcot.jpg"],
"voice_id":""
}
]
},
"parameters": {
"vidu_type": "reference2video",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "720p",
"movement_amplitude": "auto",
"bgm": false,
"audio": true
}
}'兼容旧接口-输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,可选值:viduq2 |
| input.images | []string | 是 | 参考图像数组,viduq2 支持 1-7 张,支持图片 URL 或 Base64 编码 |
| input.prompt | string | 是 | 文本提示词,用于指导视频生成,最长 2000 字符 |
| parameters.vidu_type | string | 是 | Vidu 接口类型,此处为 reference2video |
| parameters.duration | int | 否 | 视频时长参数,默认值依据模型而定: <br/> viduq2:默认5秒,可选:1-10 |
| parameters.seed | int | 否 | 随机种子,默认 0 表示使用随机数 |
| parameters.aspect_ratio | string | 否 | 长宽比,可选值:16:9、9:16、4:3、3:4、1:1,默认 16:9,注:4:3、3:4 仅支持 q2 |
| parameters.resolution | string | 否 | 分辨率参数,默认值依据模型和视频时长而定:<br/> viduq2 (1-8秒):默认 720p, 可选:540p、720p、1080p |
| parameters.movement_amplitude | string | 否 | 运动幅度,可选值:auto、small、medium、large,默认 auto,注:q2 模型不支持该参数 |
| parameters.bgm | bool | 否 | 是否添加背景音乐,默认 false |
注意事项:
- viduq2 模型支持 1-7 张参考图片
- 模型将以参考图片中的主题为参考生成具备主体一致的视频
- 图片支持 png、jpeg、jpg、webp 格式
- 图片像素不能小于 128×128
- 图片比例需要小于 1:4 或者 4:1
- 图片大小不超过 50 MB
- Base64 编码格式示例:
data:image/png;base64,{base64_encode}
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "viduq2",
"input": {
"images": [
"https://hk.hyucloud.com/hyucloud-maxcot.jpg"
],
"prompt": "make it dance."
},
"parameters": {
"vidu_type": "reference2video",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "720p",
"movement_amplitude": "auto",
"bgm": true
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 视频时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}Vidu/首尾帧生视频#
vidu 首尾帧生成视频 接口文档
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,可选值:viduq2-pro、viduq2-turbo、viduq2-pro-fast、viduq3-pro <br/> - viduq2-pro:新模型,效果好,细节丰富 <br/> - viduq2-turbo:新模型,效果好,生成快 <br/> - viduq2-pro-fast:价格触底、效果稳定,生成速度较viduq2-turbo提高2-3倍 <br/> - viduq3-pro:高效生成优质音视频内容,让视频内容更生动、更形象、更立体,效果更好 |
| input.first_frame_url | string | 是 | 首帧图片,支持图片 URL 或 Base64 编码 |
| input.last_frame_url | string | 是 | 尾帧图片,支持图片 URL 或 Base64 编码 |
| input.prompt | string | 否 | 文本提示词,用于指导视频生成,最长 2000 字符。 |
| parameters.vidu_type | string | 是 | Vidu 接口类型,此处为 start-end2video |
| parameters.duration | int | 否 | 视频时长参数,默认值依据模型而定:<br/> - viduq2-pro 默认为 5,可选:1、2、3、4、5、6、7、8 <br/> - viduq2-turbo 默认为 5,可选:1、2、3、4、5、6、7、8 <br/> - viduq2-pro-fast 默认为 5,可选:1、2、3、4、5、6、7、8 |
| parameters.seed | int | 否 | 随机种子,默认 0 表示使用随机数 |
| parameters.resolution | string | 否 | 分辨率参数,默认值依据模型和视频时长而定: <br/> - viduq2-pro 1-8秒:默认 720p,可选:540p、720p、1080p <br/> - viduq2-turbo 1-8秒:默认 720p,可选:540p、720p、1080p <br/> - viduq2-pro-fast 1-8秒:默认 720p,可选:720p、1080p |
| parameters.movement_amplitude | string | 否 | 运动幅度,可选值:auto、small、medium、large,默认 auto |
| parameters.bgm | bool | 否 | 是否添加背景音乐,默认 false |
注意事项:
- 必须同时提供
first_frame_url和last_frame_url两个参数 - 首尾帧两张图的分辨率需相近,首帧分辨率/尾帧分辨率需在 0.8~1.25 之间
- 图片支持 png、jpeg、jpg、webp 格式
- 图片比例需要小于 1:4 或者 4:1
- 图片大小不超过 50 MB
- Base64 编码格式示例:
data:image/png;base64,{base64_encode}
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "viduq2-pro",
"input": {
"first_frame_url": "https://hk.hyucloud.com/hyucloud-maxcot.jpg",
"last_frame_url": "https://hk.hyucloud.com/hyucloud-maxcot.jpg",
"prompt": "Continue the video with smooth camera movement."
},
"parameters": {
"vidu_type": "start-end2video",
"duration": 5,
"resolution": "1080p",
"movement_amplitude": "auto",
"bgm": true
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 视频时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}Vidu/视频延长#
视频延长 Extend 接口描述
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,可选值:viduq2-turbo、viduq2-pro |
| input.video_url | string | 否 | 视频 URL。传入的视频时长不能低于 4 秒,不能超过 1 分钟 |
| input.last_frame_url | string | 否 | 延长到尾帧的参考图像,支持图片 URL 或 Base64 编码 |
| input.prompt | string | 否 | 延长提示词,用来控制延长的视频内容 |
| parameters.vidu_type | string | 是 | Vidu 接口类型,此处应为 extend 视频延长 |
| parameters.duration | int | 否 | 延长时长(秒),可选值 1-7,默认 5 |
| parameters.resolution | string | 否 | 视频分辨率,可选值:540p、720p、1080p,默认 720p |
注意事项:
video_url
- 需要延长的视频链接必须提供,需要公网访问
last_frame_url参数
- 支持传入图片 Base64 编码或图片URL(确保可访问); - 参考图片支持 png、jpeg、jpg、webp 格式 - 图片比例需要小于 1:4 或者 4:1 - 图片大小不超过 50 MB - 请注意,base64 decode之后的字节长度需要小于10M,且编码必须包含适当的内容类型字符串,例如:data:image/png;base64,{base64_encode}
请求示例(使用 video_url)#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "viduq2-turbo",
"input": {
"video_url": "https://hk.hyucloud.com/maxcot-dance.mp4",
"last_frame_url": "https://hk.hyucloud.com/hyucloud-maxcot.jpg",
"prompt": "Continue the video with smooth camera movement"
},
"parameters": {
"vidu_type": "extend",
"duration": 5,
"resolution": "720p"
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 延长的视频时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx-extended.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}Vidu/LipSync#
对口型视频生成模型,支持音频驱动和文字驱动两种方式。
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,请固定填写:vidu-lip-sync |
| input.video_url | string | 是 | 原视频 URL(需要确保可访问),模型将以此视频为画面来匹配口型。<br/><br/>格式要求:仅支持 mp4、mov、avi<br/>时长要求:1-600 秒,建议时长 10-120 秒<br/>大小要求:不超过 5GB<br/>分辨率要求:单边像素需在 360p-4096p 之间<br/>编码要求:视频编码格式需为 H.264,若不是请参见 编码格式转换<br/>内容要求:视频内容需免涉肖像权,否则会被下架或销毁<br/>视频素材规范:<br/> - 人脸画面:要求真人出镜(如果是卡通人物,需要人物五官和真人比例相近),画面中的人脸说话时建议正对镜头,水平转动不超过 45 度,俯仰不超过 15 度;人脸尽量不遮挡,面部光线稳定<br/> - 说话音频:对音频无限制 |
| input.audio_url | string | 否 | 音频文件 URL(与 text 二选一),对口型视频中使用的文字、音色以音频文件内容为准。<br/><br/>格式要求:支持 wav、mp3、wma、m4a、aac、ogg<br/>时长要求:大于 1 秒,小于 600 秒<br/>大小要求:不超过 100MB |
| input.text | string | 否 | 文本内容(与 audio_url 二选一),对口型视频生成时使用的文本内容。<br/><br/>字符要求:不少于 4 个字符,不超过 2000 字符(2-1000 个汉字或 4-2000 个英文)<br/>优先级:与 audio_url 同时有值时,以 audio_url 中的内容生成<br/>段落切换:用换行符标记<br/>停顿控制:支持自定义文本之间的语音时间间隔,使用 <#x#> 标记:<br/> - x 为停顿时长(单位:秒),范围 [0.01, 99.99],最多保留两位小数<br/> - 文本间隔时间需设置在两个可以语音发音的文本之间,不可连续使用多个停顿标记<br/> - 示例:你好<#2#>我是hyucloud<#2#>很高兴见到你 |
| input.ref_photo_url | string | 否 | 人脸参考图 URL,用于在视频包含多张人脸时指定目标人物。<br/><br/>格式要求:支持 jpg、jpeg、png、bmp、webp<br/>分辨率要求:单边分辨率在 192-4096px<br/>大小要求:不超过 10MB<br/>内容要求:图片需包含一张清晰的人物正脸,且为视频中出现的人物<br/>默认行为:若不输入人脸参考图,默认选择视频中第一个有人脸的画面中人脸占比最大的人物为目标 |
| parameters.vidu_type | string | 是 | Vidu 接口类型,此处为 lip-sync |
| parameters.speed | float | 否 | 语速,默认 1.0,范围 [0.5, 2]。0.5 为最慢语速,2 为最快语速。<br/>仅文字驱动时生效 |
| parameters.voice_id | string | 否 | 音色 ID,仅文字驱动时生效。参考 音色列表 |
| parameters.volume | int | 否 | 音量大小,范围 0-10,默认 0(正常音量),值越大音量越高。<br/>仅文字驱动时生效 |
注意事项:
audio_url和text必须提供其中一个speed、voice_id、volume参数仅在使用文字驱动时生效
请求示例(音频驱动)#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "vidu-lip-sync",
"input": {
"video_url": "https://hk.hyucloud.com/maxcot-dance.mp4",
"audio_url": "https://hk.hyucloud.com/%E6%AC%A2%E8%BF%8E%E4%BD%BF%E7%94%A8環宇互聯_API.mp3"
},
"parameters": {
"vidu_type": "lip-sync"
}
}'请求示例(文字驱动)#
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "vidu-lip-sync",
"input": {
"video_url": "https://hk.hyucloud.com/maxcot-dance.mp4",
"text": "你好,欢迎使用对口型功能"
},
"parameters": {
"vidu_type": "lip-sync",
"voice_id": "your_voice_id",
"speed": 1.0,
"volume": 4
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 视频时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx-lipsync.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 30
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}Vidu/一键生成mv#
一键生成MV
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称。 <br/>国内用户填写:vidu-mv,<br/> 国外用户填写:vidu-one-click-mv |
| input.images | Array[String] | 是 | 用户生成mv时的模特图片或风格图片<br/> 注1:支持传入图片 Base64 编码或图片URL(确保可访问);<br/> 注2:支持输入 1~7 张图;<br/> 注3:图片支持 png、jpeg、jpg、webp格式;<br/> 注4:图片比例需要小于 1:4 或者 4:1 ;<br/> 注5:图片大小不超过 50 MB;<br/> 注6:请注意,http请求的post body不超过 20MB,且编码必须包含适当的内容类型字符串,例如:<br/>data:image/png;base64,{base64_encode} |
| input.audio_url | string | 是 | 需要生成mv的音频<br/>注1:支持传入 Base64 编码或音频URL(确保可访问);<br/>注2:支持输入 1 个音频;<br/>注3:支持 mp3、wav、aac、m4a格式;<br/>注4:音频最少10秒,最多180秒;<br/>注5:请注意,http请求的post body不超过20MB,且编码必须包含适当的内容类型字符串,例如:<br/>data:audio/mp3;base64,{base64_encode} |
| input.prompt | string | 否 | 用户提示词<br/>生成mv视频的文本描述。<br/>注1:字符长度不能超过 3000 个字符 |
| parameters.vidu_type | string | 是 | Vidu 接口类型,此处为 one-click/mv |
| parameters.aspect_ratio | string | 否 | 输出比例,默认16:9<br/>可选值 1:1,16:9,9:16,4:3,3:4 |
| parameters.resolution | string | 否 | 清晰度,默认720p<br/>可选值:540p、720p、1080p |
| parameters.add_subtitle | bool | 否 | 是否需要字幕,默认为 false<br/>true:需要字幕<br/>false:不需要字幕 |
| parameters.language | string | 否 | 音频语言类型,默认为自动<br/>可选 en、zh |
| parameters.srt_url | string | 否 | 字幕文件url |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "vidu-mv",
"input": {
"images": ["https://xxxxxxxxx/image2video.png"],
"prompt": "图中人物徘徊在路上。",
"audio_url": "https://xxxxxxxxx/49ab8a8f-f564-4b96-80a2-b38cca527475.mp3"
},
"parameters": {
"vidu_type": "one-click/mv",
"aspect_ratio": "16:9",
"resolution": "540p",
"add_subtitle": true,
"language": "en",
"srt_url": "https://xxxxxxxxx/mv_subtitle.srt"
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 视频时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx-mv.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 30
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}doubao-seedance-1-5-pro#
文图生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 | |
|---|---|---|---|---|
| model | string | 是 | 模型名称,此处为 doubao-seedance-1-5-pro-251215 | |
| input.content | object[] | 是 | 输入给模型生成视频的信息对象,支持三种对象类型:<br/> 文本信息<br/> 图片信息<br/> 样片信息<br/>参考下方content介绍。 | |
| parameters.execution_expires_after | int | 否 | 任务超时阈值。指定任务提交后的过期时间(单位:秒),默认值 172800 秒,即 48 小时。取值范围:[3600,259200]。 | |
| parameters.generate_audio | boolean | 否 | 控制生成的视频是否包含与画面同步的声音,默认false。<br/>true:模型输出的视频包含同步音频。<br/>false:模型输出的视频为无声视频。 | |
| parameters.draft | boolean | 否 | 控制是否开启样片模式,默认false。<br/>true:开启样片模式,生成一段预览视频,快速验证场景结构、镜头调度、主体动作与 prompt 意图是否符合预期。消耗 token 数较正常视频更少,使用成本更低。<br/>false:关闭样片模式,正常生成一段视频。 | |
| parameters.resolution | string | 否 | 视频分辨率,默认720p<br/>分辨率:支持480p、720p,1080p。<br/>样片模式只支持480p。 | |
| parameters.ratio | string | 否 | 生成视频的宽高比例,支持:16:9、4:3、1:1、3:4、9:16、21:9、adaptive。默认是adaptive,智能选择最合适的宽高比。 | |
| parameters.duration | int | 否 | 生成视频时长(秒):4~12 秒,默认为 5 | |
| parameters.seed | int | 否 | 随机数种子,范围[0, 2147483647] | |
| parameters.camera_fixed | boolean | 否 | 是否固定摄像头,默认false。<br/>true:固定摄像头。<br/>false:不固定摄像头。` | |
| parameters.watermark | boolean | 否 | 生成视频是否包含水印,默认false。<br/>false:不含水印。<br/>true:含有水印。 | |
| parameters.service_tier | string | 否 | 指定处理本次请求的服务等级类型,默认default。<br/>default:在线推理模式,适合对推理时效性要求较高的场景。<br/>flex:离线推理模式,适合对推理时延要求不高的场景。 |
输入input.content对象介绍#
样片信息对象是通过样片生成视频,不支持与文本信息,图片信息对象混用。
文本信息对象#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| content.type | string | 是 | 输入内容的类型,此处应为 text。 |
| content.text | string | 是 | 输入给模型的文本内容,描述期望生成的视频,支持中英文。建议不超过500字。 |
图片信息对象#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| content.type | string | 是 | 输入内容的类型,此处应为 image_url。支持图片URL或图片 Base64 编码。 |
| content.image_url | object | 是 | 输入给模型的图片对象。 |
| content.image_url.url | string | 是 | 图片信息,可以是图片URL或图片Base64编码。<br/>图片URL:请确保图片URL可被访问。<br/>Base64编码:请遵循此格式data:image/<图片格式>;base64,<Base64编码>,注意 <图片格式> 需小写,如 data:image/png;base64,{base64_image}。 |
| content.role | string | 否 | 图片的位置或用途。<br/>1个image_url对象,字段role可不填,或字段role为:first_frame。<br/>2个image_url对象时,字段role必填。<br/>首帧图片对应的字段role为:first_frame。<br/>尾帧图片对应的字段role为:last_frame。 |
样片信息对象#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| content.type | string | 是 | 输入内容的类型,此处应为 draft_task。 |
| content.draft_task | object | 是 | 输入给模型的样片任务。 |
| content.draft_task.id | string | 是 | 样片任务 ID。 |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl -v 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro-251215",
"input": {
"content": [
{
"type": "text",
"text": "让他跑起来。"
},
{
"type": "image_url",
"image_url": {
"url": "https://hk.hyucloud.com/hyucloud-maxcot.jpg"
},
"role": "first_frame"
},
{
"type": "image_url",
"image_url": {
"url": "https://hk.hyucloud.com/hyucloud-maxcot.jpg"
},
"role": "last_frame"
}
]
},
"parameters": {
"generate_audio": true,
"duration": 5,
"execution_expires_after": 3600,
"generate_audio": true,
"resolution": "720p",
"camera_fixed": false,
"watermark": false,
"draft": false
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure,Expired |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 视频时长(秒) |
| usage.completion_tokens | integer | 模型输出视频花费的 token 数量 |
| usage.total_tokens | integer | 本次请求消耗的总 token 数量。视频生成模型不统计输入 token,输入 token 为 0,故 total_tokens=completion_tokens。 |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "xxxxxxx",
"task_status": "Success",
"urls": ["http://xxxxxxxx/xx.mp4"],
"submit_time": 1768460826,
"finish_time": 1768460932
},
"usage": {
"completion_tokens": 108900,
"total_tokens": 108900,
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "xxxxxxx",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"completion_tokens": 0,
"total_tokens": 0,
"duration": 5
},
"request_id": ""
}
doubao-seedance-2-0#
文图生视频模型
| 模型 | 最高分辨率 |
|---|---|
doubao-seedance-2-0-260128 | 4K |
doubao-seedance-2-0-mini-260615 | 720p |
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 | |
|---|---|---|---|---|
| model | string | 是 | 模型名称:doubao-seedance-2-0-260128 或 doubao-seedance-2-0-mini-260615 | |
| input.content | object[] | 是 | 输入给模型生成视频的信息对象,支持五种对象类型:<br/> 文本信息<br/> 图片信息<br/> 样片信息<br/> 参考视频信息<br/> 参考音频信息<br/>参考下方content介绍。 | |
| parameters.execution_expires_after | int | 否 | 任务超时阈值。指定任务提交后的过期时间(单位:秒),默认值 172800 秒,即 48 小时。取值范围:[3600,259200]。 | |
| parameters.generate_audio | boolean | 否 | 控制生成的视频是否包含与画面同步的声音,默认false。<br/>true:模型输出的视频包含同步音频。<br/>false:模型输出的视频为无声视频。 | |
| parameters.resolution | string | 否 | 视频分辨率,默认720p<br/>doubao-seedance-2-0-260128:支持480p、720p、1080p、4K。<br/>doubao-seedance-2-0-mini-260615:支持480p、720p。<br/>样片模式只支持480p。 | |
| parameters.ratio | string | 否 | 生成视频的宽高比例,支持:16:9、4:3、1:1、3:4、9:16、21:9、adaptive。默认是adaptive,智能选择最合适的宽高比。 | |
| parameters.duration | int | 否 | 生成视频时长(秒):4~15 秒,默认为 5 | |
| parameters.seed | int | 否 | 随机数种子,范围[0, 2147483647] | |
| parameters.camera_fixed | boolean | 否 | 是否固定摄像头,默认false。<br/>true:固定摄像头。<br/>false:不固定摄像头。` | |
| parameters.watermark | boolean | 否 | 生成视频是否包含水印,默认false。<br/>false:不含水印。<br/>true:含有水印。 | |
| parameters.callback_url | string | 否 | 填写本次生成任务结果的回调通知地址。当视频生成任务有状态变化时,方舟将向此地址推送 POST 请求。 |
输入input.content对象介绍#
样片信息对象是通过样片生成视频,不支持与文本信息,图片信息对象混用。
文本信息对象#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| content.type | string | 是 | 输入内容的类型,此处应为 text。 |
| content.text | string | 是 | 输入给模型的文本内容,描述期望生成的视频,支持中英文。建议不超过500字。 |
图片信息对象#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| content.type | string | 是 | 输入内容的类型,此处应为 image_url。支持图片URL或图片 Base64 编码。 |
| content.image_url | object | 是 | 输入给模型的图片对象。 |
| content.image_url.url | string | 是 | 图片信息,可以是图片URL或图片Base64编码。<br/>图片URL:请确保图片URL可被访问。<br/>Base64编码:请遵循此格式data:image/<图片格式>;base64,<Base64编码>,注意 <图片格式> 需小写,如 data:image/png;base64,{base64_image}。 |
| content.role | string | 否 | 图片的位置或用途。<br/>1个image_url对象,字段role可不填,或字段role为:first_frame。<br/>2个image_url对象时,字段role必填。<br/>首帧图片对应的字段role为:first_frame。<br/>尾帧图片对应的字段role为:last_frame。<br/> 参考图对应的字段role为: reference_image |
参考视频信息对象#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| content.type | string | 是 | 输入内容的类型,此处应为 video_url。 |
| content.video_url | object | 是 | 输入给模型的参考视频对象。 |
| content.video_url.url | string | 是 | 参考视频 URL,请确保 URL 可被访问。 |
| content.role | string | 是 | 固定为:reference_video。 |
参考音频信息对象#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| content.type | string | 是 | 输入内容的类型,此处应为 audio_url。 |
| content.audio_url | object | 是 | 输入给模型的参考音频对象。 |
| content.audio_url.url | string | 是 | 参考音频 URL,请确保 URL 可被访问。 |
| content.role | string | 是 | 固定为:reference_audio。 |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
下方是全量参数示例,具体组合方式见官方文档
curl -v 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-2-0-260128",
"input": {
"content": [
{
"type": "text",
"text": "让他跑起来。"
},
{
"type": "image_url",
"image_url": {
"url": "https://hk.hyucloud.com/hyucloud-maxcot.jpg"
},
"role": "first_frame"
},
{
"type": "video_url",
"video_url": {
"url": "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_tea_video1.mp4"
},
"role": "reference_video"
},
{
"type": "audio_url",
"audio_url": {
"url": "https://ark-project.tos-cn-beijing.volces.com/doc_audio/r2v_tea_audio1.mp3"
},
"role": "reference_audio"
}
]
},
"parameters": {
"generate_audio": true,
"duration": 15,
"execution_expires_after": 3600,
"generate_audio": true,
"resolution": "720p",
"camera_fixed": false,
"watermark": false,
"draft": false,
"callback_url":"https://ark-project.tos-cn-beijing.volces.com"
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure,Expired |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 视频时长(秒) |
| usage.completion_tokens | integer | 模型输出视频花费的 token 数量 |
| usage.total_tokens | integer | 本次请求消耗的总 token 数量。视频生成模型不统计输入 token,输入 token 为 0,故 total_tokens=completion_tokens。 |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "xxxxxxx",
"task_status": "Success",
"urls": ["http://xxxxxxxx/xx.mp4"],
"submit_time": 1768460826,
"finish_time": 1768460932
},
"usage": {
"completion_tokens": 108900,
"total_tokens": 108900,
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "xxxxxxx",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"completion_tokens": 0,
"total_tokens": 0,
"duration": 5
},
"request_id": ""
}
火山方舟素材管理#
本文介绍通过 hyucloud API 管理火山方舟私域素材的完整流程,包括真人认证、素材组管理和素材资产管理。
服务地址#
| 接口类型 | 方法 | 地址 |
|---|---|---|
| 创建真人认证会话 | GET | /v1/volce-asset/visual-validate/sessions |
| 查询真人认证结果 | POST | /v1/volce-asset/visual-validate/result |
| 查询素材组列表 | POST | /v1/volce-asset/groups/list |
| 查询素材组详情 | POST | /v1/volce-asset/groups/get |
| 更新素材组 | POST | /v1/volce-asset/groups/update |
| 删除素材组 | POST | /v1/volce-asset/groups/delete |
| 创建素材 | POST | /v1/volce-asset/assets/create |
| 查询素材列表 | POST | /v1/volce-asset/assets/list |
| 查询素材详情 | POST | /v1/volce-asset/assets/get |
| 更新素材 | POST | /v1/volce-asset/assets/update |
| 删除素材 | POST | /v1/volce-asset/assets/delete |
认证方式:Authorization: Bearer <your-api-key>
请求示例中使用中国大陆节点:
export ENDPOINT="https://hk.hyucloud.com"
export hyucloud_API_KEY="<your-api-key>"使用流程#
真人素材通常按以下流程使用:
1. 调用 GET /v1/volce-asset/visual-validate/sessions 创建真人认证会话,获取 h5_link 和 bearer_token。 2. 在浏览器中打开 h5_link,按页面提示完成真人认证。 3. 调用 POST /v1/volce-asset/visual-validate/result 查询认证状态。状态为 group_ready 时会返回 group_id。 4. 使用 group_id 调用素材创建接口,将图片、视频或音频 URL 添加到该素材组。 5. 通过素材查询接口确认素材状态为 Active 后,在支持私域素材的模型调用中使用对应素材。
真人认证#
创建真人认证会话#
创建一次真人认证会话。接口返回的 h5_link 需要由真实用户在浏览器中打开并完成认证。
GET /v1/volce-asset/visual-validate/sessions
请求示例#
curl --location "$ENDPOINT/v1/volce-asset/visual-validate/sessions" \
--header "Authorization: Bearer $hyucloud_API_KEY"响应示例#
{
"bearer_token": "2b7b3f8e-0f7d-4d4c-8f0f-xxxxxxxxxxxx",
"h5_link": "https://example.com/visual-validate?token=xxxx"
}响应字段#
| 字段 | 类型 | 说明 |
|---|---|---|
bearer_token | string | 本次认证会话的查询凭证,用于后续查询认证结果。有效期约 30 分钟。 |
h5_link | string | 真人认证 H5 链接。业务方需要引导用户打开该链接完成认证。 |
查询真人认证结果#
认证完成后,使用 bearer_token 查询认证状态和素材组 ID。
POST /v1/volce-asset/visual-validate/result
请求体#
{
"bearer_token": "2b7b3f8e-0f7d-4d4c-8f0f-xxxxxxxxxxxx"
}参数说明#
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
bearer_token | string | 是 | 创建认证会话时返回的查询凭证。 |
请求示例#
curl --location "$ENDPOINT/v1/volce-asset/visual-validate/result" \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"bearer_token": "2b7b3f8e-0f7d-4d4c-8f0f-xxxxxxxxxxxx"
}'响应示例#
{
"status": "group_ready",
"group_id": "group-20260331145705-xxxxx"
}响应字段#
| 字段 | 类型 | 说明 |
|---|---|---|
status | string | 认证会话状态。 |
group_id | string | 真人认证通过后创建的素材组 ID。仅在素材组已就绪时返回有效值。 |
status 枚举#
| 值 | 含义 |
|---|---|
created | 会话已创建,用户尚未完成真人认证或回调尚未完成处理。 |
group_ready | 真人认证通过,素材组已创建,可以继续创建素材。 |
failed | 真人认证失败。 |
expired | 会话已过期。 |
素材组管理#
素材组用于归类和管理素材。真人认证通过后会自动创建一个 LivenessFace 类型素材组。
查询素材组列表#
POST /v1/volce-asset/groups/list
请求体#
{
"filter": {
"group_ids": ["group-20260331145705-xxxxx"],
"group_type": "LivenessFace",
"name": "test"
},
"page_number": 1,
"page_size": 10
}参数说明#
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
filter.group_ids | string[] | 否 | 素材组 ID 列表。为空时查询当前账号可见的全部素材组。 |
filter.group_type | string | 否 | 素材组类型。可选值:LivenessFace、AIGC。 |
filter.name | string | 否 | 素材组名称,支持模糊匹配。 |
page_number | integer | 否 | 页码,从 1 开始,默认 1。 |
page_size | integer | 否 | 每页数量,默认 10,最大 100。 |
请求示例#
curl --location "$ENDPOINT/v1/volce-asset/groups/list" \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"filter": {
"group_type": "LivenessFace"
},
"page_number": 1,
"page_size": 10
}'响应示例#
{
"items": [
{
"id": "group-20260331145705-xxxxx",
"name": "真人素材组",
"description": "用于数字人生成",
"group_type": "LivenessFace",
"project_name": "default",
"create_time": "2026-03-31T06:57:05Z",
"update_time": "2026-03-31T06:57:05Z"
}
],
"total_count": 1,
"page_number": 1,
"page_size": 10
}响应字段#
| 字段 | 类型 | 说明 |
|---|---|---|
items | object[] | 素材组列表。 |
items[].id | string | 素材组 ID。 |
items[].name | string | 素材组名称。 |
items[].description | string | 素材组描述。 |
items[].group_type | string | 素材组类型。 |
items[].project_name | string | 资源所属项目。 |
items[].create_time | string | 创建时间。 |
items[].update_time | string | 更新时间。 |
total_count | integer | 满足条件的素材组总数。 |
page_number | integer | 当前页码。 |
page_size | integer | 每页数量。 |
查询素材组详情#
POST /v1/volce-asset/groups/get
请求体#
{
"id": "group-20260331145705-xxxxx"
}请求示例#
curl --location "$ENDPOINT/v1/volce-asset/groups/get" \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"id": "group-20260331145705-xxxxx"
}'响应示例#
{
"id": "group-20260331145705-xxxxx",
"name": "真人素材组",
"description": "用于数字人生成",
"group_type": "LivenessFace",
"project_name": "default",
"create_time": "2026-03-31T06:57:05Z",
"update_time": "2026-03-31T06:57:05Z"
}更新素材组#
更新素材组名称或描述。
POST /v1/volce-asset/groups/update
请求体#
{
"id": "group-20260331145705-xxxxx",
"name": "new-name",
"description": "new-description"
}参数说明#
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
id | string | 是 | 素材组 ID。 |
name | string | 否 | 新素材组名称,name 和 description 至少传一个。 |
description | string | 否 | 新素材组描述,name 和 description 至少传一个。 |
请求示例#
curl --location "$ENDPOINT/v1/volce-asset/groups/update" \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"id": "group-20260331145705-xxxxx",
"name": "真人素材组",
"description": "用于数字人生成"
}'响应示例#
{
"id": "group-20260331145705-xxxxx"
}删除素材组#
删除指定素材组。
风险提示:删除素材组会级联删除组内全部素材,操作不可逆。删除前请确认该素材组和组内素材不再被业务使用。
POST /v1/volce-asset/groups/delete
请求体#
{
"id": "group-20260331145705-xxxxx"
}请求示例#
curl --location "$ENDPOINT/v1/volce-asset/groups/delete" \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"id": "group-20260331145705-xxxxx"
}'响应示例#
{}素材资产管理#
素材资产表示素材组中的单个素材。创建素材时需要提供公网可访问 URL,当前不支持 Base64 上传。
创建素材#
在指定素材组中创建素材。调用成功只表示素材已提交,素材仍会经过异步处理。请通过查询素材详情或素材列表确认 status 为 Active 后再使用。
POST /v1/volce-asset/assets/create
请求体#
{
"group_id": "group-20260331145705-xxxxx",
"url": "https://example.com/image.jpg",
"name": "test-image",
"asset_type": "Image"
}参数说明#
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
group_id | string | 是 | 素材所属素材组 ID。 |
url | string | 是 | 素材公网可访问 URL。 |
name | string | 否 | 素材名称。 |
asset_type | string | 是 | 素材类型。可选值:Image、Video、Audio。 |
素材限制#
| 类型 | 主要限制 |
|---|---|
Image | 支持 jpeg/png/webp/bmp/tiff/gif/heic/heif;宽高比 (0.4, 2.5);宽高长度 (300, 6000) px;单图小于 30 MB。 |
Video | 支持 mp4/mov;分辨率 480p/720p/1080p;时长 [2, 15] 秒;宽高比 [0.4, 2.5];宽高 [300, 6000] px;总像素数 [409600, 2086876];小于 50 MB;FPS [24, 60]。 |
Audio | 支持 wav/mp3;时长 [2, 15] 秒;小于 15 MB。 |
请求示例#
curl --location "$ENDPOINT/v1/volce-asset/assets/create" \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"group_id": "group-20260331145705-xxxxx",
"url": "https://example.com/image.jpg",
"name": "test-image",
"asset_type": "Image"
}'响应示例#
{
"id": "Asset-20260331150000-xxxxx"
}查询素材列表#
POST /v1/volce-asset/assets/list
请求体#
{
"filter": {
"group_ids": ["group-20260331145705-xxxxx"],
"group_type": "LivenessFace",
"statuses": ["Active"],
"name": "test"
},
"page_number": 1,
"page_size": 10,
"sort_by": "CreateTime",
"sort_order": "Desc"
}参数说明#
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
filter.group_ids | string[] | 否 | 素材组 ID 列表。为空时查询当前账号可见素材组下的素材。 |
filter.group_type | string | 否 | 素材组类型。可选值:LivenessFace、AIGC;默认 LivenessFace。 |
filter.statuses | string[] | 否 | 素材状态列表。可选值:Active、Processing、Failed。 |
filter.name | string | 否 | 素材名称,支持模糊匹配。 |
page_number | integer | 否 | 页码,从 1 开始,默认 1。 |
page_size | integer | 否 | 每页数量,默认 10,最大 100。 |
sort_by | string | 否 | 排序字段。可选值:CreateTime、UpdateTime、GroupId。 |
sort_order | string | 否 | 排序方向。可选值:Desc、Asc。 |
请求示例#
curl --location "$ENDPOINT/v1/volce-asset/assets/list" \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"filter": {
"group_ids": ["group-20260331145705-xxxxx"],
"statuses": ["Active"]
},
"page_number": 1,
"page_size": 10
}'响应示例#
{
"items": [
{
"id": "Asset-20260331150000-xxxxx",
"name": "test-image",
"url": "https://example.com/asset-url",
"group_id": "group-20260331145705-xxxxx",
"asset_type": "Image",
"status": "Active",
"error": {
"code": "",
"message": ""
},
"project_name": "default",
"create_time": "2026-03-31T07:00:00Z",
"update_time": "2026-03-31T07:00:30Z"
}
],
"total_count": 1,
"page_number": 1,
"page_size": 10
}响应字段#
| 字段 | 类型 | 说明 |
|---|---|---|
items | object[] | 素材列表。 |
items[].id | string | 素材资产 ID。 |
items[].name | string | 素材名称。 |
items[].url | string | 素材访问地址。 |
items[].group_id | string | 素材所属素材组 ID。 |
items[].asset_type | string | 素材类型:Image、Video、Audio。 |
items[].status | string | 素材状态:Active、Processing、Failed。 |
items[].error.code | string | 处理失败时的错误码。 |
items[].error.message | string | 处理失败时的错误信息。 |
items[].project_name | string | 资源所属项目。 |
items[].create_time | string | 创建时间。 |
items[].update_time | string | 更新时间。 |
total_count | integer | 满足条件的素材总数。 |
page_number | integer | 当前页码。 |
page_size | integer | 每页数量。 |
查询素材详情#
POST /v1/volce-asset/assets/get
请求体#
{
"id": "Asset-20260331150000-xxxxx"
}请求示例#
curl --location "$ENDPOINT/v1/volce-asset/assets/get" \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"id": "Asset-20260331150000-xxxxx"
}'响应示例#
{
"id": "Asset-20260331150000-xxxxx",
"name": "test-image",
"url": "https://example.com/asset-url",
"group_id": "group-20260331145705-xxxxx",
"asset_type": "Image",
"status": "Active",
"error": {
"code": "",
"message": ""
},
"project_name": "default",
"create_time": "2026-03-31T07:00:00Z",
"update_time": "2026-03-31T07:00:30Z"
}更新素材#
当前仅支持更新素材名称。
POST /v1/volce-asset/assets/update
请求体#
{
"id": "Asset-20260331150000-xxxxx",
"name": "new-name"
}请求示例#
curl --location "$ENDPOINT/v1/volce-asset/assets/update" \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"id": "Asset-20260331150000-xxxxx",
"name": "new-name"
}'响应示例#
{
"id": "Asset-20260331150000-xxxxx"
}删除素材#
删除指定素材资产。
POST /v1/volce-asset/assets/delete
请求体#
{
"id": "Asset-20260331150000-xxxxx"
}请求示例#
curl --location "$ENDPOINT/v1/volce-asset/assets/delete" \
--header "Authorization: Bearer $hyucloud_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"id": "Asset-20260331150000-xxxxx"
}'响应示例#
{}注意事项#
- 所有接口都会按当前 API Key 所属账号做权限校验。只能查询和管理当前账号可见的素材组和素材。
- 创建素材时,
url必须是服务端可访问的公网 URL。 - 素材创建是异步处理,
assets/create返回素材 ID 后,请轮询assets/get或assets/list,等待status变为Active。 - 删除素材组会级联删除组内全部素材,操作不可逆。
- 接口错误码请参考 错误码。
MiniMax/Hailuo-2.3-I2V#
图生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 MiniMax-Hailuo-2.3 |
| input.first_frame_image | string | 是 | 视频起始帧图片,支持公网 URL 或 Base64 编码的 Data URL(格式:data:image/jpeg;base64,...)<br/>图片要求:<br/>- 格式:JPG、JPEG、PNG、WebP<br/>- 体积:≤20MB<br/>- 尺寸:短边像素>300px,长宽比 2:5 ~ 5:2 之间 |
| input.prompt | string | 是 | 视频文本描述,最大长度 2000 字符<br/>支持运镜指令,详见「运镜控制说明」 |
| parameters.duration | int | 否 | 视频时长(秒),与模型和分辨率相关,详见「时长与分辨率对应关系」,默认 6 |
| parameters.resolution | string | 否 | 视频分辨率,与模型和时长相关,详见「时长与分辨率对应关系」 |
| parameters.prompt_optimizer | boolean | 否 | 是否自动优化文本描述,默认 true |
| parameters.fast_pretreatment | boolean | 否 | 是否缩短文本优化耗时(仅对 MiniMax-Hailuo-2.3生效),默认 false |
| parameters.aigc_watermark | boolean | 否 | 是否在视频中添加水印,默认 false |
运镜控制说明#
MiniMax-Hailuo-2.3 系列模型支持运镜指令,可在 input.prompt 中使用以下运镜指令:
支持的运镜指令(共15种)#
| 类别 | 指令 |
|---|---|
| 左右移 | [左移]、[右移] |
| 左右摇 | [左摇]、[右摇] |
| 推拉 | [推进]、[拉远] |
| 升降 | [上升]、[下降] |
| 上下摇 | [上摇]、[下摇] |
| 变焦 | [变焦推近]、[变焦拉远] |
| 其他 | [晃动]、[跟随]、[固定] |
运镜使用规则#
1. 组合运镜:同一组 [] 内可添加多个指令(建议不超过3个),同时生效。示例:"prompt": "一只猫在草地上跑[左摇,上升]" 2. 顺序运镜:prompt 中前后指令依次生效。示例:"prompt": "一只猫在草地上跑[推进], 然后[拉远]" 3. 自然语言支持:也可通过自然语言描述运镜,但使用标准指令效果更精准
时长与分辨率对应关系#
1. 不同模型支持的时长(秒)#
| 模型 | 720P 分辨率 | 768P 分辨率 | 1080P 分辨率 |
|---|---|---|---|
| MiniMax-Hailuo-2.3 | - | 6、10 | 6 |
2. 不同模型支持的分辨率#
| 模型 | 6秒时长 | 10秒时长 |
|---|---|---|
| MiniMax-Hailuo-2.3 | 768P(默认)、1080P | 768P(默认) |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "MiniMax-Hailuo-2.3",
"input": {
"first_frame_image": "https://cdn.hyucloud.com/prod/2024-09-18-16/user/multi_chat_file/9c0b5c14-ee88-4a5b-b503-4f626f018639.jpeg",
"prompt": "A mouse runs toward the camera, smiling and blinking. [推进, 跟随]"
},
"parameters": {
"duration": 6,
"resolution": "1080P",
"prompt_optimizer": true,
"fast_pretreatment": false,
"aigc_watermark": false
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "106916112212032"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending、Running、Success、Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 视频时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "176843862716480",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 6
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 6
},
"request_id": ""
}MiniMax/Hailuo-2.3-T2V#
文生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 MiniMax-Hailuo-2.3 |
| input.prompt | string | 是 | 视频文本描述,最大长度 2000 字符<br/>支持运镜指令,详见「运镜控制说明」 |
| parameters.duration | int | 否 | 视频时长(秒),与模型和分辨率相关,详见「时长与分辨率对应关系」,默认 6 |
| parameters.resolution | string | 否 | 视频分辨率,与模型和时长相关,详见「时长与分辨率对应关系」 |
| parameters.prompt_optimizer | boolean | 否 | 是否自动优化文本描述,默认 true |
| parameters.fast_pretreatment | boolean | 否 | 是否缩短文本优化耗时(仅对 MiniMax-Hailuo-2.3 生效),默认 false |
| parameters.aigc_watermark | boolean | 否 | 是否在视频中添加水印,默认 false |
运镜控制说明#
MiniMax-Hailuo-2.3 系列模型支持运镜指令,可在 input.prompt 中使用以下运镜指令:
支持的运镜指令(共15种)#
| 类别 | 指令 |
|---|---|
| 左右移 | [左移]、[右移] |
| 左右摇 | [左摇]、[右摇] |
| 推拉 | [推进]、[拉远] |
| 升降 | [上升]、[下降] |
| 上下摇 | [上摇]、[下摇] |
| 变焦 | [变焦推近]、[变焦拉远] |
| 其他 | [晃动]、[跟随]、[固定] |
运镜使用规则#
1. 组合运镜:同一组 [] 内可添加多个指令(建议不超过3个),同时生效。示例:"prompt": "一只猫在草地上跑[左摇,上升]" 2. 顺序运镜:prompt 中前后指令依次生效。示例:"prompt": "一只猫在草地上跑[推进], 然后[拉远]" 3. 自然语言支持:也可通过自然语言描述运镜,但使用标准指令效果更精准
时长与分辨率对应关系#
1. 不同模型支持的时长(秒)#
| 模型 | 720P 分辨率 | 768P 分辨率 | 1080P 分辨率 |
|---|---|---|---|
| MiniMax-Hailuo-2.3 | - | 6、10 | 6 |
2. 不同模型支持的分辨率#
| 模型 | 6秒时长 | 10秒时长 |
|---|---|---|
| MiniMax-Hailuo-2.3 | 768P(默认)、1080P | 768P(默认) |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "MiniMax-Hailuo-2.3",
"input": {
"prompt": "A beautiful sunset over the ocean with waves gently crashing on the shore. [推进, 跟随]"
},
"parameters": {
"duration": 6,
"resolution": "1080P",
"prompt_optimizer": true,
"fast_pretreatment": false,
"aigc_watermark": false
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "106916112212032"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending、Running、Success、Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 视频时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "176843862716480",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 6
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 6
},
"request_id": ""
}MiniMax/Hailuo-2.3-Fast#
图生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 MiniMax-Hailuo-2.3-Fast |
| input.first_frame_image | string | 是 | 视频起始帧图片,支持公网 URL 或 Base64 编码的 Data URL(格式:data:image/jpeg;base64,...)<br/>图片要求:<br/>- 格式:JPG、JPEG、PNG、WebP<br/>- 体积:≤20MB<br/>- 尺寸:短边像素>300px,长宽比 2:5 ~ 5:2 之间 |
| input.prompt | string | 是 | 视频文本描述,最大长度 2000 字符<br/>支持运镜指令,详见「运镜控制说明」 |
| parameters.duration | int | 否 | 视频时长(秒),与模型和分辨率相关,详见「时长与分辨率对应关系」,默认 6 |
| parameters.resolution | string | 否 | 视频分辨率,与模型和时长相关,详见「时长与分辨率对应关系」 |
| parameters.prompt_optimizer | boolean | 否 | 是否自动优化文本描述,默认 true |
| parameters.fast_pretreatment | boolean | 否 | 是否缩短文本优化耗时(仅对 MiniMax-Hailuo-2.3 生效),默认 false |
| parameters.aigc_watermark | boolean | 否 | 是否在视频中添加水印,默认 false |
运镜控制说明#
MiniMax-Hailuo-2.3-Fast 系列模型支持运镜指令,可在 input.prompt 中使用以下运镜指令:
支持的运镜指令(共15种)#
| 类别 | 指令 |
|---|---|
| 左右移 | [左移]、[右移] |
| 左右摇 | [左摇]、[右摇] |
| 推拉 | [推进]、[拉远] |
| 升降 | [上升]、[下降] |
| 上下摇 | [上摇]、[下摇] |
| 变焦 | [变焦推近]、[变焦拉远] |
| 其他 | [晃动]、[跟随]、[固定] |
运镜使用规则#
1. 组合运镜:同一组 [] 内可添加多个指令(建议不超过3个),同时生效。示例:"prompt": "一只猫在草地上跑[左摇,上升]" 2. 顺序运镜:prompt 中前后指令依次生效。示例:"prompt": "一只猫在草地上跑[推进], 然后[拉远]" 3. 自然语言支持:也可通过自然语言描述运镜,但使用标准指令效果更精准
时长与分辨率对应关系#
1. 不同模型支持的时长(秒)#
| 模型 | 720P 分辨率 | 768P 分辨率 | 1080P 分辨率 |
|---|---|---|---|
| MiniMax-Hailuo-2.3-Fast | - | 6、10 | 6 |
2. 不同模型支持的分辨率#
| 模型 | 6秒时长 | 10秒时长 |
|---|---|---|
| MiniMax-Hailuo-2.3-Fast | 768P(默认)、1080P | 768P(默认) |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "MiniMax-Hailuo-2.3-Fast",
"input": {
"prompt": "A beautiful sunset over the ocean with waves gently crashing on the shore. [推进, 跟随]",
"first_frame_image": "https://hk.hyucloud.com/hyucloud-maxcot.jpg"
},
"parameters": {
"duration": 6,
"resolution": "1080P",
"prompt_optimizer": true,
"fast_pretreatment": false,
"aigc_watermark": false
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "106916112212032"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending、Running、Success、Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 视频时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "176843862716480",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 6
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 6
},
"request_id": ""
}MiniMax/Hailuo-02#
文生视频,图生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 MiniMax-Hailuo-02 |
| input.prompt | string | 是 | 视频文本描述,最大长度 2000 字符<br/>支持运镜指令,详见「运镜控制说明」 |
| input.first_frame_image | string | 否 | 视频起始帧图片,支持公网 URL 或 Base64 编码的 Data URL(格式:data:image/jpeg;base64,...)<br/>图片要求:<br/>- 格式:JPG、JPEG、PNG、WebP<br/>- 体积:≤20MB<br/>- 尺寸:短边像素>300px,长宽比 2:5 ~ 5:2 之间 |
| input.last_frame_image | string | 否 | 视频尾帧图片,支持公网 URL 或 Base64 编码的 Data URL(格式:data:image/jpeg;base64,...)<br/>图片要求:<br/>- 格式:JPG、JPEG、PNG、WebP<br/>- 体积:≤20MB<br/>- 尺寸:短边像素>300px,长宽比 2:5 ~ 5:2 之间 |
| parameters.duration | int | 否 | 视频时长(秒),与模型和分辨率相关,详见「时长与分辨率对应关系」,默认 6 |
| parameters.resolution | string | 否 | 视频分辨率,与模型和时长相关,详见「时长与分辨率对应关系」 |
| parameters.prompt_optimizer | boolean | 否 | 是否自动优化文本描述,默认 true |
| parameters.fast_pretreatment | boolean | 否 | 是否缩短文本优化耗时(仅对 MiniMax-Hailuo-2.3 生效),默认 false |
| parameters.aigc_watermark | boolean | 否 | 是否在视频中添加水印,默认 false |
运镜控制说明#
MiniMax-Hailuo-02 系列模型支持运镜指令,可在 input.prompt 中使用以下运镜指令:
支持的运镜指令(共15种)#
| 类别 | 指令 |
|---|---|
| 左右移 | [左移]、[右移] |
| 左右摇 | [左摇]、[右摇] |
| 推拉 | [推进]、[拉远] |
| 升降 | [上升]、[下降] |
| 上下摇 | [上摇]、[下摇] |
| 变焦 | [变焦推近]、[变焦拉远] |
| 其他 | [晃动]、[跟随]、[固定] |
运镜使用规则#
1. 组合运镜:同一组 [] 内可添加多个指令(建议不超过3个),同时生效。示例:"prompt": "一只猫在草地上跑[左摇,上升]" 2. 顺序运镜:prompt 中前后指令依次生效。示例:"prompt": "一只猫在草地上跑[推进], 然后[拉远]" 3. 自然语言支持:也可通过自然语言描述运镜,但使用标准指令效果更精准
时长与分辨率对应关系#
1. 不同模型支持的时长(秒)#
| 模型 | 720P 分辨率 | 768P 分辨率 | 1080P 分辨率 |
|---|---|---|---|
| MiniMax-Hailuo-02 | - | 6、10 | 6 |
2. 不同模型支持的分辨率#
| 模型 | 6秒时长 | 10秒时长 |
|---|---|---|
| MiniMax-Hailuo-02 | 768P(默认)、1080P | 768P(默认) |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "MiniMax-Hailuo-02",
"input": {
"prompt": "A beautiful sunset over the ocean with waves gently crashing on the shore. [推进, 跟随]"
},
"parameters": {
"duration": 6,
"resolution": "1080P",
"prompt_optimizer": true,
"fast_pretreatment": false,
"aigc_watermark": false
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "106916112212032"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending、Running、Success、Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 视频时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "176843862716480",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 6
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 6
},
"request_id": ""
}Kling/O1#
全视频生成模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 kling-video-o1 |
| input.prompt | string | 是 | 提示词,用于指导视频生成 |
| parameters.mode | string | 否 | 生成模式,可选值:std、pro,默认为 pro 目前只支持pro |
| parameters.aspect_ratio | string | 否 | 视频长宽比,可选值:16:9、9:16、1:1 |
| parameters.duration | int | 否 | 视频时长(秒),可选值:3、4、5、6、7、8、9、10,默认为 5 <br/> 使用文生视频、首帧图生视频时,仅支持5和10s<br/>使用视频编辑功能(“refer_type”:“base”)时,输出结果与传入视频时长相同,此时当前参数无效;此时,按输入视频时长四舍五入取整计量计费 |
| parameters.image_list | array | 否 | 图片列表,用于指定视频的首帧或尾帧。每个图片项包含:<br/>- image_url:图片 URL 或 Base64 编码<br/>- type:图片类型,可选值:first_frame(首帧)、end_frame(尾帧) |
| parameters.video_list | array | 否 | 视频列表,用于视频参考或编辑。每个视频项包含:<br/>- video_url:视频 URL<br/>- refer_type:参考类型,可选值:feature(特征参考)、base(待编辑)<br/>- keep_original_sound:是否保留原音,可选值:yes、no |
| parameters.element_list | array | 否 | 主体参考列表 <br/>- 基于主体库中主体的ID配置,用key:value承载,如下:<br/>"element_list":[<br/>{<br/>"element_id":long<br/>}<br/>]<br/>- 参考主体数量与有无参考视频、参考图片数量有关,其中:<br/>- 有参考视频时,参考图片数量和参考主体数量之和不得超过4;<br/>- 无参考视频时,参考图片数量和参考主体数量之和不得超过7 |
注意:
- O1 模型不支持自定义主体相关功能(
element_list参数),如需支持请联系技术支持。
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-video-o1",
"input": {
"prompt": "A beautiful sunset over the ocean with waves gently crashing"
},
"parameters": {
"mode": "pro",
"aspect_ratio": "16:9",
"duration": 5,
"image_list": [
{
"image_url": "https://example.com/first_frame.jpg",
"type": "first_frame"
}
]
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending、Running、Success、Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 视频时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}Kling/v2.6-I2V#
图生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 kling-v2-6 |
| input.prompt | string | 是 | 提示词,用于指导视频生成 |
| input.negative_prompt | string | 否 | 反向提示词,用于限制不希望出现的内容 |
| parameters.mode | string | 否 | 生成模式,可选值:std、pro,默认为 pro 目前只支持pro |
| parameters.aspect_ratio | string | 否 | 视频长宽比,可选值:16:9、9:16、1:1 |
| parameters.duration | int | 否 | 视频时长(秒),可选值:5、10,默认为 5 |
| parameters.image | string | 是 | 参考图像 <br/>支持传入图片Base64编码或图片URL(确保可访问)<br/>请注意,若您使用base64的方式,请确保您传递的所有图像数据参数均采用Base64编码格式。在提交数据时,请不要在Base64编码字符串前添加任何前缀,例如data:image/png;base64,。正确的参数格式应该直接是Base64编码后的字符串。<br/>示例:<br/>正确的Base64编码参数:<br/><br/> iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==<br/><br/>错误的Base64编码参数(包含data:前缀):<br/><br/> data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==<br/><br/>请仅提供Base64编码的字符串部分,以便系统能够正确处理和解析您的数据<br/>- 图片格式支持.jpg / .jpeg / .png<br/>- 图片文件大小不能超过10MB,图片宽高尺寸不小于300px,图片宽高比介于1:2.5 ~ 2.5:1之间<br/>- image 参数与 image_tail 参数至少二选一,二者不能同时为空 |
| parameters.image_tail | string | 否 | 视频尾帧图片 URL,支持 URL 或 Base64 编码。具体要求参照 parameters.image |
注意:
- v2.6 不支持有声视频(包含音色
voice_list、sound参数),如需支持请联系技术支持。
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v2-6",
"input": {
"prompt": "The image comes to life with gentle movement"
},
"parameters": {
"mode": "pro",
"aspect_ratio": "16:9",
"duration": 5,
"image": "https://example.com/first_frame.jpg"
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending、Running、Success、Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 视频时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}Kling/v2.6-T2V#
文生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 kling-v2-6 |
| input.prompt | string | 是 | 提示词,用于指导视频生成 |
| input.negative_prompt | string | 否 | 反向提示词,用于限制不希望出现的内容 |
| parameters.mode | string | 否 | 生成模式,可选值:std、pro,默认为 pro 目前只支持pro |
| parameters.aspect_ratio | string | 否 | 视频长宽比,可选值:16:9、9:16、1:1 |
| parameters.duration | int | 否 | 视频时长(秒),可选值:5、10,默认为 5 |
注意: -v2.6 不支持有声视频(包含音色 voice_list、sound 参数),如需支持请联系技术支持。
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v2-6",
"input": {
"prompt": "A beautiful girl is dancing in a garden"
},
"parameters": {
"mode": "pro",
"aspect_ratio": "16:9",
"duration": 5
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending、Running、Success、Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 视频时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}Kling/V3-Omni#
多模态视频生成模型,支持文本、图像和视频作为多模态输入。
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 kling-v3-omni |
| input.prompt | string | 否 | 提示词,最多 2500 字符。当 multi_shot 为 false 时不能为空。<br/>可通过 <<<image_1>>>、<<<video_1>>> 格式引用图片、视频 |
| input.negative_prompt | string | 否 | 反向提示词,最多 2500 字符。建议直接在正向 prompt 中通过否定句添加 |
| parameters.mode | string | 否 | 生成模式。std:标准模式(720P);pro:专业模式(1080P)。默认 pro |
| parameters.aspect_ratio | string | 条件必选 | 视频长宽比,可选值:16:9、9:16、1:1。仅在使用视频编辑功能(refer_type: base)时可省略,其他场景均必填 |
| parameters.duration | int | 否 | 视频时长(秒),可选值:3 ~ 15,默认 5。<br/>使用视频参考时仅支持 3 ~ 10 秒。<br/>使用视频编辑功能(refer_type: base)时,输出与传入视频时长相同,此参数无效 |
| parameters.sound | string | 否 | 是否生成声音,可选值:on、off,默认 off。<br/>有参考视频时只能为 off |
| parameters.multi_shot | bool | 否 | 是否启用多镜头模式,默认 false。<br/>为 true 时 prompt 无效;为 false 时 shot_type 和 multi_prompt 无效 |
| parameters.shot_type | string | 否 | 镜头类型,当 multi_shot 为 true 时必填,可选值:customize |
| parameters.multi_prompt | array | 否 | 多镜头提示词列表,当 multi_shot 为 true 且 shot_type 为 customize 时不能为空。<br/>最少 1 个镜头,最多 6 个;每个镜头内容不超过 512 字符;每个镜头时长不小于 1 秒且不大于总时长;所有镜头时长之和需等于总时长。<br/>每项包含:<br/>- index:镜头序号,从 1 开始(int)<br/>- prompt:该镜头提示词(string)<br/>- duration:该镜头时长(string) |
| parameters.image_list | array | 否 | 参考图片列表,支持首帧/尾帧/参考图。每项包含:<br/>- image_url:图片 URL 或 Base64(string,必填)<br/>- type:图片类型,可选值 first_frame、end_frame(string,可选)<br/><br/>约束:<br/>- 有参考视频时,图片数量 ≤ 4<br/>- 无参考视频时,图片数量 ≤ 7<br/>- 图片数量超过 2 时不支持设置尾帧<br/>- 暂不支持仅尾帧(有尾帧时必须有首帧) |
| parameters.video_list | array | 否 | 参考视频列表,最多 1 段。每项包含:<br/>- video_url:视频 URL(string,必填,支持 MP4/MOV)<br/>- refer_type:参考类型,feature(特征参考)或 base(待编辑),默认 base<br/>- keep_original_sound:是否保留原声,yes 或 no<br/><br/>使用视频参考时仅支持 3-10 秒。待编辑视频时不能定义首尾帧。有参考视频时 sound 只能为 off |
| parameters.watermark_enabled | bool | 否 | 是否生成带水印的结果,暂不支持自定义水印 |
| parameters.external_task_id | string | 否 | 自定义任务 ID,不会覆盖系统生成的任务 ID,但支持通过该 ID 查询任务。请确保单用户下唯一 |
图片格式要求:
- 支持格式:
.jpg、.jpeg、.png - 文件大小:不超过 10MB
- 尺寸要求:宽高最小 300px,宽高比在 1:2.5 ~ 2.5:1 之间
- 使用 Base64 编码时,不要添加
data:image/png;base64,等前缀
视频格式要求:
- 支持格式:MP4、MOV
- 视频时长不少于 3 秒
- 宽高尺寸介于 720px ~ 2160px
- 帧率 24fps ~ 60fps,生成视频输出为 24fps
- 最多 1 段视频,大小不超过 200MB
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
文生视频:
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v3-omni",
"input": {
"prompt": "A beautiful sunset over the ocean with waves gently crashing"
},
"parameters": {
"mode": "pro",
"aspect_ratio": "16:9",
"duration": 5,
"sound": "on"
}
}'图片参考 + 首尾帧:
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v3-omni",
"input": {
"prompt": "A girl walking through a garden"
},
"parameters": {
"mode": "pro",
"aspect_ratio": "16:9",
"duration": 5,
"image_list": [
{"image_url": "https://example.com/first_frame.jpg", "type": "first_frame"},
{"image_url": "https://example.com/last_frame.jpg", "type": "end_frame"}
]
}
}'视频编辑(待编辑视频):
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v3-omni",
"input": {
"prompt": "Add a cinematic color grading effect"
},
"parameters": {
"mode": "pro",
"video_list": [
{
"video_url": "https://example.com/input.mp4",
"refer_type": "base",
"keep_original_sound": "yes"
}
]
}
}'多镜头 + 图片引用:
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v3-omni",
"parameters": {
"mode": "pro",
"aspect_ratio": "16:9",
"duration": 5,
"multi_shot": true,
"shot_type": "customize",
"multi_prompt": [
{"index": 1, "prompt": "<<<image_1>>>A person sitting on a park bench, sunlight filtering through trees", "duration": "2"},
{"index": 2, "prompt": "A car speeding down a rainy street, headlights glowing", "duration": "3"}
],
"image_list": [
{"image_url": "https://example.com/person.jpg"}
],
"sound": "on"
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending、Running、Success、Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 视频时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}错误码#
| 错误码 | 描述 |
|---|---|
| 006001094 | 任务资源不足 |
| 006001095 | 任务响应错误 |
| 006001099 | 任务创建错误 |
Kling/v3#
Kling v3 系列视频生成模型,统一使用 kling-v3 模型 ID,根据入参自动路由到下列三种生成模式:
- 文生视频(t2v):仅传
prompt - 图生视频(i2v):传入参考图(首帧或首尾帧)
- 运动控制(motion_control):同时传入参考图与参考视频,由参考视频驱动角色运动
也可以通过 parameters.kling_v3_type 显式指定模式,详见下方"模式选择"。
模式选择#
服务端按以下优先级判定本次请求走哪种模式:
1. parameters.kling_v3_type 显式指定时优先生效,可选值:t2v / i2v / motion_control 2. 未显式指定时按入参隐式推导: - input.video_url 非空 → motion_control - 存在任一首帧图字段(parameters.image / input.images / input.first_frame_url / input.img_url)→ i2v - 否则 → t2v
推荐生产环境直接传
kling_v3_type显式指定,避免未来字段语义变化导致的隐式路由偏差。
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
通用参数#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,统一为 kling-v3 |
| parameters.kling_v3_type | string | 否 | 显式指定生成模式,可选值:t2v、i2v、motion_control。不传则按入参隐式推导 |
| input.prompt | string | 条件必选 | 提示词,最多 2500 字符。t2v / i2v 模式下当 multi_shot 为 false 时必填;motion_control 模式下可选 |
| input.negative_prompt | string | 否 | 反向提示词,最多 2500 字符 |
| parameters.mode | string | 否 | 生成模式。std:标准模式(720P);pro:专业模式(1080P)。默认 std |
| parameters.aspect_ratio | string | 否 | 视频长宽比,可选值:16:9、9:16、1:1。默认 16:9。i2v 模式下忽略此参数,以输入图片的宽高比为准 |
| parameters.duration | int | 否 | 视频时长(秒)。t2v / i2v 模式可选 3 ~ 15;motion_control 模式可选 5、10。默认 5 |
| parameters.watermark_enabled | bool | 否 | 是否生成带水印的结果 |
| parameters.external_task_id | string | 否 | 自定义任务 ID,不会覆盖系统生成的任务 ID,但支持通过该 ID 查询任务。请确保单用户下唯一 |
文生视频 / 图生视频 模式专属参数(t2v / i2v)#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| parameters.image | string | 条件必选 | 参考图像(首帧),i2v 模式下必填,t2v 模式下不传。支持图片 Base64 编码或图片 URL(确保可访问)。<br/>Base64 编码时请勿添加 data:image/png;base64, 等前缀,直接传入编码字符串即可。<br/>- 图片格式支持 .jpg、.jpeg、.png<br/>- 文件大小不超过 10MB<br/>- 宽高尺寸不小于 300px,宽高比介于 1:2.5 ~ 2.5:1 之间 |
| parameters.image_tail | string | 否 | 视频尾帧图片,传入后同时控制首尾帧。需配合 image 一起使用。支持 URL 或 Base64 编码,格式要求参照 image 参数 |
| parameters.sound | string | 否 | 是否生成声音,可选值:on、off,默认 off |
| parameters.multi_shot | bool | 否 | 是否启用多镜头模式,默认 false。<br/>为 true 时 prompt 无效;为 false 时 shot_type 和 multi_prompt 无效 |
| parameters.shot_type | string | 条件必选 | 镜头类型,当 multi_shot 为 true 时必填,可选值:customize |
| parameters.multi_prompt | array | 条件必选 | 多镜头提示词列表,当 multi_shot 为 true 且 shot_type 为 customize 时不能为空。<br/>最少 1 个镜头,最多 6 个;每个镜头内容不超过 512 字符;每个镜头时长不小于 1 秒且不大于总时长;所有镜头时长之和需等于总时长。<br/>每项包含:<br/>- index:镜头序号,从 1 开始(int)<br/>- prompt:该镜头提示词(string)<br/>- duration:该镜头时长(string) |
运动控制 模式专属参数(motion_control)#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| input.img_url | string | 是 | 参考图片,支持图片 Base64 编码或图片 URL(确保可访问)。<br/>- 图片格式支持 .jpg、.png<br/>- 文件大小不超过 10MB<br/>- 宽高尺寸介于 300px ~ 65536px 之间<br/>- 宽高比介于 1:2.5 ~ 2.5:1 之间 |
| input.video_url | string | 是 | 参考视频 URL,支持 MP4、MOV 格式。<br/>- 文件大小不超过 100MB<br/>- 宽高尺寸介于 340px ~ 3850px 之间<br/>- 视频时长不少于 3 秒;横向视频不超过 30 秒,竖向视频不超过 10 秒 |
| parameters.character_orientation | string | 是 | 角色朝向,决定角色面朝方向。可选值:image(朝向与参考图一致)、video(朝向与参考视频一致) |
| parameters.keep_original_sound | string | 否 | 是否保留参考视频原声,可选值:yes、no,默认 yes |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
文生视频(t2v,不传 image):
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v3",
"input": {
"prompt": "A beautiful sunset over the ocean with waves gently crashing"
},
"parameters": {
"kling_v3_type": "t2v",
"mode": "pro",
"aspect_ratio": "16:9",
"duration": 5,
"sound": "on"
}
}'图生视频(i2v,传入 image 作为首帧):
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v3",
"input": {
"prompt": "The image comes to life with gentle movement"
},
"parameters": {
"kling_v3_type": "i2v",
"mode": "pro",
"duration": 5,
"image": "https://example.com/first_frame.jpg"
}
}'首尾帧控制(i2v,同时传入 image 和 image_tail):
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v3",
"input": {
"prompt": "A girl walking through a garden"
},
"parameters": {
"kling_v3_type": "i2v",
"mode": "pro",
"duration": 5,
"image": "https://example.com/first_frame.jpg",
"image_tail": "https://example.com/last_frame.jpg"
}
}'多镜头生成(t2v):
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v3",
"parameters": {
"kling_v3_type": "t2v",
"mode": "pro",
"aspect_ratio": "16:9",
"duration": 5,
"multi_shot": true,
"shot_type": "customize",
"multi_prompt": [
{"index": 1, "prompt": "A person walking through a misty forest at dawn", "duration": "2"},
{"index": 2, "prompt": "A car speeding down a rainy street, headlights glowing", "duration": "3"}
],
"sound": "on"
}
}'运动控制(motion_control,参考图 + 参考视频):
curl -X POST 'https://hk.hyucloud.com/v1/tasks/submit' \
-H 'Authorization: <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"model": "kling-v3",
"input": {
"img_url": "https://example.com/character.jpg",
"video_url": "https://example.com/motion_reference.mp4",
"prompt": "A person dancing gracefully"
},
"parameters": {
"kling_v3_type": "motion_control",
"duration": 5,
"aspect_ratio": "16:9",
"character_orientation": "image",
"mode": "std"
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending、Running、Success、Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 视频时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}错误码#
| 错误码 | 描述 |
|---|---|
| 006001094 | 任务资源不足 |
| 006001095 | 任务响应错误 |
| 006001099 | 任务创建错误 |
Veo-3.1#
文图生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 veo-3.1-generate-001或veo-3.1-fast-generate-001 |
| input.prompt | string | 是 | 提示词,用于指导视频生成 |
| input.negative_prompt | string | 否 | 反向提示词,用于限制不希望出现的内容 |
| input.image | object | 否 | 用于指导视频生成的图片对象,如果请求包含last_frame对象,则image为首帧对象 |
| input.image.bytesBase64Encoded | string | 否 | 图片的字节 base64 编码字符串。纯 base64 编码数据,不能包含 data:image/jpeg;base64, 这个前缀。 |
| input.image.mimeType | string | 否 | 图片的 MIME 类型,只接受以下 MIME 类型:<br/> image/jpeg <br/> image/png <br/> image/webp |
| input.last_frame | object | 否 | 用于指导视频生成的尾帧图片对象 |
| input.last_frame.bytesBase64Encoded | string | 否 | 图片的字节 base64 编码字符串。纯 base64 编码数据,不能包含 data:image/jpeg;base64, 这个前缀。 |
| input.last_frame.mimeType | string | 否 | 图片的 MIME 类型,只接受以下 MIME 类型:<br/> image/jpeg <br/> image/png <br/> image/webp |
| parameters.resolution | string | 否 | 所生成视频的分辨率。可接受的值为 720p(默认值)或 1080p。 |
| parameters.duration | int | 否 | 视频生成时长(秒),支持4、6 或 8。默认为 8。 |
| parameters.aspect_ratio | int | 否 | 指定所生成视频的宽高比。接受的值如下:<br/> 16:9 <br/>9:16 <br/>默认值为 16:9。 |
| parameters.generate_audio | bool | 是 | 必选参数,为视频生成音频。接受的值包括 true 或 false。 |
| parameters.person_generation | string | 否 | 用于控制是否允许人物或人脸生成的安全设置。以下项之一:<br/>allow_adult(默认值):仅允许生成成人<br/>dont_allow:禁止在图片中包含人物/人脸。 |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "veo-3.1-generate-001",
"input": {
"prompt": "make it run",
"image" : {
"bytesBase64Encoded": "xxxxx",
"mimeType": "image/jpeg"
},
"last_frame" : {
"bytesBase64Encoded": "xxxxx",
"mimeType": "image/jpeg"
}
},
"parameters": {
"duration": 6,
"aspect_ratio": "16:9",
"resolution": "1080p",
"generate_audio": true
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表,默认保留24小时,请及时下载。 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 任务执行时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}Pixverse/Pixverse-v6#
文本/图片/视频 生视频模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处为 pixverse-v6 |
| input.first_frame_url | string | 否 | 视频首帧图片 URL,可为 URL 或 Base64,使用首尾帧生视频时需填写该参数 |
| input.last_frame_url | string | 否 | 视频末帧图片 URL,可为 URL 或 Base64,使用首尾帧生视频时需填写该参数
| input.img_url | string | 否 | 使用参考图生视频时需填写该参数, 可为 URL 或 Base64 |
|---|---|---|---|
| input.prompt | string | 是 | 提示词,用于指导视频生成 |
| parameters.resolution | string | 否 | 生成视频的分辨率档位,当前仅支持1080p、720p、540p、360p |
| parameters.aspect_ratio | string | 否 | 长宽比,支持16:9, 4:3, 1:1, 3:4, 9:16, 2:3, 3:2, 21:9,仅在只由文本,没有参考图像或者视频生成时有效 |
| parameters.duration | int | 否 | 视频生成时长(秒), 1~15 |
| parameters.generate_audio | int | 否 | 是否生成带音频的视频 |
| parameters.seed | int | 否 | 随机数种子,范围[0, 2147483647] |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
- 文生视频
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "pixverse-v6",
"input": {
"prompt": "Convert to quick pencil sketch"
},
"parameters": {
"resolution": "720p",
"aspect_ratio": "16:9",
"duration": 5
}
}'- 首尾帧生视频
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "pixverse-v6",
"input": {
"first_frame_url": "https://hk.hyucloud.com/hyucloud-maxcot.jpg",
"last_frame_url": "https://hk.hyucloud.com/hyucloud-maxcot.jpg",
"prompt": "Convert to quick pencil sketch"
},
"parameters": {
"resolution": "720p",
"duration": 5
}
}'- 参考图生视频
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "pixverse-v6",
"input": {
"img_url": "https://hk.hyucloud.com/hyucloud-maxcot.jpg",
"prompt": "Convert to quick pencil sketch"
},
"parameters": {
"resolution": "720p",
"duration": 5
}
}'- 视频延长
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "pixverse-v6",
"input": {
"video_url": "https://hk.hyucloud.com/maxcot-dance.mp4",
"prompt": "Convert to quick pencil sketch"
},
"parameters": {
"resolution": "720p",
"duration": 5
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending,Running,Success,Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| usage.duration | integer | 任务执行时长(秒) |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}IndexTeam/IndexTTS-2文档#
本文介绍hyucloud语音合成模型IndexTeam/IndexTTS-2调用 API 的输入输出参数,供您使用接口时查阅字段含义。
接口地址#
https://hk.hyucloud.com/v1/audio/infer <br/> 注意:该接口请求体格式必须为 multipart/form-data(表单模式)
请求参数:表单文件参数(Form Data)#
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 要使用的 TTS 模型名称,此处为:IndexTeam/IndexTTS-2 |
| spk_audio_file | 文件(二进制) | 是 | 说话人参考音频文件,用于提取音色特征,仅支持 MP3、WAV,文件小于20MB |
| emo_audio_file | 文件(二进制) | 否 | 情感参考音频文件,用于提取语音的情感特征,仅支持 MP3、WAV,文件小于20MB |
| payload | string | 是 | JSON 格式的配置参数字符串 |
payload 配置参数(JSON 格式)#
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| input | string | 是 | - | 需要合成的文本内容,最大支持 600 字符。 |
| sample_rate | int | 否 | 22050 | 输出音频采样率,单位为 Hz。常见值:22050、44100、48000。 |
| speed | float | 否 | 1 | 语速调整系数,接口限制范围:0.25 <= 值 <= 4.0。 |
| gain | float | 否 | 1 | 音量调整系数,1 为原始音量,>1 表示增大,<1 表示减小。 |
| emo_control_method | int | 否 | 0 | 情感控制方式:0 = 无情感参考;1 = 情感音频参考(需同时传 emo_audio_file);2 = 情感向量参考;3 = 情感文本参考。 |
| emo_alpha | float | 否 | 1 | 情感融合权重,用于控制情感特征对输出结果的影响程度。 |
| emo_vec | array[float] | 否 | [0, 0, 0, 0, 0, 0, 0, 0] | 8 维情感向量,仅在 emo_control_method = 2 时生效;所有元素之和不能超过 1.5。示例:[0.1, 0.2, 0.0, 0.3, 0.1, 0.0, 0.2, 0.4]。 |
| emo_text | string | 否 | "" | 情感文本描述,仅在 emo_control_method = 3 时生效。示例:"今天股票涨停了,好激动"。 |
| use_random | bool | 否 | false | 情感随机性开关。true 表示随机引入情感变化,false 表示严格按指定情感合成。 |
| interval_silence | int | 否 | 200 | 文本分块合成时间隔静音时长,单位为毫秒。 |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl https://hk.hyucloud.com/v1/audio/infer \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F "model=IndexTeam/IndexTTS-2" \
-F "spk_audio_file=@audio/klee.wav" \
-F "emo_audio_file=@audio/emo_sad.wav" \
-F "payload={
\"input\": \"酒楼丧尽天良,开始借机竞拍房间,哎,一群蠢货。\",
\"emo_weight\": 0.8,
\"emo_control_method\": 1
}" \
--output 007_sad_08.wav响应格式#
API 返回二进制音频文件流。
- 音频格式:目前仅支持 WAV 格式输出
- Content-Type:
audio/wav
错误响应#
当请求失败时,API 会返回标准的 JSON 格式错误响应:
{
"error": {
"message": "错误描述信息",
"type": "invalid_request_error",
"code": "error_code",
"param": "<请求 ID,用于反馈或排查错误原因>"
}
}同时兼容以下接口#
接口地址:https://hk.hyucloud.com/v1/audio/speech
请求参数#
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 要使用的 TTS 模型名称,例如:IndexTeam/IndexTTS-2 |
| input | string | 是 | 要转换为语音的文本内容(最大支持 600 字符) |
| voice | string | 是 | 使用的音色,可选值包括:内置音色(jack_cheng, sales_voice, crystla_liu, stephen_chow, xiaoyueyue, mkas, entertain, novel, movie),也可以填写自定义音色 ID(形如 uspeech:xxxx,详见下文「使用自定义音色」) |
调用示例#
以下示例展示如何使用 IndexTeam/IndexTTS-2 模型进行语音合成。请确保将 $hyucloud_API_KEY 替换为您自己的 API Key。
curl#
curl https://hk.hyucloud.com/v1/audio/speech \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-d '{
"model": "IndexTeam/IndexTTS-2",
"input": "你好!欢迎使用 環宇互聯 语音合成服务。",
"voice": "jack_cheng"
}' \
--output speech.wavpython#
from pathlib import Path
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("hyucloud_API_KEY", "<YOUR_hyucloud_API_KEY>"),
base_url="https://hk.hyucloud.com/v1/",
)
speech_file_path = Path(__file__).parent / "generated-speech.wav"
with client.audio.speech.with_streaming_response.create(
model="IndexTeam/IndexTTS-2",
voice="jack_cheng",
input="你好!欢迎使用 環宇互聯 语音合成服务。",
) as response:
response.stream_to_file(speech_file_path)
print(f"Audio saved to {speech_file_path}")使用自定义音色(可选)#
除了使用内置的 voice 名称外,您还可以上传自己的音色(甚至带有特定情绪的样例语音),生成一个专属的 voice_id,在 TTS 请求中通过 voice 字段进行引用。
注意:当前自定义音色资源会在上传 7 天 后自动清理,如需长期使用请注意提前备份或重新上传。(可联系商务团队咨询长期保存需求)
使用方式可以简单理解为 三步:
1. 上传音色,获取 voice_id 调用 POST /v1/audio/voice/upload 上传一段符合要求的示例语音,接口会返回一个 id 作为自定义音色 ID。 详细的请求参数与返回结构请参考《自定义音色管理 API 文档》。 2. 在 TTS 请求中使用 voice_id 在 /v1/audio/speech 请求中,把 voice 字段设置为步骤一返回的 id,下文会给出完整示例。 3. 管理已有的自定义音色(可选) 如需查看或删除已有音色,可调用 GET /v1/audio/voice/list 和 POST /v1/audio/voice/delete。 具体请求/返回格式同样见《自定义音色管理 API 文档》。
提示:自定义音色完全兼容 OpenAI 协议,只是复用了
voice这个字段,不需要学习新的参数名。
在 TTS 请求中使用自定义 voice_id#
当您已经拿到一个自定义音色 id(例如 uspeech:xxxx)后,只需要在 /v1/audio/speech 请求中把 voice 字段改成该 id 即可。
VOICE_ID="uspeech:xxxx-xxxx-xxxx-xxxx"
curl https://hk.hyucloud.com/v1/audio/speech \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-d "{
\"model\": \"IndexTeam/IndexTTS-2\",\
\"input\": \"你好,我是自定义的温柔女声。\",\
\"voice\": \"$VOICE_ID\"\
}" \
--output speech-custom.wav行为说明:
voice为空:使用默认音色或模型自带的默认配置。voice为内置名称(如jack_cheng等):使用平台内置的预置音色。voice为形如uspeech:xxxx的值:表示使用你上传的自定义音色,平台会根据该 ID 查找并应用对应的音色/情绪素材,无需额外配置。
## 响应格式
API 返回二进制音频文件流。
- 音频格式:目前仅支持 WAV 格式输出
- Content-Type:
audio/wav
注意事项#
1. 音频格式:响应的二进制流格式目前仅支持 WAV,暂不支持其他音频格式 2. 文本长度限制:单次请求的文本长度限制因具体模型而异,IndexTeam/IndexTTS-2 模型通常支持 600 字符以内的文本 3. 语音类型:不同的 voice 参数会产生不同音色和风格的语音效果,建议根据实际场景选择合适的语音类型
错误处理#
当请求失败时,API 会返回标准的 JSON 格式错误响应:
{
"error": {
"message": "错误描述信息",
"type": "invalid_request_error",
"code": "error_code",
"param": "<请求 ID,用于反馈或排查错误原因>"
}
}常见问题(FAQ)#
- Q:我上传的音频有什么要求?
A:必须是 MP3/WAV,单个文件 ≤ 20MB,时长 5–30 秒,采样率至少 16kHz,不符合要求会返回 4xx 错误,并在 error.code 中标明原因。
- Q:
voice字段应该填什么?
A: - 想直接用平台提供的固定音色:填写内置名称(如 jack_cheng); - 想用自己录制的音色:先调用上传接口拿到 id,然后在 TTS 请求中把 voice 设置为这个 id(例如 uspeech:xxxx)。
- Q:出现
invalid_voice_id/voice_not_found等错误怎么办?
A:说明当前账号下找不到这个 voice_id,或者已被删除。可以先调用 /v1/audio/voice/list 确认当前可用的 ID,再在请求里使用正确的值。
- Q:不同账号之间能共享自定义音色吗?
A:同一组织下所有子账号,自定义音色可以共享。非同一账号下,无法共享。
自定义音色管理 API 文档#
本文仅描述自定义音色相关管理接口(上传 / 列表 / 删除)的 请求与响应格式,适合已有开发基础的用户参考。如何在
/v1/audio/speech中实际使用自定义音色,请查看《OpenAI TTS API 调用文档》中的「使用自定义音色(可选)」一节。
概述#
- 域名示例:
https://hk.hyucloud.com - 认证方式:所有接口都需要在 Header 中携带
Authorization: Bearer <hyucloud_API_KEY>。 - 组织隔离:
- 自定义音色按组织维度隔离;同一组织下所有子账号可以共享该组织内的自定义音色; - 不同组织之间无法共享。
- 生命周期:自定义音色默认保存 7 天,超期会被后台任务清理;如有长期保存需求,可联系商务团队评估方案。
1. 上传自定义音色#
- HTTP 方法:
POST - 路径:
/v1/audio/voice/upload - Content-Type:
- 推荐:multipart/form-data(直接上传文件) - 也支持:表单字段传 Base64 字符串或远程 URL
1.1 请求参数#
公共字段#
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 是 | 音色名称,用于列表展示,例如「温柔女声」「客服音色A」。 |
| model | string | 是 | 使用该音色时对应的 TTS 模型名称,例如 IndexTeam/IndexTTS-2。与后续 /v1/audio/speech 请求中的 model 保持一致。 |
Speaker(音色语料音频,三选一,必填其一)#
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| speaker_file | file | 是(三选一必填) | 本地音频文件(推荐方式),通过 multipart/form-data 上传。 |
| speaker_file_base64 | string | 是(三选一必填) | speaker_file 的 Base64 字符串,通过普通表单字段传递。 |
| speaker_url | string | 是(三选一必填) | 可访问的公网 URL,指向音色音频文件。 |
说明:
-
speaker_*三个字段 三选一,至少提供其一;- 若同时提供多个,优先级为:
speaker_file→speaker_file_base64→speaker_url;- 若三者均未提供,请求会被拒绝(错误码:
missing_speaker)。
Emotion(情绪样例音频,三选一,可选)#
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| emotion_file | file | 否(三选一可选) | 情绪样例音频文件,通过 multipart/form-data 上传。 |
| emotion_file_base64 | string | 否(三选一可选) | emotion_file 的 Base64 字符串,通过普通表单字段传递。 |
| emotion_url | string | 否(三选一可选) | 可访问的公网 URL,指向情绪样例音频文件。 |
说明:
-
emotion_*字段整体可选,可不提供;- 若同时提供多个,优先级为:
emotion_file→emotion_file_base64→emotion_url;- 若完全不传
emotion_*,则只基于 Speaker 构建音色特征。
1.2 音频文件约束#
对 speaker_* 与 emotion_* 上传的音频均适用以下约束:
- 格式:仅支持
MP3、WAV - 大小:单个音频 ≤
20MB - 时长:
5–30秒 - 采样率:
16kHz及以上
若不满足上述任一条件,接口会返回 4xx 错误,并在 error.code 中标明具体原因(如 file_too_large、duration_out_of_range、sample_rate_too_low 等)。
1.3 请求示例(推荐:multipart 文件上传)#
curl -X POST "https://hk.hyucloud.com/v1/audio/voice/upload" \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F "name=温柔女声" \
-F "model=IndexTeam/IndexTTS-2" \
-F "speaker_file=@/path/to/speaker.wav" \
-F "emotion_file=@/path/to/emotion.wav"1.4 成功响应示例#
{
"id": "uspeech:xxxx-xxxx-xxxx-xxxx"
}id:自定义音色 ID,后续在/v1/audio/speech请求中通过voice字段引用(例如:"voice": "uspeech:xxxx-xxxx-xxxx-xxxx")。
1.5 失败响应示例#
所有错误响应都会采用统一格式:
{
"error": {
"message": "错误描述信息",
"type": "invalid_request_error",
"code": "missing_speaker",
"param": "<请求 ID 或参数名>"
}
}常见错误码示例:
missing_name:未提供name字段;missing_speaker:未提供任意一个speaker_*字段;invalid_speaker_base64:speaker_file_base64解码失败;unsupported_audio_format:音频格式不是 MP3/WAV;file_too_large/duration_out_of_range/sample_rate_too_low:音频不符合大小、时长或采样率限制。
2. 查询自定义音色列表#
- HTTP 方法:
GET - 路径:
/v1/audio/voice/list
2.1 请求说明#
- 无请求体,仅需在 Header 中携带鉴权信息。
- 系统会根据当前 API Key 所属组织(
top_org_id)返回该组织下的自定义音色列表。 - 为保证接口性能,单次调用最多返回
1000条记录。
2.2 响应示例#
{
"list": [
{ "id": "uspeech:xxxx", "name": "温柔女声" },
{ "id": "uspeech:yyyy", "name": "沉稳男声" }
]
}字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
| list | array | 自定义音色列表。 |
| list[].id | string | 自定义音色 ID,可在 /v1/audio/speech 的 voice 字段中引用。 |
| list[].name | string | 创建时填写的音色名称,仅用于展示。 |
3. 删除自定义音色#
- HTTP 方法:
POST - 路径:
/v1/audio/voice/delete - Content-Type:
application/json
3.1 请求参数#
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | string | 是 | 要删除的自定义音色 ID,即上传接口返回的 id。 |
3.2 请求示例#
curl -X POST "https://hk.hyucloud.com/v1/audio/voice/delete" \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"id": "uspeech:xxxx"
}'3.3 成功响应示例#
{
"success": true
}说明:删除成功后,该
voice_id将无法继续在/v1/audio/speech请求中使用,请在确认业务不再引用后再删除。
3.4 可能的错误码#
missing_id:请求体中未提供id字段;invalid_voice_id:指定的id在当前组织下不存在或已被删除;- 其他
server_error:内部错误或对象存储异常,可结合返回的message与请求 ID 排查。
通过以上三个接口,可以完成自定义音色的完整生命周期管理:
1. 通过上传接口创建音色并获取 voice_id; 2. 在 TTS 调用中通过 voice 字段引用该 voice_id; 3. 通过列表/删除接口管理已有音色资源,并结合 7 天有效期策略控制存储成本。
IndexTeam/IndexTTS 系列模型扩展参数说明#
本文档为 IndexTeam/IndexTTS 系列 TTS 模型(例如:
IndexTeam/IndexTTS-2)的 特供说明,仅适用于在 環宇互聯 平台上通过/v1/audio/speech调用这些模型的场景。- 基础调用方式、路径、认证方式等,请参考《OpenAI TTS API 调用文档》。
- 自定义音色(
voice_id)相关内容,请参考《自定义音色管理 API 文档》。- 本文介绍的部分参数 不属于 OpenAI 官方 TTS 协议的一部分,是 環宇互聯 对 IndexTTS 模型的扩展能力,仅在本平台生效。
一、与 OpenAI 标准协议的关系#
/v1/audio/speech的 基础字段(如model、input、voice、response_format、speed、instructions等)完全兼容 OpenAI 的 TTS 协议,具体含义请参考快速开始文档。- 在此基础上,对于 IndexTTS 系列模型,環宇互聯 额外支持一组 扩展字段,用于更细粒度地控制:
- 采样率与音量 - 情绪控制方式与权重 - 情绪向量 / 文本 - 句子划分与静音行为
- 这些扩展字段:
- 仅在 環宇互聯 上调用 IndexTeam/IndexTTS 系列模型时有效; - 对官方 OpenAI 端点并无含义,也不保证可直接透传; - 不填写时,后台会使用模型侧的默认行为。
建议:如需保持“可以无修改切回官方 OpenAI 端点”的强兼容性,请只使用基础字段;
如希望充分利用 IndexTTS 模型的高级控制能力,可以在 環宇互聯 环境下使用本文描述的扩展字段。
二、IndexTTS 扩展字段一览#
以下字段在请求体 JSON 中与基础字段处于同一层级,例如:
{
"model": "IndexTeam/IndexTTS-2",
"input": "你好,欢迎使用 環宇互聯 TTS。",
"voice": "jack_cheng", // 基础字段
"sample_rate": 24000, // 扩展字段
"gain": 1.0, // 扩展字段
"emo_control_method": 1, // 扩展字段
"emo_weight": 0.8, // 扩展字段
"emo_text": "愉快", // 扩展字段
"interval_silence": true // 扩展字段
}注意:所有扩展字段均为 可选,不填写时采用默认设置。
2.1 音频与增益相关#
| 字段名 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
speed | float64 | 否 | 1 | 语音播放速度,范围 0.25-4,不填时使用默认速度。 |
sample_rate | int | 否 | 22050 | 目标音频采样率。由供应商定义支持的具体取值,如 16000、22050、24000 等。不填时使用模型默认采样率。 |
gain | float64 | 否 | 1 | 输出音量增益系数,用于整体放大或减小合成语音的音量。范围建议(0,10],注意0为静音,不填时使用默认音量。 |
2.2 情绪控制相关#
下列字段配合自定义情绪音频 / 文本提示一起使用,可实现更细粒度的情感控制。具体数值含义由 IndexTTS 供应商定义。
| 字段名 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
emo_control_method | int | 否 | 0 | 情绪控制方式的标识(枚举/整数),用于指示模型采用哪种情感控制策略。0:无情绪控制,1:基于情绪音频,2:基于情绪向量,3:基于情绪文本。不填时使用默认情绪控制方式。 |
emo_weight | float64 | 否 | 1.0 | 情绪控制权重,指定情感参考音频文件,情感向量,文本情感模式对输出的影响程度。有效范围为 0.0 到 1.0,默认值为 1.0 (100%)。建议在使用文本情感模式时,将 emo_weight 设置为 0.6 左右(或更低),以获得更自然的语音效果。 |
emo_vec | float64[] | 否 | [0,0,0,0,0,0,0,0] | 情绪向量表示,可用于在向量空间中精细控制情绪特征。[高兴,生气,悲伤,害怕,厌恶,忧郁,惊讶,平静],每个维度的值范围为[0,1.2],且所有维度的值相加不能大于1.5。 |
emo_text | string | 否 | "" | 以自然语言描述情绪的文本提示,例如“愉快”“平静”“激动”等,由供应商作为情绪控制的文字条件输入。 |
emo_random | bool | 否 | false | 是否在情绪控制中引入一定随机性,用于增加多样性或避免每句语音完全一致的情绪表达。具体效果由供应商实现。 |
2.3 句子划分与静音控制#
| 字段名 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
interval_silence | int | 否 | 200 | 是否在句子之间插入间隔静音。例如在多句文本合成时,控制句间是否留出停顿。建议设置为200ms,不填时使用模型默认静音策略。 |
max_text_tokens_per_sentence | int | 否 | 120 | 单句文本切分的最大 token 数 / 长度阈值。用于在长文本场景下控制内部句子划分策略,建议设置为120,不填时使用模型默认切分策略。 |
三、示例:带扩展参数的 IndexTTS 调用#
下面示例演示如何在保持 OpenAI 调用风格的同时,向 IndexTTS 模型传入扩展参数。
3.1 curl 示例#
curl https://hk.hyucloud.com/v1/audio/speech \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-d '{
"model": "IndexTeam/IndexTTS-2",
"input": "你好,这是一段带有愉快情绪的语音示例。",
"voice": "jack_cheng",
// 以下为 IndexTTS 扩展参数,仅在本平台上对 IndexTTS 系列模型有效
"sample_rate": 24000,
"gain": 1.0,
"emo_control_method": 1,
"emo_weight": 0.8,
"emo_text": "愉快",
"interval_silence": 200,
"max_text_tokens_per_sentence": 120
}' \
--output speech-indextts.wav3.2 使用自定义音色 + 扩展参数(示意)#
VOICE_ID="uspeech:xxxx-xxxx-xxxx-xxxx" # 通过 /v1/audio/voice/upload 获取
curl https://hk.hyucloud.com/v1/audio/speech \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-d '{
"model": "IndexTeam/IndexTTS-2",
"input": "你好,我是带情绪的自定义音色示例。",
"voice": "'$VOICE_ID'",
// IndexTTS 扩展参数
"emo_control_method": 2,
"emo_weight": 0.6,
"emo_random": true,
"interval_silence": 200,
"max_text_tokens_per_sentence": 120
}' \
--output speech-indextts-custom.wav说明:
- 上述示例中的扩展参数值仅为演示用途,实际推荐取值范围与语义,请以供应商提供的文档及试听效果为准。
- 不传扩展字段时,IndexTTS 模型会采用默认推理配置,行为与快速开始文档中的示例一致。
四、与其他文档的关系#
- 快速开始文档:《OpenAI TTS API 调用文档》适合希望快速接入、只使用标准参数的用户。
- 自定义音色文档:《自定义音色管理 API 文档》专注描述
voice_id的上传与管理。 - 本文档:专门面向需要深度控制 IndexTTS 系列模型行为的用户,说明在 環宇互聯 环境下可用的 非 OpenAI 标准扩展字段,不会影响或污染基础的快速开始文档。
suno#
音乐生成模型
异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处对应suno模型版本:<br/> suno-v4<br/>suno-v4.5<br/>suno-v4.5+<br/>suno-v4.5-all<br/>suno-v5<br/>suno-v5.5 |
| input.prompt | string | 否 | 歌词 (自定义模式专用) |
| input.gpt_description_prompt | string | 否 | 灵感模式提示词(灵感模式专用) |
| parameters.tags | string | 否 | 风格标签(自定义模式专用) |
| parameters.title | string | 否 | 标题(自定义模式专用) |
| parameters.make_instrumental | bool | 否 | 是否生成纯音乐,true 为生成纯音乐 |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
灵感模式#
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "suno/chirp-bluejay",
"input": {
"gpt_description_prompt": "一首关于乡愁的歌"
}
}'纯音乐灵感模式#
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "suno/chirp-bluejay",
"input": {
"gpt_description_prompt": "一首关于乡愁的歌"
},
"parameters": {
"make_instrumental": true
}
}'自定义歌词歌名#
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "suno/chirp-bluejay",
"input": {
"prompt": "[Verse]\n连续的日子一直忙碌\n文件成堆无尽头\n把梦想藏在抽屉深处\n咖啡杯已经冷透\n\n[Verse 2]\n早上八点打卡上班\n疲惫的眼睛没神采\n同事间的闲聊都没意思\n只盼着时间快快跑起来\n\n[Chorus]\n工作工作老板的呼喊\n做完做完这才算平安\n加班加班才有些钱赚\n梦想梦想何时能实现\n\n[Verse 3]\n午餐时间吃个便当\n看窗外阳光正灿烂\n生活离梦想好远\n眼前只有办公桌和椅子\n\n[Bridge]\n老板的脚步声像雷鸣\n心跳随着节奏加速\n桌上的文件一大堆\n抱怨的声音渐渐消失\n\n[Chorus]\n工作工作老板的呼喊\n做完做完这才算平安\n加班加班才有些钱赚\n梦想梦想何时能实现"
},
"parameters": {
"tags": "pop, ballad",
"title": "归乡"
}
}'纯音乐自定义#
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "suno/chirp-bluejay",
"input": {
"prompt": ""
},
"parameters": {
"tags": "pop, ballad",
"title": "归乡"
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending、Running、Success、Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp3"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"request_id": ""
}suno-cover#
音乐翻唱(cover),可以翻唱上传的音乐,也可以翻唱suno音乐生成的音乐。
翻唱异步提交任务#
接口#
https://hk.hyucloud.com/v1/tasks/submit
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,此处对应suno模型版本:<br/> suno-v4<br/>suno-v4.5<br/>suno-v4.5+<br/>suno-v4.5-all<br/>suno-v5<br/>suno-v5.5 |
| input.prompt | string | 否 | 歌词,如果歌词为空将生成纯音乐。如果有歌词则tags、title必须 |
| parameters.upload_url | string | 是 | 要上传的可访问的音乐地址 |
| parameters.tags | string | 否 | 音乐风格标签 |
| parameters.negative_tags | string | 否 | 要避免的标签 |
| parameters.title | string | 否 | 音乐提交的标题 |
| parameters.task | string | 是 | 任务类型,此处填cover |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/tasks/submit' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "suno-v4.5+",
"input": {
"prompt": "[Verse 1]\n台阶上数着蚂蚁搬家\n凉席上画着歪扭的图画\n电风扇对着西瓜吹了一下午\n外公的摇椅吱呀呀\n\n[Pre-Chorus]\n那时候以为每个问题都有回答\n北斗星下面许的愿会开花\n午睡醒来总有好吃的绿豆沙\n时间慢得像永远长不大\n\n[Chorus]\n那年的蝉 叫了一整个暑假\n我的秘密 藏在枕头底下\n攒了很久的贴纸 贴在铅笔盒上\n以为这样就能留住 那一片晚霞\n\n[Verse 2]\n院子里的石榴树发芽\n水龙头冲走脚丫上的泥巴\n电视剧主题曲学着哼唱\n邻居家小狗叫小花\n\n[Pre-Chorus]\n那时候摔倒了哭一下就好啦\n一颗糖就能换回笑脸啊\n屋顶上看飞机拉出的白线\n猜着它要飞去哪\n\n[Chorus]\n那年的蝉 叫了一整个暑假\n我的愿望 折进星星罐里啦\n攒了很久的硬币 买一根冰棒\n甜了整个夏天 融化了也没怕\n\n[Bridge]\n后来院子拆了 石榴树没啦\n外公不在了 摇椅也搬走啦\n我打开那个星星罐\n纸条上的字 已经看不清啦\n\n[Chorus]\n那年的蝉 后来去了哪\n我的童年 停在那个暑假\n攒了很久的回忆 放在心里最底下\n偶尔拿出来 晒一晒太阳\n\n[Outro]\n蝉声停了\n绿豆沙也凉了"
},
"parameters": {
"upload_url": "https://xxx.xxx.xxx/xxx.mp3",
"negative_tags":"柔和、静谧",
"tags": "rock, punk",
"title": "歌曲名(Cover)",
"task": "cover"
}
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| request_id | string | 请求的唯一标识 |
响应示例#
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}查询任务状态#
接口#
https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>
请求示例#
curl --location 'https://hk.hyucloud.com/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识 |
| output.task_status | string | 任务状态:Pending、Running、Success、Failure |
| output.urls | array | 视频结果的 URL 列表 |
| output.submit_time | integer | 任务提交时间戳 |
| output.finish_time | integer | 任务完成时间戳 |
| output.error_message | string | 失败时返回的错误信息 |
| request_id | string | 请求的唯一标识 |
响应示例(成功)#
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp3"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
},
"request_id": ""
}响应示例(失败)#
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"request_id": ""
}minimax-speech#
本文介绍minimax语音合成模型 hd 系列调用 API 的输入输出参数,供您使用接口时查阅字段含义。
同步合成#
接口#
https://hk.hyucloud.com/v1/t2a_v2
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 请求的模型版本,可选范围:<br/>speech-2.8-hd<br/>speech-2.6-hd<br/>speech-02-hd<br/>speech-2.8-turbo<br/>speech-2.6-turbo<br/>speech-02-turbo |
| text | string | 是 | 需要合成语音的文本,长度限制小于10000字符,若文本长度大于3000字符,推荐使用流式输出<br/> •段落切换用换行符标记<br/> •停顿控制:支持自定义文本之间的语音时间间隔,以实现自定义文本语音停顿时间的效果。使用方式:在文本中增加<#x#>标记,x 为停顿时长(单位:秒),范围 [0.01, 99.99],最多保留两位小数。文本间隔时间需设置在两个可以语音发音的文本之间,不可连续使用多个停顿标记<br/> •语气词标签:仅当模型选择 speech-2.8-hd,speech-2.8-turbo时,支持在文本中插入语气词标签。支持的语气词:(laughs)(笑声)、(chuckle)(轻笑)、(coughs)(咳嗽)、(clear-throat)(清嗓子)、(groans)(呻吟)、(breath)(正常换气)、(pant)(喘气)、(inhale)(吸气)、(exhale)(呼气)、(gasps)(倒吸气)、(sniffs)(吸鼻子)、(sighs)(叹气)、(snorts)(喷鼻息)、(burps)(打嗝)、(lip-smacking)(咂嘴)、(humming)(哼唱)、(hissing)(嘶嘶声)、(emm)(嗯)、(sneezes)(喷嚏) |
| stream | boolean | 否 | 控制是否流式输出。默认 false,即不开启流式 |
| stream_options | object | 否 | stream输出控制 |
| stream_options.<br/>exclude_aggregated_audio | boolean | 否 | 设置最后一个 chunk 是否包含拼接后的语音 hex 数据。默认值为 False,即最后一个 chunk 中包含拼接后的完整语音 hex 数据 |
| voice_setting | object | 否 | 声音设置 |
| voice_setting.voice_id | string | 否 | 合成音频的音色编号。若需要设置混合音色,请设置 timbre_weights 参数,本参数设置为空值。支持系统音色、复刻音色以及文生音色三种类型,音色ID可查看系统音色列表 |
| voice_setting.speed | float | 否 | 合成音频的语速,取值越大,语速越快。取值范围 [0.5,2],默认值为1.0 |
| voice_setting.vol | float | 否 | 合成音频的音量,取值越大,音量越高。取值范围 (0,10],默认值为 1.0 |
| voice_setting.pitch | int | 否 | 合成音频的语调,取值范围 [-12,12],默认值为 0,其中 0 为原音色输出 |
| voice_setting.emotion | enum<string> | 否 | 控制合成语音的情绪,参数范围 ["happy", "sad", "angry", "fearful", "disgusted", "surprised", "calm", "fluent", "whisper"],分别对应 8 种情绪:高兴,悲伤,愤怒,害怕,厌恶,惊讶,中性,生动,低语<br/> 选项 fluent, whisper 仅对 speech-2.6-hd,speech-2.6-turbo 模型生效,speech-2.8-hd,speech-2.8-turbo 模型不支持 whisper |
| voice_setting.text_normalization | boolean | 否 | 是否启用中文、英语文本规范化,开启后可提升数字阅读场景的性能,但会略微增加延迟,默认值为 false |
| voice_setting.latex_read | boolean | 否 | 控制是否朗读 latex 公式,默认为 false<br/> •仅支持中文,开启该参数后,language_boost 参数会被设置为 Chinese<br/> •请求中的公式需要在公式的首尾加上 $$<br/> •请求中公式若有 "\",需转义成 "\\". |
| audio_setting | object | 否 | 音频设置 |
| audio_setting.sample_rate | int | 否 | 生成音频的采样率。可选范围[8000,16000,22050,24000,32000,44100],默认为 32000 |
| audio_setting.bitrate | int | 否 | 生成音频的比特率。可选范围 [32000,64000,128000,256000],默认值为 128000。该参数仅对 mp3 格式的音频生效 |
| audio_setting.format | enum<string> | 否 | 生成音频的格式,默认值:mp3。<br/> •wav 仅在非流式输出下支持。<br/> •可用选项: mp3, pcm, flac, wav |
| audio_setting.channel | int | 否 | 生成音频的声道数。可选范围:[1,2],其中 1 为单声道,2 为双声道,默认值为 1 |
| audio_setting.force_cbr | boolean | 否 | 对于音频恒定比特率(cbr)控制,可选 false、 true。当此参数设置为true,将以恒定比特率方式进行音频编码。<br/>注意:本参数仅当音频设置为流式输出,且音频格式为 mp3 时生效。 |
| pronunciation_dict | object | 否 | 声调 |
| pronunciation_dict.tone | string[] | 否 | 定义需要特殊标注的文字或符号对应的注音或发音替换规则。在中文文本中,声调用数字表示:<br/>一声为 1,二声为 2,三声为 3,四声为 4,轻声为 5<br/> 示例如下:<br/>["燕少飞/(yan4)(shao3)(fei1)", "omg/oh my god"] |
| timber_weights | object[] | 否 | 音色比重 |
| timber_weights.voice_id | string | 是 | 合成音频的音色编号,须和weight参数同步填写。支持系统音色、复刻音色以及文生音色三种类型。系统支持的全部音色可查看 系统音色列表 |
| timber_weights.weight | int | 是 | 合成音频各音色所占的权重,须与 voice_id 同步填写。可选值范围为[1, 100],最多支持 4 种音色混合,单一音色取值占比越高,合成音色与该音色相似度越高. |
| language_boost | enum<string> | 否 | 是否增强对指定的小语种和方言的识别能力。默认值为 null,可设置为 auto 让模型自主判断。 可用选项: Chinese, Chinese,Yue, English, Arabic, Russian, Spanish, French, Portuguese, German, Turkish, Dutch, Ukrainian, Vietnamese, Indonesian, Japanese, Italian, Korean, Thai, Polish, Romanian, Greek, Czech, Finnish, Hindi, Bulgarian, Danish, Hebrew, Malay, Persian, Slovak, Swedish, Croatian, Filipino, Hungarian, Norwegian, Slovenian, Catalan, Nynorsk, Tamil, Afrikaans, auto |
| voice_modify | object | 否 | 声音效果器设置,该参数支持的音频格式:<br/>非流式:mp3, wav, flac <br/>流式:mp3 |
| voice_modify.pitch | int | 否 | 音高调整(低沉/明亮),范围 [-100,100],数值接近 -100,声音更低沉;接近 100,声音更明亮 |
| voice_modify.intensity | int | 否 | 强度调整(力量感/柔和),范围 [-100,100],数值接近 -100,声音更刚劲;接近 100,声音更轻柔 |
| voice_modify.timbre | int | 否 | 音色调整(磁性/清脆),范围 [-100,100],数值接近 -100,声音更浑厚;数值接近 100,声音更清脆 |
| voice_modify.sound_effects | enum<string> | 否 | 音效设置,单次仅能选择一种,可选值:<br/> spacious_echo(空旷回音)<br/> auditorium_echo(礼堂广播)<br/> lofi_telephone(电话失真)<br/> robotic(电音) |
| subtitle_enable | boolean | 否 | 控制是否开启字幕服务,默认值为 false。此参数仅在非流式输出场景下有效 |
| output_format | enum<string> | 否 | 控制输出结果形式的参数,可选值范围为[url, hex],默认值为hex 。该参数仅在非流式场景生效,流式场景仅支持返回 hex 形式。返回的 url 有效期为 24 小时 |
| aigc_watermark | bool | 否 | 控制在合成音频的末尾添加音频节奏标识,默认值为 false。该参数仅对非流式合成生效 |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl --location --globoff 'https://hk.hyucloud.com/v1/t2a_v2' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "speech-2.8-hd",
"text": "今天是不是很开心呀(laughs),当然了!",
"stream": false,
"voice_setting": {
"voice_id": "male-qn-qingse",
"speed": 1,
"vol": 1,
"pitch": 0,
"emotion": "happy"
},
"audio_setting": {
"sample_rate": 32000,
"bitrate": 128000,
"format": "mp3",
"channel": 1
},
"pronunciation_dict": {
"tone": [
"处理/(chu3)(li3)",
"危险/dangerous"
]
},
"subtitle_enable": false
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| data | object | 返回的合成数据对象,可能为 null,需进行非空判断 |
| data.audio | string | 合成后的音频数据,采用 hex 编码,格式与请求中指定的输出格式一致 |
| data.subtitle_file | string | 合成的字幕下载链接。音频文件对应的字幕,精确到句(不超过 50 字),单位为毫秒,格式为 json |
| data.status | int | 当前音频流状态:1 表示合成中,2 表示合成结束 |
| trace_id | string | 本次会话的 id,用于在咨询/反馈时帮助定位问题 |
| extra_info | object | 音频的附加信息 |
| extra_info.audio_length | int | 音频时长(毫秒) |
| extra_info.audio_sample_rate | int | 音频采样率 |
| extra_info.audio_size | int | 音频文件大小(字节) |
| extra_info.bitrate | int | 音频比特率 |
| extra_info.audio_format | enum<string> | 生成音频文件的格式。取值范围 [mp3, pcm, flac] |
| extra_info.audio_channel | int | 生成音频声道数,1:单声道,2:双声道 |
| extra_info.invisible_character_ratio | number | 非法字符占比.非法字符不超过 10%(包含 10%),音频会正常生成,并返回非法字符占比数据;如超过 10% 将进行报错 |
| extra_info.usage_characters | int | 计费字符数 |
| extra_info.word_count | int | 已发音的字数统计,包含汉字、数字、字母,不包含标点符号 |
| base_resp | object | 本次请求的状态码和详情 |
| base_resp.status_code | int | 状态码。<br/>0: 请求结果正常<br/>1000: 未知错误<br/>1001: 超时<br/>1002: 触发限流<br/>1004: 鉴权失败<br/>1039: 触发 TPM 限流<br/>1042: 非法字符超过 10%<br/>2013: 输入参数信息不正常 |
| base_resp.status_msg | string | 状态详情 |
响应示例#
{
"data": {
"audio": "<hex编码的audio>",
"status": 2
},
"extra_info": {
"audio_length": 9900,
"audio_sample_rate": 32000,
"audio_size": 160323,
"bitrate": 128000,
"word_count": 52,
"invisible_character_ratio": 0,
"usage_characters": 26,
"audio_format": "mp3",
"audio_channel": 1
},
"trace_id": "01b8bf9bb7433cc75c18eee6cfa8fe21",
"base_resp": {
"status_code": 0,
"status_msg": "success"
}
}通义千问 Qwen-TTS#
本文介绍 hyucloud 接入的阿里云通义千问语音合成模型 qwen3-tts-flash 调用 API 的输入输出参数,供您使用接口时查阅字段含义。
该模型提供多种拟人音色,支持多语言及中文方言,并可在同一音色下输出多语言内容,系统可自适应语气、流畅处理复杂文本。
支持的模型#
| 模型 | 说明 |
|---|---|
qwen3-tts-flash | 按字符计费、低延迟,适合导航播报、通知、在线教育课件、短文本高频合成等场景。支持多语种与中文方言。 |
同步合成#
接口#
https://hk.hyucloud.com/v1/audio/speech
说明:该接口与 OpenAI
/v1/audio/speech路径兼容,但 响应体为阿里云原始 JSON(包含音频 URL),并非 OpenAI 的二进制音频流。请参见下文 响应格式 章节。
请求参数#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 要使用的 TTS 模型名称,取值见上文 支持的模型,例如:qwen3-tts-flash |
| input | string | 是 | 需要合成语音的文本,支持多语种混合输入,最长 600 字符 |
| voice | string | 是 | 使用的系统音色名称,例如:Cherry、Ethan、Serena、Chelsie 等。完整音色列表请参见 阿里云官方音色列表 |
| metadata.language_type | string | 否 | 指定合成音频的语种。不传时为 Auto(自动识别,适合无法确定语种或混合语言文本)。文本为单一语种时指定具体语种可显著提升合成质量。可选值:Chinese、English、German、Italian、Portuguese、Spanish、Japanese、Korean、French、Russian、Auto(大小写均可)。值由上游校验,非法值会返回 400 错误并在 message 中列出当前支持的完整语种列表。 |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl#
curl https://hk.hyucloud.com/v1/audio/speech \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-tts-flash",
"input": "那我来给大家推荐一款T恤,这款呢真的是超级好看,这个颜色呢很显气质。",
"voice": "Cherry"
}'python#
import os
import requests
resp = requests.post(
"https://hk.hyucloud.com/v1/audio/speech",
headers={
"Authorization": f"Bearer {os.getenv('hyucloud_API_KEY')}",
"Content-Type": "application/json",
},
json={
"model": "qwen3-tts-flash",
"input": "那我来给大家推荐一款T恤,这款呢真的是超级好看,这个颜色呢很显气质。",
"voice": "Cherry",
},
)
data = resp.json()
audio_url = data["output"]["audio"]["url"]
print("audio url:", audio_url)
# 下载音频
audio_bytes = requests.get(audio_url).content
with open("output.wav", "wb") as f:
f.write(audio_bytes)指定语种(可选)#
当输入文本为单一语种时,通过 metadata.language_type 显式指定语种可获得更精准的发音和更自然的语调,效果通常优于默认的 Auto:
curl https://hk.hyucloud.com/v1/audio/speech \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-tts-flash",
"input": "今天天气真好,我们去公园散步吧。",
"voice": "Cherry",
"metadata": {
"language_type": "Chinese"
}
}'响应格式#
接口返回 application/json,为阿里云 DashScope 原始响应结构透传。客户端需从 output.audio.url 字段中取到音频 URL 再自行下载(URL 有效期为 24 小时)。
输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| request_id | string | 本次请求的唯一标识,可用于定位和排查问题 |
| code | string | 业务错误码,成功时为空字符串 |
| message | string | 业务错误信息,成功时为空字符串 |
| output | object | 模型输出 |
| output.finish_reason | string | 结束原因:生成中为 null,正常结束为 stop |
| output.audio | object | 合成音频信息 |
| output.audio.url | string | 合成音频的完整文件 URL,有效期 24 小时 |
| output.audio.data | string | 流式输出时的 Base64 音频数据(当前仅同步模式,固定为空字符串) |
| output.audio.id | string | 音频信息的 ID |
| output.audio.expires_at | integer | 音频 URL 的过期时间戳 |
| usage | object | 本次请求的用量信息 |
| usage.characters | integer | 输入文本字符数,计费依据 |
| usage.input_tokens | integer | 固定为 0 |
| usage.output_tokens | integer | 固定为 0 |
响应示例#
{
"request_id": "5c63c65c-cad8-4bf4-959d-xxxxxxxxxxxx",
"code": "",
"message": "",
"output": {
"finish_reason": "stop",
"audio": {
"data": "",
"url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xx/xxxxxxxx.wav?Expires=1766113409&OSSAccessKeyId=LTAI5xxxxxx&Signature=xxxxxx",
"id": "audio_5c63c65c-cad8-4bf4-959d-xxxxxxxxxxxx",
"expires_at": 1766113409
}
},
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"characters": 195
}
}错误响应#
当请求失败时,接口会返回标准 JSON 格式错误响应:
{
"error": {
"message": "错误描述信息",
"type": "invalid_request_error",
"code": "error_code",
"param": "<请求 ID,用于反馈或排查错误原因>"
}
}注意事项#
1. 响应不是二进制音频流:与 OpenAI 原生 /v1/audio/speech 不同,本接口返回 JSON 而非音频字节。若您此前已用 OpenAI SDK 对接本接口(例如 with_streaming_response.create(...).stream_to_file(...)),请改为解析 JSON 并二次下载 output.audio.url。 2. 音频 URL 有效期 24 小时:请及时下载或将其落盘到您自己的对象存储。 3. 文本长度限制:最长 600 字符,超长文本请自行切分。 4. 计费方式:按字符数计费,以上游返回的 usage.characters 为准。 5. 音色选择:voice 字段需传入阿里云系统音色名称(如 Cherry),完整列表请参见阿里云官方文档。
ElevenLabs Music#
本文介绍 ElevenLabs music-v1 音乐生成模型的调用方式,支持标准生成、流式生成、详细模式和曲谱生成四个端点。
官方文档参考:
音乐生成(同步)官方文档#
接口#
POST https://hk.hyucloud.com/v1/audio/music/generate
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,固定为 music-v1 |
| input | string | 二选一 | 音乐描述提示词,最多 4100 字符。与 composition_plan 不可同时使用 |
| composition_plan | object | 二选一 | 结构化曲谱计划,用于精确控制音乐生成。与 input 不可同时使用 |
| composition_plan.positive_global_styles | array | 否 | 全局正面风格标签 |
| composition_plan.negative_global_styles | array | 否 | 全局负面风格标签(不希望出现的风格) |
| composition_plan.sections | array(object) | 否 | 乐章列表 |
| composition_plan.sections.section_name | string | 否 | 乐章名称 |
| composition_plan.sections.positive_local_styles | array(string) | 否 | 乐章正面风格 |
| composition_plan.sections.negative_local_styles | array(string) | 否 | 乐章负面风格 |
| composition_plan.sections.duration_ms | integer | 否 | 乐章时长(毫秒) |
| composition_plan.sections.lines | array(string) | 否 | 歌词行 |
| music_length_ms | integer | 是 | 音乐时长(毫秒),范围 1-600000 |
| seed | integer | 否 | 随机种子,范围 0-2147483647,用于生成更一致的结果。仅与 composition_plan 配合使用,不可与 input 同时使用 |
| force_instrumental | boolean | 否 | 是否强制生成纯音乐,默认 false。仅与 input 配合使用 |
| output_format | string | 否 | 输出音频格式,如 mp3_22050_32(mp3,22.05kHz,32kbps) |
请求示例#
curl --location 'https://hk.hyucloud.com/v1/audio/music/generate' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "music-v1",
"input": "A happy piano melody with soft jazz undertones",
"music_length_ms": 30000,
"output_format": "mp3_22050_32"
}' \
--output music.mp3输出#
直接返回音频二进制流,格式由 output_format 决定,默认为 mp3。
响应头#
| 参数 | 类型 | 描述 |
|---|---|---|
| song-id | string | 生成歌曲的唯一标识 |
音乐生成(流式)官方文档#
接口#
POST https://hk.hyucloud.com/v1/audio/music/stream
流式端点的请求参数与标准生成完全一致,区别在于响应以流式方式返回音频数据,适用于需要边生成边播放的场景。
输入#
参数与 音乐生成(同步) 相同。
请求示例#
curl --location 'https://hk.hyucloud.com/v1/audio/music/stream' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "music-v1",
"input": "A calm guitar piece with nature sounds",
"music_length_ms": 30000,
"output_format": "mp3_22050_32"
}' \
--output music_stream.mp3输出#
以流式方式返回音频二进制数据。
音乐生成(详细模式)官方文档#
接口#
POST https://hk.hyucloud.com/v1/audio/music/detailed
详细模式端点除了返回音频外,还会返回模型生成的曲谱计划和歌曲元数据。
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,固定为 music-v1 |
| input | string | 二选一 | 音乐描述提示词,最多 4100 字符。与 composition_plan 不可同时使用 |
| composition_plan | object | 二选一 | 结构化曲谱计划。与 input 不可同时使用 |
| music_length_ms | integer | 是 | 音乐时长(毫秒),范围 1-600000。仅与 input 配合使用 |
| seed | integer | 否 | 随机种子,范围 0-2147483647。仅与 composition_plan 配合使用,不可与 input 同时使用 |
| force_instrumental | boolean | 否 | 是否强制生成纯音乐,默认 false。仅与 input 配合使用 |
| respect_sections_durations | boolean | 否 | 是否严格遵循乐章时长,默认 true。仅与 composition_plan 配合使用 |
| with_timestamps | boolean | 否 | 是否返回歌词时间戳,默认 false |
| output_format | string | 否 | 输出音频格式 |
请求示例#
curl --location 'https://hk.hyucloud.com/v1/audio/music/detailed' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "music-v1",
"input": "An upbeat jazz tune",
"music_length_ms": 10000
}' \
--output music_detailed.mp3输出#
响应为 multipart/mixed 格式,包含两部分:
1. JSON 元数据 — 包含曲谱计划和歌曲元信息 2. 音频二进制数据 — 生成的音频文件
元数据结构#
| 参数 | 类型 | 描述 |
|---|---|---|
| composition_plan | object | 模型生成的曲谱计划 |
| composition_plan.positive_global_styles | array | 全局正面风格标签 |
| composition_plan.negative_global_styles | array | 全局负面风格标签 |
| composition_plan.sections | array(object) | 乐章列表 |
| composition_plan.sections.section_name | string | 乐章名称 |
| composition_plan.sections.positive_local_styles | array(string) | 乐章正面风格 |
| composition_plan.sections.negative_local_styles | array(string) | 乐章负面风格 |
| composition_plan.sections.duration_ms | integer | 乐章时长(毫秒) |
| composition_plan.sections.lines | array(string) | 歌词行 |
| song_metadata | object | 歌曲元信息 |
| song_metadata.title | string | 歌曲标题 |
| song_metadata.description | string | 歌曲描述 |
| song_metadata.genres | array | 音乐流派 |
| song_metadata.languages | array | 语言 |
| song_metadata.is_explicit | boolean | 是否包含敏感内容 |
元数据响应示例#
{
"composition_plan": {
"positive_global_styles": ["jazz", "upbeat"],
"negative_global_styles": ["heavy metal", "aggressive"],
"sections": [
{
"section_name": "Intro",
"positive_local_styles": ["piano", "light percussion"],
"negative_local_styles": ["vocals", "distortion"],
"duration_ms": 3000,
"lines": []
},
{
"section_name": "Verse",
"positive_local_styles": ["saxophone", "swing rhythm"],
"negative_local_styles": ["harsh drums"],
"duration_ms": 7000,
"lines": ["Swinging through the night..."]
}
]
},
"song_metadata": {
"title": "Jazz Evening",
"description": "An upbeat jazz composition",
"genres": ["jazz"],
"languages": ["en"],
"is_explicit": false
}
}曲谱生成 官方文档#
接口#
POST https://hk.hyucloud.com/v1/audio/music/plan
根据文字描述生成结构化曲谱计划,可用于后续音乐生成。该端点不消耗额度。
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,固定为 music-v1 |
| prompt | string | 是 | 曲谱描述提示词,最多 4100 字符 |
| music_length_ms | integer | 否 | 总时长(毫秒),范围 3000-600000。不填则模型自动决定 |
| source_composition_plan | object | 否 | 基于已有曲谱生成新曲谱 |
请求示例#
curl --location 'https://hk.hyucloud.com/v1/audio/music/plan' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "music-v1",
"prompt": "A soft lullaby with gentle piano and female vocals",
"music_length_ms": 30000
}'输出#
| 参数 | 类型 | 描述 |
|---|---|---|
| positive_global_styles | array | 全局正面风格标签(建议使用英文) |
| negative_global_styles | array | 全局负面风格标签(建议使用英文) |
| sections | array(object) | 乐章列表 |
| sections.section_name | string | 乐章名称 |
| sections.positive_local_styles | array(string) | 乐章正面风格 |
| sections.negative_local_styles | array(string) | 乐章负面风格 |
| sections.duration_ms | integer | 乐章时长(毫秒) |
| sections.lines | array(string) | 歌词行 |
响应示例#
{
"positive_global_styles": ["lullaby", "soft", "gentle", "calming", "acoustic"],
"negative_global_styles": ["loud", "heavy drums", "fast tempo", "aggressive"],
"sections": [
{
"section_name": "Verse 1",
"positive_local_styles": ["soft female vocal", "gentle acoustic guitar", "slow tempo"],
"negative_local_styles": ["percussion", "bass guitar"],
"duration_ms": 15000,
"lines": [
"Close your eyes and drift away,",
"Safe and sound until the day."
]
},
{
"section_name": "Verse 2",
"positive_local_styles": ["soft female vocal", "hushed delivery", "dreamy atmosphere"],
"negative_local_styles": ["strong vocals", "drums"],
"duration_ms": 15000,
"lines": [
"Stars above are shining bright,",
"Sleep now, darling, sleep so deep."
]
}
]
}提示:生成的
composition_plan可以直接传入音乐生成接口的composition_plan参数,实现基于曲谱的精确音乐生成。
ElevenLabs Text to Sound v2#
本文介绍 ElevenLabs eleven_text_to_sound_v2 音效生成模型的调用方式,支持将文字描述转换为音效音频。
官方文档参考:
音效生成(同步)#
接口#
POST https://hk.hyucloud.com/v1/audio/sound-generation
将文字描述转换为音效音频,适用于视频、配音或游戏等场景。
输入#
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,固定为 text-to-sound-v2 |
| text | string | 是 | 音效描述文本,描述你想要生成的声音 |
| loop | boolean | 否 | 是否生成可循环的音效,默认 false。仅 eleven_text_to_sound_v2 模型支持 |
| duration_seconds | double | 是 | 音效时长(秒),范围 0.5-30 |
| prompt_influence | double | 否 | 提示词影响程度,范围 0-1,默认 0.3。值越高生成结果越贴近描述,但多样性降低 |
| output_format | string | 否 | 输出音频格式,如 mp3_22050_32(mp3,22.05kHz,32kbps) |
请求示例#
curl --location 'https://hk.hyucloud.com/v1/audio/sound-generation' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "text-to-sound-v2",
"text": "Spacious braam suitable for high-impact movie trailer moments",
"duration_seconds": 5.0,
"output_format": "mp3_22050_32"
}' \
--output sound_effect.mp3输出#
直接返回音频二进制流,格式由 output_format 决定,默认为 mp3。
响应头#
| 参数 | 类型 | 描述 |
|---|---|---|
| character-cost | string | 本次生成消耗的字符数 |
GPT-4o mini Transcribe 语音转文字#
本文介绍 hyucloud 接入的 Azure OpenAI gpt-4o-mini-transcribe 语音转文字模型的调用参数,供您使用接口时查阅。
该模型将音频文件转录为文字,相比 Whisper 模型具有更低的词错误率(WER)和更好的多语言识别能力,按 token 计费。
支持的模型#
| 模型 | 说明 |
|---|---|
gpt-4o-mini-transcribe | 基于 GPT-4o mini 的语音转录模型,支持多语言,按 token 计费,适合高并发转录场景。 |
接口#
POST https://hk.hyucloud.com/v1/audio/transcriptions
该接口与 OpenAI /v1/audio/transcriptions 兼容。
请求参数#
Content-Type: multipart/form-data
| 参数 | 类型 | 是否必选 | 默认值 | 描述 |
|---|---|---|---|---|
model | string | 是 | — | 模型名称,固定填 gpt-4o-mini-transcribe |
file | file | 是 | — | 待转录的音频文件。支持格式:flac、m4a、mp3、mp4、mpga、ogg、wav、webm。注意:不支持 .oga 扩展名,请使用 .ogg 代替 |
language | string | 否 | — | 音频语言,ISO-639-1 格式(如 zh、en、ja)。显式指定语言可提升准确率和响应速度 |
prompt | string | 否 | — | 引导模型转录风格的提示词,需与音频语言一致。可用于续接前段音频或统一术语表达 |
response_format | string | 否 | json | 输出格式。可选值:json、text(gpt-4o-mini-transcribe 不支持 verbose_json、vtt、srt) |
temperature | number | 否 | 0 | 采样温度,范围 0–1。设为 0 时模型自动调节;较高值使输出更多样,较低值更确定 |
stream | boolean | 否 | false | 是否以流式(SSE)返回转录结果。设为 true 时,接口返回 text/event-stream,逐 token 增量推送 transcript.text.delta 事件,最后以 transcript.text.done 事件(含完整文本和 usage)和 [DONE] 结束。适合长音频场景,客户端无需等待全部转写完成 |
include[] | array | 否 | — | 额外返回的信息。可选值:logprobs(返回每个 token 的对数概率,用于评估模型置信度)。仅 response_format=json 时生效。可重复传多个值,如 -F "include[]=logprobs" |
请求示例#
⚠️ 如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具。
curl#
curl https://hk.hyucloud.com/v1/audio/transcriptions \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-F "model=gpt-4o-mini-transcribe" \
-F "file=@/path/to/audio.mp3"指定语言(提升准确率):
curl https://hk.hyucloud.com/v1/audio/transcriptions \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-F "model=gpt-4o-mini-transcribe" \
-F "file=@/path/to/audio.mp3" \
-F "language=zh"Python#
import os
import requests
with open("/path/to/audio.mp3", "rb") as f:
resp = requests.post(
"https://hk.hyucloud.com/v1/audio/transcriptions",
headers={"Authorization": f"Bearer {os.getenv('hyucloud_API_KEY')}"},
files={"file": f},
data={"model": "gpt-4o-mini-transcribe", "language": "zh"},
)
print(resp.json()["text"])流式转录(stream=true)#
curl -N https://hk.hyucloud.com/v1/audio/transcriptions \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-F "model=gpt-4o-mini-transcribe" \
-F "file=@/path/to/audio.mp3" \
-F "stream=true"
-N禁用 curl 缓冲,确保实时看到流式输出。
返回 logprobs(include[]=logprobs)#
curl https://hk.hyucloud.com/v1/audio/transcriptions \
-H "Authorization: Bearer $hyucloud_API_KEY" \
-F "model=gpt-4o-mini-transcribe" \
-F "file=@/path/to/audio.mp3" \
-F "include[]=logprobs"响应格式#
默认(response_format=json)#
| 字段 | 类型 | 描述 |
|---|---|---|
text | string | 转录后的文字 |
usage | object | Token 用量信息 |
usage.type | string | 固定值 tokens |
usage.total_tokens | integer | 总 token 数 |
usage.input_tokens | integer | 输入 token 数(含音频) |
usage.input_token_details.text_tokens | integer | 文本输入 token 数 |
usage.input_token_details.audio_tokens | integer | 音频输入 token 数 |
usage.output_tokens | integer | 输出 token 数 |
{
"text": "今天天气真好,我们去公园散步吧。",
"usage": {
"type": "tokens",
"total_tokens": 56,
"input_tokens": 50,
"input_token_details": {
"text_tokens": 0,
"audio_tokens": 50
},
"output_tokens": 6
}
}详细(response_format=verbose_json)#
⚠️
gpt-4o-mini-transcribe不支持verbose_json,使用时会返回错误。如需详细格式,请使用whisper-1模型。
流式(stream=true)#
返回 text/event-stream,逐 token 增量推送,事件格式如下:
| 事件 type | 含义 |
|---|---|
transcript.text.delta | 增量文本片段,字段 delta 为本次新增的 token |
transcript.text.done | 转写完成,字段 text 为完整文本,usage 为 token 用量 |
data: {"type":"transcript.text.delta","delta":"今天"}
data: {"type":"transcript.text.delta","delta":"天气"}
data: {"type":"transcript.text.done","text":"今天天气真好。","usage":{"type":"tokens","total_tokens":56,"input_tokens":50,"output_tokens":6}}
data: [DONE]若同时传
include[]=logprobs,每个delta和done事件都会额外携带logprobs数组。
logprobs(include[]=logprobs)#
非流式响应额外返回 logprobs 字段,包含每个输出 token 的对数概率和字节信息:
{
"text": "Is this a test?",
"logprobs": [
{"token": "Is", "logprob": -0.81, "bytes": [73, 115]},
{"token": " this", "logprob": -0.91, "bytes": [32, 116, 104, 105, 115]}
],
"usage": {...}
}纯文本(response_format=text)#
直接返回转录文字字符串,不含 JSON 包装。
错误响应#
{
"error": {
"message": "错误描述信息",
"type": "invalid_request_error",
"code": "error_code",
"param": "<请求 ID,用于反馈或排查错误原因>"
}
}注意事项#
1. 音频格式:支持 mp3、wav、m4a、flac、ogg、flac、webm、mpga 等主流格式,文件大小上限 25 MB。不支持 .oga 扩展名(请使用 .ogg 代替),mpeg 格式因编码质量较低可能导致识别不准确。 2. 语言指定:不传 language 时模型自动检测,但显式指定语言通常能获得更准确的结果。 3. 计费方式:按 token 计费,输入(音频)和输出(文字)分别计费,与 Whisper 按分钟计费不同。 4. 响应格式:gpt-4o-mini-transcribe 仅支持 json 和 text 两种格式;verbose_json、vtt、srt 等格式不被支持,使用时会返回错误。 5. temperature 越界:temperature 超过 1 时 Azure 不会报错,但输出可能出现乱码,请确保在 0–1 范围内。 6. 流式响应:stream=true 适合长音频场景,客户端可实时展示转写进度。流式和非流式均按 token 计费,用量一致。 7. logprobs:include[]=logprobs 仅在 response_format=json(默认)时生效,与 stream=true 可同时使用。
常见问题#
如何查看支持的模型列表#
您可以通过 /v1/models 接口获取所有支持的模型:
curl https://hk.hyucloud.com/v1/models \
-H "Content-Type: application/json"推荐使用 Cherry Studio 客户端,配置 API 地址后点击管理按钮即可直观查看所有支持的模型。详细配置教程请参考:Cherry Studio 配置教程。
GPT-5/o 系列模型参数报错#
OpenAI 官方已将 max_tokens 参数标记为废弃(deprecated),GPT-5 系列和 o 系列模型均不再支持该参数。详情请参考 OpenAI 官方文档。
如需传入图像文件,请使用 base64 编码,暂不支持 URL 方式。
gpt-5-codex 和 gpt-5.1-codex 系列模型说明#
这两个系列模型仅支持 /v1/response/ 接口。
Gemini 系列模型如何开启/关闭思考过程#
使用 Gemini 协议的 v1beta/models 接口,并配置以下参数。详细文档请参考 Gemini 协议兼容:
"generationConfig": {
"thinkingConfig": {
"include_thoughts": true,
"thinkingBudget": 0
}
}参数说明:
include_thoughts:设置为true开启思考过程输出,设置为false关闭thinkingBudget:控制思考时间预算
Claude *系列模型说明*#
Claude Sonnet 4.5 仅支持指定 temperature 或 top_p 参数中的一个,不能同时使用这两个参数。详见 官方文档说明。
Gemini 系列模型安全等级说明#
Gemini API 提供了灵活的安全设置功能,允许您在原型设计和生产环境中根据应用场景调整内容过滤策略。通过配置安全等级,您可以在五个过滤器类别中精确控制内容审核的严格程度。
相关文档:
- Gemini API 兼容文档
- Google 官方安全设置文档
安全设置配置示例#
以下示例展示如何关闭所有内容过滤(BLOCK_NONE),适用于需要最大灵活性的开发场景:
{
"safetySettings": [
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"threshold": "BLOCK_NONE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_NONE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_NONE"
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_NONE"
},
{
"category": "HARM_CATEGORY_CIVIC_INTEGRITY",
"threshold": "BLOCK_NONE"
}
]
}可用的过滤类别#
HARM_CATEGORY_HATE_SPEECH:仇恨言论HARM_CATEGORY_SEXUALLY_EXPLICIT:色情内容HARM_CATEGORY_DANGEROUS_CONTENT:危险内容HARM_CATEGORY_HARASSMENT:骚扰内容HARM_CATEGORY_CIVIC_INTEGRITY:公民诚信
可用的阈值选项#
阈值(HarmBlockThreshold)用于控制在达到或超过指定有害概率时进行内容屏蔽:
HARM_BLOCK_THRESHOLD_UNSPECIFIED:阈值未指定BLOCK_LOW_AND_ABOVE:允许"可忽略"风险的内容,屏蔽"低"及以上风险的内容BLOCK_MEDIUM_AND_ABOVE:允许"可忽略"和"低"风险的内容,屏蔽"中"及以上风险的内容BLOCK_ONLY_HIGH:允许"可忽略"、"低"和"中"风险的内容,仅屏蔽"高"风险内容BLOCK_NONE:允许所有内容,不进行任何屏蔽OFF:关闭安全过滤功能
根据您的应用需求和使用场景选择合适的阈值配置。建议在生产环境中使用更严格的过滤策略以确保内容安全。