Skip to content

万界方舟接口文档

接入流程说明

  • 访问万界方舟,通过手机号登录,在“模型广场”中,点击模型名称进行模型复制。

  • 获取密钥:进入万界方舟 API Key ,找到 API KEY 点击一键复制按钮。

  • 模型说明:模型广场展示所有已授权模型,其他模型服务需要和运营人员进行授权报备。

接口基础信息

  • Base Url:

OpenAI :https://maas-openapi.wanjiedata.com/api

Gemini :https://maas-openapi.wanjiedata.com/api

Anthropic :https://maas-openapi.wanjiedata.com/api/anthropic

获取模型列表

  • 获取已经授权的模型列表(不含 Anthropic 端侧模型)
shell

export API_KEY="<你的 API KEY>"
curl https://maas-openapi.wanjiedata.com/api/v1/models \
  -H "Authorization: Bearer $API_KEY"
python
import requests
API_KEY = "<你的 API KEY>"
url = "https://maas-openapi.wanjiedata.com/api/v1/models"
headers = {
    "Authorization": f"Bearer {API_KEY}"
}
response = requests.get(url, headers=headers)
print(response.status_code)
print(response.json())
javascript
import axios from 'axios';

const apiKey = '<你的 API KEY>';

async function getModels() {
  try {
    const response = await axios.get('https://maas-openapi.wanjiedata.com/api/v1/models', {
      headers: { Authorization: `Bearer ${apiKey}` }
    });
    console.log('模型列表:', response.data);
  } catch (error) {
    console.error('请求失败:', error.response ? error.response.data : error.message);
  }
}

getModels();
csharp
using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
   static async Task Main()
   {
       var client = new HttpClient();
       client.DefaultRequestHeaders.Add("Authorization", "Bearer <你的 API KEY>");
       var response = await client.GetStringAsync("https://maas-openapi.wanjiedata.com/api/v1/models");
       Console.WriteLine(response);
   }
}

响应示例

shell
[
    {
        "id": "deepseek-v3",
        "object": "model",
        "created": 1740362631,
        "owned_by": "wanjie"
    },
    {
        "id": "deepseek-reasoner",
        "object": "model",
        "created": 1739017876,
        "owned_by": "wanjie"
    },
    },
    },
]
python
{
  'data': [
    {'id': 'qwen3-32b', 'object': 'model', 'created': 1760084423, 'owned_by': 'organization'},
    {'id': 'Flux.1-Schnell', 'object': 'model', 'created': 1760083578, 'owned_by': 'organization'},
    {'id': 'deepseek-v3', 'object': 'model', 'created': 1760083578, 'owned_by': 'organization'}
  ],
  'object': 'list'
}
javascript
模型列表: {
  data: [
    {id: 'qwen3-32b', object: 'model', created: 1760084423, owned_by: 'organization'},
    {id: 'Flux.1-Schnell', object: 'model', created: 1760083578, owned_by: 'organization'},
    {id: 'deepseek-v3', object: 'model', created: 1760083578, owned_by: 'organization'}
  ],
  object: 'list'
}
csharp
d":1760083578,"owned_by":"organization"},
{"id":"gemini-2.5-flash-lite","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"gemini-2.5-flash","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"gemini-2.5-pro","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"claude-sonnet-4-20250514","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"GPT-4o","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"GPT-4.1","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"deepseek-reasoner","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"qwen3-next","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"qwen3-coder","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"kimi-k2","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"qwen3-235b","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"CosyVoice","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"Flux.1-Schnell","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"deepseek-v3","object":"model","created":1760083578,"owned_by":"organization"}],"object":"list"}
  • 获取 Anthropic 端侧模型列表
shell

export API_KEY="<你的 API KEY>"
curl https://maas-openapi.wanjiedata.com/api/anthropic/v1/models \
  -H "Authorization: Bearer $API_KEY"
python
import requests
API_KEY = "<你的 API KEY>"
url = "https://maas-openapi.wanjiedata.com/api/anthropic/v1/models"
headers = {
    "Authorization": f"Bearer {API_KEY}"
}
response = requests.get(url, headers=headers)
print(response.status_code)
print(response.json())
javascript
import axios from 'axios';

const apiKey = '<你的 API KEY>';

async function getModels() {
  try {
    const response = await axios.get('https://maas-openapi.wanjiedata.com/api/anthropic/v1/models', {
      headers: { Authorization: `Bearer ${apiKey}` }
    });
    console.log('模型列表:', response.data);
  } catch (error) {
    console.error('请求失败:', error.response ? error.response.data : error.message);
  }
}

getModels();
csharp
using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
   static async Task Main()
   {
       var client = new HttpClient();
       client.DefaultRequestHeaders.Add("Authorization", "Bearer <你的 API KEY>");
       var response = await client.GetStringAsync("https://maas-openapi.wanjiedata.com/api/anthropic/v1/models");
       Console.WriteLine(response);
   }
}

