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

755 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.

# 元境平台
a llm application, which can select differences llm avaiable in the backend, can interacts with the llm, if click the text widget in message showing area, the will call tts server to translate text inside the widget to audio and speak it out
## openai 兼容接口
我们提供一套兼容openai的API
### 文本生成
* path /llmage/t2t
* method 'POST'
* headers
```
{
"Content-Type": "application/json",
"Authorization": "Bearer XXXX" # XXXX是客户从元境平台申请到的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 XXXX" # XXXX是客户从元境平台申请到的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 XXXX" # XXXX是客户从元境平台申请到的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"
}
```