SnipHunter API

Project

项目、素材、脚本、时间线与导出。

Base URL https://api.sniphunter.com

OpenAPI JSON · 完整 Markdown

请求与响应中的 $ref 在 OpenAPI 的 components 中定义。

15 个接口

Project

POST/api/v1/project/projects创建项目

创建新的项目 (支持 generic, image, video, tool)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ProjectCreate"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ProjectResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/project/projects获取项目列表

获取当前用户的项目列表

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_type",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "项目类型过滤",
        "title": "Project Type"
      },
      "description": "项目类型过滤"
    },
    {
      "name": "status",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "状态过滤",
        "title": "Status"
      },
      "description": "状态过滤"
    },
    {
      "name": "page",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "minimum": 1,
        "description": "页码",
        "default": 1,
        "title": "Page"
      },
      "description": "页码"
    },
    {
      "name": "page_size",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "maximum": 100,
        "minimum": 1,
        "description": "每页数量",
        "default": 20,
        "title": "Page Size"
      },
      "description": "每页数量"
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ProjectListResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/project/projects/{project_id}获取项目详情

获取项目详情(含消息历史和业务数据)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ProjectDetailResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
PUT/api/v1/project/projects/{project_id}更新项目

更新项目基本信息和配置

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ProjectUpdate"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ProjectResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
DELETE/api/v1/project/projects/{project_id}删除项目

删除项目

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "responses": {
    "204": {
      "description": "Successful Response"
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/project/projects/{project_id}/assets获取项目资产列表

获取项目的资产列表

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaAssetResponse"
            },
            "title": "Response Get Project Assets Api V1 Project Projects  Project Id  Assets Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/project/projects/{project_id}/assets添加资产

向项目添加资产

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AddAssetRequest"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MediaAssetResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
DELETE/api/v1/project/projects/{project_id}/assets/{asset_id}删除资产

从项目删除资产

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    },
    {
      "name": "asset_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Asset Id"
      }
    }
  ],
  "responses": {
    "204": {
      "description": "Successful Response"
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/project/projects/{project_id}/chat发送聊天消息

与 Agent 进行对话

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AgentChatRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AgentChatResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/project/projects/{project_id}/export导出项目

导出项目 (支持视频导出、图片导出等)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ProjectExportRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ProjectExportResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/project/projects/{project_id}/generate生成内容

触发内容生成

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AgentGenerateRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AgentGenerateResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/project/projects/{project_id}/scripts获取脚本列表

获取项目的脚本列表

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScriptSegmentResponse"
            },
            "title": "Response Get Project Scripts Api V1 Project Projects  Project Id  Scripts Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
PUT/api/v1/project/projects/{project_id}/scripts更新脚本列表

更新项目的脚本列表

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/UpdateScriptsRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScriptSegmentResponse"
            },
            "title": "Response Update Project Scripts Api V1 Project Projects  Project Id  Scripts Put"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/project/projects/{project_id}/timeline获取时间线

获取项目的时间线

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/TimelineResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
PUT/api/v1/project/projects/{project_id}/timeline更新时间线

更新项目的时间线

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "project_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Project Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/UpdateTimelineRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/TimelineResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

数据模型

