UnisKB/API接口参数文档.md

26 KiB
Raw Blame History

AI-RAG API接口参数文档

1. 概述

本文档详细描述了MaxKB系统中所有API接口的参数信息包括用户管理、应用管理、对话管理、知识库管理等模块的接口。

2. 用户管理接口

2.1 登录接口

  • URL: /api/users/login
  • 方法: POST
  • 认证: 无需认证

请求参数

参数名 类型 必填 描述
username string 用户名
password string 密码
captcha string 验证码(登录失败次数超过阈值时需要)
encryptedData string 加密数据

响应数据

{
  "code": 200,
  "message": "success",
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
  }
}

2.2 登出接口

  • URL: /api/users/logout
  • 方法: POST
  • 认证: Token认证

响应数据

{
  "code": 200,
  "message": "success",
  "data": true
}

2.3 获取验证码接口

  • URL: /api/users/captcha
  • 方法: GET
  • 认证: 无需认证

请求参数

参数名 类型 必填 描述
username string 用户名

响应数据

{
  "code": 200,
  "message": "success",
  "data": {
    "captcha": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
  }
}

2.4 用户个人信息接口

  • URL: /api/users/profile
  • 方法: GET
  • 认证: Token认证

响应数据

{
  "code": 200,
  "message": "success",
  "data": {
    "id": "user123",
    "username": "admin",
    "email": "admin@example.com",
    "is_active": true
  }
}

2.5 切换语言接口

  • URL: /api/users/language
  • 方法: POST
  • 认证: Token认证

请求参数

参数名 类型 必填 描述
language string 语言代码zh-CN, en-US

响应数据

{
  "code": 200,
  "message": "success",
  "data": true
}

3. 应用管理接口

3.1 应用列表接口

  • URL: /api/application/workspace/{workspace_id}/application
  • 方法: GET
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID

响应数据

{
  "code": 200,
  "message": "success",
  "data": [
    {
      "id": "app123",
      "name": "测试应用",
      "description": "这是一个测试应用",
      "workspace_id": "workspace1",
      "create_time": "2025-01-01 10:00:00"
    }
  ]
}

3.2 应用分页接口

  • URL: /api/application/workspace/{workspace_id}/application/{current_page}/{page_size}
  • 方法: GET
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
current_page path integer 当前页码
page_size path integer 每页大小

响应数据

{
  "code": 200,
  "message": "success",
  "data": {
    "records": [
      {
        "id": "app123",
        "name": "测试应用",
        "description": "这是一个测试应用"
      }
    ],
    "total": 10,
    "size": 20,
    "current": 1,
    "pages": 1
  }
}

3.3 应用详情接口

  • URL: /api/application/workspace/{workspace_id}/application/{application_id}
  • 方法: GET
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
application_id path string 应用ID

响应数据

{
  "code": 200,
  "message": "success",
  "data": {
    "id": "app123",
    "name": "测试应用",
    "description": "这是一个测试应用",
    "workspace_id": "workspace1",
    "create_time": "2025-01-01 10:00:00",
    "update_time": "2025-01-02 10:00:00"
  }
}

3.4 创建应用接口

  • URL: /api/application/workspace/{workspace_id}/application
  • 方法: POST
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
name body string 应用名称
description body string 应用描述
type body string 应用类型

响应数据

{
  "code": 200,
  "message": "success",
  "data": {
    "id": "app123",
    "name": "测试应用"
  }
}

3.5 更新应用接口

  • URL: /api/application/workspace/{workspace_id}/application/{application_id}
  • 方法: PUT
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
application_id path string 应用ID
name body string 应用名称
description body string 应用描述

响应数据

{
  "code": 200,
  "message": "success",
  "data": true
}

3.6 删除应用接口

  • URL: /api/application/workspace/{workspace_id}/application/{application_id}
  • 方法: DELETE
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
application_id path string 应用ID

响应数据

