AI开放平台-内部
API列表
帮助文档
帮助文档
  • API接口使用教程
  • AI应用接口文档
下载
下载
  • 下载Apifox
  • 下载调试浏览器插件
API列表
帮助文档
帮助文档
  • API接口使用教程
  • AI应用接口文档
下载
下载
  • 下载Apifox
  • 下载调试浏览器插件
  1. 万物大模型-公共AI应用接口
  • 帮助中心
    • AI开放平台首页
  • 万物大模型-公共AI应用接口
    • 万物大模型AI应用接口文档
    • 小微同学
      • chat
  • 万物大模型-TokenGate
    • API接口使用教程
    • 外部大模型
      • 国外模型
        • OpenAI
          • gpt-5(对话)
          • gpt-5-pro(对话)
          • gpt-5-chat-latest(对话)
          • gpt-5-nano(对话)
          • gpt-5-mini(对话)
          • gpt-5.2(对话)
          • gpt-5.2-search(对话)
          • gpt-5.3-codex(对话)
          • gpt-5.4(对话)
          • gpt-5.4-pro(对话)
          • whisper-1(语音转文字)
          • tts-1-hd(文字生语音)
          • text-embedding-ada-002(向量)
          • text-embedding-3-small(向量)
          • text-embedding-3-large(向量)
          • gpt-image-2(图片)
        • Anthropic
          • claude-opus-4-7(对话)
          • claude-opus-4-6(对话)
          • claude-sonnet-4-6(对话)
          • claude-sonnet-4.5(对话)
          • claude-opus-4.5(对话)
          • claude-haiku-4.5(对话)
        • X AI
          • grok-4-1-fast-non-reasoning(对话)
          • grok-4-1-fast-reasoning(对话)
          • grok-code-fast-1(对话)
        • Google
          • gemini-3-flash-preview(对话)
          • gemini-3.1-pro-preview(对话)
          • gemini-2.5-flash-image(生图)
          • gemini-3-pro-image-preview(生图)
          • gemini-3.1-flash-image-preview(生图)
      • 国内模型
        • DeepSeek
          • deepseek-v4-flash
          • deepseek-v4-pro
        • GLM
          • glm-5.1
          • glm-4.7
        • QianWen
          • qwen3.6-max-preview
          • qwen3.5-plus
          • qwen3.5-flash
          • qwen3.6-flash
          • qwen3.6-plus
    • 内部大模型
      • 国内大模型
        • qianwen
          • Qwen3-VL-8B-Instruct
          • qwen-image-edit(图片编辑)
          • qwen-image(文生图)
          • Qwen3-TTS-12Hz-1.7B-CustomVoice 语音生成
          • wan-t2v 文生视频
          • wan-i2v 图生视频
        • deepseek
          • deepseek3.2
        • minimax
          • minimax2.7
          • minimax2.5
  • suno 即将上线,敬请期待
    • suno
      • sunoV2
        • 音乐查询
        • 创建音乐
        • 扩展音乐
        • 翻唱音乐
        • 上传并扩展音乐
        • 上传并翻唱音乐
        • 修改音乐片段
        • 音乐片段合并
        • 生成人声和伴奏
        • 获取音轨(MDMI)
        • 获取歌词
        • 获取MP4
        • 获取WAV
        • 获取歌词/音频时间线
        • 获取节拍
        • 获取tags
  1. 万物大模型-公共AI应用接口

万物大模型AI应用接口文档

万物大模型-接口文档#

(版本V1.1)#

2025.3.14

1.OpenAPI介绍#

1.1 使用说明#

OpenAPI 接口允许使用 Api Key 进行鉴权,从而操作相关服务和资源,例如:调用应用对话接口。出于兼容性和安全考虑,并不是所有的接口都允许通过 Api Key 访问。

1.2 如何查看 BaseURL#

注意:BaseURL 不是接口地址,而是所有接口的根地址,直接请求 BaseURL 是没有用的。
本项目的ip地址为:https://ai.vnet.com/
查看baseURL.PNG

1.3 如何获取 Api Key#

API Key 有 2 类,一类是全局通用的 key (无法直接调用应用对话);一类是携带了 AppId 也就是有应用标记的 key (可直接调用应用对话)。
建议仅操作应用或者对话的相关接口使用应用特定key,其他接口使用 通用key。
image.png

1.4 基本配置#

