sage/README.md
2026-04-01 14:36:08 +08:00

787 lines
23 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 元境平台
## 申请APIKEY
用户需要在元境平台https://opencomputing.ai上注册和登录 登录后点击左上角元境平台进入菜单,点击“下位系统接口-下位系统, 在界面中点击“创建APIKEY”
输入信息后点击提交APIKEY创建完成
点击"复制apikey" 在弹出窗口看到apikey 复制他
## 充值
用户需要在元境平台上充值目前支持alipay支付宝充值
操作方法
* 用户登录
* 呼出用户菜单(点击右上角用户名)
* 点击充值
* 输入充值信息
在弹出界面中选择支付宝充值,输入合适的金额,点击提交转支付宝充值页面, 完成后等1分钟查看账户当前余额
## 查看当前余额
* 用户登录
* 呼出用户菜单
* 点击财务
## base url
https://opencomputing.ai
## openai 兼容接口
我们提供一套兼容openai的API
### 文本生成
* path /llmage/t2t
* method 'POST'
* headers
```
{
"Content-Type": "application/json",
"Authorization": "Bearer <your-apikey>" # 客户从元境平台申请到的APIKEY
}
```
* data
{
"model": # 模型识别码, 是供应方提供给model名字
“prompt": # 提示词, 必须输入
"sys_prompt" # 系统提示词,可选
“stream” # 流式输出开关
"..." # 其他提示词
}
* 返回
符合openai协议的流式或非流式结果
* 流式:
```
./oc.curl 你是谁
data: {"id": "chatcmpl-2665dfd8-e05f-9d7f-adff-3c53c174a454", "object": "chat.completion.chunk", "created": 1775019761, "choices": [{"logprobs": null, "index": 0, "delta": {"content": "", "role": "assistant"}}], "model": "qwen3-max", "reasoning_content": null, "content": "", "finish": "0", "llmusageid": "K9_veNBxeqvrFfbGWXs0R"}
data: {"id": "chatcmpl-2665dfd8-e05f-9d7f-adff-3c53c174a454", "object": "chat.completion.chunk", "created": 1775019761, "choices": [{"delta": {"content": "\u6211\u662f", "role": null}, "index": 0}], "model": "qwen3-max", "reasoning_content": null, "content": "\u6211\u662f", "finish": "0", "llmusageid": "K9_veNBxeqvrFfbGWXs0R"}
data: {"id": "chatcmpl-2665dfd8-e05f-9d7f-adff-3c53c174a454", "object": "chat.completion.chunk", "created": 1775019761, "choices": [{"delta": {"content": "\u901a\u4e49\u5343", "role": null}, "index": 0}], "model": "qwen3-max", "reasoning_content": null, "content": "\u901a\u4e49\u5343", "finish": "0", "llmusageid": "K9_veNBxeqvrFfbGWXs0R"}
data: {"id": "chatcmpl-2665dfd8-e05f-9d7f-adff-3c53c174a454", "object": "chat.completion.chunk", "created": 1775019761, "choices": [{"delta": {"content": "\u95ee\uff0c\u963f\u91cc\u5df4\u5df4\u96c6\u56e2\u65d7\u4e0b\u7684", "role": null}, "index": 0}], "model": "qwen3-max", "reasoning_content": null, "content": "\u95ee\uff0c\u963f\u91cc\u5df4\u5df4\u96c6\u56e2\u65d7\u4e0b\u7684", "finish": "0", "llmusageid": "K9_veNBxeqvrFfbGWXs0R"}
data: {"id": "chatcmpl-2665dfd8-e05f-9d7f-adff-3c53c174a454", "object": "chat.completion.chunk", "created": 1775019761, "choices": [{"delta": {"content": "\u8d85\u5927\u89c4\u6a21\u8bed\u8a00\u6a21\u578b\u3002\u6211\u80fd\u591f", "role": null}, "index": 0}], "model": "qwen3-max", "reasoning_content": null, "content": "\u8d85\u5927\u89c4\u6a21\u8bed\u8a00\u6a21\u578b\u3002\u6211\u80fd\u591f", "finish": "0", "llmusageid": "K9_veNBxeqvrFfbGWXs0R"}
data: {"id": "chatcmpl-2665dfd8-e05f-9d7f-adff-3c53c174a454", "object": "chat.completion.chunk", "created": 1775019761, "choices": [{"delta": {"content": "\u56de\u7b54\u95ee\u9898\u3001\u521b\u4f5c\u6587\u5b57\uff0c", "role": null}, "index": 0}], "model": "qwen3-max", "reasoning_content": null, "content": "\u56de\u7b54\u95ee\u9898\u3001\u521b\u4f5c\u6587\u5b57\uff0c", "finish": "0", "llmusageid": "K9_veNBxeqvrFfbGWXs0R"}
data: {"id": "chatcmpl-2665dfd8-e05f-9d7f-adff-3c53c174a454", "object": "chat.completion.chunk", "created": 1775019761, "choices": [{"delta": {"content": "\u6bd4\u5982\u5199\u6545\u4e8b\u3001\u5199\u516c", "role": null}, "index": 0}], "model": "qwen3-max", "reasoning_content": null, "content": "\u6bd4\u5982\u5199\u6545\u4e8b\u3001\u5199\u516c", "finish": "0", "llmusageid": "K9_veNBxeqvrFfbGWXs0R"}
data: {"id": "chatcmpl-2665dfd8-e05f-9d7f-adff-3c53c174a454", "object": "chat.completion.chunk", "created": 1775019761, "choices": [{"delta": {"content": "\u6587\u3001\u5199\u90ae\u4ef6\u3001\u5199\u5267\u672c", "role": null}, "index": 0}], "model": "qwen3-max", "reasoning_content": null, "content": "\u6587\u3001\u5199\u90ae\u4ef6\u3001\u5199\u5267\u672c", "finish": "0", "llmusageid": "K9_veNBxeqvrFfbGWXs0R"}
data: {"id": "chatcmpl-2665dfd8-e05f-9d7f-adff-3c53c174a454", "object": "chat.completion.chunk", "created": 1775019761, "choices": [{"delta": {"content": "\u3001\u903b\u8f91\u63a8\u7406\u3001\u7f16\u7a0b\u7b49\u7b49", "role": null}, "index": 0}], "model": "qwen3-max", "reasoning_content": null, "content": "\u3001\u903b\u8f91\u63a8\u7406\u3001\u7f16\u7a0b\u7b49\u7b49", "finish": "0", "llmusageid": "K9_veNBxeqvrFfbGWXs0R"}
data: {"id": "chatcmpl-2665dfd8-e05f-9d7f-adff-3c53c174a454", "object": "chat.completion.chunk", "created": 1775019761, "choices": [{"delta": {"content": "\uff0c\u8fd8\u80fd\u8868\u8fbe\u89c2\u70b9\uff0c\u73a9\u6e38\u620f", "role": null}, "index": 0}], "model": "qwen3-max", "reasoning_content": null, "content": "\uff0c\u8fd8\u80fd\u8868\u8fbe\u89c2\u70b9\uff0c\u73a9\u6e38\u620f", "finish": "0", "llmusageid": "K9_veNBxeqvrFfbGWXs0R"}
data: {"id": "chatcmpl-2665dfd8-e05f-9d7f-adff-3c53c174a454", "object": "chat.completion.chunk", "created": 1775019761, "choices": [{"delta": {"content": "\u7b49\u3002\u5982\u679c\u4f60\u6709\u4efb\u4f55\u95ee\u9898\u6216", "role": null}, "index": 0}], "model": "qwen3-max", "reasoning_content": null, "content": "\u7b49\u3002\u5982\u679c\u4f60\u6709\u4efb\u4f55\u95ee\u9898\u6216", "finish": "0", "llmusageid": "K9_veNBxeqvrFfbGWXs0R"}
data: {"id": "chatcmpl-2665dfd8-e05f-9d7f-adff-3c53c174a454", "object": "chat.completion.chunk", "created": 1775019761, "choices": [{"delta": {"content": "\u9700\u8981\u5e2e\u52a9\uff0c\u6b22\u8fce\u968f\u65f6\u544a\u8bc9\u6211", "role": null}, "index": 0}], "model": "qwen3-max", "reasoning_content": null, "content": "\u9700\u8981\u5e2e\u52a9\uff0c\u6b22\u8fce\u968f\u65f6\u544a\u8bc9\u6211", "finish": "0", "llmusageid": "K9_veNBxeqvrFfbGWXs0R"}
data: {"id": "chatcmpl-2665dfd8-e05f-9d7f-adff-3c53c174a454", "object": "chat.completion.chunk", "created": 1775019761, "choices": [{"delta": {"content": "\uff01", "role": null}, "index": 0}], "model": "qwen3-max", "reasoning_content": null, "content": "\uff01", "finish": "0", "llmusageid": "K9_veNBxeqvrFfbGWXs0R"}
data: {"id": "chatcmpl-2665dfd8-e05f-9d7f-adff-3c53c174a454", "object": "chat.completion.chunk", "created": 1775019761, "choices": [{"delta": {"content": "", "role": null}, "index": 0, "finish_reason": "stop"}], "model": "qwen3-max", "reasoning_content": null, "content": "", "finish": "0", "llmusageid": "K9_veNBxeqvrFfbGWXs0R"}
data: {"id": "chatcmpl-2665dfd8-e05f-9d7f-adff-3c53c174a454", "object": "chat.completion.chunk", "created": 1775019761, "choices": [], "model": "qwen3-max", "finish": "1", "usage": {"total_tokens": 70, "completion_tokens": 60, "prompt_tokens": 10, "prompt_tokens_details": {"cached_tokens": 0}}, "llmusageid": "K9_veNBxeqvrFfbGWXs0R"}
data: [DONE]
```
* 非流式
```
./oc.curl 你是谁
{"id": "chatcmpl-eea7abb9-24d5-9f70-b6f6-d7da4f22a8b8", "object": "chat.completion", "created": 1775011902, "choices": [{"finish_reason": "stop", "index": 0, "message": {"content": "我是通义千问,阿里巴巴集团旗下的超大规模语言模型。我能够回答问题、创作文字,比如写故事、写公文、写邮件、写剧本、逻辑推理、编程等等,还能表达观点,玩游戏等。如果你有任何问题或需要帮助,欢迎随时告诉我!", "role": "assistant"}}], "model": "qwen3-max", "reasoning_content": null, "content": "我是通义千问,阿里巴巴集团旗下的超大规模语言模型。我能够回答问题、创作文字,比如写故事、写公文、写邮件、写剧本、逻辑推理、编程等等,还能表达观点,玩游戏等。如果你有任何问题或需要帮助,欢迎随时告诉我!", "finish": "1", "usage": {"completion_tokens": 60, "prompt_tokens": 10, "prompt_tokens_details": {"cached_tokens": 0}, "total_tokens": 70}}
```
## 文生视频
目前支持:
| 模型id | 供应商 | 模型名 |
|--------|--------|--------|
| CrEMkFQfRCmbmopZsCqLj | 豆包 | doubao-seedance-1-5-pro-251215 |
| u9HZyfDoqU6uKI6M1BTks | 通义万象 | wan2.6-t2v |
| r0ill7L0s6PtBS8mkmg-7 | vidu | viduq3-pro |
| YjjGgxO_Xma8PWsMjJvps | 豆包 | eedance2.0 (未开通)|
### 万象上传数据要求
```
[
{
"name":"prompt",
"required":true,
"uitype": "text",
"label":"提示词"
},
{
"name":"negative_prompt",
"label":"反向提示词",
"uitype": "text"
},
{
"name":"size",
"uitype":"code",
"defaultvalue":"1920*1080",
"data":[
{
"value":"832*480",
"text":"832*480"
}, {
"value":"480*832",
"text":"480*832"
},{
"value":"624*624",
"text":"624*624"
},{
"value":"1280*720",
"text":"1280*720"
},{
"value":"720*1280",
"text":"720*1280"
},{
"value":"960*960",
"text":"960*960"
},{
"value":"1088*832",
"text":"1088*832"
},{
"value":"832*1088",
"text":"832*1088"
},{
"value":"1920*1080",
"text":"1920*1080"
},{
"value":"1080*1920",
"text":"1080*1920"
},{
"value":"1440*1440",
"text":"1440*1440"
},{
"value":"1632*1248",
"text":"1632*1248"
},{
"value":"1248*1632",
"text":"1248*1632"
}
],
"label":"视频尺寸"
},
{
"name":"duration",
"lable":"视频时长",
"uitype":"code",
"defaultvalue": 15,
"data":[
{
"value":"15",
"text":"15秒"
}, {
"value":"10",
"text":"10秒"
}, {
"value":"5", "text":"5秒"
}
]
}
]
```
### vidu 上传数据要求
```
[
{
"name":"prompt",
"label":"提示词",
"uitype":"text",
"required":true
},
{
"name":"off_peak",
"label":"错峰执行",
"uitype":"code",
"defaultvalue": "N",
"data":[{"value": "Y"},{"value": "N"}],
"required": false
},
{
"name":"duration",
"label":"视频长度1-16",
"uitype":"int",
"defaultvalue":10
},{
"name":"ratio",
"label":"长宽比",
"uitype":"code",
"defaultvalue":"16:9",
"textField":"value",
"data":[{"value":"16:9"},{"value":"9:16"},{"value":"4:3"},{"value":"3:4"},{"value":"1:1"}]
},{
"name":"resolution",
"label":"分辨率",
"uitype":"code",
"defaultvalue":"1080p",
"data":[{"value":"540p","text":"540p"},{"value":"720p","text":"720p"},{"value":"1080p","text":"1080p"}]
}
]
```
### seedance 上传数据要求
```
[
{
"name":"prompt",
"label": "提示词",
"uitype": "text",
"required": true
},
{
"name":"radio",
"label":"宽高比例",
"uitype":"code",
"data":[
{
"value":"16:9",
"text":"16:9"
},
{
"value":"keep_ratio",
"text":"与照片比例相同"
},
{
"value":"4:3",
"text":"4:3"
},
{
"value":"1:1",
"text":"1:1"
},
{
"value":"3:4",
"text":"3:4"
},
{
"value":"9:16",
"text":"9:16"
},
{
"value":"9:21",
"text":"9:21"
},
{
"value":"21:9",
"text":"21:9"
},
{
"value":"adaptive",
"text":"按图片自动选择"
}
]
},
{
"name": "resolution",
"label": "分辨率",
"uitype": "code",
"defaultvalue": "1080p",
"data":[
{
"value":"480p",
"text": "480p"
},
{
"value": "720p",
"text": "720p"
},{
"value": "1080p",
"text": "1080p"
}
]
},
{
"name":"duration",
"label": "视频长度",
"uitype":"int",
"defaultvalue":12
}
]
```
## 图生视频
| 模型id | 供应商 | 模型名 |
|--------|--------|--------|
| 7RTOJD6K8A7RXCMG4GnQ9 | 豆包 | doubao-seedance-1-5-pro-251215 |
| FK_h7FLYnosv2TkMN4ATC | vidu | viduq3-pro |
| x4HksKp9mXR1Yv60mw6Py | 通义万象 | wan2.6-r2v |
### 通义万象上传数据要求
```
[
{
"name":"prompt",
"required":true,
"uitype": "text",
"label":"提示词"
},
{
"name":"negative_prompt",
"label":"反向提示词",
"uitype": "text"
},
{
"name":"audio_file",
"uitype":"audio",
"label":"配音文件"
},
{
"name":"image1_file",
"uitype":"image",
"label":"首帧图片"
},
{
"name":"image2_file",
"uitype":"image",
"label":"尾帧图片"
},
{
"name":"size",
"uitype":"code",
"defaultvalue":"1920*1080",
"data":[
{
"value":"832*480",
"text":"832*480"
}, {
"value":"480*832",
"text":"480*832"
},{
"value":"624*624",
"text":"624*624"
},{
"value":"1280*720",
"text":"1280*720"
},{
"value":"720*1280",
"text":"720*1280"
},{
"value":"960*960",
"text":"960*960"
},{
"value":"1088*832",
"text":"1088*832"
},{
"value":"832*1088",
"text":"832*1088"
},{
"value":"1920*1080",
"text":"1920*1080"
},{
"value":"1080*1920",
"text":"1080*1920"
},{
"value":"1440*1440",
"text":"1440*1440"
},{
"value":"1632*1248",
"text":"1632*1248"
},{
"value":"1248*1632",
"text":"1248*1632"
}
],
"label":"视频尺寸"
},
{
"name":"duration",
"lable":"视频时长",
"uitype":"code",
"defaultvalue": 15,
"data":[
{
"value":"15",
"text":"15秒"
}, {
"value":"10",
"text":"10秒"
}, {
"value":"5", "text":"5秒"
}
]
}
]
```
### vidu 上传参数
```
[
{
"name":"prompt",
"label":"提示词",
"uitype":"text",
"required":true
},
{
"name":"off_peak",
"label":"错峰执行",
"uitype":"code",
"defaultvalue": "N",
"data":[{"value": "Y"},{"value": "N"}],
"required": false
},
{
"name":"image_file1",
"label":"首帧",
"uitype":"image",
"required":true
},
{
"name":"image_file2",
"label":"尾帧",
"uitype":"image",
"required":true
},
{
"name":"duration",
"label":"视频长度1-16",
"uitype":"int",
"defaultvalue":10
},{
"name":"ratio",
"label":"长宽比",
"uitype":"code",
"defaultvalue":"16:9",
"textField":"value",
"data":[{"value":"16:9"},{"value":"9:16"},{"value":"4:3"},{"value":"3:4"},{"value":"1:1"}]
},{
"name":"resolution",
"label":"分辨率",
"uitype":"code",
"defaultvalue":"1080p",
"data":[{"value":"540p","text":"540p"},{"value":"720p","text":"720p"},{"value":"1080p","text":"1080p"}]
}
]
```
### vidu 上传数据要求
```
[
{
"name":"model",
"label":"模型",
"uitype":"code",
"defaultvalue":"viduq3-pro",
"textField":"value",
"data":[{"value":"viduq2-turbo"},{"value":"viduq3-pro"}]
},
{
"name":"prompt",
"label":"提示词",
"uitype":"text",
"required":true
},
{
"name":"off_peak",
"label":"错峰执行",
"uitype":"code",
"defaultvalue": "N",
"data":[{"value": "Y"},{"value": "N"}],
"required": false
},
{
"name":"image_file1",
"label":"首帧",
"uitype":"image",
"required":true
},
{
"name":"image_file2",
"label":"尾帧",
"uitype":"image",
"required":true
},
{
"name":"duration",
"label":"视频长度1-16",
"uitype":"int",
"defaultvalue":10
},{
"name":"ratio",
"label":"长宽比",
"uitype":"code",
"defaultvalue":"16:9",
"textField":"value",
"data":[{"value":"16:9"},{"value":"9:16"},{"value":"4:3"},{"value":"3:4"},{"value":"1:1"}]
},{
"name":"resolution",
"label":"分辨率",
"uitype":"code",
"defaultvalue":"1080p",
"data":[{"value":"540p","text":"540p"},{"value":"720p","text":"720p"},{"value":"1080p","text":"1080p"}]
}
]
```
### seedance 上传数据要求
```
[
{
"name":"prompt",
"label": "提示词",
"uitype": "text",
"required": true
},
{
"name":"radio",
"label":"宽高比例",
"uitype":"code",
"data":[
{
"value":"16:9",
"text":"16:9"
},
{
"value":"keep_ratio",
"text":"与照片比例相同"
},
{
"value":"4:3",
"text":"4:3"
},
{
"value":"1:1",
"text":"1:1"
},
{
"value":"3:4",
"text":"3:4"
},
{
"value":"9:16",
"text":"9:16"
},
{
"value":"9:21",
"text":"9:21"
},
{
"value":"21:9",
"text":"21:9"
},
{
"value":"adaptive",
"text":"按图片自动选择"
}
]
},
{
"name": "resolution",
"label": "分辨率",
"uitype": "code",
"defaultvalue": "1080p",
"data":[
{
"value":"480p",
"text": "480p"
},
{
"value": "720p",
"text": "720p"
},{
"value": "1080p",
"text": "1080p"
}
]
},
{
"name":"duration",
"label": "视频长度",
"uitype":"int",
"defaultvalue":12
}, {
"name":"image_file1",
"label":"首帧图片",
"uitype":"image"
}, {
"name":"image_file2",
"label":"尾帧图片",
"uitype":"image"
}
]
```
## 参考生视频
| 模型id | 供应商 | 模型名 |
|--------|--------|--------|
| VooAIOtJdawpZjusWEzrh | 豆包 | doubao-seedance-1-5-pro-251215 |
| x4HksKp9mXR1Yv60mw6Py | 通义万象 | wan2.6-r2v |
### seedance上传数据要求
```
[
{
"name":"prompt",
"label": "提示词",
"uitype": "text",
"required": true
},
{
"name":"radio",
"label":"宽高比例",
"uitype":"code",
"data":[
{
"value":"16:9",
"text":"16:9"
},
{
"value":"4:3",
"text":"4:3"
},
{
"value":"1:1",
"text":"1:1"
},
{
"value":"3:4",
"text":"3:4"
},
{
"value":"9:16",
"text":"9:16"
},
{
"value":"9:21",
"text":"9:21"
},
{
"value":"21:9",
"text":"21:9"
}
]
},
{
"name": "resolution",
"label": "分辨率",
"uitype": "code",
"defaultvalue": "1080p",
"data":[
{
"value":"480p",
"text": "480p"
},
{
"value": "720p",
"text": "720p"
},{
"value": "1080p",
"text": "1080p"
}
]
},
{
"name":"duration",
"label": "视频长度",
"uitype":"int",
"defaultvalue":12
}, {
"name":"image_file1",
"label":"参考图片1",
"required": true,
"uitype":"image"
}, {
"name":"image_file2",
"label":"参考图片2",
"uitype":"image"
}, {
"name":"image_file3",
"label":"参考图片3",
"uitype":"image"
}
]
```
### 万象上传数据要求
```
```
### 任务提交
* path /llmage/video
* method POST
* headers
```
{
"Content-Type": "application/json",
"Authorization": "Bearer <your-apikey>" # 客户从元境平台申请到的APIKEY
}
```
* data
除llmid外不同的模型需要的数据不同请看后面的输入数据说明
```
{
"llmid": # 模型id
}
```
参数说明
1. 模型id
2. prompt
提示词
3. 其他输入
不同的模型有不同的输入,但不输入也有缺省值
通义万相:
```
* 返回
```
{
"taskid": # 任务id 后续使用此id查询执行结果
"status": # 状态 有:
# SUCCEEDED: 成功
# FAILED失败
# CREATED已创建
# PENDING排队中
# RUNNING运行中
}
```
返回例子:
```
{
"taskid": "936759404378734592",
"status": "created"
}
```
### 查询任务状态
* path /llmage/tasks
* method POST
* headers
```
{
"Content-Type": "application/json",
"Authorization": "Bearer <your-apikey>" # 客户从元境平台申请到的APIKEY
}
```
* params
```
{
"taskid": "936759404378734592"
}
```
* 返回
```
{
"status": # 状态 有:
# SUCCEEDED: 成功
# FAILED失败
# CREATED已创建
# PENDING排队中
# RUNNING运行中
"taskid": # 供应商生成的任务号如果失败taskid无意义
"usage": # status==SUCCEEDED时有效计费信息
"image": # 视频封面url
"video": # 视频url
}
```
返回例子:
```
{
"usage": { # 由于各个供应商,模型的计价方式不同
# usage的内容会有所变化
"action": "t2v",
"credits": 10,
"type": "text2video",
"model": "viduq3-pro",
"resolution": "540p",
"off_peak": false,
"duration": 1
},
"image": "https://opencomputing.ai/idfile?path=/tmp/19/43/137/39/cover.jpeg",
"video": "https://opencomputing.ai/idfile?path=/tmp/137/173/31/47/video.mp4",
"status": "SUCCEEDED"
}
```
## 错误信息
* 401: {"error": "Invalid API Key"}
* 400: {"error": "Missing required parameter: prompt"}
* 429: {"error": "Insufficient balance"} (余额不足)