{
  "code": 200,
  "message": "success",
  "data": true
}

4. 监控统计接口

4.1 对话统计趋势接口

  • URL: /api/application/{workspace_id}/{application_id}/stats
  • 方法: GET
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
application_id path string 应用ID
start_time query string 开始时间格式YYYY-MM-DD
end_time query string 结束时间格式YYYY-MM-DD

响应数据

{
  "code": 200,
  "message": "success",
  "data": [
    {
      "chat_record_count": 10,
      "customer_added_count": 5,
      "customer_num": 100,
      "day": "2025-01-01",
      "star_num": 8,
      "tokens_num": 1000,
      "trample_num": 2
    }
  ]
}

4.2 Token使用统计接口

  • URL: /api/application/{workspace_id}/{application_id}/stats/token-usage
  • 方法: GET
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
application_id path string 应用ID
start_time query string 开始时间格式YYYY-MM-DD
end_time query string 结束时间格式YYYY-MM-DD

响应数据

{
  "code": 200,
  "message": "success",
  "data": [
    {
      "chat_user_id": "user123",
      "nick_name": "用户1",
      "tokens_num": 5000
    }
  ]
}

4.3 热门问题统计接口

  • URL: /api/application/{workspace_id}/{application_id}/stats/top-questions
  • 方法: GET
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
application_id path string 应用ID
start_time query string 开始时间格式YYYY-MM-DD
end_time query string 结束时间格式YYYY-MM-DD

响应数据

{
  "code": 200,
  "message": "success",
  "data": [
    {
      "problem_text": "如何使用MaxKB",
      "count": 50
    }
  ]
}

5. 对话管理接口

5.1 应用级别对话记录列表接口

  • URL: /api/application/{workspace_id}/{application_id}/chat-record/{chat_id}
  • 方法: GET
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
application_id path string 应用ID
chat_id path string 对话ID
search_type query string 搜索类型
search_text query string 搜索文本
start_time query string 开始时间
end_time query string 结束时间

响应数据

{
  "code": 200,
  "message": "success",
  "data": [
    {
      "id": "record123",
      "chat_id": "chat123",
      "problem_text": "如何使用MaxKB",
      "answer_text": "MaxKB是一个智能客服平台...",
      "create_time": "2025-01-01 10:00:00",
      "tokens": 100,
      "star": 1,
      "trample": 0
    }
  ]
}

5.2 用户级别历史对话列表接口

  • URL: /api/chat/historical_conversation
  • 方法: GET
  • 认证: Token认证

响应数据

{
  "code": 200,
  "message": "success",
  "data": [
    {
      "id": "chat123",
      "abstract": "如何使用MaxKB",
      "create_time": "2025-01-01 10:00:00",
      "update_time": "2025-01-01 10:05:00"
    }
  ]
}

5.3 发送消息接口

  • URL: /api/chat/chat_message/{chat_id}
  • 方法: POST
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
chat_id path string 对话ID
message_list body array 消息列表
problem_text body string 用户问题
stream body boolean 是否使用流的形式输出

响应数据

{
  "code": 200,
  "message": "success",
  "data": {
    "id": "record123",
    "chat_id": "chat123",
    "problem_text": "如何使用MaxKB",
    "answer_text": "MaxKB是一个智能客服平台...",
    "create_time": "2025-01-01 10:00:00",
    "tokens": 100
  }
}

6. 知识库管理接口

6.1 知识库列表接口

  • URL: /api/knowledge/workspace/{workspace_id}/knowledge
  • 方法: GET
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID

响应数据

{
  "code": 200,
  "message": "success",
  "data": [
    {
      "id": "knowledge123",
      "name": "测试知识库",
      "description": "这是一个测试知识库",
      "workspace_id": "workspace1",
      "create_time": "2025-01-01 10:00:00"
    }
  ]
}