响应示例

shell
{
    "data": [
        {
            "id": "gemini-3-pro-preview",
            "type": "model",
            "created_at": "2026-02-27 16:49:28",
            "display_name": "gemini-3-pro-preview"
        },
        {
            "id": "claude-opus-4-5-20251101",
            "type": "model",
            "created_at": "2026-02-27 16:49:28",
            "display_name": "claude-opus-4-5-20251101"
        },
        {
            "id": "claude-opus-4-1-20250805",
            "type": "model",
            "created_at": "2026-02-27 16:49:28",
            "display_name": "claude-opus-4-1-20250805"
        },
        {
            "id": "deepseek-v3",
            "type": "model",
            "created_at": "2026-02-27 16:49:28",
            "display_name": "deepseek-v3"
        },
        {
            "id": "claude-3.7-sonnet-20250219",
            "type": "model",
            "created_at": "2026-02-27 16:49:28",
            "display_name": "claude-3.7-sonnet-20250219"
        },
        {
            "id": "claude-sonnet-4-20250514",
            "type": "model",
            "created_at": "2026-02-27 16:49:28",
            "display_name": "claude-sonnet-4-20250514"
        },
        {
            "id": "claude-opus-4-20250514",
            "type": "model",
            "created_at": "2026-02-27 16:49:28",
            "display_name": "claude-opus-4-20250514"
        },
        {
            "id": "claude-sonnet-4-5-20250929",
            "type": "model",
            "created_at": "2026-02-27 16:49:28",
            "display_name": "claude-sonnet-4-5-20250929"
        },
        {
            "id": "claude-haiku-4-5-20251001",
            "type": "model",
            "created_at": "2026-02-27 16:49:28",
            "display_name": "claude-haiku-4-5-20251001"
        }
    ],
    "first_id": "first_id",
    "has_more": "true",
    "last_id": "last_id"
}
python
200
{'data': [{'id': 'gemini-3-pro-preview', 'type': 'model', 'created_at': '2026-02-27 16:49:28', 'display_name': 'gemini-3-pro-preview'}, {'id': 'claude-opus-4-5-20251101', 'type': 'model', 'created_at': '2026-02-27 16:49:28', 'display_name': 'claude-opus-4-5-20251101'}, {'id': 'claude-opus-4-1-20250805', 'type': 'model', 'created_at': '2026-02-27 16:49:28', 'display_name': 'claude-opus-4-1-20250805'}, {'id': 'deepseek-v3', 'type': 'model', 'created_at': '2026-02-27 16:49:28', 'display_name': 'deepseek-v3'}, {'id': 'claude-3.7-sonnet-20250219', 'type': 'model', 'created_at': '2026-02-27 16:49:28', 'display_name': 'claude-3.7-sonnet-20250219'}, {'id': 'claude-sonnet-4-20250514', 'type': 'model', 'created_at': '2026-02-27 16:49:28', 'display_name': 'claude-sonnet-4-20250514'}, {'id': 'claude-opus-4-20250514', 'type': 'model', 'created_at': '2026-02-27 16:49:28', 'display_name': 'claude-opus-4-20250514'}, {'id': 'claude-sonnet-4-5-20250929', 'type': 'model', 'created_at': '2026-02-27 16:49:28', 'display_name': 'claude-sonnet-4-5-20250929'}, {'id': 'claude-haiku-4-5-20251001', 'type': 'model', 'created_at': '2026-02-27 16:49:28', 'display_name': 'claude-haiku-4-5-20251001'}], 'first_id': 'first_id', 'has_more': 'true', 'last_id': 'last_id'}
javascript
模型列表: {
  data: [
    {
      id: 'gemini-3-pro-preview',
      type: 'model',
      created_at: '2026-02-27 16:49:28',
      display_name: 'gemini-3-pro-preview'
    },
    {
      id: 'claude-opus-4-5-20251101',
      type: 'model',
      created_at: '2026-02-27 16:49:28',
      display_name: 'claude-opus-4-5-20251101'
    },
    {
      id: 'claude-opus-4-1-20250805',
      type: 'model',
      created_at: '2026-02-27 16:49:28',
      display_name: 'claude-opus-4-1-20250805'
    },
    {
      id: 'deepseek-v3',
      type: 'model',
      created_at: '2026-02-27 16:49:28',
      display_name: 'deepseek-v3'
    },
    {
      id: 'claude-3.7-sonnet-20250219',
      type: 'model',
      created_at: '2026-02-27 16:49:28',
      display_name: 'claude-3.7-sonnet-20250219'
    },
    {
      id: 'claude-sonnet-4-20250514',
      type: 'model',
      created_at: '2026-02-27 16:49:28',
      display_name: 'claude-sonnet-4-20250514'
    },
    {
      id: 'claude-opus-4-20250514',
      type: 'model',
      created_at: '2026-02-27 16:49:28',
      display_name: 'claude-opus-4-20250514'
    },
    {
      id: 'claude-sonnet-4-5-20250929',
      type: 'model',
      created_at: '2026-02-27 16:49:28',
      display_name: 'claude-sonnet-4-5-20250929'
    },
    {
      id: 'claude-haiku-4-5-20251001',
      type: 'model',
      created_at: '2026-02-27 16:49:28',
      display_name: 'claude-haiku-4-5-20251001'
    }
  ],
  first_id: 'first_id',
  has_more: 'true',
  last_id: 'last_id'
}
csharp
d":1760083578,"owned_by":"organization"},
{"id":"gemini-3-pro-preview","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"claude-opus-4-5-20251101","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"claude-opus-4-1-20250805","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"claude-sonnet-4-20250514","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"deepseek-v3","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"claude-3.7-sonnet-20250219","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"claude-sonnet-4-20250514","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"claude-opus-4-20250514","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"claude-sonnet-4-5-20250929","object":"model","created":1760083578,"owned_by":"organization"},
{"id":"claude-haiku-4-5-20251001","object":"model","created":1760083578,"owned_by":"organization"}],"object":"list"}