OpenAPI 中,所有的接口都通过 Header.Authorization 进行鉴权。
baseUrl: "https://ai.vnet.com/ailowcode/api/v1/chat/completions"
headers: {
Authorization: "Bearer {{apikey}}"
}
发起应用对话示例
📌
curl --location --request POST 'https://ai.vnet.com/ailowcode/api/v1/chat/completions'
--header 'Authorization: Bearer xxxxxx'
--header 'Content-Type: application/json'
--data-raw '{
"chatId": "111",
"stream": false,
"detail": false,
"messages": [
{
"content": "导演是谁",
"role": "user"
}
]
}'

2. 应用接口#

2.1 前置准备#

准备 API key: 可用直接使用全局 apikey
准备应用的 AppId
在应用配置页打开浏览器检查工具(F12)按箭头示意查看完整的AppID
image.png

3. 对话接口#

3.1 如何获取 AppId#

可在应用详情的路径里获取 AppId。
在应用配置页打开浏览器检查工具(F12)按箭头示意查看完整的AppID
image.png

3.2 发起对话#

该接口的 API Key 需使用应用特定的 key,否则会报错。
有些包调用时,BaseUrl需要添加v1路径,有些不需要,如果出现404情况,可补充v1重试。

3.2.1 请求简易应用和工作流#

v1对话接口兼容GPT的接口!如果你的项目使用的是标准的GPT官方接口,可以直接通过修改BaseUrl和 Authorization来访问应用,不过需要注意下面几个规则:
传入的model,temperature等参数字段均无效,这些字段由编排决定,不会根据 API 参数改变。
不会返回实际消耗Token值,如果需要,可以设置detail=true,并手动计算 responseData 里的tokens值。

3.2.1.1 请求#

3.2.1.1.1 基础请求示例#
📌
curl --location --request POST 'https://ai.vnet.com//ailowcode/api/v2/chat/completions'
--header 'Authorization: Bearer xxxxxx'
--header 'Content-Type: application/json'
--data-raw '{
"chatId": "my_chatId",
"stream": false,
"detail": false,
"responseChatItemId": "my_responseChatItemId",
"variables": {
"uid": "asdfadsfasfd2323",
"name": "张三"
},
"messages": [
{
"role": "user",
"content": "导演是谁"
}
]
}'
3.2.1.1.2 图片/文件请求示例#
仅messages有部分区别,其他参数一致。
目前不支持上传文件,需上传到自己的对象存储中,获取对应的文件链接。
📌
curl --location --request POST 'https://ai.vnet.com//ailowcode/api/v2/chat/completions'
--header 'Authorization: Bearer xxxxxx'
--header 'Content-Type: application/json'
--data-raw '{
"chatId": "abcd",
"stream": false,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "导演是谁"
},
{
"type": "image_url",
"image_url": {
"url": "图片链接"
}
},
{
"type": "file_url",
"name": "文件名",
"url": "文档链接"
}
]
}
]
}'
3.2.1.1.3 参数说明#
headers.Authorization: Bearer [apikey]
chatId: string | undefined 。
为时(不传入),不使用平台提供的上下文功能,完全通过传入的 messages 构建上下文。
为非空字符串时,意味着使用 chatId 进行对话,自动从数据库取历史记录,并使用 messages数组最后一个内容作为用户问题,其余 message 会被忽略。请自行确保 chatId唯一,长度小于250,通常可以是自己系统的对话框ID。
messages: 结构与GPT接口 chat模式一致。
responseChatItemId: string | undefined 。如果传入,则会将该值作为本次对话的响应消息的 ID,平台会自动将该 ID 存入数据库。请确保,在当前chatId下,responseChatItemId是唯一的。
detail:是否返回中间值(模块状态,响应的完整结果等),stream模式下会通过event进行区分,非stream模式结果保存在responseData中。
variables: 模块变量,一个对象,会替换模块中,输入框内容里的[key]

3.2.1.2 响应#