展开 components
{
  "schemas": {
    "AddAssetRequest": {
      "properties": {
        "asset": {
          "$ref": "#/components/schemas/MediaAssetCreate",
          "description": "资产信息"
        }
      },
      "type": "object",
      "required": [
        "asset"
      ],
      "title": "AddAssetRequest",
      "description": "添加资产请求"
    },
    "AgentChatRequest": {
      "properties": {
        "message": {
          "type": "string",
          "minLength": 1,
          "title": "Message",
          "description": "用户消息"
        },
        "attachments": {
          "anyOf": [
            {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Attachments",
          "description": "附件"
        }
      },
      "type": "object",
      "required": [
        "message"
      ],
      "title": "AgentChatRequest",
      "description": "Agent 聊天请求"
    },
    "AgentChatResponse": {
      "properties": {
        "message": {
          "$ref": "#/components/schemas/AgentMessageResponse",
          "description": "Agent 回复"
        },
        "project_status": {
          "type": "string",
          "title": "Project Status",
          "description": "项目状态"
        }
      },
      "type": "object",
      "required": [
        "message",
        "project_status"
      ],
      "title": "AgentChatResponse",
      "description": "Agent 聊天响应"
    },
    "AgentGenerateRequest": {
      "properties": {
        "prompt": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Prompt",
          "description": "生成提示词"
        },
        "config": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Config",
          "description": "生成配置"
        }
      },
      "type": "object",
      "title": "AgentGenerateRequest",
      "description": "Agent 生成请求"
    },
    "AgentGenerateResponse": {
      "properties": {
        "task_id": {
          "type": "string",
          "title": "Task Id",
          "description": "任务ID"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "description": "状态: pending, processing, completed, failed"
        },
        "progress": {
          "type": "integer",
          "title": "Progress",
          "description": "进度百分比",
          "default": 0
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result",
          "description": "生成结果"
        }
      },
      "type": "object",
      "required": [
        "task_id",
        "status"
      ],
      "title": "AgentGenerateResponse",
      "description": "Agent 生成响应"
    },
    "AgentMessageResponse": {
      "properties": {
        "role": {
          "type": "string",
          "title": "Role",
          "description": "角色: user, agent, system"
        },
        "content": {
          "type": "string",
          "title": "Content",
          "description": "消息内容"
        },
        "attachments": {
          "anyOf": [
            {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Attachments",
          "description": "附件列表"
        },
        "id": {
          "type": "integer",
          "title": "Id",
          "description": "消息ID"
        },
        "project_id": {
          "type": "integer",
          "title": "Project Id",
          "description": "项目ID"
        },
        "tool_calls": {
          "anyOf": [
            {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tool Calls",
          "description": "工具调用记录"
        },
        "tool_results": {
          "anyOf": [
            {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tool Results",
          "description": "工具执行结果"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "description": "状态",
          "default": "completed"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "title": "Created At",
          "description": "创建时间"
        }
      },
      "type": "object",
      "required": [
        "role",
        "content",
        "id",
        "project_id",
        "created_at"
      ],
      "title": "AgentMessageResponse",
      "description": "Agent 消息响应"
    },
    "ClipCreate": {
      "properties": {
        "type": {
          "$ref": "#/components/schemas/ClipType"
        },
        "start": {
          "type": "number",
          "title": "Start",
          "description": "开始时间(秒)"
        },
        "end": {
          "type": "number",
          "title": "End",
          "description": "结束时间(秒)"
        },
        "content": {
          "type": "string",
          "title": "Content",
          "description": "片段内容(文本或资产ID)"
        },
        "thumbnail_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Thumbnail Url",
          "description": "缩略图"
        }
      },
      "type": "object",
      "required": [
        "type",
        "start",
        "end",
        "content"
      ],
      "title": "ClipCreate",
      "description": "创建片段"
    },
    "ClipResponse": {
      "properties": {
        "type": {
          "$ref": "#/components/schemas/ClipType"
        },
        "start": {
          "type": "number",
          "title": "Start",
          "description": "开始时间(秒)"
        },
        "end": {
          "type": "number",
          "title": "End",
          "description": "结束时间(秒)"
        },
        "content": {
          "type": "string",
          "title": "Content",
          "description": "片段内容(文本或资产ID)"
        },
        "thumbnail_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Thumbnail Url",
          "description": "缩略图"
        },
        "id": {
          "type": "string",
          "title": "Id",
          "description": "片段ID"
        }
      },
      "type": "object",
      "required": [
        "type",
        "start",
        "end",
        "content",
        "id"
      ],
      "title": "ClipResponse",
      "description": "片段响应"
    },
    "ClipType": {
      "type": "string",
      "enum": [
        "text",
        "video",
        "audio",
        "image"
      ],
      "title": "ClipType",
      "description": "片段类型"
    },
    "HTTPValidationError": {
      "properties": {
        "detail": {
          "items": {
            "$ref": "#/components/schemas/ValidationError"
          },
          "type": "array",
          "title": "Detail"
        }
      },
      "type": "object",
      "title": "HTTPValidationError"
    },
    "MediaAssetCreate": {
      "properties": {
        "type": {
          "$ref": "#/components/schemas/MediaType"
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "资产名称"
        },
        "url": {
          "type": "string",
          "title": "Url",
          "description": "资产URL"
        },
        "thumbnail_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Thumbnail Url",
          "description": "缩略图URL"
        },
        "duration": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Duration",
          "description": "时长(秒)"
        },
        "width": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Width",
          "description": "宽度"
        },
        "height": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Height",
          "description": "高度"
        }
      },
      "type": "object",
      "required": [
        "type",
        "name",
        "url"
      ],
      "title": "MediaAssetCreate",
      "description": "创建媒体资产"
    },
    "MediaAssetResponse": {
      "properties": {
        "type": {
          "$ref": "#/components/schemas/MediaType"
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "资产名称"
        },
        "url": {
          "type": "string",
          "title": "Url",
          "description": "资产URL"
        },
        "thumbnail_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Thumbnail Url",
          "description": "缩略图URL"
        },
        "duration": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Duration",
          "description": "时长(秒)"
        },
        "width": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Width",
          "description": "宽度"
        },
        "height": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Height",
          "description": "高度"
        },
        "id": {
          "type": "string",
          "title": "Id",
          "description": "资产ID"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "title": "Created At",
          "description": "创建时间"
        }
      },
      "type": "object",
      "required": [
        "type",
        "name",
        "url",
        "id",
        "created_at"
      ],
      "title": "MediaAssetResponse",
      "description": "媒体资产响应"
    },
    "MediaType": {
      "type": "string",
      "enum": [
        "video",
        "image",
        "audio"
      ],
      "title": "MediaType",
      "description": "媒体类型"
    },
    "ProjectCreate": {
      "properties": {
        "project_type": {
          "type": "string",
          "title": "Project Type",
          "description": "项目类型: image, video"
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "title": "Title",
          "description": "项目标题"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description",
          "description": "项目描述"
        },
        "config": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Config",
          "description": "项目配置"
        },
        "initial_message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Initial Message",
          "description": "初始消息"
        },
        "aspect_ratio": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Aspect Ratio",
          "description": "画面比例 (视频项目)"
        }
      },
      "type": "object",
      "required": [
        "project_type",
        "title"
      ],
      "title": "ProjectCreate",
      "description": "创建项目"
    },
    "ProjectDetailResponse": {
      "properties": {
        "project_type": {
          "type": "string",
          "title": "Project Type",
          "description": "项目类型: image, video"
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "title": "Title",
          "description": "项目标题"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description",
          "description": "项目描述"
        },
        "id": {
          "type": "integer",
          "title": "Id",
          "description": "项目ID"
        },
        "user_id": {
          "type": "integer",
          "title": "User Id",
          "description": "用户ID"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "description": "状态",
          "default": "draft"
        },
        "config": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Config",
          "description": "项目配置"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result",
          "description": "生成结果"
        },
        "thumbnail_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Thumbnail Url",
          "description": "缩略图"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "title": "Created At",
          "description": "创建时间"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "title": "Updated At",
          "description": "更新时间"
        },
        "data": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "title": "Data",
          "description": "反序列化后的项目数据"
        },
        "messages": {
          "items": {
            "$ref": "#/components/schemas/AgentMessageResponse"
          },
          "type": "array",
          "title": "Messages",
          "description": "消息列表"
        }
      },
      "type": "object",
      "required": [
        "project_type",
        "title",
        "id",
        "user_id",
        "created_at",
        "updated_at"
      ],
      "title": "ProjectDetailResponse",
      "description": "项目详情响应(含消息)"
    },
    "ProjectExportRequest": {
      "properties": {
        "format": {
          "type": "string",
          "title": "Format",
          "description": "导出格式: png, jpg, mp4, webm",
          "default": "mp4"
        },
        "quality": {
          "type": "string",
          "title": "Quality",
          "description": "质量: low, medium, high",
          "default": "high"
        },
        "variant_index": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Variant Index",
          "description": "变体索引"
        },
        "resolution": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Resolution",
          "description": "分辨率 (视频项目)"
        },
        "include_captions": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Include Captions",
          "description": "包含字幕"
        }
      },
      "type": "object",
      "title": "ProjectExportRequest",
      "description": "项目导出请求"
    },
    "ProjectExportResponse": {
      "properties": {
        "task_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Task Id",
          "description": "任务ID"
        },
        "status": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Status",
          "description": "任务状态"
        },
        "progress": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Progress",
          "description": "任务进度"
        },
        "download_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Download Url",
          "description": "下载URL"
        },
        "file_size": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "File Size",
          "description": "文件大小"
        },
        "expires_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Expires At",
          "description": "过期时间"
        }
      },
      "type": "object",
      "title": "ProjectExportResponse",
      "description": "项目导出响应"
    },
    "ProjectListResponse": {
      "properties": {
        "projects": {
          "items": {
            "$ref": "#/components/schemas/ProjectResponse"
          },
          "type": "array",
          "title": "Projects",
          "description": "项目列表"
        },
        "total": {
          "type": "integer",
          "title": "Total",
          "description": "总数"
        },
        "page": {
          "type": "integer",
          "title": "Page",
          "description": "当前页",
          "default": 1
        },
        "page_size": {
          "type": "integer",
          "title": "Page Size",
          "description": "每页数量",
          "default": 20
        }
      },
      "type": "object",
      "required": [
        "projects",
        "total"
      ],
      "title": "ProjectListResponse",
      "description": "项目列表响应"
    },
    "ProjectResponse": {
      "properties": {
        "project_type": {
          "type": "string",
          "title": "Project Type",
          "description": "项目类型: image, video"
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "title": "Title",
          "description": "项目标题"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description",
          "description": "项目描述"
        },
        "id": {
          "type": "integer",
          "title": "Id",
          "description": "项目ID"
        },
        "user_id": {
          "type": "integer",
          "title": "User Id",
          "description": "用户ID"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "description": "状态",
          "default": "draft"
        },
        "config": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Config",
          "description": "项目配置"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result",
          "description": "生成结果"
        },
        "thumbnail_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Thumbnail Url",
          "description": "缩略图"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "title": "Created At",
          "description": "创建时间"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "title": "Updated At",
          "description": "更新时间"
        },
        "data": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "title": "Data",
          "description": "反序列化后的项目数据"
        }
      },
      "type": "object",
      "required": [
        "project_type",
        "title",
        "id",
        "user_id",
        "created_at",
        "updated_at"
      ],
      "title": "ProjectResponse",
      "description": "项目响应"
    },
    "ProjectUpdate": {
      "properties": {
        "title": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 200
            },
            {
              "type": "null"
            }
          ],
          "title": "Title",
          "description": "项目标题"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description",
          "description": "项目描述"
        },
        "config": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Config",
          "description": "项目配置"
        },
        "aspect_ratio": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Aspect Ratio",
          "description": "画面比例"
        },
        "caption_enabled": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Caption Enabled",
          "description": "是否显示字幕"
        }
      },
      "type": "object",
      "title": "ProjectUpdate",
      "description": "更新项目"
    },
    "ScriptSegmentCreate": {
      "properties": {
        "time_start": {
          "type": "number",
          "title": "Time Start",
          "description": "开始时间(秒)"
        },
        "time_end": {
          "type": "number",
          "title": "Time End",
          "description": "结束时间(秒)"
        },
        "text": {
          "type": "string",
          "title": "Text",
          "description": "脚本文本"
        },
        "voice_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Voice Id",
          "description": "配音ID"
        }
      },
      "type": "object",
      "required": [
        "time_start",
        "time_end",
        "text"
      ],
      "title": "ScriptSegmentCreate",
      "description": "创建脚本片段"
    },
    "ScriptSegmentResponse": {
      "properties": {
        "time_start": {
          "type": "number",
          "title": "Time Start",
          "description": "开始时间(秒)"
        },
        "time_end": {
          "type": "number",
          "title": "Time End",
          "description": "结束时间(秒)"
        },
        "text": {
          "type": "string",
          "title": "Text",
          "description": "脚本文本"
        },
        "voice_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Voice Id",
          "description": "配音ID"
        },
        "id": {
          "type": "string",
          "title": "Id",
          "description": "片段ID"
        }
      },
      "type": "object",
      "required": [
        "time_start",
        "time_end",
        "text",
        "id"
      ],
      "title": "ScriptSegmentResponse",
      "description": "脚本片段响应"
    },
    "TimelineCreate": {
      "properties": {
        "duration": {
          "type": "number",
          "title": "Duration",
          "description": "总时长(秒)",
          "default": 0
        },
        "playhead_position": {
          "type": "number",
          "title": "Playhead Position",
          "description": "播放头位置(秒)",
          "default": 0
        },
        "zoom_level": {
          "type": "number",
          "title": "Zoom Level",
          "description": "缩放级别",
          "default": 1.0
        },
        "tracks": {
          "items": {
            "$ref": "#/components/schemas/TrackCreate"
          },
          "type": "array",
          "title": "Tracks",
          "description": "轨道列表"
        }
      },
      "type": "object",
      "title": "TimelineCreate",
      "description": "创建时间线"
    },
    "TimelineResponse": {
      "properties": {
        "duration": {
          "type": "number",
          "title": "Duration",
          "description": "总时长(秒)",
          "default": 0
        },
        "playhead_position": {
          "type": "number",
          "title": "Playhead Position",
          "description": "播放头位置(秒)",
          "default": 0
        },
        "zoom_level": {
          "type": "number",
          "title": "Zoom Level",
          "description": "缩放级别",
          "default": 1.0
        },
        "tracks": {
          "items": {
            "$ref": "#/components/schemas/TrackResponse-Output"
          },
          "type": "array",
          "title": "Tracks",
          "description": "轨道列表"
        }
      },
      "type": "object",
      "title": "TimelineResponse",
      "description": "时间线响应"
    },
    "TrackCreate": {
      "properties": {
        "type": {
          "$ref": "#/components/schemas/TrackType"
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "轨道名称"
        },
        "muted": {
          "type": "boolean",
          "title": "Muted",
          "description": "是否静音",
          "default": false
        },
        "locked": {
          "type": "boolean",
          "title": "Locked",
          "description": "是否锁定",
          "default": false
        },
        "clips": {
          "items": {
            "$ref": "#/components/schemas/ClipCreate"
          },
          "type": "array",
          "title": "Clips",
          "description": "片段列表"
        }
      },
      "type": "object",
      "required": [
        "type",
        "name"
      ],
      "title": "TrackCreate",
      "description": "创建轨道"
    },
    "TrackResponse-Output": {
      "properties": {
        "type": {
          "$ref": "#/components/schemas/TrackType"
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "轨道名称"
        },
        "muted": {
          "type": "boolean",
          "title": "Muted",
          "description": "是否静音",
          "default": false
        },
        "locked": {
          "type": "boolean",
          "title": "Locked",
          "description": "是否锁定",
          "default": false
        },
        "id": {
          "type": "string",
          "title": "Id",
          "description": "轨道ID"
        },
        "clips": {
          "items": {
            "$ref": "#/components/schemas/ClipResponse"
          },
          "type": "array",
          "title": "Clips",
          "description": "片段列表"
        }
      },
      "type": "object",
      "required": [
        "type",
        "name",
        "id"
      ],
      "title": "TrackResponse",
      "description": "轨道响应"
    },
    "TrackType": {
      "type": "string",
      "enum": [
        "subtitle",
        "video",
        "voiceover",
        "music"
      ],
      "title": "TrackType",
      "description": "轨道类型"
    },
    "UpdateScriptsRequest": {
      "properties": {
        "scripts": {
          "items": {
            "$ref": "#/components/schemas/ScriptSegmentCreate"
          },
          "type": "array",
          "title": "Scripts",
          "description": "脚本列表"
        }
      },
      "type": "object",
      "required": [
        "scripts"
      ],
      "title": "UpdateScriptsRequest",
      "description": "更新脚本请求"
    },
    "UpdateTimelineRequest": {
      "properties": {
        "timeline": {
          "$ref": "#/components/schemas/TimelineCreate",
          "description": "时间线数据"
        }
      },
      "type": "object",
      "required": [
        "timeline"
      ],
      "title": "UpdateTimelineRequest",
      "description": "更新时间线请求"
    },
    "ValidationError": {
      "properties": {
        "loc": {
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              }
            ]
          },
          "type": "array",
          "title": "Location"
        },
        "msg": {
          "type": "string",
          "title": "Message"
        },
        "type": {
          "type": "string",
          "title": "Error Type"
        }
      },
      "type": "object",
      "required": [
        "loc",
        "msg",
        "type"
      ],
      "title": "ValidationError"
    }
  },
  "securitySchemes": {
    "HTTPBearer": {
      "type": "http",
      "scheme": "bearer"
    }
  }
}