基础信息
BASEhttps://www.yhapiplatform.com/v1
本平台提供与 OpenAI 兼容的 API 接口,您可以使用任何支持 OpenAI SDK 的客户端或 HTTP 库进行接入。
| 项目 | 说明 |
| 协议 | HTTPS |
| 数据格式 | JSON |
| 编码 | UTF-8 |
| Content-Type | application/json |
限速说明
为了整体资源分配的公平性,同时防止恶意攻击,我们目前将基于账户的累计充值金额进行速率限制,具体如下表,如有更高需求请联系管理员。
| 用户等级 | 累计充值金额 | 并发 | RPM | TPM | TPD |
| 加载中... |
限速概念解释
| 指标 | 全称 | 说明 |
| 并发 | Concurrency | 同一时间内我们最多处理的来自您的请求数 |
| RPM | Requests Per Minute | 指一分钟内您最多向我们发起的请求数 |
| TPM | Tokens Per Minute | 指一分钟内您最多和我们交互的 token 数 |
| TPD | Tokens Per Day | 指一天内您最多和我们交互的 token 数 |
为什么要做限速?
速率限制是 API 接口的常见做法,主要有以下几个考量:
- 防止滥用:有助于防止滥用或误用 API。例如,恶意行为者可能会通过大量请求来淹没 API,试图使其过载或导致服务中断。通过设置速率限制,我们可以防范这样的行为。
- 公平使用:速率限制有助于确保每个人都能公平地访问 API。如果一个人或组织发出过多的请求,可能会拖慢所有人的 API。通过限制单个用户可以发出的请求数量,尽可能多的人有机会使用 API 而不会遇到速度减慢的问题。
- 负载管理:速率限制可以帮助我们管理集群总负载。如果对 API 的请求急剧增加,可能会给服务器带来压力并导致性能问题。通过设置速率限制将可以帮助为所有用户维护一个平稳且一致的体验。
特别说明
我们将全力保障用户的正常使用,但当集群负载达到容量上限时,我们可能会采取临时的限流措施,对各类限速进行调整。代金券不计入累计充值总额。
支持的模型
| 模型名称 | 说明 | 统一价格 | 输入价格 | 输出价格 | 计费模式 |
deepseekV4PRO | DeepSeek V4 Pro - 最强推理能力 | 加载中... |
deepseekv4flash | DeepSeek V4 Flash - 快速响应 | 加载中... |
claude-opus-4-8 | Claude Opus 4.8 - Anthropic 最强模型 | 加载中... |
claude-opus-4-7 | Claude Opus 4.7 - Anthropic 高级软件工程模型 | 加载中... |
claude-fable-5 | Claude Fable 5 - Anthropic 迄今最强公开大模型,顶级推理+原生视觉 | 加载中... |
gpt-5.5 | GPT-5.5 - OpenAI 旗舰模型,自主规划多步骤复杂任务 | 加载中... |
gpt-5.6-luna | GPT-5.6 Luna - 最快最实惠,适合高容量延迟敏感工作负载 | 加载中... |
gpt-5.6-sol | GPT-5.6 Sol - 高性能推理模型,复杂逻辑分析与代码生成 | 加载中... |
gpt-5.6-terra | GPT-5.6 Terra - 平衡日常工作模型,低成本高性能 | 加载中... |
glm-5.2 | GLM-5.2 - 智谱旗舰模型,1M上下文长程任务 | 加载中... |
kimi-k2.6 | Kimi K2.6 - Moonshot 高级推理模型 | 加载中... |
kimi-k3 | Kimi K3 - Moonshot 最强旗舰,2.8万亿参数,100万上下文,原生视觉 | 加载中... |
gpt-image-2 | GPT-image-2 - OpenAI 图像生成(按 Token 计费) | 加载中... |
gemini-3-pro-image-preview | Gemini 3 Pro Image Preview - Google 多模态图像生成(支持1K/2K/4K) | 加载中... |
gemini-3.5-flash | Gemini 3.5 Flash - Google 快速文本对话模型 | 加载中... |
qwen3.7-max | Qwen 3.7 Max - 阿里通义千问纯文本旗舰模型 | 加载中... |
doubao-seedance-2-0-260128 | Seedance 2.0 - 视频生成 | 加载中... |
doubao-seedance-2-0-fast-260128 | Seedance 2.0 Fast - 快速视频生成 | 加载中... |
模型名称大小写敏感,请严格按照上表填写。价格从服务器实时获取,以实际扣费为准。
认证方式
所有 API 请求需要在 HTTP Header 中携带 API Key 进行认证。本平台支持以下两种认证方式:
方式一:Authorization Bearer(推荐)
HEADER
Authorization: Bearer <your_api_key>
方式二:x-api-key
HEADER
x-api-key: <your_api_key>
部分第三方工具(如 Claude Code、某些 IDE 插件)只支持 x-api-key 头部,可直接使用此方式认证,无需 Bearer 前缀。
API Key 可在本平台"API Keys"页面生成和管理。每个用户可以创建多个 API Key。
请勿将 API Key 硬编码在前端代码或公开仓库中,建议使用环境变量存储。
对话接口
POST/v1/chat/completions
发送对话消息,获取 AI 回复。支持流式和非流式两种模式。
请求体示例
{
"model": "deepseekv4flash",
"messages": [
{ "role": "system", "content": "You are a helpful assistant." },
{ "role": "user", "content": "Hello!" }
],
"stream": false
}
请求参数
| 参数 | 类型 | 必填 | 说明 |
model | string | 是 | 模型名称,如 deepseekv4flash |
messages | array | 是 | 消息数组,包含 role 和 content |
stream | boolean | 否 | 是否流式输出,默认 false |
max_tokens | integer | 否 | 最大生成 token 数 |
temperature | float | 否 | 采样温度,0-2,默认 1 |
top_p | float | 否 | 核采样,0-1 |
reasoning_effort | string | 否 | 思考强度:high 或 max |
extra_body.thinking | object | 否 | 启用思考模式:{ "type": "enabled" } |
所有参数与 OpenAI API 格式完全兼容,可直接替换 base_url 和 api_key 使用。
多模态能力(图生文 / 视频理解)
部分模型支持多模态输入,可在对话中传入图片或视频 URL,模型将理解内容并作出回应。
支持多模态的模型
| 模型 | 图片理解 | 视频理解 | 说明 |
gemini-3.5-flash | 支持 | 部分支持 | 通过 Gemini 原生 API 使用(OpenAI 兼容接口图片理解可用,视频理解建议走原生 API) |
claude-opus-4-8 | 支持 | 不支持 | 通过 Claude 原生 API 使用 |
claude-fable-5 | 支持(原生视觉) | 不支持 | Anthropic 迄今最强公开大模型,原生视觉理解 |
kimi-k3 | 支持 | 支持 | 100万上下文窗口,原生多模态(不支持关闭思考模式) |
qwen3.7-max | 纯文本,不支持多模态 | 如需多模态请使用 qwen3.7-plus(暂未接入) |
qwen3.7-max 是阿里官方定义的纯文本旗舰模型,不支持图片/视频输入。支持多模态的是 qwen3.7-plus(多模态版),如需该模型请告知管理员接入。
请求示例(图生文)
{
"model": "gemini-3.5-flash",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "描述这张图片的内容" },
{ "type": "image_url", "image_url": { "url": "https://example.com/image.jpg" } }
]
}
]
}
请求示例(视频理解)
{
"model": "gemini-3.5-flash",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "总结这个视频的主要内容" },
{ "type": "video_url", "video_url": { "url": "https://example.com/video.mp4" } }
]
}
]
}
注意事项:
- 图片/视频 URL 必须可公开访问,平台会透传给上游模型处理
- 支持的图片格式:JPEG、PNG、GIF、WEBP
- 支持的视频格式:MP4、MOV、WEBM(大小限制取决于上游模型)
- 多模态请求计费方式与普通文本对话一致,按 token 计费
响应格式(非流式)
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1699000000,
"model": "deepseek-v4-flash",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you today?"
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 20,
"completion_tokens": 10,
"total_tokens": 30
}
}
usage 字段说明
| 字段 | 说明 |
prompt_tokens | 输入 token 数量 |
completion_tokens | 输出 token 数量 |
total_tokens | 总 token 数量(输入+输出) |
Node.js - 非流式请求
const axios = require('axios');
async function chat() {
const response = await axios.post(
'https://www.yhapiplatform.com/v1/chat/completions',
{
model: 'deepseekv4flash',
messages: [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'Hello!' }
],
stream: false
},
{
headers: {
'Authorization': 'Bearer sk-yhapi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json'
}
}
);
console.log(response.data.choices[0].message.content);
console.log('Tokens used:', response.data.usage.total_tokens);
}
chat().catch(console.error);
Node.js - 流式请求(SSE)
const axios = require('axios');
async function chatStream() {
const response = await axios.post(
'https://www.yhapiplatform.com/v1/chat/completions',
{
model: 'deepseekv4flash',
messages: [{ role: 'user', content: 'Hello!' }],
stream: true
},
{
headers: {
'Authorization': 'Bearer sk-yhapi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json'
},
responseType: 'stream'
}
);
response.data.on('data', (chunk) => {
const lines = chunk.toString().split('\n');
for (const line of lines) {
if (!line.startsWith('data: ')) continue;
const data = line.slice(6);
if (data === '[DONE]') { console.log('\n[完成]'); return; }
try {
const json = JSON.parse(data);
const content = json.choices?.[0]?.delta?.content;
if (content) process.stdout.write(content);
} catch (e) {}
}
});
}
chatStream().catch(console.error);
Python - 非流式请求
import requests
API_KEY = 'sk-yhapi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
BASE_URL = 'https://www.yhapiplatform.com/v1'
def chat(message):
response = requests.post(
f'{BASE_URL}/chat/completions',
headers={
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
},
json={
'model': 'deepseekv4flash',
'messages': [
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': message}
],
'stream': False
}
)
result = response.json()
reply = result['choices'][0]['message']['content']
tokens = result['usage']['total_tokens']
return reply, tokens
reply, tokens = chat('Hello!')
print(f'回复: {reply}')
print(f'消耗 tokens: {tokens}')
Python - 流式请求(SSE)
import requests
import json
API_KEY = 'sk-yhapi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
BASE_URL = 'https://www.yhapiplatform.com/v1'
def chat_stream(message):
response = requests.post(
f'{BASE_URL}/chat/completions',
headers={'Authorization': f'Bearer {API_KEY}', 'Content-Type': 'application/json'},
json={'model': 'deepseekv4flash', 'messages': [{'role': 'user', 'content': message}], 'stream': True},
stream=True
)
for line in response.iter_lines(decode_unicode=True):
if not line or not line.startswith('data: '): continue
data = line[6:]
if data == '[DONE]': break
try:
chunk = json.loads(data)
content = chunk.get('choices', [{}])[0].get('delta', {}).get('content')
if content: print(content, end='', flush=True)
except json.JSONDecodeError: pass
print()
chat_stream('Hello!')
错误码
| HTTP 状态码 | 错误类型 | 说明 | 解决方法 |
200 | 成功 | 请求成功 | - |
201 | 创建成功 | 资源创建成功(如注册) | - |
400 | 参数错误 | 请求参数有误(缺少必填项、格式错误、超出范围) | 检查请求参数是否符合要求 |
401 | 未授权 | API Key 无效或已过期,用户名/密码错误 | 检查 API Key 或账号密码是否正确 |
402 | 余额不足 | 账户余额不足,无法完成本次请求 | 联系管理员充值 |
403 | 禁止访问 | 账号或 API Key 被禁用,无权执行该操作 | 联系管理员 |
404 | 资源不存在 | 请求的资源不存在(如用户、任务、记录) | 确认资源 ID 是否正确 |
409 | 资源冲突 | 用户名已被注册 | 更换用户名 |
416 | 限速触发 | 超出用户等级限速(并发/RPM/TPM/TPD),返回 416 | 查看限速说明,联系管理员提升等级 |
429 | 请求过多 | 超出上游 API 速率限制 | 降低请求频率,稍后重试 |
500 | 服务器错误 | 平台内部服务器错误 | 稍后重试 |
502 | 网关错误 | 无法连接到上游服务(DeepSeek/Claude/火山方舟) | 检查上游服务状态,稍后重试 |
504 | 超时 | 请求上游超时 | 稍后重试或减小 max_tokens |
JSON 格式输出
本平台所有模型均支持通过 response_format 参数要求模型以 JSON 格式返回结果。
使用方式
在请求体中添加 response_format 参数:
{
"model": "deepseekv4flash",
"messages": [
{"role": "system", "content": "你是一个数据提取助手"},
{"role": "user", "content": "提取张三的信息:28岁,住在北京市海淀区,邮箱 zhangsan@example.com"}
],
"response_format": {"type": "json_object"},
"stream": false
}
返回示例
{
"name": "张三",
"age": 28,
"email": "zhangsan@example.com",
"address": "北京市海淀区"
}
模型兼容性
| 模型 | 实现方式 | 说明 |
deepseekV4PRO | 原生支持 | DeepSeek 官方 API 原生支持 response_format |
deepseekv4flash | 原生支持 | DeepSeek 官方 API 原生支持 response_format |
claude-opus-4-8 | 自动注入 system 提示 | Claude 上游不支持该参数,平台自动在 system 提示中注入 JSON 格式要求 |
Anthropic 原生 API 中的使用
在使用 /v1/messages (Anthropic 原生格式) 时同样支持:
{
"model": "claude-opus-4-8",
"messages": [{"role": "user", "content": "以JSON格式返回用户信息"}],
"max_tokens": 4096,
"response_format": {"type": "json_object"}
}
注意事项:
- 建议在 messages 中包含明确的 JSON 结构示例,可提高输出准确性
- JSON 模式不保证 100% 返回有效 JSON,建议在客户端做解析容错处理
- Claude 模型会自动过滤
response_format 参数,不会透传到上游
思考模式(Thinking Mode)
启用思考模式后,模型会在回复前进行深度推理。适合复杂数学、编程、逻辑分析等场景。
启用方式
在请求体中添加以下两个参数(所有模型通用):
{
"model": "deepseekv4flash",
"messages": [{"role": "user", "content": "Solve this math problem"}],
"stream": false,
"reasoning_effort": "high",
"extra_body": {
"thinking": {"type": "enabled"}
}
}
本平台模型说明: claude-opus-4-8、claude-fable-5、gpt-5.5、gpt-5.6-sol 支持上述思考模式参数,后端会自动适配。思考内容的显示取决于模型自身的支持情况。
特殊说明: kimi-k3 始终处于思考模式,无法关闭,无需传递 thinking 参数。 gpt-5.6-luna 和 gpt-5.6-terra 为平衡/快速模型,思考模式支持取决于上游配置。
响应中的思考内容
启用思考模式后,响应的 message 对象(或流式响应的 delta)会额外包含 reasoning_content 字段:
"message": {
"role": "assistant",
"reasoning_content": "Let me think step by step...",
"content": "The answer is 42."
}
思考模式会增加 token 消耗,建议仅在需要深度推理时启用。
Kimi 模型说明(K2.6 / K3)
kimi-k2.6 和 kimi-k3 由 Moonshot AI 提供,通过官方 API 接入。由于上游参数约束,使用时请注意以下特殊限制:
参数约束(适用于所有 Kimi 模型)
| 参数 | 约束 | 说明 |
temperature | 固定为 1 | 上游仅接受 1,其他值会返回 400 错误,平台已自动修正 |
top_p | 固定为 0.95 | 平台自动修正 |
n | 固定为 1 | 不支持一次生成多条回复 |
presence_penalty | 固定为 0 | 不支持 |
frequency_penalty | 固定为 0 | 不支持 |
max_tokens | 默认 32768 | 未传时平台自动设置 |
Kimi K3 特殊说明
kimi-k3 是 Moonshot 迄今最强旗舰模型,具备以下特性:
- 2.8 万亿参数,基于 KDA 混合线性注意力机制
- 100 万 token 上下文窗口,适合超长文档处理
- 原生视觉理解,支持图片和视频输入
- 不支持关闭思考模式,始终处于 reasoning 状态
Kimi K3 始终处于思考模式,无法关闭。调用时无需(也不应)传递 thinking 或 reasoning_effort 参数,模型会自动返回 reasoning_content。
多模态支持
Kimi K2.6 和 K3 均支持图片和视频理解。在 messages 中使用数组格式的 content 传入 image_url 或 video_url 类型即可。
Token 计费
按实际返回的 usage.total_tokens 计费。流式响应中 usage 位于最后一个 chunk 的 choices[0].usage 中,平台已自动适配解析。
提示: 上述约束仅针对 Kimi 模型,不影响其他模型的参数使用。
Claude 原生 API(Anthropic Message Format)
本平台同时提供 Anthropic 原生格式的 API 端点,适用于 Claude Code、Claude Desktop 等仅支持 Anthropic SDK 的工具。
POSThttps://www.yhapiplatform.com/v1/messages
支持 Claude 模型:原生 API 支持 claude-opus-4-8 和 claude-fable-5 模型。其他模型请使用 OpenAI 兼容接口 /v1/chat/completions。
认证方式
与 OpenAI 兼容接口相同,使用 API Key 认证:
Authorization: Bearer <your_api_key>
Content-Type: application/json
anthropic-version: 2023-06-01
请求参数
| 参数 | 类型 | 必填 | 说明 |
model | string | 是 | 模型名称:claude-opus-4-8 |
messages | array | 是 | 对话消息列表,格式 [{"role": "user", "content": "Hello"}] |
max_tokens | integer | 是 | 生成最大 token 数 |
stream | boolean | 否 | 是否流式输出,默认 false |
system | string | 否 | 系统提示词 |
temperature | number | 否 | 采样温度 0-1,默认 1.0 |
top_p | number | 否 | 核采样参数 0-1 |
thinking | object | 否 | 思考模式:{"type": "enabled", "budget_tokens": 16000} |
cURL 请求示例
curl -X POST "https://www.yhapiplatform.com/v1/messages" \
-H "Authorization: Bearer sk-yhapi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-4-8",
"messages": [{"role": "user", "content": "Hello"}],
"max_tokens": 4096,
"thinking": {"type": "enabled", "budget_tokens": 16000}
}'
响应格式
{
"id": "msg_01AbC...",
"type": "message",
"role": "assistant",
"model": "claude-opus-4-8",
"content": [
{
"type": "thinking",
"thinking": "The user said hello, I should respond warmly."
},
{
"type": "text",
"text": "Hello! How can I help you today?"
}
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 13,
"output_tokens": 25
}
}
提示
Claude Code 和 OpenAI Codex 的详细配置请参考下方独立章节。
Claude Code 配置指南
Claude Code 是 Anthropic 官方推出的命令行 AI 编程助手。通过配置接入本平台,即可使用 Claude Opus 4.8 模型进行代码编写、调试和项目管理。
Step 1: 安装 Claude Code
npm install -g @anthropics/claude-code
claude --version
Step 2: 配置环境变量
在本平台用户中心生成 API Key,然后设置以下环境变量:
export ANTHROPIC_API_KEY="sk-yhapi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export ANTHROPIC_BASE_URL="https://www.yhapiplatform.com"
持久化配置(推荐):将上述环境变量写入 ~/.bashrc 或 ~/.zshrc,避免每次重启终端后重新设置。
Step 3: 启动 Claude Code
cd /path/to/your/project
claude
claude --dangerously-skip-permissions
Step 4: 验证连接
启动后,输入以下指令验证是否正常工作:
如果 Claude 回复了内容且未报错,说明配置成功。如果提示权限问题,请检查 API Key 是否有效、余额是否充足。
常见问题
| 问题 | 解决方案 |
| 提示 Invalid API Key | 确认 ANTHROPIC_API_KEY 是从本平台用户中心复制的完整 Key,且未过期 |
| 提示余额不足 | 联系管理员充值,或在用户中心查看余额 |
| 连接超时 | 检查网络是否能访问 www.yhapiplatform.com,必要时配置代理 |
| 回复缓慢或中断 | 这是流式传输正常现象,与网络环境有关 |
| 无法使用代码编辑功能 | 确认模型为 claude-opus-4-8,只有该模型支持完整的代码编辑能力 |
OpenAI Codex 配置指南
OpenAI Codex 是 OpenAI 推出的代码生成模型。由于 Codex 需要 OpenAI 官方的特殊权限和端点,本平台暂不支持 Codex 模型。但你可以通过以下替代方案实现类似功能:
重要说明:Codex 是 OpenAI 独立的代码生成模型,需要专门的 API Key 和 /v1/codex 端点。本平台提供的是对话式模型,不具备 Codex 的实时代码执行环境。
替代方案:使用 Claude Opus 4.8 进行编程
Claude Opus 4.8 的编程能力不逊于 Codex,推荐在以下场景中使用:
- 代码编写与重构(支持多文件批量修改)
- Bug 调试与错误分析
- 代码审查与优化建议
- 单元测试生成
- 技术文档编写
接入方式
方案 A: Cursor IDE(推荐)
Cursor 是支持自定义 API 的 AI 编程 IDE,可直接接入本平台:
1. 下载安装 Cursor: https://cursor.sh
2. 打开设置 (Ctrl+,) → Models
3. 添加自定义模型:
- API Key: sk-yhapi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- Base URL: https://www.yhapiplatform.com/v1
- Model: claude-opus-4-8
4. 保存后即可在编辑器中使用
方案 B: Continue 插件 (VS Code / JetBrains)
Continue 是开源的 AI 编程助手插件,支持自定义 API:
{
"models": [
{
"title": "YHAPI Claude",
"provider": "openai",
"model": "claude-opus-4-8",
"apiKey": "sk-yhapi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"apiBase": "https://www.yhapiplatform.com/v1"
}
]
}
方案 C: GitHub Copilot + 自定义模型
如果你已有 GitHub Copilot,可通过以下方式增强:
1. 安装 "Copilot Chat" 扩展
2. 在聊天框中输入 /help 查看支持的指令
3. 对于复杂任务,切换到 Claude Opus 4.8 获得更好的代码理解能力
编程专用提示词(Prompt Engineering)
使用以下系统提示词可获得更好的编程体验:
你是一个专业的全栈开发工程师,擅长代码编写、调试和重构。要求:
1. 代码必须附带清晰的注释
2. 优先使用现代最佳实践
3. 考虑边界条件和错误处理
4. 如需修改多文件,列出每个文件的变更
Responses 接口(OpenAI 兼容)
本平台支持 OpenAI /v1/responses 接口,与 Chat Completions 接口并行提供。该接口支持流式 SSE 和非流式响应,特别适合 GPT-5.5 等需要 Responses 格式的模型。
接口说明
| 接口 | 方法 | 说明 |
/v1/responses | POST | 创建对话任务(流式/非流式) |
Responses 接口使用与 Chat Completions 相同的 API Key 认证,在 Authorization: Bearer <your_api_key> 头部中传入。仅 Claude/GLM/GPT 模型支持此接口(Kimi/DeepSeek 不支持)。
支持的模型
| 模型 | 说明 |
gpt-5.5 | OpenAI 旗舰模型,自主规划多步骤复杂任务 |
gpt-5.6-luna | 最快最实惠,适合高容量延迟敏感工作负载 |
gpt-5.6-sol | 高性能推理模型,复杂逻辑分析与代码生成 |
gpt-5.6-terra | 平衡日常工作模型,低成本高性能 |
claude-opus-4-8 | Anthropic 最强模型 |
claude-opus-4-7 | Anthropic 高级软件工程模型 |
claude-fable-5 | Anthropic 迄今最强公开大模型,顶级推理+原生视觉 |
glm-5.2 | 智谱旗舰模型,1M上下文长程任务 |
请求参数
| 参数 | 类型 | 必填 | 说明 |
model | string | 是 | 模型名称,如 gpt-5.5 |
input | string/array | 是 | 用户输入,字符串或消息数组 |
stream | boolean | 否 | 是否流式返回,默认 false |
temperature | number | 否 | 采样温度 0-2 |
max_tokens | number | 否 | 最大生成 token 数 |
tools | array | 否 | 工具定义列表 |
tool_choice | string/object | 否 | 工具选择策略 |
previous_response_id | string | 否 | 多轮对话上下文 ID |
metadata | object | 否 | 自定义元数据 |
请求示例
{
"model": "gpt-5.5",
"input": [
{ "role": "user", "content": "请帮我写一个 Python 快速排序算法" }
],
"stream": true,
"max_tokens": 4096
}
流式响应格式 (SSE)
当 stream: true 时,接口返回 SSE 流。每个事件以 data: 开头,事件类型包括:
| 事件类型 | 说明 |
response.created | 响应开始 |
response.output_text.delta | 文本增量 |
response.reasoning_text.delta | 思考过程增量 |
response.completed | 响应完成(含 usage) |
Node.js - 流式调用示例
const axios = require('axios');
const API_KEY = 'sk-yhapi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
const BASE_URL = 'https://www.yhapiplatform.com';
async function responsesStream() {
const response = await axios.post(
`${BASE_URL}/v1/responses`,
{
model: 'gpt-5.5',
input: [{ role: 'user', content: '你好,请介绍一下自己' }],
stream: true
},
{
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
responseType: 'stream'
}
);
response.data.on('data', (chunk) => {
const lines = chunk.toString().split('\n');
for (const line of lines) {
if (line.startsWith('data:')) {
const data = line.replace('data:', '').trim();
if (data === '[DONE]') { console.log('完成'); return; }
try {
const event = JSON.parse(data);
if (event.choices?.[0]?.delta?.content) {
process.stdout.write(event.choices[0].delta.content);
}
} catch (e) {}
}
}
});
}
responsesStream().catch(console.error);
与 Chat Completions 的区别:
- 使用
input 替代 messages 传递对话内容
- 支持
previous_response_id 实现多轮对话上下文
- 仅 Claude/GLM/GPT 模型可用(gpt-5.5/5.6-luna/5.6-sol/5.6-terra、claude-opus-4-8/4-7/fable-5、glm-5.2)
- Kimi/DeepSeek 模型请使用
/v1/chat/completions
图片生成接口(GPT-image-2 / Gemini 3 Pro Image)
本平台集成了 OpenAI GPT-image-2 和 Google Gemini 3 Pro Image Preview 图像生成模型,可通过兼容 OpenAI 的 API 接口创建图片生成任务。
接口说明
| 接口 | 方法 | 说明 |
/v1/images/generations | POST | 创建图片生成任务(需API Key) |
图片生成接口使用 OpenAI 兼容的 API Key 认证,在 Authorization: Bearer <your_api_key> 头部中传入。
请求参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
model | string | 是 | gpt-image-2 | 模型名称:gpt-image-2 或 gemini-3-pro-image-preview |
prompt | string | 是 | - | 期望生成图像的文本描述 |
n | number | 否 | 1 | 生成图像数量,范围 1~10 |
size | string | 否 | auto | 图片尺寸(像素格式或比例格式,见下方说明) |
quality | string | 否 | auto | 图片质量:high、medium、low、auto,Gemini 额外支持 1K、2K、4K |
尺寸格式说明
| 格式 | 支持的值 | 适用模型 |
| 像素格式(标清) | 1024x1024、1536x1024、1024x1536 | GPT-image-2 |
| 像素格式(2K) | 2048x2048、2048x1152、1152x2048 | GPT-image-2 |
| 像素格式(4K) | 3840x2160、2160x3840(最大边长 3840px) | GPT-image-2 |
| 比例格式 | 1:1、16:9、9:16、4:3、3:4、3:2、2:3 | Gemini 3 Pro Image |
画质说明
| 画质值 | 说明 | 适用模型 |
auto | 自动选择最佳画质 | 全部 |
high | 高画质 | 全部 |
medium | 中等画质 | 全部 |
low | 低画质 | 全部 |
1K | 1024px 短边 | Gemini 3 Pro Image |
2K | 2048px 短边 | Gemini 3 Pro Image |
4K | 4096px 短边 | Gemini 3 Pro Image |
响应格式
| 字段 | 类型 | 说明 |
created | integer | 创建时间戳 |
data | array | 生成的图片列表 |
data[].b64_json | string | Base64 编码的图片数据(PNG格式) |
output_format | string | 输出格式:png |
quality | string | 实际使用的质量等级 |
size | string | 输出图片尺寸 |
usage.prompt_tokens | integer | 输入 token 数 |
usage.completion_tokens | integer | 输出 token 数 |
usage.total_tokens | integer | 总 token 数(用于计费) |
Node.js - 生成图片
const axios = require('axios');
const fs = require('fs');
const API_KEY = 'sk-yhapi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
const BASE_URL = 'https://www.yhapiplatform.com';
async function generateImage() {
const response = await axios.post(
`${BASE_URL}/v1/images/generations`,
{
model: 'gpt-image-2',
prompt: 'A photograph of a red fox in an autumn forest',
n: 1,
size: '1024x1024',
quality: 'auto'
},
{
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
timeout: 300000
}
);
const result = response.data;
console.log('Usage:', result.usage);
if (result.data && result.data[0] && result.data[0].b64_json) {
const base64 = result.data[0].b64_json;
fs.writeFileSync('output.png', Buffer.from(base64, 'base64'));
console.log('图片已保存为 output.png');
}
}
generateImage().catch(console.error);
注意事项:
- 图片生成时间较长(通常 60~180 秒),请确保客户端超时设置足够(建议 300 秒以上)
- 返回结果为 Base64 编码的 PNG 图片,需解码后保存为文件
- 计费方式与 LLM 模型一致,按
usage.total_tokens 计费
图片编辑接口(GPT-image-2)
本平台支持 GPT-image-2 图片编辑功能,可通过上传本地图片并配合提示词进行图像编辑、风格转换、内容修改等操作。支持单图和多图(最多16张)编辑。
接口说明
| 接口 | 方法 | 说明 |
/v1/images/edits | POST | 创建图片编辑任务(需API Key,multipart/form-data) |
图片编辑接口必须使用 multipart/form-data 格式提交,不支持 JSON。图片通过 image 字段以文件方式上传,不支持 URL 或 Base64。
请求参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
model | string | 是 | gpt-image-2 | 模型名称,固定为 gpt-image-2 |
prompt | string | 是 | - | 期望编辑图像的文本描述 |
image | file | 是 | - | 上传图片文件(支持 png/jpg/webp/gif) |
image[] | file | 否 | - | 上传多张图片(最多16张),用于多图编辑 |
n | number | 否 | 1 | 生成图像数量,范围 1~10 |
size | string | 否 | auto | 输出尺寸:1024x1024、1536x1024、1024x1536、auto |
quality | string | 否 | auto | 图片质量:high、medium、low、auto |
请求示例(cURL)
curl -X POST "BASE_URL/v1/images/edits" \
-H "Authorization: Bearer $API_KEY" \
-F "model=gpt-image-2" \
-F "prompt=Make this black and white" \
-F "image=@/path/to/image.png"
curl -X POST "BASE_URL/v1/images/edits" \
-H "Authorization: Bearer $API_KEY" \
-F "model=gpt-image-2" \
-F "prompt=Merge these two images into one, side by side" \
-F "image=@image1.png" \
-F "image=@image2.png"
请求示例(JavaScript / Fetch)
async function editImage(file, prompt) {
const formData = new FormData();
formData.append('model', 'gpt-image-2');
formData.append('prompt', prompt);
formData.append('image', file);
const res = await fetch(`BASE_URL/v1/images/edits`, {
method: 'POST',
headers: { 'Authorization': `Bearer API_KEY` },
body: formData
});
const data = await res.json();
if (data.data && data.data[0]?.b64_json) {
const buffer = Buffer.from(data.data[0].b64_json, 'base64');
require('fs').writeFileSync('edited.png', buffer);
console.log('编辑完成,已保存为 edited.png');
}
}
响应格式
{
"background": "opaque",
"created": 1780036809,
"data": [{ "b64_json": "iVBORw0KGgoAAAANSUhEUgAA..." }],
"output_format": "png",
"quality": "medium",
"size": "1024x1024",
"usage": {
"prompt_tokens": 88,
"completion_tokens": 196,
"total_tokens": 284
}
}
注意事项:
- 必须使用
multipart/form-data 格式,不支持 JSON body
- 仅支持本地文件上传(png/jpg/webp/gif),不支持 URL 或 Base64
- 编辑耗时较长(通常 60~180 秒),请确保客户端超时设置足够(建议 300 秒以上)
- 多图编辑最多支持 16 张图片
- 计费方式与 LLM 模型一致,按
usage.total_tokens 计费
Gemini 原生 API 接口
除 OpenAI 兼容接口外,本平台还支持 Google Gemini 原生 API 格式,可直接使用 Gemini 官方 SDK 或工具对接。
接口说明
| 接口 | 方法 | 说明 |
/v1beta/models/{model}:generateContent | POST | 非流式文本生成 |
/v1beta/models/{model}:streamGenerateContent | POST | 流式文本生成 |
Gemini 原生接口使用 OpenAI 兼容的 API Key 认证,在 Authorization: Bearer <your_api_key> 头部中传入。
支持的模型
| 模型路径参数 | 说明 |
gemini-3.5-flash | 快速文本对话模型 |
gemini-3-pro-image-preview | 多模态图像生成模型 |
请求体示例(generateContent)
{
"contents": [
{
"role": "user",
"parts": [{ "text": "请用中文介绍一下机器学习的基本概念" }]
}
],
"generationConfig": {
"temperature": 0.7,
"maxOutputTokens": 2048
}
}
Node.js - 使用 Gemini 原生 API
const axios = require('axios');
const API_KEY = 'sk-yhapi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
const BASE_URL = 'https://www.yhapiplatform.com';
async function geminiChat() {
const response = await axios.post(
`${BASE_URL}/v1beta/models/gemini-3.5-flash:generateContent`,
{
contents: [
{ role: 'user', parts: [{ text: 'Hello, how are you?' }] }
]
},
{
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
}
}
);
const candidate = response.data.candidates[0];
console.log('Reply:', candidate.content.parts[0].text);
console.log('Usage:', response.data.usageMetadata);
}
geminiChat().catch(console.error);
视频生成接口(Seedance 2.0)
本平台集成 Seedance 2.0 系列视频生成模型,支持文本生成视频、图片生成视频、多模态参考生视频等多种能力。支持自动生成与画面同步的音频(人声、音效及背景音乐)。
支持的模型
| 模型名称 | 说明 |
doubao-seedance-2-0-260128 | Seedance 2.0 标准版,画质更优,生成较慢(约5-8分钟) |
doubao-seedance-2-0-fast-260128 | Seedance 2.0 快速版,速度更快(约3-4分钟),画质略低 |
接口说明
| 接口 | 方法 | 说明 |
/api/video/create | POST | 创建视频生成任务(需API Key) |
/api/video/status/:taskId | GET | 查询任务状态及结果(需API Key) |
/api/video/list | GET | 获取视频任务列表(需API Key) |
/api/video/:id | DELETE | 删除视频任务记录(需API Key) |
视频生成接口使用 API Key 认证(与对话 API 相同),在 Authorization: Bearer <your_api_key> 头部中传入。
创建任务 - 请求参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
prompt | string | 是 | - | 视频描述提示词。建议中文不超过500字,英文不超过1000词 |
model | string | 否 | doubao-seedance-2-0-260128 | 模型名称 |
ratio | string | 否 | adaptive | 宽高比:16:9、4:3、1:1、3:4、9:16、21:9、adaptive(根据输入自动适配) |
duration | integer | 否 | 5 | 视频时长(秒),4~15之间的整数,或-1表示由模型智能选择 |
resolution | string | 否 | 720p | 分辨率:480p(生成更快)、720p(画质更好) |
generateAudio | boolean | 否 | true | 是否生成同步音频(人声、音效、背景音乐) |
images | array | 否 | - | 参考图片数组,每项含 url 和 role |
audioUrl | string | 否 | - | 参考音频 URL(需配合图片或视频使用) |
videoUrl | string | 否 | - | 参考视频 URL(仅支持本平台 Seedance 产出的视频) |
tools | array | 否 | - | 工具配置,如 [{"type":"web_search"}] 开启联网搜索(仅文生视频) |
图片参数说明
| 场景 | 图片数量 | role 取值 | 说明 |
| 图生视频-首帧 | 1张 | first_frame 或不填 | 以该图片作为视频首帧 |
| 图生视频-首尾帧 | 2张 | 首帧:first_frame,尾帧:last_frame | 指定视频的首帧和尾帧 |
| 多模态参考生视频 | 1~9张 | reference_image | 作为参考图片生成视频 |
上述三种图片场景互斥,不可混用。图片格式支持 jpeg、png、webp、bmp、tiff、gif,单张小于30MB。
生成能力与场景对比
| 能力 | 所需输入 | 说明 |
| 文生视频 | 文本提示词 | 根据文字描述生成视频,支持联网搜索增强时效性 |
| 图生视频-首帧 | 文本 + 首帧图片 | 以指定图片为开头生成后续视频 |
| 图生视频-首尾帧 | 文本 + 首帧 + 尾帧 | 指定开头和结尾,中间过程由模型生成 |
| 多模态参考 | 文本 + 1~9张参考图 | 参考图片风格/内容生成视频 |
| 视频编辑/延长 | 文本 + 参考视频 | 仅支持本平台 Seedance 产出的视频作为输入 |
| 音频驱动 | 文本 + 图/视频 + 音频 | 根据音频节奏和内容生成匹配视频 |
本平台与官方接口对比
| 对比项 | 官方接口 | 本平台 |
| 提交任务 | POST /v1/video/generations | POST /api/video/create |
| 查询任务 | GET /v1/video/generations/{task_id} | GET /api/video/status/{taskId} |
| 请求体格式 | { model, prompt, metadata: { content, ratio, duration... } } | 兼容官方格式,字段名一致 |
| 认证方式 | 官方 API Key | 本平台 API Key(统一认证) |
| 计费方式 | 按官方价格 | 按 Token 计费,支持输入/输出分离定价 |
| 素材引用 | 支持 asset:// 地址和公网 URL | 支持 asset:// 地址和公网 URL |
| 状态值 | NOT_START / IN_PROGRESS / SUCCESS / FAILURE | queued / running / succeeded / failed(已映射) |
| 返回字段 | data.task_id, data.status, data.data.content.video_url | data.taskId, data.status, data.videoUrl(已扁平化) |
本平台完全兼容官方 Seedance 2.0 接口能力,所有官方支持的参数(prompt、images、audioUrl、videoUrl、ratio、duration、resolution、generateAudio、tools 等)均可正常使用。状态码和响应结构已做适配转换,使用更直观。
| 参数 | 类型 | 必填 | 说明 |
prompt | string | 是 | 视频描述提示词,最多4000字符 |
model | string | 否 | 模型:doubao-seedance-2-0-260128(默认)或 doubao-seedance-2-0-fast-260128 |
ratio | string | 否 | 宽高比:16:9(默认)、4:3、1:1、3:4、9:16、21:9、adaptive |
duration | integer | 否 | 时长(秒):4-15,默认5 |
resolution | string | 否 | 分辨率:480p、720p(默认)、1080p、4K。Fast模型仅支持480p/720p |
watermark | boolean | 否 | 是否添加水印,默认false |
generateAudio | boolean | 否 | 是否生成音频,默认true |
images | array | 否 | 参考图片数组,每张图含 url 和 role(first_frame/last_frame/reference_image) |
audioUrl | string | 否 | 参考音频 URL |
videoUrl | string | 否 | 参考视频 URL |
素材传入方式
本平台支持两种素材引用方式,您在请求中可以直接使用:
| 接口 | 方法 | 说明 |
/api/video/create | POST | 创建视频任务(支持 asset:// 和公网URL素材) |
/api/video/status/:taskId | GET | 查询任务状态(与标准接口共用) |
素材说明:
- 传公网 URL 时,平台会自动上传到素材库并获取
asset:// 引用地址
- 传
asset:// 地址时,直接使用已上传的素材
- 计费方式相同,按 Token 计费
Node.js - 创建视频任务(使用公网URL素材)
const axios = require('axios');
const API_KEY = 'sk-yhapi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
const BASE_URL = 'https://www.yhapiplatform.com';
async function createVideoWithUrl() {
const response = await axios.post(
`${BASE_URL}/api/video/create`,
{
prompt: '向日葵随风摆动,阳光洒落',
model: 'doubao-seedance-2-0-260128',
ratio: '16:9',
duration: 5,
resolution: '720p',
generateAudio: true,
images: [
{ url: 'https://example.com/sunflower.jpg', role: 'reference_image' }
],
asset_group_id: 8
},
{
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
}
}
);
console.log('Task ID:', response.data.data.taskId);
return response.data.data.taskId;
}
async function checkStatus(taskId) {
const response = await axios.get(
`${BASE_URL}/api/video/status/${taskId}`,
{ headers: { 'Authorization': `Bearer ${API_KEY}` } }
);
const d = response.data.data;
console.log('Status:', d.status);
if (d.videoUrl) console.log('Video URL:', d.videoUrl);
return d;
}
createVideoWithUrl().then(id => {
const timer = setInterval(() => {
checkStatus(id).then(d => {
if (d.status === 'succeeded' || d.status === 'failed') clearInterval(timer);
});
}, 5000);
}).catch(console.error);
Node.js - 创建视频任务(标准接口)
const axios = require('axios');
const API_KEY = 'sk-yhapi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
const BASE_URL = 'https://www.yhapiplatform.com';
async function createVideo() {
const response = await axios.post(
`${BASE_URL}/api/video/create`,
{
prompt: 'A serene Japanese garden with cherry blossoms falling gently',
model: 'doubao-seedance-2-0-260128',
ratio: '16:9',
duration: 5,
resolution: '720p',
generateAudio: true,
watermark: false
},
{
headers: {
'Authorization': `Bearer ${TOKEN}`,
'Content-Type': 'application/json'
}
}
);
console.log('Task ID:', response.data.data.taskId);
return response.data.data.taskId;
}
async function checkStatus(taskId) {
const response = await axios.get(
`${BASE_URL}/api/video/status/${taskId}`,
{ headers: { 'Authorization': `Bearer ${TOKEN}` } }
);
const d = response.data.data;
console.log('Status:', d.status);
if (d.videoUrl) console.log('Video URL:', d.videoUrl);
return d;
}
createVideo().then(id => {
const timer = setInterval(() => {
checkStatus(id).then(d => {
if (d.status === 'succeeded' || d.status === 'failed') clearInterval(timer);
});
}, 5000);
}).catch(console.error);
Python - 创建视频任务
import requests
import time
API_KEY = 'sk-yhapi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
BASE_URL = 'https://www.yhapiplatform.com'
HEADERS = {'Authorization': f'Bearer {API_KEY}', 'Content-Type': 'application/json'}
def create_video():
response = requests.post(
f'{BASE_URL}/api/video/create',
headers=HEADERS,
json={
'prompt': 'A serene Japanese garden with cherry blossoms falling gently',
'model': 'doubao-seedance-2-0-260128',
'ratio': '16:9',
'duration': 5,
'resolution': '720p',
'generateAudio': True,
'watermark': False
}
)
result = response.json()
task_id = result['data']['taskId']
print(f'Task ID: {task_id}')
return task_id
def check_status(task_id):
response = requests.get(
f'{BASE_URL}/api/video/status/{task_id}',
headers=HEADERS
)
result = response.json()
d = result['data']
print(f"Status: {d['status']}")
if d.get('videoUrl'):
print(f"Video URL: {d['videoUrl']}")
return d
task_id = create_video()
while True:
d = check_status(task_id)
if d['status'] in ('succeeded', 'failed'):
break
time.sleep(5)
if d['status'] == 'succeeded':
print(f'Video ready: {d["videoUrl"]}')
else:
print(f'Failed: {d.get("error", "Unknown error")}')
分辨率与宽高比对照表
| 分辨率 | 16:9 | 4:3 | 1:1 | 3:4 | 9:16 | 21:9 |
| 480p | 864x496 | 752x560 | 640x640 | 560x752 | 496x864 | 992x432 |
| 720p | 1280x720 | 1112x834 | 960x960 | 834x1112 | 720x1280 | 1470x630 |
任务状态说明
| 上游状态 | 本地状态 | 说明 |
| NOT_START | queued | 任务已提交,尚未开始 |
| IN_PROGRESS | running | 任务正在生成中 |
| SUCCESS | succeeded | 生成成功,可获取视频 URL |
| FAILURE | failed | 生成失败,查看 fail_reason 获取原因 |
计费说明
视频生成按 Token 计费。费用根据上游返回的 usage.completion_tokens 自动计算。任务成功后自动扣费,失败不扣费。余额不足时无法创建任务。
代码示例 - 文生视频
import requests
import time
API_KEY = 'sk-yhapi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
BASE_URL = 'https://www.yhapiplatform.com'
HEADERS = {'Authorization': f'Bearer {API_KEY}', 'Content-Type': 'application/json'}
def create_video():
response = requests.post(
f'{BASE_URL}/api/video/create',
headers=HEADERS,
json={
'prompt': '全程第一人称视角果茶宣传广告,你的手摘下一颗带晨露的红苹果...',
'model': 'doubao-seedance-2-0-260128',
'duration': 8,
'resolution': '480p',
'ratio': '9:16',
'generateAudio': True
}
)
return response.json()['data']['taskId']
def check_status(task_id):
resp = requests.get(f'{BASE_URL}/api/video/status/{task_id}', headers=HEADERS)
d = resp.json()['data']
print(f"状态: {d['status']}")
if d.get('videoUrl'): print(f"视频: {d['videoUrl']}")
return d
task_id = create_video()
while True:
d = check_status(task_id)
if d['status'] in ('succeeded', 'failed'): break
time.sleep(15)
代码示例 - 图生视频(首帧)
import requests
import time
API_KEY = 'sk-yhapi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
BASE_URL = 'https://www.yhapiplatform.com'
payload = {
'prompt': '让画面中的猫咪缓缓走动,阳光洒落',
'model': 'doubao-seedance-2-0-260128',
'images': [{'url': 'https://example.com/cat.jpg', 'role': 'first_frame'}],
'duration': 5,
'resolution': '720p',
'ratio': 'adaptive',
'generateAudio': False
}
resp = requests.post(f'{BASE_URL}/api/video/create', headers=HEADERS, json=payload)
task_id = resp.json()['data']['taskId']
while True:
r = requests.get(f'{BASE_URL}/api/video/status/{task_id}', headers=HEADERS)
d = r.json()['data']
if d['status'] == 'succeeded':
print(f"视频URL: {d['videoUrl']}")
break
time.sleep(15)
代码示例 - 多模态参考(图片+音频)
import requests
payload = {
'prompt': '一个女孩在弹吉他唱歌',
'images': [{'url': 'https://example.com/girl.jpg', 'role': 'reference_image'}],
'audioUrl': 'https://example.com/song.mp3',
'duration': 10, 'resolution': '720p', 'ratio': '9:16',
'generateAudio': True
}
resp = requests.post(f'{BASE_URL}/api/video/create', headers=HEADERS, json=payload)
task_id = resp.json()['data']['taskId']
提示词优化建议:
- 中文提示词建议不超过500字,英文不超过1000词
- 字数过多信息容易分散,模型可能忽略细节
- 如需生成对话语音,建议将对话部分置于双引号内
- 生成的有声视频均为单声道
素材库接口
素材库用于管理视频生成所需的图片、视频、音频素材。上传后的素材会获得 asset:// 格式的引用地址,可直接用于视频生成请求中的 images、audioUrl、videoUrl 参数。
接口说明
| 接口 | 方法 | 说明 |
/v1/assets | POST | 创建素材(同步/异步) |
/v1/assets/list | POST | 查询素材列表 |
/v1/assets/get | POST | 查询单个素材 |
/v1/assets/update | POST | 更新素材名称 |
/v1/assets/delete | POST | 删除素材 |
/v1/assets/groups | GET | 获取素材库分组列表 |
/v1/assets/groups | POST | 创建素材库分组 |
素材库接口使用 API Key 认证,在 Authorization: Bearer <your_api_key> 头部中传入。素材按 API Key 隔离,不同 Key 的素材互不可见。
本平台与官方接口对比
| 对比项 | 官方接口 | 本平台 |
| 基础地址 | {BASE_URL}/v1/assets | https://www.yhapiplatform.com/v1/assets |
| 创建素材 | POST /v1/assets | POST /v1/assets(路径一致) |
| 查询素材列表 | POST /v1/assets/list | POST /v1/assets/list(路径一致) |
| 查询单个素材 | POST /v1/assets/get | POST /v1/assets/get(路径一致) |
| 更新素材 | POST /v1/assets/update | POST /v1/assets/update(路径一致) |
| 删除素材 | POST /v1/assets/delete | POST /v1/assets/delete(路径一致) |
| 分组管理 | GET/POST /v1/assets/groups | 完全兼容,路径一致 |
| 认证方式 | 官方 API Key | 本平台 API Key(统一认证) |
| 素材引用格式 | asset://<asset_id> | asset://<asset_id>(格式一致) |
| 返回字段 | id, name, asset_url, status, asset_type... | 完全透传,字段一致 |
本平台素材库接口路径和参数完全兼容官方,仅认证方式替换为本平台 API Key。所有请求参数、响应字段、素材引用格式(asset://)均与官方保持一致,可直接使用官方 SDK 或代码示例对接。
1. 创建素材
| 参数 | 类型 | 必填 | 说明 |
url | string | 是 | 素材文件的公网可访问 URL |
asset_type | string | 是 | 素材类型:Image、Video、Audio |
name | string | 否 | 素材名称(上限64字符) |
group_id | int | 是 | 素材库分组 ID(通过「获取素材库列表」接口获得) |
upload_mode | string | 否 | 上传模式:sync(默认,同步等待审核)、async(异步立即返回) |
素材要求
| 类型 | 格式 | 尺寸要求 | 大小限制 |
| 图片 | jpeg、png、webp、bmp、tiff、gif | 宽高 300~6000px,宽高比 0.4~2.5 | 单张 < 30MB |
| 视频 | mp4、mov | 分辨率 480p/720p,时长 2~15秒 | 单个 < 50MB |
| 音频 | wav、mp3 | 时长 2~15秒 | 单个 < 15MB |
2. 查询素材列表
| 参数 | 类型 | 必填 | 说明 |
page_number | int | 否 | 页码,默认1 |
page_size | int | 否 | 每页数量,默认20,最大100 |
name | string | 否 | 按名称模糊搜索 |
group_id | int | 否 | 分组ID。>0查指定分组;<=0或不传查全部 |
素材状态说明
| 状态 | 说明 |
| Active | 处理完成,可用于视频生成 |
| Processing | 处理中(仅异步模式),建议每隔3秒轮询 |
| Failed | 处理失败(审核拒绝、URL不可访问等) |
3. 分组管理
3.1 获取素材库分组列表
响应字段
| 字段 | 类型 | 说明 |
code | string | 状态码,success 表示成功 |
data | array | 分组列表 |
data[].id | int | 分组ID(创建素材时作为 group_id 使用) |
data[].name | string | 分组名称(创建时传入的 name) |
data[].group_name | string | 系统生成的完整标识(格式:user-{uid}-token-{tid}-{name}) |
data[].is_default | boolean | 是否为默认分组 |
data[].asset_count | int | 该分组下的素材数量 |
3.2 创建素材库分组
| 参数 | 类型 | 必填 | 说明 |
name | string | 是 | 分组名称,建议英文或数字,如 "my-videos" |
响应字段
| 字段 | 类型 | 说明 |
code | string | 状态码,success 表示成功 |
data | object | 创建的分组信息 |
data.group_name | string | 系统生成的分组标识(格式:user-{uid}-token-{tid}-{name}) |
3.3 正确获取 group_id 的流程
创建分组接口不直接返回 group_id。正确的流程是:
- 调用
POST /v1/assets/groups 创建分组(传入 name)
- 调用
GET /v1/assets/groups 获取全部分组列表
- 在返回的列表中找到对应分组,提取
id 字段作为 group_id
- 使用获取到的
group_id 调用 POST /v1/assets 上传素材
注意事项:
- 创建素材时
group_id 必填,且必须为整数
- 创建分组后务必重新获取列表,不能直接从前一步响应中取 ID
- 分组名称支持中文、英文、数字,建议简洁明了
使用流程
- 通过
GET /v1/assets/groups 获取素材库分组列表
- 如果没有分组,通过
POST /v1/assets/groups 创建(参数:name)
- 通过
POST /v1/assets 上传素材,指定 group_id
- 获取返回的
asset_url(格式 asset://<ID>)
- 在视频生成请求中,将
asset_url 作为 images/audioUrl/videoUrl 的值传入
代码示例 - 上传素材
import requests
API_KEY = 'sk-yhapi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
BASE_URL = 'https://www.yhapiplatform.com'
HEADERS = {'Authorization': f'Bearer {API_KEY}', 'Content-Type': 'application/json'}
# 1. 获取素材库分组
resp = requests.get(f'{BASE_URL}/v1/assets/groups', headers=HEADERS)
group_id = [g for g in resp.json()['data'] if g['id'] > 0][0]['id']
# 2. 创建素材
resp = requests.post(f'{BASE_URL}/v1/assets', headers=HEADERS, json={
'url': 'https://example.com/photo.jpg',
'asset_type': 'Image',
'name': '人像参考图',
'group_id': group_id
})
asset_url = resp.json()['data']['asset_url'] # asset://xxx
# 3. 用于视频生成
video_payload = {
'prompt': '生成与参考图风格一致的视频',
'images': [{'url': asset_url, 'role': 'reference_image'}]
}
2. 查询素材列表
| 参数 | 类型 | 必填 | 说明 |
page_number | int | 否 | 页码,默认1 |
page_size | int | 否 | 每页数量,默认20,最大100 |
name | string | 否 | 按名称模糊搜索 |
group_id | int | 否 | 分组ID。>0查指定分组;<=0或不传查全部 |
素材状态说明
| 状态 | 说明 |
| Active | 处理完成,可用于视频生成 |
| Processing | 处理中(仅异步模式),建议每隔3秒轮询 |
| Failed | 处理失败(审核拒绝、URL不可访问等) |
使用流程
- 通过
GET /v1/assets/groups 获取素材库分组列表
- 如果没有分组,通过
POST /v1/assets/groups 创建(参数:name)
- 通过
POST /v1/assets 上传素材,指定 group_id
- 获取返回的
asset_url(格式 asset://<ID>)
- 在视频生成请求中,将
asset_url 作为 images/audioUrl/videoUrl 的值传入
第三方软件集成
本平台兼容 OpenAI API 格式,可接入任何支持自定义 OpenAI API 地址的软件。
通用配置参数
| 配置项 | 值 |
| API 地址(Base URL) | https://www.yhapiplatform.com/v1 |
| API Key | 从本平台 "API Keys" 页面生成的 Key |
| 模型(DeepSeek V4 Pro) | deepseekV4PRO |
| 模型(DeepSeek V4 Flash) | deepseekv4flash |
Cherry Studio 配置步骤
- 打开 Cherry Studio,点击左下角设置图标
- 在左侧菜单选择模型服务
- 找到 OpenAI 提供商,点击添加或编辑
- 按以下方式填写:
- API 地址:填入
https://www.yhapiplatform.com/v1
- API 密钥:填入从本平台获取的 API Key(格式:sk-yhapi-xxxxxxxx)
- 模型:点击"获取模型列表"或手动添加
deepseekv4flash 和 deepseekV4PRO
- 点击保存,然后选择该模型即可开始对话
LobeChat 配置步骤
- 打开 LobeChat,点击左下角设置
- 选择语言模型 → OpenAI
- 填写以下信息:
- API Key:填入本平台的 API Key
- 接口代理地址:填入
https://www.yhapiplatform.com/v1
- 模型列表:添加
deepseekv4flash
- 点击检查验证连接,成功后即可使用
Chatbox 配置步骤
- 打开 Chatbox,点击左下角设置
- 模型提供方选择 OpenAI API
- 填写以下信息:
- OpenAI API 密钥:填入本平台的 API Key
- API 域名:填入
https://www.yhapiplatform.com/v1(注意要包含 /v1)
- 模型:选择自定义模型,填入
deepseekv4flash
- 保存设置后即可使用
NextChat (ChatGPT-Next-Web) 配置步骤
- 打开 NextChat,点击左下角设置图标
- 在模型设置中:
- 接口地址:填入
https://www.yhapiplatform.com/v1
- API Key:填入本平台的 API Key
- 自定义模型名:填入
deepseekv4flash
- 保存后新建对话即可使用
其他软件通用方法
几乎所有支持 OpenAI 的客户端都遵循相同的配置方式:
- 找到 OpenAI 或 自定义 API 配置项
- 将 API 地址(Base URL)替换为
https://www.yhapiplatform.com/v1
- 将 API Key 替换为从本平台生成的 Key
- 模型名称填入
deepseekv4flash 或 deepseekV4PRO
视频生成 API 集成说明
Seedance 视频生成是独立的 REST API,不通过 OpenAI SDK 调用。需要自行编写 HTTP 请求代码集成。
通用配置参数
| 配置项 | 值 |
| Base URL | https://www.yhapiplatform.com |
| 认证方式 | Bearer Token(JWT Token,登录后获取) |
| 创建任务 | POST /api/video/create |
| 查询状态 | GET /api/video/status/{taskId} |
| 模型(Seedance 2.0) | doubao-seedance-2-0-260128 |
| 模型(Seedance 2.0 Fast) | doubao-seedance-2-0-fast-260128 |
Postman 测试步骤
- 从本平台 "API Keys" 页面复制你的 API Key(格式:sk-yhapi-xxxxxxxx)
- 打开 Postman,新建一个 Collection
- 创建视频任务:
- Method: POST
- URL:
https://www.yhapiplatform.com/api/video/create
- Headers:
Authorization: Bearer {你的JWT Token}
- Body (raw JSON):
{
"prompt": "A serene Japanese garden with cherry blossoms",
"model": "doubao-seedance-2-0-260128",
"ratio": "16:9",
"duration": 5,
"resolution": "720p"
}
- 查询任务状态:
- Method: GET
- URL:
https://www.yhapiplatform.com/api/video/status/{taskId}
- Headers:
Authorization: Bearer {你的JWT Token}
接入自己的应用
视频生成是异步流程,标准集成步骤:
- 用户登录:调用
/api/auth/login 获取 JWT Token
- 创建任务:POST
/api/video/create 提交生成请求
- 轮询状态:每隔 5 秒 GET
/api/video/status/{taskId} 查询进度
- 获取结果:当 status 变为
succeeded 时,从 videoUrl 下载视频
详细的请求参数和代码示例请参考上方"视频生成接口"章节。
视频生成 API 使用 API Key 认证(与对话 API 相同),支持在任何 HTTP 客户端中直接调用。
如遇兼容性问题,请确保软件支持 OpenAI API 的 /v1/chat/completions 端点。部分旧版本软件可能不支持,建议升级到最新版本。