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"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|