6.2 知识库分页接口

  • URL: /api/knowledge/workspace/{workspace_id}/knowledge/{current_page}/{page_size}
  • 方法: GET
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
current_page path integer 当前页码
page_size path integer 每页大小

响应数据

{
  "code": 200,
  "message": "success",
  "data": {
    "records": [
      {
        "id": "knowledge123",
        "name": "测试知识库",
        "description": "这是一个测试知识库"
      }
    ],
    "total": 5,
    "size": 20,
    "current": 1,
    "pages": 1
  }
}

6.3 文档列表接口

  • URL: /api/knowledge/workspace/{workspace_id}/knowledge/{knowledge_id}/document
  • 方法: GET
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
knowledge_id path string 知识库ID

响应数据

{
  "code": 200,
  "message": "success",
  "data": [
    {
      "id": "doc123",
      "name": "测试文档",
      "knowledge_id": "knowledge123",
      "create_time": "2025-01-01 10:00:00"
    }
  ]
}

6.4 段落列表接口

  • URL: /api/knowledge/workspace/{workspace_id}/knowledge/{knowledge_id}/document/{document_id}/paragraph
  • 方法: GET
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
knowledge_id path string 知识库ID
document_id path string 文档ID

响应数据

{
  "code": 200,
  "message": "success",
  "data": [
    {
      "id": "paragraph123",
      "content": "这是一段测试内容",
      "document_id": "doc123",
      "create_time": "2025-01-01 10:00:00"
    }
  ]
}

7. Token获取方式

7.1 用户登录获取Token

  • URL: /api/users/login
  • 方法: POST
  • 认证: 无需认证

请求参数

参数名 类型 必填 描述
username string 用户名
password string 密码
captcha string 验证码(登录失败次数超过阈值时需要)
encryptedData string 加密数据

响应数据

{
  "code": 200,
  "message": "success",
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
  }
}

7.2 应用访问令牌

系统还支持应用级别的访问令牌,通过ApplicationAccessToken模型生成用于应用间的API调用。

7.3 Token使用方式

获取token后在调用其他API接口时需要在请求头中添加

Authorization: Bearer your_token_here

8. 通用参数说明

8.1 分页参数

参数名 类型 描述
current_page integer 当前页码从1开始
page_size integer 每页大小默认20

8.2 时间参数

参数名 类型 描述
start_time string 开始时间格式YYYY-MM-DD
end_time string 结束时间格式YYYY-MM-DD

8.3 搜索参数

参数名 类型 描述
search_text string 搜索文本
search_type string 搜索类型

9. 响应格式

所有API接口的响应格式统一为

{
  "code": 200,          // 状态码200表示成功
  "message": "success",  // 消息success表示成功
  "data": {}            // 数据,根据接口不同返回不同结构
}

9.1 错误响应

错误码 描述
401 未授权Token无效或过期
403 无权限访问该资源
404 资源不存在
500 服务器内部错误

7. 系统管理接口

7.1 工作空间用户资源权限接口

  • URL: /api/system_manage/workspace/{workspace_id}/user_resource_permission/user/{user_id}/resource/{resource}
  • 方法: GET
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
user_id path string 用户ID
resource path string 资源类型

响应数据

{
  "code": 200,
  "message": "success",
  "data": [
    {
      "resource_id": "resource123",
      "resource_name": "测试资源",
      "has_permission": true
    }
  ]
}

7.2 工作空间用户资源权限分页接口

  • URL: /api/system_manage/workspace/{workspace_id}/user_resource_permission/user/{user_id}/resource/{resource}/{current_page}/{page_size}
  • 方法: GET
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
user_id path string 用户ID
resource path string 资源类型
current_page path integer 当前页码
page_size path integer 每页大小

响应数据

{
  "code": 200,
  "message": "success",
  "data": {
    "records": [
      {
        "resource_id": "resource123",
        "resource_name": "测试资源",
        "has_permission": true
      }
    ],
    "total": 10,
    "size": 20,
    "current": 1,
    "pages": 1
  }
}