3.2.1.2.1 detail=false,stream=false 响应#
💡
{
"id": "adsfasf",
"model": "",
"usage": {
"prompt_tokens": 1,
"completion_tokens": 1,
"total_tokens": 1
},
"choices": [
{
"message": {
"role": "assistant",
"content": "电影《铃芽之旅》的导演是新海诚。"
},
"finish_reason": "stop",
"index": 0
}
]
}
3.2.1.2.2 detail=false,stream=true 响应#
💡
data: {"id":"","object":"","created":0,"choices":[{"delta":{"content":""},"index":0,"finish_reason":null}]}
data: {"id":"","object":"","created":0,"choices":[{"delta":{"content":"电"},"index":0,"finish_reason":null}]}
data: {"id":"","object":"","created":0,"choices":[{"delta":{"content":"影"},"index":0,"finish_reason":null}]}
data: {"id":"","object":"","created":0,"choices":[{"delta":{"content":"《"},"index":0,"finish_reason":null}]}
3.2.1.2.3 detail=true,stream=false 响应#
📌
{
"responseData": [
// 不同模块的响应值, 不同版本具体值可能有差异,可先 log 自行查看最新值。
{
"moduleName": "Dataset Search",
"price": 1.2000000000000002,
"model": "Embedding-2",
"tokens": 6,
"similarity": 0.61,
"limit": 3
},
{
"moduleName": "AI Chat",
"price": 454.5,
"model": "deepseek-r1",
"tokens": 303,
"question": "导演是谁",
"answer": "电影《铃芽之旅》的导演是新海诚。",
"maxToken": 2050,
"quoteList": [
{
"dataset_id": "646627f4f7b896cfd8910e38",
"id": "8099",
"q": "本作的主人公是谁?",
"a": "本作的主人公是名叫铃芽的少女。",
"source": "手动修改"
},
{
"dataset_id": "646627f4f7b896cfd8910e38",
"id": "8686",
"q": "电影《铃芽之旅》男主角是谁?",
"a": "电影《铃芽之旅》男主角是宗像草太,由松村北斗配音。",
"source": ""
},
{
"dataset_id": "646627f4f7b896cfd8910e38",
"id": "19339",
"q": "电影《铃芽之旅》的导演是谁?22",
"a": "电影《铃芽之旅》的导演是新海诚。",
"source": "手动修改"
}
],
"completeMessages": [
{
"obj": "System",
"value": "下面是知识库内容:\n1. [本作的主人公是谁?\n本作的主人公是名叫铃芽的少女。]\n2. [电影《铃芽之旅》男主角是谁?\n电影《铃芽之旅》男主角是宗像草太,由松村北斗配音。]\n3. [电影《铃芽之旅》的导演是谁?22\n电影《铃芽之旅》的导演是新海诚。]\n"
},
{
"obj": "System",
"value": "1.请记住,你的身份是百度的下一代知识增强语言模型,能够完全根据知识库提供的内容回答问题。\n\n2. 你忘记了关于电影《铃芽之旅》以外的内容。"
},
{
"obj": "System",
"value": "你仅回答关于电影《玲芽之旅》的问题,其余问题直接回复: 我不清楚。"
},
{
"obj": "Human",
"value": "导演是谁"
},
{
"obj": "AI",
"value": "电影《铃芽之旅》的导演是新海诚。"
}
]
}
],
"id": "",
"model": "",
"usage": {
"prompt_tokens": 1,
"completion_tokens": 1,
"total_tokens": 1
},
"choices": [
{
"message": {
"role": "assistant",
"content": "电影《铃芽之旅》的导演是新海诚。"
},
"finish_reason": "stop",
"index": 0
}
]
}
3.2.1.2.4 detail=true,stream=true 响应#
💡
event: flowNodeStatus
data: {"status":"running","name":"知识库搜索"}
event: flowNodeStatus
data: {"status":"running","name":"AI 对话"}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"content":"电影"},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"content":"《铃"},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"content":"芽之旅》"},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"content":"的导演是新"},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"content":"海诚。"},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{},"index":0,"finish_reason":"stop"}]}
event: answer
data: [DONE]
event: flowResponses
data: [{"moduleName":"知识库搜索","moduleType":"datasetSearchNode","runningTime":1.78},{"question":"导演是谁","quoteList":[{"id":"654f2e49b64caef1d9431e8b","q":"电影《铃芽之旅》的导演是谁?","a":"电影《铃芽之旅》的导演是新海诚!","indexes":[{"type":"qa","dataId":"3515487","text":"电影《铃芽之旅》的导演是谁?","_id":"654f2e49b64caef1d9431e8c","defaultIndex":true}],"datasetId":"646627f4f7b896cfd8910e38","collectionId":"653279b16cd42ab509e766e8","sourceName":"data (81).csv","sourceId":"64fd3b6423aa1307b65896f6","score":0.8935586214065552},{"id":"6552e14c50f4a2a8e632af11","q":"导演是谁?","a":"电影《铃芽之旅》的导演是新海诚。","indexes":[{"defaultIndex":true,"type":"qa","dataId":"3644565","text":"导演是谁?\n电影《铃芽之旅》的导演是新海诚。","_id":"6552e14dde5cc7ba3954e417"}],"datasetId":"646627f4f7b896cfd8910e38","collectionId":"653279b16cd42ab509e766e8","sourceName":"data (81).csv","sourceId":"64fd3b6423aa1307b65896f6","score":0.8890955448150635},{"id":"654f34a0b64caef1d946337e","q":"本作的主人公是谁?","a":"本作的主人公是名叫铃芽的少女。","indexes":[{"type":"qa","dataId":"3515541","text":"本作的主人公是谁?","_id":"654f34a0b64caef1d946337f","defaultIndex":true}],"datasetId":"646627f4f7b896cfd8910e38","collectionId":"653279b16cd42ab509e766e8","sourceName":"data (81).csv","sourceId":"64fd3b6423aa1307b65896f6","score":0.8738770484924316},{"id":"654f3002b64caef1d944207a","q":"电影《铃芽之旅》男主角是谁?","a":"电影《铃芽之旅》男主角是宗像草太,由松村北斗配音。","indexes":[{"type":"qa","dataId":"3515538","text":"电影《铃芽之旅》男主角是谁?","_id":"654f3002b64caef1d944207b","defaultIndex":true}],"datasetId":"646627f4f7b896cfd8910e38","collectionId":"653279b16cd42ab509e766e8","sourceName":"data (81).csv","sourceId":"64fd3b6423aa1307b65896f6","score":0.8607980012893677},{"id":"654f2fc8b64caef1d943fd46","q":"电影《铃芽之旅》的编剧是谁?","a":"新海诚是本片的编剧。","indexes":[{"defaultIndex":true,"type":"qa","dataId":"3515550","text":"电影《铃芽之旅》的编剧是谁?22","_id":"654f2fc8b64caef1d943fd47"}],"datasetId":"646627f4f7b896cfd8910e38","collectionId":"653279b16cd42ab509e766e8","sourceName":"data (81).csv","sourceId":"64fd3b6423aa1307b65896f6","score":0.8468944430351257}],"moduleName":"AI 对话","moduleType":"chatNode","runningTime":1.86}]
3.2.1.2.5 event值#
answer: 返回给客户端的文本(最终会算作回答)
fastAnswer: 指定回复返回给客户端的文本(最终会算作回答)
toolCall: 执行工具
toolParams: 工具参数
toolResponse: 工具返回
flowNodeStatus: 运行到的节点状态
flowResponses: 节点完整响应
updateVariables: 更新变量
error: 报错