Open AI 文本对话

shell
POST /v1/chat/completions

非流式请求示例

shell
# 调用聊天对话请求示例
export API_KEY="<你的 API KEY>"
export MODEL="<你的授权模型名称>"
# 授权模型名称:在模型广场列表中模型名称复制名称获取。
curl --location --request POST 'https://maas-openapi.wanjiedata.com/api/v1/chat/completions' \
--header "Authorization: Bearer $API_KEY" \
--header 'Content-Type: application/json' \
--data-raw '{
    "model": "'$MODEL'",
    "messages": [{"role": "user", "content": "Hello!"}],
    "stream": false
}'
python
import requests
url = "https://maas-openapi.wanjiedata.com/api/v1/chat/completions"
api_key = "<你的 API KEY>"
headers = {
    "Authorization": f"Bearer {api_key}",
    "Content-Type": "application/json"
}
data = {
    "model": "<你的授权模型名称>",
    "messages": [
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ]
}
response = requests.post(url, headers=headers, json=data)
response_json = response.json()
assistant_message = response_json['choices'][0]['message']['content']
print(assistant_message)
javascript
import axios from 'axios';

const apiKey = '<你的 API KEY>';
const model = '<你的授权模型名称>'; 
const url = 'https://maas-openapi.wanjiedata.com/api/v1/chat/completions';

async function testConnection() {
  try {
    const response = await axios.post(url, {
      model,
      messages: [
        { role: 'user', content: 'Hello!' }
      ]
    }, {
      headers: {
        Authorization: `Bearer ${apiKey}`,
        'Content-Type': 'application/json'
      }
    });
    console.log(response.data.choices[0].message.content);
    console.log('API 连接成功');
  } catch (error) {
    console.error('API 连接失败:', error.response?.data || error.message);
  }
}

testConnection();
csharp
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class P {
    static async Task Main() {
        var c = new HttpClient();
        c.DefaultRequestHeaders.Add("Authorization", "Bearer <API_KEY>");
        var d = new StringContent(@"{
            ""model"":""<MODEL>"",
            ""messages"":[{""role"":""user"",""content"":""Hello!""}],
            ""stream"":false
        }", Encoding.UTF8, "application/json");
        var r = await c.PostAsync("https://maas-openapi.wanjiedata.com/api/v1/chat/completions", d);
        System.Console.WriteLine(await r.Content.ReadAsStringAsync());
    }
}

非流式响应示例

shell
{
    "id": "chatcmpl-xxxxxx",
    "object": "chat.completion",
    "created": 1760336462,
    "model": "deepseek-reasoner",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "Hello! 😊 How can I assist you today?"
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 8,
        "completion_tokens": 228,
        "total_tokens": 236
    }
}
python
Hello! 😊 How can I assist you today?
javascript
Hello! 😊 How can I assist you today? Whether you have a question, need help with something, or just want to chat, I'm here for you!
API 连接成功
csharp
{
  "id":"chatcmpl-187830d79894458aa702fd592b109d4b",
"object":"chat.completion","created":1762412451,
"model":"deepseek-reasoner","choices":[{"index":0,"message":{"role":"assistant",
"content":"\nHi there! 😊  \nHow are you doing today? What can I help you with? 😊",
"tool_calls":[]},"finish_reason":"stop"}],
"usage":{"prompt_tokens":5,"completion_tokens":186,"total_tokens":191}
}