7.3 邮件设置接口

  • URL: /api/system_manage/email_setting
  • 方法: GET, POST
  • 认证: Token认证

请求参数 (POST)

参数名 类型 必填 描述
smtp_server string SMTP服务器
smtp_port integer SMTP端口
smtp_username string SMTP用户名
smtp_password string SMTP密码
sender_email string 发件人邮箱

响应数据

{
  "code": 200,
  "message": "success",
  "data": {
    "smtp_server": "smtp.example.com",
    "smtp_port": 587,
    "smtp_username": "admin@example.com",
    "sender_email": "admin@example.com"
  }
}

7.4 系统配置接口

  • URL: /api/system_manage/config
  • 方法: GET
  • 认证: Token认证

响应数据

{
  "code": 200,
  "message": "success",
  "data": {
    "system_name": "MaxKB",
    "version": "1.0.0",
    "admin_path": "/admin"
  }
}

8. 工具管理接口

8.1 工具列表接口

  • URL: /api/tool/workspace/{workspace_id}/tool
  • 方法: GET
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID

响应数据

{
  "code": 200,
  "message": "success",
  "data": [
    {
      "id": "tool123",
      "name": "测试工具",
      "description": "这是一个测试工具",
      "workspace_id": "workspace1",
      "create_time": "2025-01-01 10:00:00"
    }
  ]
}

8.2 工具分页接口

  • URL: /api/tool/workspace/{workspace_id}/tool/{current_page}/{page_size}
  • 方法: GET
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
current_page path integer 当前页码
page_size path integer 每页大小

响应数据

{
  "code": 200,
  "message": "success",
  "data": {
    "records": [
      {
        "id": "tool123",
        "name": "测试工具",
        "description": "这是一个测试工具"
      }
    ],
    "total": 5,
    "size": 20,
    "current": 1,
    "pages": 1
  }
}

8.3 工具详情接口

  • URL: /api/tool/workspace/{workspace_id}/tool/{tool_id}
  • 方法: GET
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
tool_id path string 工具ID

响应数据

{
  "code": 200,
  "message": "success",
  "data": {
    "id": "tool123",
    "name": "测试工具",
    "description": "这是一个测试工具",
    "workspace_id": "workspace1",
    "create_time": "2025-01-01 10:00:00"
  }
}

8.4 测试工具连接接口

  • URL: /api/tool/workspace/{workspace_id}/tool/test_connection
  • 方法: POST
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
tool_id body string 工具ID
config body object 工具配置

响应数据

{
  "code": 200,
  "message": "success",
  "data": {
    "success": true,
    "message": "连接成功"
  }
}

9. OSS接口

9.1 文件上传接口

  • URL: /api/oss/file
  • 方法: POST
  • 认证: Token认证

请求参数

参数名 类型 必填 描述
file file 上传的文件
type string 文件类型

响应数据

{
  "code": 200,
  "message": "success",
  "data": {
    "file_url": "http://example.com/files/test.png",
    "file_name": "test.png",
    "file_size": 102400
  }
}

10. 文件夹管理接口

10.1 文件夹列表接口

  • URL: /api/folder/workspace/{workspace_id}/{source}/folder
  • 方法: GET
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
source path string 资源类型application, knowledge

响应数据

{
  "code": 200,
  "message": "success",
  "data": [
    {
      "id": "folder123",
      "name": "测试文件夹",
      "parent_id": null,
      "workspace_id": "workspace1",
      "source": "application",
      "create_time": "2025-01-01 10:00:00"
    }
  ]
}

10.2 创建文件夹接口

  • URL: /api/folder/workspace/{workspace_id}/{source}/folder
  • 方法: POST
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
source path string 资源类型application, knowledge
name body string 文件夹名称
parent_id body string 父文件夹ID

响应数据

{
  "code": 200,
  "message": "success",
  "data": {
    "id": "folder123",
    "name": "测试文件夹",
    "parent_id": null,
    "workspace_id": "workspace1",
    "source": "application"
  }
}