3.2.1.3 交互节点响应#

如果工作流中包含交互节点,依然是调用该 API 接口,需要设置detail=true,并可以从event=interactive的数据中获取交互节点的配置信息。如果是stream=false,则可以从 choice 中获取type=interactive的元素,获取交互节点的选择信息。
当你调用一个带交互节点的工作流时,如果工作流遇到了交互节点,那么会直接返回,你可以得到下面的信息:
3.2.1.3.1 用户选择#
📌
{
"interactive": {
"type": "userSelect",
"params": {
"description": "测试",
"userSelectOptions": [
{
"value": "Confirm",
"key": "option1"
},
{
"value": "Cancel",
"key": "option2"
}
]
}
}
}
3.2.1.3.2 表单输入#
📌
{
"interactive": {
"type": "userInput",
"params": {
"description": "测试",
"inputForm": [
{
"type": "input",
"key": "测试 1",
"label": "测试 1",
"description": "",
"value": "",
"defaultValue": "",
"valueType": "string",
"required": false,
"list": [
{
"label": "",
"value": ""
}
]
},
{
"type": "numberInput",
"key": "测试 2",
"label": "测试 2",
"description": "",
"value": "",
"defaultValue": "",
"valueType": "number",
"required": false,
"list": [
{
"label": "",
"value": ""
}
]
}
]
}
}
}

3.2.1.4 交互节点继续运行#

紧接着上一节,当你接收到交互节点信息后,可以根据这些数据进行 UI 渲染,引导用户输入或选择相关信息。然后需要再次发起对话,来继续工作流。调用的接口与仍是该接口,你需要按以下格式来发起请求:
3.2.1.4.1 用户选择#
对于用户选择,你只需要直接传递一个选择的结果给 messages 即可。
💡
{
"interactive": {
"type": "userSelect",
"params": {
"description": "测试",
"userSelectOptions": [
{
"value": "Confirm",
"key": "option1"
},
{
"value": "Cancel",
"key": "option2"
}
]
}
}
}
3.2.1.4.2 表单输入#
表单输入稍微麻烦一点,需要将输入的内容,以对象形式并序列化成字符串,作为messages的值。对象的 key 对应表单的 key,value 为用户输入的值。务必确保chatId是一致的。
curl --location --request POST 'https://ai.vnet.com//ailowcode/api/v2/chat/completions'
--header 'Authorization: Bearer xxxx'
--header 'Content-Type: application/json'
--data-raw '{
"stream": true,
"detail": true,
"chatId":"22231",
"messages": [
{
"role": "user",
"content": "{"测试 1":"这是输入框的内容","测试 2":666}"
}
]
}'

