12 KiB
智能算法展示平台 API 文档
概述
智能算法展示平台提供了一套完整的API,用于管理算法、调用算法以及获取结果。API遵循RESTful设计原则,返回JSON格式的数据。
基础URL
http://localhost:8001/api/v1
认证
大多数API端点需要认证。认证通过在请求头中添加 Authorization 字段实现:
Authorization: Bearer <your-token>
算法管理API
获取算法列表
GET /algorithms
获取所有可用算法的列表。
参数
type(可选): 算法类型 (computer_vision, nlp, ml等)skip(可选): 跳过的记录数,默认为0limit(可选): 返回的最大记录数,默认为100
响应
{
"algorithms": [
{
"id": "alg-001",
"name": "图像分类算法",
"description": "基于深度学习的图像分类算法",
"type": "computer_vision",
"status": "active",
"versions": [],
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z"
}
],
"total": 1
}
获取算法详情
GET /algorithms/{algorithm_id}
获取特定算法的详细信息。
参数
algorithm_id: 算法ID
响应
{
"id": "alg-001",
"name": "图像分类算法",
"description": "基于深度学习的图像分类算法",
"type": "computer_vision",
"status": "active",
"versions": [
{
"id": "ver-001",
"algorithm_id": "alg-001",
"version": "v1.0",
"url": "http://algorithm-service:8000/classify",
"params": {
"confidence_threshold": {
"type": "float",
"default": 0.5,
"min": 0.0,
"max": 1.0
}
},
"input_schema": {},
"output_schema": {},
"is_default": true,
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z"
}
],
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z"
}
创建算法
POST /algorithms
创建新算法(需要管理员权限)。
请求体
{
"name": "新算法",
"description": "算法描述",
"type": "ml",
"status": "active"
}
响应
{
"id": "alg-002",
"name": "新算法",
"description": "算法描述",
"type": "ml",
"status": "active",
"versions": [],
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z"
}
算法调用API
调用算法
POST /algorithms/call
调用指定算法。
请求体
{
"algorithm_id": "alg-001",
"version_id": "ver-001",
"input_data": {
"image_url": "https://example.com/image.jpg"
},
"params": {
"confidence_threshold": 0.7
}
}
响应
{
"id": "call-001",
"user_id": "user-001",
"algorithm_id": "alg-001",
"version_id": "ver-001",
"input_data": {
"image_url": "https://example.com/image.jpg"
},
"params": {
"confidence_threshold": 0.7
},
"output_data": {
"predictions": [
{
"class": "cat",
"confidence": 0.95
}
]
},
"status": "success",
"response_time": 1.2,
"error_message": null,
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z"
}
获取调用结果
GET /algorithms/calls/{call_id}
获取特定调用的结果。
参数
call_id: 调用ID
响应
{
"id": "call-001",
"user_id": "user-001",
"algorithm_id": "alg-001",
"version_id": "ver-001",
"input_data": {
"image_url": "https://example.com/image.jpg"
},
"params": {
"confidence_threshold": 0.7
},
"output_data": {
"predictions": [
{
"class": "cat",
"confidence": 0.95
}
]
},
"status": "success",
"response_time": 1.2,
"error_message": null,
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z"
}
用户管理API
用户登录
POST /users/login
用户登录并获取访问令牌。
请求体
{
"username": "testuser",
"password": "password123"
}
响应
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer"
}
历史记录API
获取调用历史
GET /history/user-calls
获取用户的调用历史。
参数
algorithm_id(可选): 算法IDstatus(可选): 调用状态start_date(可选): 开始日期end_date(可选): 结束日期skip(可选): 跳过的记录数limit(可选): 返回的最大记录数
响应
{
"history": [
{
"id": "call-001",
"user_id": "user-001",
"algorithm_id": "alg-001",
"version_id": "ver-001",
"input_data": {},
"params": {},
"output_data": {},
"status": "success",
"response_time": 1.2,
"error_message": null,
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z"
}
],
"count": 1,
"skip": 0,
"limit": 100
}
获取调用统计
GET /history/statistics
获取调用统计信息。
参数
user_id(可选): 用户IDalgorithm_id(可选): 算法ID
响应
{
"total_calls": 156,
"status_counts": {
"success": 145,
"failed": 11
},
"success_rate": 92.3,
"avg_response_time": 1.45,
"today_calls": 12
}
监控API
获取系统健康状况
GET /monitoring/health
获取系统健康状况。
响应
{
"status": "healthy",
"timestamp": "2023-01-01T00:00:00Z",
"system_metrics": {
"cpu_percent": 25.5,
"memory_percent": 45.2,
"disk_percent": 60.1
}
}
获取算法性能指标
GET /monitoring/performance/algorithm/{algorithm_id}
获取特定算法的性能指标。
参数
algorithm_id: 算法IDdays: 统计天数(默认为7)
响应
{
"algorithm_id": "alg-001",
"period_days": 7,
"total_calls": 50,
"success_calls": 48,
"failed_calls": 2,
"success_rate": 96.0,
"average_response_time": 1.234,
"status_distribution": {
"success": 48,
"failed": 2
},
"timestamp": "2023-01-01T00:00:00Z"
}
权限管理API
检查权限
POST /permissions/check
检查用户对特定算法的权限。
请求体
{
"algorithm_id": "alg-001",
"permission_type": "execute"
}
响应
{
"has_permission": true,
"user_id": "user-001",
"algorithm_id": "alg-001",
"permission_type": "execute"
}
OpenAI集成API
生成仿真数据
POST /openai/generate-data
使用OpenAI生成仿真输入数据。
请求体
{
"prompt": "一张包含猫和狗的照片",
"data_type": "image"
}
响应
{
"data": "生成的仿真数据",
"type": "image"
}
API网关API
通过网关调用算法
POST /gateway/call
通过API网关调用算法,提供统一的访问接口和安全控制。
请求体
{
"algorithm_id": "alg-001",
"version_id": "ver-001",
"input_data": {
"image_url": "https://example.com/image.jpg"
},
"params": {
"confidence_threshold": 0.7
}
}
响应
{
"id": "call-001",
"user_id": "user-001",
"algorithm_id": "alg-001",
"version_id": "ver-001",
"input_data": {
"image_url": "https://example.com/image.jpg"
},
"params": {
"confidence_threshold": 0.7
},
"output_data": {
"predictions": [
{
"class": "cat",
"confidence": 0.95
}
]
},
"status": "success",
"response_time": 1.2,
"error_message": null,
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z"
}
获取网关统计信息
GET /gateway/stats
获取API网关的调用统计信息。
响应
{
"total_requests": 1250,
"successful_requests": 1200,
"failed_requests": 50,
"blocked_requests": 10,
"rate_limited_requests": 40,
"last_updated": "2023-01-01T00:00:00Z"
}
算法仓库管理API
获取算法仓库列表
GET /repositories
获取所有算法仓库的列表。
响应
{
"success": true,
"repositories": [
{
"id": "repo-001",
"name": "图像分类算法仓库",
"description": "图像分类算法的代码仓库",
"type": "code",
"repo_url": "https://gitea.example.com/owner/repo.git",
"branch": "main",
"local_path": "",
"algorithm_id": null,
"status": "active",
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z"
}
]
}
获取单个算法仓库详情
GET /repositories/{repo_id}
获取特定算法仓库的详细信息。
参数
repo_id: 仓库ID
响应
{
"success": true,
"repository": {
"id": "repo-001",
"name": "图像分类算法仓库",
"description": "图像分类算法的代码仓库",
"type": "code",
"repo_url": "https://gitea.example.com/owner/repo.git",
"branch": "main",
"local_path": "",
"algorithm_id": null,
"status": "active",
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z"
}
}
添加算法仓库
POST /repositories
添加新的算法仓库。
请求体
{
"name": "新算法仓库",
"description": "新算法的代码仓库",
"type": "code",
"repo_url": "https://gitea.example.com/owner/repo.git",
"branch": "main",
"local_path": ""
}
响应
{
"success": true,
"message": "Repository created successfully",
"repository": {
"id": "repo-002",
"name": "新算法仓库",
"description": "新算法的代码仓库",
"type": "code",
"repo_url": "https://gitea.example.com/owner/repo.git",
"branch": "main",
"local_path": "",
"algorithm_id": null,
"status": "active",
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z"
}
}
更新算法仓库
PUT /repositories/{repo_id}
更新特定算法仓库的信息。
参数
repo_id: 仓库ID
请求体
{
"name": "更新后的算法仓库",
"description": "更新后的算法仓库描述",
"type": "code"
}
响应
{
"success": true,
"message": "Repository updated successfully",
"repository": {
"id": "repo-001",
"name": "更新后的算法仓库",
"description": "更新后的算法仓库描述",
"type": "code",
"repo_url": "https://gitea.example.com/owner/repo.git",
"branch": "main",
"local_path": "",
"algorithm_id": null,
"status": "active",
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z"
}
}
删除算法仓库
DELETE /repositories/{repo_id}
删除特定的算法仓库。
参数
repo_id: 仓库ID
响应
{
"success": true,
"message": "Repository deleted successfully",
"gitea_deleted": true
}
Gitea集成API
获取Gitea配置
GET /gitea/config
获取Gitea配置信息。
响应
{
"server_url": "https://gitea.example.com",
"access_token": "your-access-token",
"default_owner": "owner",
"repo_prefix": "alg-"
}
设置Gitea配置
POST /gitea/config
设置Gitea配置信息。
请求体
{
"server_url": "https://gitea.example.com",
"access_token": "your-access-token",
"default_owner": "owner",
"repo_prefix": "alg-"
}
响应
{
"success": true,
"message": "Gitea config saved successfully"
}
创建Gitea仓库
POST /gitea/repos/create
在Gitea上创建仓库。
请求体
{
"algorithm_id": "alg-001",
"algorithm_name": "图像分类算法",
"description": "图像分类算法的代码仓库"
}
响应
{
"id": 1,
"name": "alg-001",
"full_name": "owner/alg-001",
"description": "图像分类算法的代码仓库",
"private": false,
"html_url": "https://gitea.example.com/owner/alg-001"
}
更新Gitea仓库信息
PATCH /gitea/repos/update
更新Gitea仓库信息。
请求体
{
"algorithm_id": "alg-001",
"description": "更新后的仓库描述",
"private": false
}
响应
{
"success": true,
"message": "Repository updated successfully"
}