流式请求示例

shell
# 调用聊天对话请求示例
export API_KEY="<你的 API KEY>"
export MODEL="<你的授权模型名称>"
# 授权模型名称:在授权模型列表中模型名称复制名称获取。
curl --location --request POST 'https://maas-openapi.wanjiedata.com/api/v1/chat/completions' \
--header "Authorization: Bearer $API_KEY" \
--header 'Content-Type: application/json' \
--data-raw '{
    "model": "'$MODEL'",
    "messages": [{"role": "user", "content": "请用一句话介绍自己"}],
    "stream": true
}'
python
import requests

API_KEY = "<你的 API KEY>"
MODEL = "<你的授权模型名称>"

url = 'https://maas-openapi.wanjiedata.com/api/v1/chat/completions'
headers = {
    'Authorization': f'Bearer {API_KEY}',
    'Content-Type': 'application/json'
}
data = {
    "model": MODEL,
    "messages": [{"role": "user", "content": "请用一句话介绍自己"}],
    "stream": True
}

response = requests.post(url, headers=headers, json=data)
print(response.text)
javascript
fetch('https://maas-openapi.wanjiedata.com/api/v1/chat/completions', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer <你的 API KEY>',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: '<你的授权模型名称>',
    messages: [{ role: 'user', content: '请用一句话介绍自己' }],
    stream: true
  })
})
.then(res => res.text())
.then(console.log);
csharp
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class P {
    static async Task Main() {
        var c = new HttpClient();
        c.DefaultRequestHeaders.Add("Authorization", "Bearer <API_KEY>");
        var d = new StringContent(@"{
            ""model"":""<MODEL>"",
            ""messages"":[{""role"":""user"",""content"":""请用一句话介绍自己""}],
            ""stream"":true
        }", Encoding.UTF8, "application/json");
        var r = await c.PostAsync("https://maas-openapi.wanjiedata.com/api/v1/chat/completions", d);
        System.Console.WriteLine(await r.Content.ReadAsStringAsync());
    }
}

流式响应示例

shell
{
    "id": "chatcmpl-5cb3566f274045d29a948339258bf4fe",
    "object": "chat.completion.chunk",
    "created": 1762307854,
    "model": "deepseek-reasoner",
    "system_fingerprint": "fp_931335",
    "choices": [
        {
            "index": 0,
            "delta": {
                "role": "assistant",
                "content": null,
                "reasoning_content": "",
                ...
                ...
                "refusal": null,
                "tool_calls": null
            },
            "logprobs": null,
            "finish_reason": null
        }
    ],
    "usage": null
}
[DONE
]
python
id: 0
data: {"id":"chatcmpl-d9a6e351096347aba63d25ecb858c1ab","object":"chat.completion.chunk","created":1762307411,"model":"deepseek-reasoner","system_fingerprint":"fp_102727","choices":[{"index":0,"delta":{"role":"assistant","content":null,"reasoning_content":"","refusal":null,"tool_calls":null},"logprobs":null,"finish_reason":null}],"usage":null}
id: 1
data: {"id":"chatcmpl-d9a6e351096347aba63d25ecb858c1ab","object":"chat.completion.chunk","created":1762307411,"model":"deepseek-reasoner","system_fingerprint":"fp_082062","choices":[{"index":0,"delta":{"role":"assistant","content":null,"reasoning_content":"\n","refusal":null,"tool_calls":null},"logprobs":null,"finish_reason":null}],"usage":null}
...
id: 214
data: [DONE]
javascript
id: 0
data: {"id":"chatcmpl-21162e8a7db647c4b6322a08a8642b6a","object":"chat.completion.chunk","created":1762307630,"model":"deepseek-reasoner","system_fingerprint":"fp_305980","choices":[{"index":0,"delta":{"role":"assistant","content":null,"reasoning_content":"","refusal":null,"tool_calls":null},"logprobs":null,"finish_reason":null}],"usage":null}
id: 1
data: {"id":"chatcmpl-21162e8a7db647c4b6322a08a8642b6a","object":"chat.completion.chunk","created":1762307630,"model":"deepseek-reasoner","system_fingerprint":"fp_628390","choices":[{"index":0,"delta":{"role":"assistant","content":null,"reasoning_content":"\n","refusal":null,"tool_calls":null},"logprobs":null,"finish_reason":null}],"usage":null}
...
id: 214
data: [DONE]
csharp
id: 0
data: {"id":"chatcmpl-84478138cdd54db8a6fe08ca6303d988","object":"chat.completion.chunk","created":1762413495,"model":"deepseek-reasoner","system_fingerprint":"fp_397373","choices":[{"index":0,"delta":{"role":"assistant","content":null,"reasoning_content":"","refusal":null,"tool_calls":null},"logprobs":null,"finish_reason":null}],"usage":null}