10.3 更新文件夹接口

  • URL: /api/folder/workspace/{workspace_id}/{source}/folder/{folder_id}
  • 方法: PUT
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
source path string 资源类型application, knowledge
folder_id path string 文件夹ID
name body string 文件夹名称
parent_id body string 父文件夹ID

响应数据

{
  "code": 200,
  "message": "success",
  "data": true
}

10.4 删除文件夹接口

  • URL: /api/folder/workspace/{workspace_id}/{source}/folder/{folder_id}
  • 方法: DELETE
  • 认证: Token认证

请求参数

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
source path string 资源类型application, knowledge
folder_id path string 文件夹ID

响应数据

{
  "code": 200,
  "message": "success",
  "data": true
}

11. 模型提供商接口

11.1 模型提供商列表接口

  • URL: /api/models_provider/provider
  • 方法: GET
  • 认证: Token认证

响应数据

{
  "code": 200,
  "message": "success",
  "data": [
    {
      "id": "provider123",
      "name": "OpenAI",
      "type": "llm",
      "status": "active"
    }
  ]
}

11.2 模型类型列表接口

  • URL: /api/models_provider/provider/model_type_list
  • 方法: GET
  • 认证: Token认证

响应数据

{
  "code": 200,
  "message": "success",
  "data": [
    {
      "type": "llm",
      "name": "大语言模型"
    },
    {
      "type": "embedding",
      "name": "嵌入模型"
    }
  ]
}

11.3 模型列表接口

  • URL: /api/models_provider/provider/model_list
  • 方法: GET
  • 认证: Token认证

请求参数

参数名 类型 必填 描述
provider_id string 提供商ID
model_type string 模型类型

响应数据

{
  "code": 200,
  "message": "success",
  "data": [
    {
      "id": "model123",
      "name": "gpt-4",
      "description": "OpenAI GPT-4模型"
    }
  ]
}

11.4 工作空间模型设置接口

  • URL: /api/models_provider/workspace/{workspace_id}/model
  • 方法: GET, POST
  • 认证: Token认证

请求参数 (POST)

参数名 位置 类型 必填 描述
workspace_id path string 工作空间ID
provider_id body string 提供商ID
model_id body string 模型ID
api_key body string API密钥
base_url body string 基础URL

响应数据

{
  "code": 200,
  "message": "success",
  "data": {
    "id": "model_setting123",
    "provider_id": "provider123",
    "model_id": "model123",
    "workspace_id": "workspace1"
  }
}

12. 通用参数说明

12.1 分页参数

参数名 类型 描述
current_page integer 当前页码从1开始
page_size integer 每页大小默认20

12.2 时间参数

参数名 类型 描述
start_time string 开始时间格式YYYY-MM-DD
end_time string 结束时间格式YYYY-MM-DD

12.3 搜索参数

参数名 类型 描述
search_text string 搜索文本
search_type string 搜索类型

13. 响应格式

所有API接口的响应格式统一为

{
  "code": 200,          // 状态码200表示成功
  "message": "success",  // 消息success表示成功
  "data": {}            // 数据,根据接口不同返回不同结构
}

13.1 错误响应

错误码 描述
401 未授权Token无效或过期
403 无权限访问该资源
404 资源不存在
500 服务器内部错误

14. 注意事项

  1. 所有接口都需要有效的Token认证
  2. Token有过期时间过期后需要重新获取
  3. 登录失败次数过多时,需要输入验证码
  4. 对于大量数据的查询,建议使用分页接口
  5. 时间格式必须为 YYYY-MM-DD
  6. 路径参数中的ID通常为UUID格式
  7. 部分接口需要特定的权限才能访问
  8. 上传文件时需要使用multipart/form-data格式
  9. 对于流式输出的接口,响应会分多次返回
  10. 接口调用频率过高可能会被限流