552 lines
15 KiB
JSON
552 lines
15 KiB
JSON
{
|
||
"openapi": "3.1.0",
|
||
"info": {
|
||
"title": "时间序列数据分析系统",
|
||
"description": "支持多格式数据上传、AI增强分析、多语言报告生成",
|
||
"version": "2.0.0"
|
||
},
|
||
"paths": {
|
||
"/api/upload": {
|
||
"post": {
|
||
"tags": [
|
||
"upload"
|
||
],
|
||
"summary": "上传CSV或图片文件",
|
||
"description": "上传数据文件(CSV 或图片)\n\n- **file**: CSV 或图片文件 (PNG, JPG, BMP, TIFF)\n- **task_description**: 分析任务描述",
|
||
"operationId": "upload_file_api_upload_post",
|
||
"requestBody": {
|
||
"content": {
|
||
"multipart/form-data": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/Body_upload_file_api_upload_post"
|
||
}
|
||
}
|
||
},
|
||
"required": true
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/UploadResponse"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/available_methods": {
|
||
"get": {
|
||
"tags": [
|
||
"analysis"
|
||
],
|
||
"summary": "获取可用的分析方法",
|
||
"description": "获取所有可用的分析方法",
|
||
"operationId": "get_available_methods_api_available_methods_get",
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"additionalProperties": true,
|
||
"type": "object",
|
||
"title": "Response Get Available Methods Api Available Methods Get"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/analyze": {
|
||
"post": {
|
||
"tags": [
|
||
"analysis"
|
||
],
|
||
"summary": "执行完整分析",
|
||
"description": "执行完整的时间序列分析\n\n流程:\n1. 加载并预处理数据\n2. 执行15种分析方法\n3. 调用AI API 进行深度分析\n4. 生成PDF/PPT/HTML报告",
|
||
"operationId": "analyze_data_api_analyze_post",
|
||
"requestBody": {
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/AnalysisRequest"
|
||
}
|
||
}
|
||
},
|
||
"required": true
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"additionalProperties": true,
|
||
"type": "object",
|
||
"title": "Response Analyze Data Api Analyze Post"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v2/available_methods": {
|
||
"get": {
|
||
"tags": [
|
||
"analysis-v2"
|
||
],
|
||
"summary": "获取可用的分析方法(v2)",
|
||
"description": "v2 版本:返回与 v1 相同的可用分析方法列表。",
|
||
"operationId": "get_available_methods_v2_api_v2_available_methods_get",
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"additionalProperties": true,
|
||
"type": "object",
|
||
"title": "Response Get Available Methods V2 Api V2 Available Methods Get"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/v2/analyze": {
|
||
"post": {
|
||
"tags": [
|
||
"analysis-v2"
|
||
],
|
||
"summary": "执行完整分析(v2:从 OSS URL 读取 CSV)",
|
||
"description": "Analyze CSV from an OSS/URL, returning the same structure as v1.",
|
||
"operationId": "analyze_data_v2_api_v2_analyze_post",
|
||
"requestBody": {
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/AnalysisV2Request"
|
||
}
|
||
}
|
||
},
|
||
"required": true
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"additionalProperties": true,
|
||
"type": "object",
|
||
"title": "Response Analyze Data V2 Api V2 Analyze Post"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/image/{filename}": {
|
||
"get": {
|
||
"tags": [
|
||
"files"
|
||
],
|
||
"summary": "获取图片文件",
|
||
"description": "获取可视化图片文件",
|
||
"operationId": "serve_image_api_image__filename__get",
|
||
"parameters": [
|
||
{
|
||
"name": "filename",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {
|
||
"type": "string",
|
||
"title": "Filename"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/download/{filename}": {
|
||
"get": {
|
||
"tags": [
|
||
"files"
|
||
],
|
||
"summary": "下载文件",
|
||
"description": "下载报告或其他文件",
|
||
"operationId": "download_file_api_download__filename__get",
|
||
"parameters": [
|
||
{
|
||
"name": "filename",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {
|
||
"type": "string",
|
||
"title": "Filename"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
},
|
||
"422": {
|
||
"description": "Validation Error",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HTTPValidationError"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/list_uploads": {
|
||
"get": {
|
||
"tags": [
|
||
"files"
|
||
],
|
||
"summary": "列出上传的文件",
|
||
"description": "列出 uploads 目录中的文件",
|
||
"operationId": "list_uploads_api_list_uploads_get",
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/": {
|
||
"get": {
|
||
"summary": "Root",
|
||
"description": "根路径",
|
||
"operationId": "root__get",
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/health": {
|
||
"get": {
|
||
"summary": "Health",
|
||
"description": "健康检查",
|
||
"operationId": "health_health_get",
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/api/config": {
|
||
"get": {
|
||
"summary": "Get Config",
|
||
"description": "获取应用配置",
|
||
"operationId": "get_config_api_config_get",
|
||
"responses": {
|
||
"200": {
|
||
"description": "Successful Response",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"components": {
|
||
"schemas": {
|
||
"AnalysisRequest": {
|
||
"properties": {
|
||
"filename": {
|
||
"type": "string",
|
||
"title": "Filename"
|
||
},
|
||
"file_type": {
|
||
"type": "string",
|
||
"title": "File Type",
|
||
"default": "csv"
|
||
},
|
||
"task_description": {
|
||
"type": "string",
|
||
"title": "Task Description",
|
||
"default": "时间序列数据分析"
|
||
},
|
||
"data_background": {
|
||
"additionalProperties": true,
|
||
"type": "object",
|
||
"title": "Data Background",
|
||
"default": {}
|
||
},
|
||
"original_image": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Original Image"
|
||
},
|
||
"language": {
|
||
"type": "string",
|
||
"title": "Language",
|
||
"default": "zh"
|
||
},
|
||
"generate_plots": {
|
||
"type": "boolean",
|
||
"title": "Generate Plots",
|
||
"default": false
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"filename"
|
||
],
|
||
"title": "AnalysisRequest",
|
||
"description": "分析请求模型"
|
||
},
|
||
"AnalysisV2Request": {
|
||
"properties": {
|
||
"oss_url": {
|
||
"type": "string",
|
||
"title": "Oss Url"
|
||
},
|
||
"task_description": {
|
||
"type": "string",
|
||
"title": "Task Description",
|
||
"default": "时间序列数据分析"
|
||
},
|
||
"data_background": {
|
||
"additionalProperties": true,
|
||
"type": "object",
|
||
"title": "Data Background",
|
||
"default": {}
|
||
},
|
||
"language": {
|
||
"type": "string",
|
||
"title": "Language",
|
||
"default": "zh"
|
||
},
|
||
"generate_plots": {
|
||
"type": "boolean",
|
||
"title": "Generate Plots",
|
||
"default": false
|
||
},
|
||
"source_name": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Source Name"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"oss_url"
|
||
],
|
||
"title": "AnalysisV2Request",
|
||
"description": "v2 分析请求模型(输入为 OSS/URL)"
|
||
},
|
||
"Body_upload_file_api_upload_post": {
|
||
"properties": {
|
||
"file": {
|
||
"type": "string",
|
||
"format": "binary",
|
||
"title": "File"
|
||
},
|
||
"task_description": {
|
||
"type": "string",
|
||
"title": "Task Description",
|
||
"default": "时间序列数据分析"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"file"
|
||
],
|
||
"title": "Body_upload_file_api_upload_post"
|
||
},
|
||
"HTTPValidationError": {
|
||
"properties": {
|
||
"detail": {
|
||
"items": {
|
||
"$ref": "#/components/schemas/ValidationError"
|
||
},
|
||
"type": "array",
|
||
"title": "Detail"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"title": "HTTPValidationError"
|
||
},
|
||
"UploadResponse": {
|
||
"properties": {
|
||
"success": {
|
||
"type": "boolean",
|
||
"title": "Success"
|
||
},
|
||
"filename": {
|
||
"type": "string",
|
||
"title": "Filename"
|
||
},
|
||
"file_type": {
|
||
"type": "string",
|
||
"title": "File Type"
|
||
},
|
||
"original_filename": {
|
||
"type": "string",
|
||
"title": "Original Filename"
|
||
},
|
||
"task_description": {
|
||
"type": "string",
|
||
"title": "Task Description"
|
||
},
|
||
"message": {
|
||
"anyOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "null"
|
||
}
|
||
],
|
||
"title": "Message"
|
||
}
|
||
},
|
||
"type": "object",
|
||
"required": [
|
||
"success",
|
||
"filename",
|
||
"file_type",
|
||
"original_filename",
|
||
"task_description"
|
||
],
|
||
"title": "UploadResponse",
|
||
"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"
|
||
}
|
||
}
|
||
}
|
||
} |