...

id: 213
data: {"id":"chatcmpl-84478138cdd54db8a6fe08ca6303d988","object":"chat.completion.chunk","created":1762413495,"model":"deepseek-reasoner","system_fingerprint":"fp_065818","choices":[],"usage":{"prompt_tokens":8,"completion_tokens":214,"total_tokens":222,"prompt_tokens_details":null,"completion_tokens_details":null}}

id: 214
data: [DONE]

文本对话接口参数说明见 OpenAI API Chat completions

Open AI 文生视频接口

  • 支持的模型:sora-2、veo3.1-fast、veo3.1-pro、veo3.1
shell
POST /v1/chat/completions
shell
curl --location 'https://maas-openapi.wanjiedata.com/api/v1/chat/completions' \
--header 'Authorization: Bearer $API_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "model": "$MODEL",
    "messages": [
        {
            "role": "user",
            "content": "武汉文旅    "
        }
    ],
    "stream": true
}'
python
import requests
API_KEY = "<你的 API KEY>"
MODEL = "sora-2"
url = "https://maas-openapi.wanjiedata.com/api/v1/chat/completions"
headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}
payload = {
    "model": MODEL,
    "messages": [
        {
            "role": "user",
            "content": "武汉文旅视频"
        }
    ],
    "stream": True
}
response = requests.post(url, headers=headers, json=payload, stream=True) 
if response.status_code == 200:
    for line in response.iter_lines(decode_unicode=True):
        if line:
            print("收到分块:", line)
else:
    print("请求失败:", response.status_code)
    print(response.text)
javascript
import axios from 'axios';

const apiKey = '<你的 API KEY>';
const model = '<你的授权文生视频模型名称>';

const url = 'https://maas-openapi.wanjiedata.com/api/v1/chat/completions';

const headers = {
  Authorization: `Bearer ${apiKey}`,
  'Content-Type': 'application/json'
};

const data = {
  model,
  messages: [
    { role: 'user', content: '武汉文旅视频' }
  ],
  stream: true
};

axios.post(url, data, { headers })
  .then(res => console.log(res.data))
  .catch(err => console.error(err.response ? err.response.data : err.message));

响应示例

shell
{
    "id": "",
    "object": "chat.completion.chunk",
    "created": 0,
    "model": "sora-2",
    "choices": [
        {
            "index": 0,
            "delta": {
                "role": "assistant"
            },
            "finish_reason": null
        }
    ]
}
python
收到分块: data: {"id":"","object":"chat.completion.chunk","created":0,"model":"sora-2","choices":[{"index":0,"delta":{"content":"```json\n{\n    \"prompt\": \"武汉文旅视频\",\n    \"mode\": \"横屏模式\"\n}\n```\n\n"},"finish_reason":null}]}
收到分块: data: {"id":"","object":"chat.completion.chunk","created":0,"model":"sora-2","choices":[{"index":0,"delta":{"content":"\u003e ⌛️ 任务正在队列中,请耐心等待...\n\n"},"finish_reason":null}]]}
收到分块: data: {"id":"","object":"chat.completion.chunk","created":0,"model":"sora-2","choices":[{"index":0,"delta":{"content":"\u003e ✅ 视频生成成功,[点击这里](https://static.aiclound.vip/sora/3b69194c-f7f0-40f8-b13b-b6008f73570f.mp4) 查看视频~~~\n\n"},"finish_reason":null}]}
收到分块: data: {"id":"","object":"chat.completion.chunk","created":0,"model":"sora-2","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":14,"completion_tokens":240,"total_tokens":254}}
收到分块: data: [DONE]
javascript
data: {"id":"","object":"chat.completion.chunk","created":0,"model":"sora-2","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}

data: {"id":"","object":"chat.completion.chunk","created":0,"model":"sora-2","choices":[{"index":0,"delta":{"content":"```json\n{\n    \"prompt\": \"武汉文旅视频\",\n    \"mode\": \"横屏模式\"\n}\n```\n\n"},"finish_reason":null}]}

data: {"id":"","object":"chat.completion.chunk","created":0,"model":"sora-2","choices":[{"index":0,"delta":{"content":"\u003e ✅ 视频生成成功,[点击这里](https://static.aiclound.vip/sora/f794fa3f-0b7c-4540-93b7-27476d35a571.mp4) 查看视频~~~\n\n"},"finish_reason":null}]}

data: {"id":"","object":"chat.completion.chunk","created":0,"model":"sora-2","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":14,"completion_tokens":276,"total_tokens":290}}

data: [DONE]

错误编码说明

错误编码说明

Open AI 图生视频接口

  • 支持的模型:sora-2、veo3.1-fast、veo3.1-pro、veo3.1

1. 图片转 URL(生成url支持公网访问)