3.2.2 请求插件#

插件的接口与对话接口一致,仅请求参数略有区别,有以下规定:
调用插件类型的应用时,接口默认为detail模式。
无需传入 chatId,因为插件只能运行一轮。
无需传入messages。
通过传递variables来代表插件的输入。
通过获取pluginData来获取插件输出。

3.2.2.1 请求示例#

💡
curl --location --request POST 'https://ai.vnet.com/ailowcode/api/v2/chat/completions'
--header 'Authorization: Bearer xxxxx'
--header 'Content-Type: application/json'
--data-raw '{
"stream": false,
"chatId": "test",
"variables": {
"query":"你好" # 我的插件输入有一个参数,变量名叫 query
}
}'

3.2.2.2 响应示例#

3.2.2.2.1 detail=true,stream=false 响应#
📌
插件的输出可以通过查找responseData中, moduleType=pluginOutput的元素,其pluginOutput是插件的输出。
流输出,仍可以通过choices进行获取。
{
"responseData": [
{
"nodeId": "fdDgXQ6SYn8v",
"moduleName": "AI 对话",
"moduleType": "chatNode",
"totalPoints": 0.685,
"model": "deepseek-r1",
"tokens": 685,
"query": "你好",
"maxToken": 2000,
"historyPreview": [
{
"obj": "Human",
"value": "你好"
},
{
"obj": "AI",
"value": "你好!有什么可以帮助你的吗?欢迎向我提问。"
}
],
"contextTotalLen": 14,
"runningTime": 1.73
},
{
"nodeId": "pluginOutput",
"moduleName": "插件输出",
"moduleType": "pluginOutput",
"totalPoints": 0,
"pluginOutput": {
"result": "你好!有什么可以帮助你的吗?欢迎向我提问。"
},
"runningTime": 0
}
],
"newVariables": {
"query": "你好"
},
"id": "safsafsa",
"model": "",
"usage": {
"prompt_tokens": 1,
"completion_tokens": 1,
"total_tokens": 1
},
"choices": [
{
"message": {
"role": "assistant",
"content": "你好!有什么可以帮助你的吗?欢迎向我提问。"
},
"finish_reason": "stop",
"index": 0
}
]
}
3.2.2.2.2 detail=true,stream=true 响应#
插件的输出可以通过获取event=flowResponses中的字符串,并将其反序列化后得到一个数组。同样的,查找 moduleType=pluginOutput的元素,其pluginOutput是插件的输出。
流输出,仍和对话接口一样获取。
💡
event: flowNodeStatus
data: {"status":"running","name":"AI 对话"}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":""},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"你"},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"好"},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"!"},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"有"},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"什"},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"么"},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"可以"},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"帮"},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"助"},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"你"},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"的"},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"吗"},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"?"},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":""},"index":0,"finish_reason":null}]}
event: answer
data: {"id":"","object":"","created":0,"model":"","choices":[{"delta":{},"index":0,"finish_reason":"stop"}]}
event: answer
data: [DONE]
event: flowResponses
data: [{"nodeId":"fdDgXQ6SYn8v","moduleName":"AI 对话","moduleType":"chatNode","totalPoints":0.033,"model":"deepseek-r1","tokens":33,"query":"你好","maxToken":2000,"historyPreview":[{"obj":"Human","value":"你好"},{"obj":"AI","value":"你好!有什么可以帮助你的吗?"}],"contextTotalLen":2,"runningTime":1.42},{"nodeId":"pluginOutput","moduleName":"插件输出","moduleType":"pluginOutput","totalPoints":0,"pluginOutput":{"result":"你好!有什么可以帮助你的吗?"},"runningTime":0}]
3.2.2.2.3 输出获取#
event取值:
answer: 返回给客户端的文本(最终会算作回答)
fastAnswer: 指定回复返回给客户端的文本(最终会算作回答)
toolCall: 执行工具
toolParams: 工具参数
toolResponse: 工具返回
flowNodeStatus: 运行到的节点状态
flowResponses: 节点完整响应
updateVariables: 更新变量
error: 报错
修改于 2026-03-04 06:32:59
上一页
万物大模型-公共AI应用接口
下一页
chat
Built with