diff --git a/.github/workflows/dispatch-on-push.yml b/.github/workflows/dispatch-on-push.yml deleted file mode 100644 index 910d97e22..000000000 --- a/.github/workflows/dispatch-on-push.yml +++ /dev/null @@ -1,86 +0,0 @@ -name: Dispatch on Push - -on: - push: - branches: [main] - paths: - - "openapi/**" - - "*/guides/**" - - "*/mcp/**" - -permissions: - contents: read - -jobs: - detect: - runs-on: ubuntu-latest - outputs: - changed_services: ${{ steps.detect.outputs.changed_services }} - commit_sha: ${{ steps.detect.outputs.commit_sha }} - skip: ${{ steps.detect.outputs.skip }} - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 2 - - - name: Detect changed services - id: detect - run: | - changed_files=$(git diff --name-only HEAD~1 HEAD 2>/dev/null || echo "") - echo "Changed files:" - echo "$changed_files" - - changed_services=$(echo "$changed_files" | grep -oP '^(?:openapi/|[^/]+/guides/|[^/]+/mcp/)\K[^/.]+' | sort -u | tr '\n' ',' | sed 's/,$//') - echo "changed_services=$changed_services" >> "$GITHUB_OUTPUT" - echo "commit_sha=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT" - - if [ -z "$changed_services" ]; then - echo "skip=true" >> "$GITHUB_OUTPUT" - else - echo "skip=false" >> "$GITHUB_OUTPUT" - fi - - dispatch: - needs: detect - if: needs.detect.outputs.skip != 'true' - runs-on: ubuntu-latest - timeout-minutes: 5 - strategy: - fail-fast: false - matrix: - # Code consumers receive canonical contracts directly from PlatformBackend. - # Docs only dispatches published-content updates to these consumers. - include: - - repo: AceDataCloud/APIs - services: all - - repo: AceDataCloud/Skills - services: all - steps: - - name: Check if service is relevant - id: check - run: | - changed="${{ needs.detect.outputs.changed_services }}" - target="${{ matrix.services }}" - if [ "$target" = "all" ]; then - echo "relevant=true" >> "$GITHUB_OUTPUT" - elif echo ",$changed," | grep -q ",$target,"; then - echo "relevant=true" >> "$GITHUB_OUTPUT" - else - echo "relevant=false" >> "$GITHUB_OUTPUT" - echo "Skipping ${{ matrix.repo }} — '$target' not in '$changed'" - fi - - - name: Dispatch to downstream repo - if: steps.check.outputs.relevant == 'true' - uses: peter-evans/repository-dispatch@v3 - with: - token: ${{ secrets.BOT_GITHUB_TOKEN }} - repository: ${{ matrix.repo }} - event-type: docs-updated - client-payload: | - { - "commit_sha": "${{ needs.detect.outputs.commit_sha }}", - "changed_services": "${{ needs.detect.outputs.changed_services }}", - "source": "Docs-push" - } diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml index 9c96aa8d8..354e26f52 100644 --- a/.github/workflows/sync.yml +++ b/.github/workflows/sync.yml @@ -10,6 +10,10 @@ on: permissions: contents: write +concurrency: + group: docs-publication + cancel-in-progress: false + env: PYTHONUNBUFFERED: "1" diff --git a/openapi/coding.json b/openapi/coding.json index a01ee9a40..cd7140d8a 100644 --- a/openapi/coding.json +++ b/openapi/coding.json @@ -4489,1145 +4489,6 @@ "operationId": "V1createV1ChatCompletions" } }, - "/deepseek/chat/completions": { - "post": { - "summary": "Deepseek Chat Completions", - "security": [ - { - "bearerAuth": [] - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "choices", - "created", - "id", - "model", - "object" - ], - "properties": { - "id": { - "type": "string", - "description": "Deepseek Chat Completions Response 200 Id" - }, - "model": { - "type": "string", - "description": "Deepseek Chat Completions Response 200 Model" - }, - "object": { - "enum": [ - "chat.completion" - ], - "type": "string", - "description": "Deepseek Chat Completions Response 200 Object" - }, - "choices": { - "type": "array", - "items": { - "type": "object", - "required": [ - "finish_reason", - "index", - "message" - ], - "properties": { - "index": { - "type": "number", - "description": "Deepseek Chat Completions Response 200 Choices Index" - }, - "message": { - "type": "object", - "required": [ - "role" - ], - "properties": { - "role": { - "enum": [ - "assistant" - ], - "type": "string", - "description": "Deepseek Chat Completions Response 200 Choices Message Role" - }, - "content": { - "type": "string", - "nullable": true, - "description": "Deepseek Chat Completions Response 200 Choices Message" - }, - "tool_calls": { - "type": "array", - "nullable": true, - "items": { - "type": "object", - "required": [ - "id", - "type", - "function" - ], - "properties": { - "id": { - "type": "string", - "description": "Deepseek Chat Completions Response 200 Choices Message Tool Calls Id" - }, - "type": { - "type": "string", - "enum": [ - "function" - ], - "description": "Deepseek Chat Completions Response 200 Choices Message Tool Calls Type" - }, - "function": { - "type": "object", - "required": [ - "name", - "arguments" - ], - "properties": { - "name": { - "type": "string", - "description": "Deepseek Chat Completions Response 200 Choices Message Tool Calls Function Name" - }, - "arguments": { - "type": "string", - "description": "Deepseek Chat Completions Response 200 Choices Message Tool Calls Function Arguments" - } - }, - "description": "Deepseek Chat Completions Response 200 Choices Message Tool Calls Function" - } - } - }, - "description": "Deepseek Chat Completions Response 200 Choices Message Tool Calls" - }, - "refusal": { - "type": "string", - "nullable": true, - "description": "Deepseek Chat Completions Response 200 Choices Message Refusal" - }, - "audio": { - "type": "object", - "nullable": true, - "required": [ - "id", - "data", - "expires_at" - ], - "properties": { - "id": { - "type": "string", - "description": "Deepseek Chat Completions Response 200 Choices Message Audio Id" - }, - "expires_at": { - "type": "integer", - "description": "Deepseek Chat Completions Response 200 Choices Message Audio Expires At" - }, - "data": { - "type": "string", - "description": "Deepseek Chat Completions Response 200 Choices Message Audio Data" - }, - "transcript": { - "type": "string", - "description": "Deepseek Chat Completions Response 200 Choices Message Audio Transcript" - } - }, - "description": "Deepseek Chat Completions Response 200 Choices Message Audio" - } - }, - "description": "Deepseek Chat Completions Response 200 Choices Message 2" - }, - "finish_reason": { - "enum": [ - "stop", - "length", - "tool_calls", - "content_filter", - "function_call" - ], - "type": "string", - "description": "Deepseek Chat Completions Response 200 Choices Finish Reason" - }, - "logprobs": { - "type": "object", - "nullable": true, - "description": "Deepseek Chat Completions Response 200 Choices Logprobs", - "additionalProperties": true - } - } - }, - "description": "Deepseek Chat Completions Response 200 Choices" - }, - "created": { - "type": "number", - "description": "Deepseek Chat Completions Response 200 Created" - }, - "system_fingerprint": { - "type": "string", - "description": "Deepseek Chat Completions Response 200 System Fingerprint" - }, - "usage": { - "type": "object", - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ], - "properties": { - "prompt_tokens": { - "type": "integer", - "description": "Deepseek Chat Completions Response 200 Usage Prompt Tokens" - }, - "completion_tokens": { - "type": "integer", - "description": "Deepseek Chat Completions Response 200 Usage Completion Tokens" - }, - "total_tokens": { - "type": "integer", - "description": "Deepseek Chat Completions Response 200 Usage Total Tokens" - }, - "prompt_tokens_details": { - "type": "object", - "properties": { - "cached_tokens": { - "type": "integer", - "description": "Deepseek Chat Completions Response 200 Usage Prompt Tokens Details Cached Tokens" - }, - "audio_tokens": { - "type": "integer", - "description": "Deepseek Chat Completions Response 200 Usage Prompt Tokens Details Audio Tokens" - } - }, - "description": "Deepseek Chat Completions Response 200 Usage Prompt Tokens Details" - }, - "completion_tokens_details": { - "type": "object", - "properties": { - "reasoning_tokens": { - "type": "integer", - "description": "Deepseek Chat Completions Response 200 Usage Completion Tokens Details Reasoning Tokens" - }, - "audio_tokens": { - "type": "integer", - "description": "Deepseek Chat Completions Response 200 Usage Completion Tokens Details Audio Tokens" - }, - "accepted_prediction_tokens": { - "type": "integer", - "description": "Deepseek Chat Completions Response 200 Usage Completion Tokens Details Accepted Prediction Tokens" - }, - "rejected_prediction_tokens": { - "type": "integer", - "description": "Deepseek Chat Completions Response 200 Usage Completion Tokens Details Rejected Prediction Tokens" - } - }, - "description": "Deepseek Chat Completions Response 200 Usage Completion Tokens Details" - } - }, - "description": "Deepseek Chat Completions Response 200 Usage" - } - }, - "description": "Deepseek Chat Completions Response 200" - } - } - }, - "description": "Deepseek Chat Completions Response 200 2" - }, - "400": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "example": { - "error": { - "code": "token_mismatched", - "message": "The specified token is not matched with API." - }, - "trace_id": "2efa9340-b21b-4e26-9e14-4aac95f343ab" - }, - "properties": { - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "token_mismatched", - "description": "Deepseek Chat Completions Response 400 Error Code" - }, - "message": { - "type": "string", - "example": "The specified token is not matched with API.", - "description": "Deepseek Chat Completions Response 400 Error Message" - } - } - }, - "trace_id": { - "type": "string", - "description": "Deepseek Chat Completions Response 400 Trace Id" - } - } - }, - { - "type": "object", - "example": { - "error": { - "code": "api_not_implemented", - "message": "The API is not implemented." - }, - "trace_id": "2efa9340-b21b-4e26-9e14-4aac95f343ab" - }, - "properties": { - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "api_not_implemented", - "description": "Deepseek Chat Completions Response 400 Error Code 2" - }, - "message": { - "type": "string", - "example": "The API is not implemented.", - "description": "Deepseek Chat Completions Response 400 Error Message 2" - } - } - }, - "trace_id": { - "type": "string", - "description": "Deepseek Chat Completions Response 400 Trace Id 2" - } - } - } - ] - } - } - }, - "description": "Deepseek Chat Completions Response 400" - }, - "401": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "example": { - "error": { - "code": "invalid_token", - "message": "The specified token is invalid or wrong." - }, - "trace_id": "2efa9340-b21b-4e26-9e14-4aac95f343ab" - }, - "properties": { - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "invalid_token", - "description": "Deepseek Chat Completions Response 401 Error Code" - }, - "message": { - "type": "string", - "example": "The specified token is invalid or wrong.", - "description": "Deepseek Chat Completions Response 401 Error Message" - } - } - }, - "trace_id": { - "type": "string", - "description": "Deepseek Chat Completions Response 401 Trace Id" - } - } - } - ] - } - } - }, - "description": "Deepseek Chat Completions Response 401" - }, - "429": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "example": { - "error": { - "code": "too_many_requests", - "message": "You have exceeded the rate limit." - }, - "trace_id": "2efa9340-b21b-4e26-9e14-4aac95f343ab" - }, - "properties": { - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "too_many_requests", - "description": "Deepseek Chat Completions Response 429 Error Code" - }, - "message": { - "type": "string", - "example": "You have exceeded the rate limit.", - "description": "Deepseek Chat Completions Response 429 Error Message" - } - } - }, - "trace_id": { - "type": "string", - "description": "Deepseek Chat Completions Response 429 Trace Id" - } - } - } - ] - } - } - }, - "description": "Deepseek Chat Completions Response 429" - }, - "500": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "example": { - "error": { - "code": "api_error", - "message": "Internal server error." - }, - "trace_id": "2efa9340-b21b-4e26-9e14-4aac95f343ab" - }, - "properties": { - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "api_error", - "description": "Deepseek Chat Completions Response 500 Error Code" - }, - "message": { - "type": "string", - "example": "Internal server error.", - "description": "Deepseek Chat Completions Response 500 Error Message" - } - } - }, - "trace_id": { - "type": "string", - "description": "Deepseek Chat Completions Response 500 Trace Id" - } - } - } - ] - } - } - }, - "description": "Deepseek Chat Completions Response 500" - } - }, - "parameters": [ - { - "in": "header", - "name": "accept", - "schema": { - "enum": [ - "application/json" - ], - "type": "string" - }, - "required": false, - "description": "Deepseek Chat Completions Param Accept" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "model", - "messages" - ], - "properties": { - "n": { - "type": "number", - "default": 1, - "example": 1, - "maximum": 128, - "minimum": 1, - "nullable": true, - "description": "Deepseek Chat Completions N" - }, - "model": { - "enum": [ - "deepseek-r1", - "deepseek-r1-0528", - "deepseek-v3", - "deepseek-v3-250324", - "deepseek-v3.2-exp", - "deepseek-v4.1-flash", - "deepseek-v4-flash", - "deepseek-v4-pro" - ], - "type": "string", - "example": "deepseek-v3", - "description": "Deepseek Chat Completions Model" - }, - "stream": { - "type": "boolean", - "default": false, - "nullable": true, - "description": "Deepseek Chat Completions Stream" - }, - "messages": { - "type": "array", - "items": { - "type": "object", - "required": [ - "role" - ], - "properties": { - "role": { - "enum": [ - "user", - "assistant", - "system", - "developer", - "tool" - ], - "type": "string", - "description": "Deepseek Chat Completions Messages Role" - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "Deepseek Chat Completions Messages" - }, - { - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "required": [ - "type", - "text" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ], - "description": "Deepseek Chat Completions Messages Type" - }, - "text": { - "type": "string", - "description": "Deepseek Chat Completions Messages Text" - } - } - }, - { - "type": "object", - "required": [ - "type", - "image_url" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "image_url" - ], - "description": "Deepseek Chat Completions Messages Type 2" - }, - "image_url": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { - "type": "string", - "description": "Deepseek Chat Completions Messages Image Url Url" - }, - "detail": { - "type": "string", - "enum": [ - "auto", - "low", - "high" - ], - "default": "auto", - "description": "Deepseek Chat Completions Messages Image Url Detail" - } - }, - "description": "Deepseek Chat Completions Messages Image Url" - } - } - } - ] - }, - "minItems": 1, - "description": "Deepseek Chat Completions Messages 2" - } - ], - "description": "Deepseek Chat Completions Messages 3" - }, - "name": { - "type": "string", - "description": "Deepseek Chat Completions Messages Name" - }, - "tool_calls": { - "type": "array", - "items": { - "type": "object", - "required": [ - "id", - "type", - "function" - ], - "properties": { - "id": { - "type": "string", - "description": "Deepseek Chat Completions Messages Tool Calls Id" - }, - "type": { - "type": "string", - "enum": [ - "function" - ], - "description": "Deepseek Chat Completions Messages Tool Calls Type" - }, - "function": { - "type": "object", - "required": [ - "name", - "arguments" - ], - "properties": { - "name": { - "type": "string", - "description": "Deepseek Chat Completions Messages Tool Calls Function Name" - }, - "arguments": { - "type": "string", - "description": "Deepseek Chat Completions Messages Tool Calls Function Arguments" - } - } - } - } - }, - "description": "Deepseek Chat Completions Messages Tool Calls" - }, - "refusal": { - "type": "string", - "nullable": true, - "description": "Deepseek Chat Completions Messages Refusal" - }, - "tool_call_id": { - "type": "string", - "description": "Deepseek Chat Completions Messages Tool Call Id" - } - } - }, - "minItems": 1, - "description": "Deepseek Chat Completions Messages 4" - }, - "max_tokens": { - "type": "number", - "nullable": true, - "description": "Deepseek Chat Completions Max Tokens" - }, - "temperature": { - "type": "number", - "default": 1, - "example": 1, - "maximum": 2, - "minimum": 0, - "nullable": true, - "description": "Deepseek Chat Completions Temperature" - }, - "response_format": { - "oneOf": [ - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "text" - ], - "type": "string", - "description": "Deepseek Chat Completions Response Format Type" - } - }, - "description": "Deepseek Chat Completions Response Format" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "json_object" - ], - "type": "string", - "description": "Deepseek Chat Completions Response Format Type 2" - } - }, - "description": "Deepseek Chat Completions Response Format 2" - }, - { - "type": "object", - "required": [ - "type", - "json_schema" - ], - "properties": { - "type": { - "enum": [ - "json_schema" - ], - "type": "string", - "description": "Deepseek Chat Completions Response Format Type 3" - }, - "json_schema": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Deepseek Chat Completions Response Format Json Schema Name" - }, - "description": { - "type": "string", - "description": "Deepseek Chat Completions Response Format Json Schema Description" - }, - "schema": { - "type": "object", - "description": "Deepseek Chat Completions Response Format Json Schema", - "additionalProperties": true - }, - "strict": { - "type": "boolean", - "default": false, - "nullable": true, - "description": "Deepseek Chat Completions Response Format Json Schema Strict" - } - } - } - }, - "description": "Deepseek Chat Completions Response Format 3" - } - ], - "description": "Deepseek Chat Completions Response Format 4" - }, - "top_p": { - "type": "number", - "default": 1, - "example": 1, - "maximum": 1, - "minimum": 0, - "nullable": true, - "description": "Deepseek Chat Completions Top P" - }, - "frequency_penalty": { - "type": "number", - "default": 0, - "example": 0, - "maximum": 2, - "minimum": -2, - "nullable": true, - "description": "Deepseek Chat Completions Frequency Penalty" - }, - "presence_penalty": { - "type": "number", - "default": 0, - "example": 0, - "maximum": 2, - "minimum": -2, - "nullable": true, - "description": "Deepseek Chat Completions Presence Penalty" - }, - "seed": { - "type": "integer", - "nullable": true, - "description": "Deepseek Chat Completions Seed" - }, - "stop": { - "nullable": true, - "oneOf": [ - { - "type": "string", - "description": "Deepseek Chat Completions Stop" - }, - { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 4, - "description": "Deepseek Chat Completions Stop 2" - } - ], - "description": "Deepseek Chat Completions Stop 3" - }, - "max_completion_tokens": { - "type": "integer", - "nullable": true, - "description": "Deepseek Chat Completions Max Completion Tokens" - }, - "logprobs": { - "type": "boolean", - "default": false, - "nullable": true, - "description": "Deepseek Chat Completions Logprobs" - }, - "top_logprobs": { - "type": "integer", - "minimum": 0, - "maximum": 20, - "nullable": true, - "description": "Deepseek Chat Completions Top Logprobs" - }, - "stream_options": { - "type": "object", - "nullable": true, - "properties": { - "include_usage": { - "type": "boolean", - "description": "Deepseek Chat Completions Stream Options Include Usage" - } - }, - "description": "Deepseek Chat Completions Stream Options" - }, - "parallel_tool_calls": { - "type": "boolean", - "default": true, - "description": "Deepseek Chat Completions Parallel Tool Calls" - }, - "user": { - "type": "string", - "description": "Deepseek Chat Completions User" - }, - "reasoning_effort": { - "type": "string", - "enum": [ - "minimal", - "low", - "medium", - "high" - ], - "default": "medium", - "nullable": true, - "description": "Deepseek Chat Completions Reasoning Effort" - }, - "service_tier": { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ], - "default": "auto", - "nullable": true, - "description": "Deepseek Chat Completions Service Tier" - }, - "store": { - "type": "boolean", - "default": false, - "nullable": true, - "description": "Deepseek Chat Completions Store" - }, - "metadata": { - "type": "object", - "nullable": true, - "additionalProperties": { - "type": "string" - }, - "description": "Deepseek Chat Completions Metadata" - }, - "logit_bias": { - "type": "object", - "nullable": true, - "additionalProperties": { - "type": "integer" - }, - "description": "Deepseek Chat Completions Logit Bias" - }, - "modalities": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - }, - "nullable": true, - "description": "Deepseek Chat Completions Modalities" - }, - "audio": { - "type": "object", - "nullable": true, - "required": [ - "voice", - "format" - ], - "properties": { - "voice": { - "type": "string", - "enum": [ - "alloy", - "ash", - "ballad", - "coral", - "echo", - "fable", - "nova", - "onyx", - "sage", - "shimmer" - ], - "description": "Deepseek Chat Completions Audio Voice" - }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ], - "description": "Deepseek Chat Completions Audio Format" - } - }, - "description": "Deepseek Chat Completions Audio" - }, - "prediction": { - "type": "object", - "nullable": true, - "required": [ - "type", - "content" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "content" - ], - "description": "Deepseek Chat Completions Prediction Type" - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "Deepseek Chat Completions Prediction" - }, - { - "type": "array", - "items": { - "type": "object", - "required": [ - "type", - "text" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - } - } - } - ], - "description": "Deepseek Chat Completions Prediction 2" - } - }, - "description": "Deepseek Chat Completions Prediction 3" - }, - "web_search_options": { - "type": "object", - "properties": { - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "default": "medium", - "description": "Deepseek Chat Completions Web Search Options Search Context Size" - }, - "user_location": { - "type": "object", - "nullable": true, - "properties": { - "type": { - "type": "string", - "enum": [ - "approximate" - ] - }, - "approximate": { - "type": "object", - "properties": { - "country": { - "type": "string" - }, - "region": { - "type": "string" - }, - "city": { - "type": "string" - }, - "timezone": { - "type": "string" - } - } - } - }, - "description": "Deepseek Chat Completions Web Search Options User Location" - } - }, - "description": "Deepseek Chat Completions Web Search Options" - }, - "tools": { - "type": "array", - "nullable": true, - "items": { - "type": "object", - "required": [ - "type", - "function" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ], - "description": "Deepseek Chat Completions Tools Type" - }, - "function": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Deepseek Chat Completions Tools Function Name" - }, - "description": { - "type": "string", - "description": "Deepseek Chat Completions Tools Function Description" - }, - "parameters": { - "type": "object", - "description": "Deepseek Chat Completions Tools Function", - "additionalProperties": true - } - }, - "description": "Deepseek Chat Completions Tools Function 2" - } - } - }, - "description": "Deepseek Chat Completions Tools" - }, - "tool_choice": { - "oneOf": [ - { - "type": "string", - "enum": [ - "none", - "auto", - "required" - ], - "description": "Deepseek Chat Completions Tool Choice" - }, - { - "type": "object", - "required": [ - "type", - "function" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ], - "description": "Deepseek Chat Completions Tool Choice Type" - }, - "function": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Deepseek Chat Completions Tool Choice Function Name" - } - } - } - }, - "description": "Deepseek Chat Completions Tool Choice 2" - } - ], - "description": "Deepseek Chat Completions Tool Choice 3" - } - } - }, - "example": { - "n": 1, - "model": "deepseek-v3", - "messages": [ - { - "role": "user", - "content": "Hello!" - } - ], - "temperature": 1, - "top_p": 1, - "frequency_penalty": 0, - "presence_penalty": 0 - } - } - }, - "required": true - }, - "operationId": "DeepseekcreateDeepseekChatCompletions" - } - }, "/glm/chat/completions": { "post": { "summary": "Glm Chat Completions", diff --git a/openapi/minimax.json b/openapi/minimax.json index 2d1c113c7..34201472a 100644 --- a/openapi/minimax.json +++ b/openapi/minimax.json @@ -226,365 +226,6 @@ "description": "Openapi.D6Cf922E378B4F838841E911B597134A.Detail.208Ca680D629" } } - }, - "H3ContextIRReq": { - "type": "object", - "required": [ - "model", - "content", - "duration" - ], - "properties": { - "model": { - "type": "string", - "enum": [ - "MiniMax-H3" - ] - }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ContentItem" - } - }, - "duration": { - "type": "integer", - "enum": [ - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ] - }, - "ratio": { - "type": "string", - "enum": [ - "adaptive", - "21:9", - "16:9", - "4:3", - "1:1", - "3:4", - "9:16" - ] - }, - "async": { - "type": "boolean", - "default": false - }, - "callback_url": { - "type": "string", - "format": "uri" - } - }, - "additionalProperties": false - }, - "VideoGenerationV2Resp": { - "type": "object", - "properties": { - "task_id": { - "type": "string" - } - } - }, - "ContentItem": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "image_url", - "video_url", - "audio_url" - ] - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { - "type": "string" - } - } - }, - "video_url": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { - "type": "string" - } - } - }, - "audio_url": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { - "type": "string" - } - } - }, - "role": { - "type": "string", - "enum": [ - "first_frame", - "last_frame", - "reference_image", - "reference_video", - "reference_audio" - ] - } - } - }, - "OaiError": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "error": { - "$ref": "#/components/schemas/OaiErrorDetail" - }, - "request_id": { - "type": "string" - } - } - }, - "OaiErrorDetail": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "message": { - "type": "string" - }, - "http_code": { - "type": "string" - } - } - }, - "VideoRegenerationSourceTaskReq": { - "type": "object", - "required": [ - "model", - "source_task_id", - "resolution" - ], - "properties": { - "model": { - "type": "string", - "enum": [ - "MiniMax-H3" - ] - }, - "source_task_id": { - "type": "string", - "description": "Minimax Regeneration Source Task Id" - }, - "resolution": { - "type": "string", - "enum": [ - "2K" - ] - }, - "aigc_watermark": { - "type": "boolean", - "default": false - }, - "async": { - "type": "boolean", - "default": false - }, - "callback_url": { - "type": "string", - "format": "uri" - } - }, - "additionalProperties": false - }, - "VideoRegenerationBaseVideoReq": { - "type": "object", - "required": [ - "model", - "content", - "resolution" - ], - "properties": { - "model": { - "type": "string", - "enum": [ - "MiniMax-H3" - ] - }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RegenContentItem" - } - }, - "resolution": { - "type": "string", - "enum": [ - "2K" - ] - }, - "aigc_watermark": { - "type": "boolean", - "default": false - }, - "async": { - "type": "boolean", - "default": false - }, - "callback_url": { - "type": "string", - "format": "uri" - } - }, - "additionalProperties": false - }, - "RegenContentItem": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "image_url", - "video_url", - "audio_url" - ] - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { - "type": "string" - } - } - }, - "video_url": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { - "type": "string" - } - } - }, - "audio_url": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { - "type": "string" - } - } - }, - "role": { - "type": "string", - "enum": [ - "base_video", - "first_frame", - "last_frame", - "reference_image", - "reference_video", - "reference_audio" - ] - } - } - } - }, - "responses": { - "Err400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OaiError" - } - } - } - }, - "Err401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OaiError" - } - } - } - }, - "Err402": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OaiError" - } - } - } - }, - "Err422": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OaiError" - } - } - } - }, - "Err429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OaiError" - } - } - } - }, - "Err500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OaiError" - } - } - } } } }, @@ -619,8 +260,7 @@ "model": { "type": "string", "enum": [ - "MiniMax-H3", - "MiniMax-H3-Max" + "MiniMax-H3" ], "example": "MiniMax-H3", "description": "Minimax Videos Model" @@ -1221,215 +861,6 @@ }, "operationId": "queryMinimaxTasks" } - }, - "/minimax/prompt-enhancement": { - "post": { - "summary": "Minimax Prompt Summary", - "security": [ - { - "bearerAuth": [] - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/H3ContextIRReq" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Minimax Prompt Success", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "task_id": { - "type": "string" - }, - "task": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "model": { - "type": "string", - "enum": [ - "MiniMax-H3" - ] - }, - "status": { - "type": "string", - "enum": [ - "queued", - "running", - "succeeded", - "failed" - ] - }, - "content": { - "type": "object", - "properties": { - "prompt": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "usage": { - "type": "object", - "properties": { - "total_seconds": { - "type": "number" - }, - "input_seconds": { - "type": "number" - }, - "output_seconds": { - "type": "number" - }, - "input_image_count": { - "type": "integer" - } - } - }, - "created_at": { - "type": "integer" - }, - "updated_at": { - "type": "integer" - }, - "task_type": { - "type": "string" - }, - "modality": { - "type": "string" - } - } - } - } - } - } - } - } - }, - "operationId": "minimax_prompt_enhancement" - } - }, - "/minimax/regenerate": { - "post": { - "summary": "Minimax Regeneration Summary", - "security": [ - { - "bearerAuth": [] - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "$ref": "#/components/schemas/VideoRegenerationSourceTaskReq" - }, - { - "$ref": "#/components/schemas/VideoRegenerationBaseVideoReq" - } - ] - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Minimax Regeneration Success", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "task_id": { - "type": "string" - }, - "task": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "model": { - "type": "string", - "enum": [ - "MiniMax-H3" - ] - }, - "status": { - "type": "string", - "enum": [ - "queued", - "running", - "succeeded", - "failed" - ] - }, - "content": { - "type": "object", - "properties": { - "prompt": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "usage": { - "type": "object", - "properties": { - "total_seconds": { - "type": "number" - }, - "input_seconds": { - "type": "number" - }, - "output_seconds": { - "type": "number" - }, - "input_image_count": { - "type": "integer" - } - } - }, - "created_at": { - "type": "integer" - }, - "updated_at": { - "type": "integer" - }, - "task_type": { - "type": "string" - }, - "modality": { - "type": "string" - } - } - } - } - } - } - } - } - }, - "operationId": "minimax_regenerate" - } } } } diff --git a/openapi/openai.json b/openapi/openai.json index 46f09a930..474c6f724 100644 --- a/openapi/openai.json +++ b/openapi/openai.json @@ -2960,415 +2960,6 @@ "operationId": "createOpenaiImagesGenerations" } }, - "/openai/models": { - "get": { - "summary": "Openai Models", - "security": [ - { - "bearerAuth": [] - } - ], - "parameters": [ - { - "in": "header", - "name": "accept", - "schema": { - "enum": [ - "application/json" - ], - "type": "string" - }, - "required": false, - "description": "Openai Models Param Accept" - } - ], - "responses": { - "200": { - "description": "Openai Models Response 200", - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "object", - "data" - ], - "properties": { - "object": { - "type": "string", - "enum": [ - "list" - ], - "description": "Openai Models Response 200 Object" - }, - "data": { - "type": "array", - "description": "Openai Models Response 200 Data", - "items": { - "type": "object", - "required": [ - "id", - "object", - "created", - "owned_by" - ], - "properties": { - "id": { - "type": "string", - "description": "Openai Models Response 200 Data Id" - }, - "object": { - "type": "string", - "enum": [ - "model" - ], - "description": "Openai Models Response 200 Data Object" - }, - "created": { - "type": "integer", - "description": "Openai Models Response 200 Data Created" - }, - "owned_by": { - "type": "string", - "description": "Openai Models Response 200 Data Owned By" - } - } - } - }, - "models": { - "type": "array", - "description": "Openai Models Response 200 Models", - "items": { - "type": "object", - "required": [ - "slug", - "display_name", - "description", - "supported_reasoning_levels", - "shell_type", - "visibility", - "supported_in_api", - "priority", - "availability_nux", - "upgrade", - "base_instructions", - "support_verbosity", - "default_verbosity", - "apply_patch_tool_type", - "truncation_policy", - "supports_parallel_tool_calls", - "experimental_supported_tools" - ], - "properties": { - "slug": { - "type": "string", - "description": "Openai Models Response 200 Models Slug" - }, - "display_name": { - "type": "string", - "description": "Openai Models Response 200 Models Display Name" - }, - "description": { - "type": "string", - "nullable": true, - "description": "Openai Models Response 200 Models Description" - }, - "default_reasoning_level": { - "type": "string", - "nullable": true, - "description": "Openai Models Response 200 Models Default Reasoning Level" - }, - "supported_reasoning_levels": { - "type": "array", - "description": "Openai Models Response 200 Models Supported Reasoning Levels", - "items": { - "type": "object", - "required": [ - "effort", - "description" - ], - "properties": { - "effort": { - "type": "string" - }, - "description": { - "type": "string" - } - } - } - }, - "shell_type": { - "type": "string", - "description": "Openai Models Response 200 Models Shell Type" - }, - "visibility": { - "type": "string", - "enum": [ - "list", - "hide", - "none" - ], - "description": "Openai Models Response 200 Models Visibility" - }, - "supported_in_api": { - "type": "boolean", - "description": "Openai Models Response 200 Models Supported In Api" - }, - "priority": { - "type": "integer", - "description": "Openai Models Response 200 Models Priority" - }, - "availability_nux": { - "type": "object", - "nullable": true, - "additionalProperties": false - }, - "upgrade": { - "type": "object", - "nullable": true, - "additionalProperties": false - }, - "base_instructions": { - "type": "string", - "description": "Openai Models Response 200 Models Base Instructions" - }, - "support_verbosity": { - "type": "boolean" - }, - "default_verbosity": { - "type": "string", - "nullable": true - }, - "apply_patch_tool_type": { - "type": "string", - "nullable": true - }, - "truncation_policy": { - "type": "object", - "required": [ - "mode", - "limit" - ], - "properties": { - "mode": { - "type": "string" - }, - "limit": { - "type": "integer" - } - } - }, - "supports_parallel_tool_calls": { - "type": "boolean" - }, - "experimental_supported_tools": { - "type": "array", - "items": { - "type": "string" - } - }, - "input_modalities": { - "type": "array", - "description": "Openai Models Response 200 Models Input Modalities", - "items": { - "type": "string", - "enum": [ - "text", - "image" - ] - } - } - } - } - } - } - }, - "example": { - "object": "list", - "data": [ - { - "id": "gpt-6-astra", - "object": "model", - "created": 1700000000, - "owned_by": "acedatacloud" - } - ], - "models": [ - { - "slug": "gpt-6-astra", - "display_name": "gpt-6-astra", - "description": "Openapi.Df57157E2A4F43F6870Bfd3C530827E6.0.396Dd1E4674B", - "default_reasoning_level": "medium", - "supported_reasoning_levels": [ - { - "effort": "low", - "description": "Openapi.Df57157E2A4F43F6870Bfd3C530827E6.0.C863587Ab520" - }, - { - "effort": "medium", - "description": "Openapi.Df57157E2A4F43F6870Bfd3C530827E6.1.67316022E8E4" - }, - { - "effort": "high", - "description": "Openapi.Df57157E2A4F43F6870Bfd3C530827E6.2.0De652Da8155" - } - ], - "shell_type": "shell_command", - "visibility": "list", - "supported_in_api": true, - "priority": 70, - "availability_nux": null, - "upgrade": null, - "base_instructions": "You are a coding agent working in the user repository.", - "support_verbosity": false, - "default_verbosity": null, - "apply_patch_tool_type": "freeform", - "truncation_policy": { - "mode": "tokens", - "limit": 10000 - }, - "supports_parallel_tool_calls": true, - "experimental_supported_tools": [], - "input_modalities": [ - "text", - "image" - ] - } - ] - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "example": { - "error": { - "code": "invalid_token", - "message": "The specified token is invalid or wrong." - }, - "trace_id": "2efa9340-b21b-4e26-9e14-4aac95f343ab" - }, - "properties": { - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "invalid_token", - "description": "Openai Models Response 401 Error Code" - }, - "message": { - "type": "string", - "example": "The specified token is invalid or wrong.", - "description": "Openai Models Response 401 Error Message" - } - } - }, - "trace_id": { - "type": "string", - "description": "Openai Models Response 401 Trace Id" - } - } - } - ] - } - } - }, - "description": "Openai Models Response 401" - }, - "429": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "example": { - "error": { - "code": "too_many_requests", - "message": "You have exceeded the rate limit." - }, - "trace_id": "2efa9340-b21b-4e26-9e14-4aac95f343ab" - }, - "properties": { - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "too_many_requests", - "description": "Openai Models Response 429 Error Code" - }, - "message": { - "type": "string", - "example": "You have exceeded the rate limit.", - "description": "Openai Models Response 429 Error Message" - } - } - }, - "trace_id": { - "type": "string", - "description": "Openai Models Response 429 Trace Id" - } - } - } - ] - } - } - }, - "description": "Openai Models Response 429" - }, - "500": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "example": { - "error": { - "code": "api_error", - "message": "Internal server error." - }, - "trace_id": "2efa9340-b21b-4e26-9e14-4aac95f343ab" - }, - "properties": { - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "api_error", - "description": "Openai Models Response 500 Error Code" - }, - "message": { - "type": "string", - "example": "Internal server error.", - "description": "Openai Models Response 500 Error Message" - } - } - }, - "trace_id": { - "type": "string", - "description": "Openai Models Response 500 Trace Id" - } - } - } - ] - } - } - }, - "description": "Openai Models Response 500" - } - }, - "operationId": "OpenaigetOpenaiModels" - } - }, "/openai/responses": { "post": { "summary": "Openai V1 Responses", @@ -4967,65 +4558,6 @@ "operationId": "V1createV1AudioTranscriptions" } }, - "/v1/realtime": { - "get": { - "summary": "Openai Realtime", - "description": "Low-latency speech-to-speech over a WebSocket using the OpenAI Realtime GA event protocol. Connect with `wss://api.acedata.cloud/v1/realtime?model=gpt-realtime` and an `Authorization: Bearer ` header (browsers pass `realtime, acedata-token.` via `Sec-WebSocket-Protocol`). Client and server exchange Realtime JSON events (`session.update`, `input_audio_buffer.append`, `response.create`, `response.output_audio.delta`, `response.done`, ...). The relay fixes the connection model, pcm16 @ 24kHz mono transport, output voice, transcription, and noise-reduction settings; choose the model and voice when connecting. A `session.update` may change GA fields `instructions`, `tools`, `tool_choice`, `output_modalities`, `include`, `prompt`, `reasoning`, `parallel_tool_calls`, `tracing`, `truncation`, may lower `max_output_tokens` from the platform cap, and may set `audio.input.turn_detection` to `null`, `server_vad`, or `semantic_vad` with their documented controls. It preserves the optional client `event_id`. Attempts to change fixed fields, exceed the output-token cap, use legacy beta fields, or send unknown fields return a recoverable `error` event; the top-level `event_id` uniquely identifies the server error event, while `error.event_id` contains the original client event ID when supplied, and `error.param` identifies the rejected field. The WebSocket remains open. Billed per assistant turn from `response.done.usage` (audio and text tokens priced separately).", - "operationId": "openaiRealtime", - "parameters": [ - { - "name": "model", - "in": "query", - "required": true, - "description": "Realtime model to use. Use gpt-realtime-2.1 for best quality or gpt-realtime-2.1-mini for lower cost. Older stable model IDs remain available for compatibility.", - "schema": { - "type": "string", - "enum": [ - "gpt-realtime-2.1", - "gpt-realtime-2.1-mini", - "gpt-realtime-2", - "gpt-realtime", - "gpt-realtime-mini" - ], - "default": "gpt-realtime-2.1" - } - }, - { - "name": "voice", - "in": "query", - "required": false, - "description": "Output voice selected when the connection is established.", - "schema": { - "type": "string", - "enum": [ - "alloy", - "ash", - "ballad", - "coral", - "echo", - "sage", - "shimmer", - "verse", - "marin", - "cedar" - ], - "default": "alloy" - } - } - ], - "responses": { - "101": { - "description": "Switching Protocols — WebSocket established." - }, - "401": { - "description": "Unauthorized — missing or invalid bearer token." - }, - "403": { - "description": "Insufficient balance." - } - } - } - }, "/openai/tasks": { "post": { "summary": "Tasks", diff --git a/scripts/sync_from_platformbackend.py b/scripts/sync_from_platformbackend.py index 7794a255f..3ad556522 100644 --- a/scripts/sync_from_platformbackend.py +++ b/scripts/sync_from_platformbackend.py @@ -742,8 +742,7 @@ def get_documented_service_aliases(output_dir: Path) -> set[str]: def load_services(backend_dir: Path, documented_aliases: set[str]) -> list[dict[str, Any]]: services = load_json(backend_dir / "cost" / "service_api_mapping.json") return [ - service - for service in services + service for service in services if service.get("alias") not in EXCLUDED_SERVICES and (not service.get("private") or service.get("alias") in documented_aliases) ] @@ -784,7 +783,7 @@ def merge_openapi_specs(backend_dir: Path, service: dict[str, Any]) -> dict[str, } for api in apis: - if api.get("private"): + if api.get("private") or not api.get("documented", True): continue spec = load_openapi_spec(backend_dir, api["id"]) if not spec: @@ -867,6 +866,11 @@ def build_doc_service_map( alias_norms = sorted(((service["alias"], normalize(service["alias"])) for service in services), key=lambda item: -len(item[1])) result: dict[str, str | None] = {} zh_docs = backend_dir / "docs" + hidden = { + Path(api["guide_source"]).stem.removeprefix("development_") + for service in services for api in service.get("apis", []) + if api.get("guide_source") and (api.get("private") or not api.get("documented", True)) + } markdown_files = sorted(zh_docs.glob("development_*.md")) if not markdown_files: @@ -876,7 +880,7 @@ def build_doc_service_map( doc_key = markdown_file.stem.removeprefix("development_") if doc_key.endswith("_title"): continue - if doc_key in SKIP_DOC_KEYS: + if doc_key in SKIP_DOC_KEYS or doc_key in hidden: result[doc_key] = None continue exact = (exact_records or {}).get(doc_key) diff --git a/tests/test_sync_from_platformbackend.py b/tests/test_sync_from_platformbackend.py index 72de919b6..b895e84a0 100644 --- a/tests/test_sync_from_platformbackend.py +++ b/tests/test_sync_from_platformbackend.py @@ -672,3 +672,13 @@ def test_generated_tree_rewrites_retired_fallback_assets(self) -> None: content = page.read_text() self.assertIn(new_url, content) self.assertNotIn(old_url, content) + + +class PublicationMetadataTests(unittest.TestCase): + def test_undocumented_api_is_not_in_the_public_schema(self): + with tempfile.TemporaryDirectory() as folder: + backend = Path(folder) + (backend / 'openapi').mkdir() + (backend / 'openapi/internal.json').write_text(json.dumps({'paths': {'/internal/route': {'post': {}}}})) + service = {'alias': 'sample', 'apis': [{'id': 'internal', 'documented': False}]} + self.assertIsNone(sync.merge_openapi_specs(backend, service)) diff --git a/zh-Hans/guides/minimax/minimax_prompt.mdx b/zh-Hans/guides/minimax/minimax_prompt.mdx deleted file mode 100644 index c5bd12770..000000000 --- a/zh-Hans/guides/minimax/minimax_prompt.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "提示词增强集成指南" -description: "Minimax 集成指南 - Ace Data Cloud" ---- - -使用 `POST /minimax/prompt-enhancement` 提交任务,通过已有 `POST /minimax/tasks` 查询结果;支持 `async=true` 和完成回调。 - -提供 `model="MiniMax-H3"`、`content`、4–15 秒整数 `duration` 和目标 `ratio`。纯文本输入必须指定明确比例;参考媒体与首尾帧不能混用。结果在 `task.content.prompt`,该接口仅增强提示词,不生成视频。 - -平台定价为 0.3 Credits/次。 diff --git a/zh-Hans/guides/minimax/minimax_regeneration.mdx b/zh-Hans/guides/minimax/minimax_regeneration.mdx deleted file mode 100644 index 2b93bc2b3..000000000 --- a/zh-Hans/guides/minimax/minimax_regeneration.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "视频重生成集成指南" -description: "Minimax 集成指南 - Ace Data Cloud" ---- - -使用 `POST /minimax/regenerate` 提交任务,通过已有 `POST /minimax/tasks` 查询结果;支持 `async=true` 和完成回调。 - -输出分辨率固定为 `2K`。可提供本人已完成的 MiniMax-H3 768P 平台 `source_task_id`,或提交带一个 `role="base_video"` 的 `content`;二者不能同时提供。输入必须复用生成原视频时实际使用的完整提示词与参考资料。只支持符合 H3 768P 输出规格、含音轨且为 24fps 的源视频,不能作为通用超分接口。 - -按实际输出时长计费,原始输入材料会再次计入费用;参考视频按实际时长、超过 5 张的输入图片逐张计费。