请求示例

shell
curl --location 'https://maas-openapi.wanjiedata.com/api/file/v1/uploadFile' \
--header 'Authorization: 你的key' \
--form 'maasFile=@"postman-cloud:///1f0c5bd8-53ca-43c0-bbde-19562bb591bb"'

使用时需要在 body 层配置 maasFile ,Text:输入文本;File:上传本地图片

响应示例

shell
{
    "success": true,
    "message": "",
    "code": 200,
    "result": {
        "url": "粘贴你的图片 URL",
        "fileName": "xxx.jpg"
    },
    "timestamp": 1763711398638
}

注意:上传对应的图片文件,目前仅仅 “jpg,png,jpeg”三种格式生成视频,生成的图片 URL 有效期 24h

2. 图片 URL 生成视频

请求示例

shell
curl --location 'https://maas-openapi.wanjiedata.com/api/v1/chat/completions' \
--header 'Authorization: 您的key' \
--header 'accept: text/event-stream' \
--header 'Content-Type: application/json' \
--data '{
    "model": "sora-2",
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "这里写你的要求"
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "上传图片的url"
                    }
                }
            ]
        }
    ],
    "stream": true
}'

响应示例

shell
{
    "id": "foaicmpl-03580ff5-5ca0-421e-9d15-a908e14aac47",
    "object": "chat.completion.chunk",
    "created": 1764750479,
    "model": "sora-2",
    "choices": [
        {
            "index": 0,
            "delta": {
                "content": 
                ...
                "> 🏃 进度:98.7%\n\n"
                "> ✅ 视频生成成功,[点击这里](https://4o-image-plus.oss-cn-hongkong.aliyuncs.com/sora/aee7c29b-8346-4b95-8977-0e34da3c633d.mp4) 查看视频~~~\n\n"
            },
            "finish_reason": null
        }
    ]
}

其他文件请求格式如下:

python
1. 图片转 URL 

import requests

url = "https://maas-openapi.wanjiedata.com/api/file/v1/uploadFile"

# 替换为你的实际API key
api_key = "你的key"

headers = {
    "Authorization": api_key
}

# 方式1:上传本地文件
files = {
    'maasFile': ('xxx.jpg', open('path/to/your/file.jpg', 'rb'), 'image/jpeg')
}

# 方式2:如果你要上传的文件在内存中,可以这样:
# files = {
#     'maasFile': ('xxx.jpg', file_content, 'image/jpeg')
# }

response = requests.post(url, headers=headers, files=files)

# 关闭文件
if 'files' in locals():
    for file_tuple in files.values():
        if hasattr(file_tuple[1], 'close'):
            file_tuple[1].close()

print(response.text)


2. 图片 URL 生成视频

import requests
import json

url = "https://maas-openapi.wanjiedata.com/api/v1/chat/completions"

# 替换为你的实际API key
api_key = "您的key"

headers = {
    "Authorization": api_key,
    "accept": "text/event-stream",
    "Content-Type": "application/json"
}

# 替换为实际上传图片的URL
image_url = "上传图片的url"

data = {
    "model": "sora-2",
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "这里写你的要求"
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": image_url
                    }
                }
            ]
        }
    ],
    "stream": True
}

# 流式处理响应
with requests.post(url, headers=headers, json=data, stream=True) as response:
    response.raise_for_status()  # 检查HTTP错误
    
    for line in response.iter_lines():
        if line:
            decoded_line = line.decode('utf-8')
            # 处理SSE格式的数据
            if decoded_line.startswith('data: '):
                if decoded_line == 'data: [DONE]':
                    print("流式传输完成")
                    break
                else:
                    try:
                        # 移除 'data: ' 前缀并解析JSON
                        json_data = json.loads(decoded_line[6:])
                        print(json.dumps(json_data, indent=2, ensure_ascii=False))
                    except json.JSONDecodeError:
                        print(f"无法解析的JSON: {decoded_line}")
            else:
                print(f"原始数据: {decoded_line}")
javascript
1. 图片转 URL

const fs = require('fs');
const axios = require('axios');
const FormData = require('form-data');

async function uploadFile() {
    try {
        const form = new FormData();
        form.append('maasFile', fs.createReadStream('你的文件所在路径,格式为C:/Users/1764750392698_download.png'));
        
        const response = await axios.post(
            'https://maas-openapi.wanjiedata.com/api/file/v1/uploadFile',
            form,
            {
                headers: {
                    'Authorization': '你的 API Key',
                    ...form.getHeaders()
                }
            }
        );
        
        // 假设响应数据中包含url字段
        if (response.data && response.data.url) {
            console.log(response.data.url);
        } else {
            console.log('上传成功,但未找到URL:', JSON.stringify(response.data));
        }
        
    } catch (error) {
        if (error.response) {
            console.error('上传失败:', error.response.data);
        } else {
            console.error('上传失败:', error.message);
        }
    }
}

uploadFile();


2. 图片 URL 生成视频

const axios = require('axios');

async function main() {
    try {
        console.log('开始生成视频...');
        
        const response = await axios.post(
            'https://maas-openapi.wanjiedata.com/api/v1/chat/completions',
            {
                "model": "sora-2",
                "messages": [
                    {
                        "role": "user",
                        "content": [
                            {"type": "text", "text": "这里写你的要求"},
                            {"type": "image_url", "image_url": {"url": "粘贴你的图片 URL"}}
                        ]
                    }
                ],
                "stream": true
            },
            {
                headers: {
                    'Authorization': '你的 API Key',
                    'accept': 'text/event-stream',
                    'Content-Type': 'application/json'
                },
                responseType: 'stream'
            }
        );
        
        console.log('连接成功,正在接收流数据...');
        
        // 处理流数据
        response.data.on('data', (chunk) => {
            const data = chunk.toString();
            // 解析SSE数据
            if (data.startsWith('data: ')) {
                const jsonData = data.replace('data: ', '');
                if (jsonData.trim() !== '[DONE]') {
                    try {
                        const parsed = JSON.parse(jsonData);
                        if (parsed.choices && parsed.choices[0]) {
                            const content = parsed.choices[0].delta?.content;
                            if (content) {
                                process.stdout.write(content);
                            }
                        }
                    } catch (e) {
                        console.log('原始数据:', jsonData);
                    }
                }
            }
        });
        
        response.data.on('end', () => {
            console.log('\n视频生成完成!');
        });
        
        response.data.on('error', (error) => {
            console.error('流错误:', error);
        });
        
    } catch (error) {
        console.error('请求错误:', error.message);
        if (error.response) {
            console.error('响应状态:', error.response.status);
            console.error('响应数据:', error.response.data);
        }
    }
}

main();

Open AI 文字转语音接口

  • 支持的模型:CosyVoice
shell
POST /v1/audio/speech
shell
export API_KEY="<你的 API KEY>"
# 授权文字转语音模型名称:在授权模型列表中模型名称复制名称获取。
export MODEL="<你的授权文字转语音模型名称>"
curl --location --request POST 'https://maas-openapi.wanjiedata.com/api/v1/audio/speech' \
--header "Authorization: Bearer $API_KEY" \
--header 'Content-Type: application/json' \
--data-raw '{
  "input": "您好,我是文字转语音助手,一个由万界数据训练的语音合成模型,你可以尝试输入一段文字,将帮您把这段文字转换为语音输出。",
  "model": "'$MODEL'",
  "voice": "普通话",
  "responseFormat": "mp3",
  "speed": 1.0
}' \
--output output.mp3
python
import requests
API_KEY = "<你的 API KEY>"
MODEL = "<你的授权文字转语音模型名称>"
url = "https://maas-openapi.wanjiedata.com/api/v1/audio/speech"
headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}
payload = {
    "input": "您好,我是文字转语音助手,一个由万界数据训练的语音合成模型,你可以尝试输入一段文字,将帮您把这段文字转换为语音输出。",
    "model": MODEL,
    "voice": "普通话",
    "responseFormat": "mp3",
    "speed": 1.0
}
response = requests.post(url, headers=headers, json=payload)
if response.status_code == 200:
    with open("output.mp3", "wb") as f:
        f.write(response.content)
    print("音频已保存为 output.mp3")
else:
    print("请求失败:", response.status_code)
    print(response.text)
javascript
import axios from 'axios';
import fs from 'fs';

const apiKey = '<你的 API KEY>'; 
const model = '<你的授权文字转语音模型名称>';       
const url = 'https://maas-openapi.wanjiedata.com/api/v1/audio/speech';
const inputText = '你好,我是文字转语音助手!';

async function textToSpeech() {
  try {
    const response = await axios.post(url, {
      input: inputText,
      model: model,
      voice: '普通话',
      responseFormat: 'mp3',
      speed: 1.0
    }, {
      headers: {
        Authorization: `Bearer ${apiKey}`,
        'Content-Type': 'application/json'
      },
      responseType: 'arraybuffer'
    });

    fs.writeFileSync('output.mp3', response.data);
    console.log('MP3文件已保存为 output.mp3');
  } catch (error) {
    console.error('请求失败:', error.response?.data || error.message);
  }
}

textToSpeech();
csharp
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.IO;

class P {
    static async Task Main() {
        var c = new HttpClient();
        c.DefaultRequestHeaders.Add("Authorization", "Bearer <API_KEY>");
        var d = new StringContent(@"{
            ""input"":""您好,我是文字转语音助手,一个由万界数据训练的语音合成模型,你可以尝试输入一段文字,将帮您把这段文字转换为语音输出。"", 
            ""model"":""<MODEL>"",
            ""voice"":""普通话"",
            ""responseFormat"":""mp3"",
            ""speed"":1.0
        }", Encoding.UTF8, "application/json");
        var r = await c.PostAsync("https://maas-openapi.wanjiedata.com/api/v1/audio/speech", d);
        var bytes = await r.Content.ReadAsByteArrayAsync();
        await File.WriteAllBytesAsync("output.mp3", bytes);
    }
}

响应示例

shell
# 文件 output.mp3 已保存为当前目录
python
音频已保存为 output.mp3
javascript
MP3文件已保存为 output.mp3
csharp

    Directory: D:\C#\work\ModelProject

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           2025/11/6    15:23         176910 output.mp3

文转语音接口参数说明见 OpenAI API Create speech

Open AI 文生图接口

  • 支持的模型:FLUX.2-dev、Z-Image-Turbo
shell
POST /v1/images/generations
shell
export API_KEY="<你的 API KEY>"
export MODEL="<你的授权文生图模型名称>"
curl --location --request POST 'https://maas-openapi.wanjiedata.com/api/v1/images/generations' \
--header "Authorization: Bearer $API_KEY"  \
--header 'Content-Type: application/json' \
--data-raw '{
  "model": "'$MODEL'",
  "prompt": "graphic of a Harley Davidson bike",
  "n": 1,
  "size": "1024x1024",
  "responseFormat": "url",
  "quality": "standard",
  "style": "vivid"
}'
python
import requests
API_KEY = "<你的 API KEY>"
MODEL = "<你的授权文生图模型名称>"
url = "https://maas-openapi.wanjiedata.com/api/v1/images/generations"
headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}
payload = {
    "model": MODEL,
    "prompt": "graphic of a Harley Davidson bike",
    "n": 1,
    "size": "1024x1024",
    "responseFormat": "url",
    "quality": "standard",
    "style": "vivid"
}
response = requests.post(url, headers=headers, json=payload)
if response.status_code == 200:
    result = response.json()
    print(result) 
else:
    print("请求失败:", response.status_code)
    print(response.text)
javascript
import axios from 'axios';

const apiKey = '<你的 API KEY>'; 
const model = '<你的授权文生图模型名称>'; 
const url = 'https://maas-openapi.wanjiedata.com/api/v1/images/generations';

async function generateImage() {
  const headers = {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json'
  };
  const data = {
    model,
    prompt: 'graphic of a Harley Davidson bike',
    n: 1,
    size: '1024x1024',
    responseFormat: 'url'
  };

  try {
    const res = await axios.post(url, data, { headers });
    console.log(res.data.data[0].url); 
  } catch (err) {
    console.error('请求失败:', err.message);
  }
}

generateImage();
csharp
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class P {
    static async Task Main() {
        var c = new HttpClient();
        c.DefaultRequestHeaders.Add("Authorization", "Bearer <API_KEY>");
        var d = new StringContent(@"{
            ""model"":""<MODEL>"",
            ""prompt"":""graphic of a Harley Davidson bike"",
            ""n"":1,
            ""size"":""1024x1024"",
            ""responseFormat"":""url"",
            ""quality"":""standard"",
            ""style"":""vivid""
        }", Encoding.UTF8, "application/json");
        var r = await c.PostAsync("https://maas-openapi.wanjiedata.com/api/v1/images/generations", d);
        System.Console.WriteLine(await r.Content.ReadAsStringAsync());
    }
}

响应示例

shell
{
    "created": 1762221608,
    "data": [
        {
            "url": "https://rgw.wanjiedata.com/maas-public-bucket/2025/11/04/c3fe6bdd3a601f90c4d1e33e961e064f.jpg"
        }
    ],
    "usage": {
        "input_tokens_details": {}
    }
}
python
{
    'created': 1762220795, 
    'data': [{'url': 'https://rgw.wanjiedata.com/maas-public-bucket/2025/11/04/a920b1331c7c5676624e38cbc10d8b43.jpg'}],
    'usage': {'input_tokens_details': {}
    }
    }
javascript
https://rgw.wanjiedata.com/maas-public-bucket/2025/11/04/0d4e5bc27fe7b76a1544a36d75f4c1da.jpg
csharp
{"created":1762414008,"data":[{"url":"https://rgw.wanjiedata.com/maas-public-bucket/2025/11/06/6c6eaaa374eb4be4a629b3adff530412.jpg"}],"usage":{"input_tokens_details":{}}}

文生图接口参数说明见 OpenAI API Create image

Gemini 接口文档:

https://www.wjark.com/model-doc/1993597606384832549

Anthropic 接口文档:

https://www.wjark.com/model-doc/1993151201446924290