软件设计手册
软件设计文档
1. 引言
目的: 本文档旨在提供对软件系统的全面设计说明。它涵盖了系统的架构、数据库设计、安全策略、性能优化以及接口设计等方面。该文档的目标是为开发团队提供清晰的指导,以确保系统的开发和实施符合预期的功能和性能要求。
术语和缩略语:
- API: 应用程序编程接口
- JWT: JSON Web Token,用于安全认证
- DB: 数据库
- UI: 用户界面
- UX: 用户体验
- CRUD: 创建、读取、更新、删除
2. 系统概述
- 系统目标: 本系统的主要目标是构建一个高效、可靠的企业级AI知识库系统,以支持企业的核心业务流程。该系统将整合现有的业务功能,并提供新的功能模块,以提高业务效率和用户体验。
3. 系统架构
- 架构: 采用单体架构
4. 数据库设计
- 数据库模型: 使用 MySQL 数据库
- 表结构: 详细列出数据库表及其结构。
5. 安全设计
- 安全策略: 使用JWT进行用户认证
- 认证和授权: 详细说明认证和授权机制。
6. 性能设计
- 性能优化: 使用缓存提高查询速度
- 性能目标: 定义系统的性能目标。
7. 接口设计
7.1 钉钉扫码登录接口
- URL:
/user/dingtalk/scan - 方法:
POST - 描述: 该接口用于钉钉扫码登录。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| code | string | 是 | 钉钉扫码收到的code |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
"user": {
// 用户信息的具体结构
},
"token": "exampleToken",
"client_id": "exampleClientId"
},
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }用户不存在
{ "code": -1, "success": false, "message": "用户不存在", "time": 1698765432 }
7.2 钉钉工作台登录接口
- URL:
/user/dingtalk/workbench - 方法:
POST - 描述: 该接口用于钉钉工作台登录。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| code | string | 是 | 钉钉工作台收到的code |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
"user": {
// 用户信息的具体结构
},
"token": "exampleToken",
"client_id": "exampleClientId"
},
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }用户不存在
{ "code": -1, "success": false, "message": "用户不存在", "time": 1698765432 }
7.3 手机号登录接口
- URL:
/user/login/sms - 方法:
POST - 描述: 该接口用于手机号验证码登录。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| phone | string | 是 | 手机号码 |
| sms_code | string | 是 | 短信验证码 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
"user": {
// 用户信息的具体结构
},
"token": "exampleToken",
"client_id": "exampleClientId"
},
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }用户不存在
{ "code": -1, "success": false, "message": "用户不存在", "time": 1698765432 }验证码错误
{ "code": -1, "success": false, "message": "验证码错误", "time": 1698765432 }
7.4 引擎列表接口
- URL:
/admin/ai/engines - 方法:
GET - 描述: 获取AI引擎列表。
请求参数
无
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
// AI引擎配置的具体结构
},
"time": 1698765432
}7.5 密钥列表接口
- URL:
/admin/ai/keys - 方法:
GET - 描述: 获取指定引擎的密钥列表。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| engine | string | 是 | 引擎标识符 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
// 密钥配置的具体结构
},
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }
7.6 添加密钥前接口
- URL:
/admin/ai/keyaddbefore - 方法:
GET - 描述: 获取添加密钥前所需的信息。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| engine | string | 是 | 引擎标识符 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
// 需要的密钥信息
},
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }
7.7 编辑密钥前接口
- URL:
/admin/ai/keyeditbefore - 方法:
GET - 描述: 获取编辑密钥前所需的信息。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| engine | string | 是 | 引擎标识符 |
| id | string | 是 | 密钥ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
"data": {
// 密钥的具体信息
},
"need": {
// 需要的密钥信息
}
},
"time": 1698765432
}错误响应
引擎未找到
{ "code": -1, "success": false, "message": "引擎未找到", "time": 1698765432 }未找到配置
{ "code": -1, "success": false, "message": "未找到配置", "time": 1698765432 }
7.8 保存密钥接口
- URL:
/admin/ai/keyaddsave - 方法:
POST - 描述: 保存新的密钥配置。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| name | string | 是 | 密钥名称 |
| engine | string | 是 | 引擎标识符 |
| api_key | string | 是 | API密钥 |
| app_id | string | 否 | 应用ID |
| api_secret | string | 否 | API密钥 |
| limit_num | string | 否 | 限制数量 |
| server_url | string | 否 | 服务器URL |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "保存成功",
"data": null,
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }引擎未找到
{ "code": -1, "success": false, "message": "引擎未找到", "time": 1698765432 }保存失败
{ "code": -1, "success": false, "message": "保存失败", "time": 1698765432 }
7.9 删除密钥接口
- URL:
/admin/ai/keydelete - 方法:
GET - 描述: 删除指定ID的密钥配置。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | string | 是 | 密钥ID |
| engine | string | 是 | 引擎标识符 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "删除成功",
"data": null,
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }引擎未找到
{ "code": -1, "success": false, "message": "引擎未找到", "time": 1698765432 }未找到配置
{ "code": -1, "success": false, "message": "未找到配置", "time": 1698765432 }删除失败
{ "code": -1, "success": false, "message": "删除失败", "time": 1698765432 }
7.10 创建知识库接口
- URL:
/admin/knowledge/create - 方法:
POST - 描述: 创建新的知识库。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| name | string | 是 | 知识库名称 |
| engine | string | 是 | 引擎标识符 |
| parent_id | int32 | 否 | 父知识库ID |
| desc | string | 否 | 知识库描述 |
| pic | string | 否 | 知识库图片 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "创建知识库成功",
"data": {
"name": "知识库名称",
"id": "知识库ID"
},
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }
7.11 查询知识库接口
- URL:
/admin/knowledge/:id - 方法:
GET - 描述: 根据ID查询知识库。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 知识库ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
// 知识库的具体结构
},
"time": 1698765432
}错误响应
未找到知识库
{ "code": -1, "success": false, "message": "未找到知识库", "time": 1698765432 }
7.12 更新知识库接口
- URL:
/admin/knowledge/update - 方法:
POST - 描述: 更新知识库信息。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | int32 | 是 | 知识库ID |
| name | string | 否 | 知识库名称 |
| engine | string | 否 | 引擎标识符 |
| parent_id | int32 | 否 | 父知识库ID |
| desc | string | 否 | 知识库描述 |
| pic | string | 否 | 知识库图片 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "更新成功",
"data": null,
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }
7.13 创建知识库前接口
- URL:
/admin/knowledge/createbefore - 方法:
GET - 描述: 获取创建知识库前所需的信息。
请求参数
无
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "Create Success",
"data": {
// 创建知识库前所需的信息
},
"time": 1698765432
}7.14 更新知识库前接口
- URL:
/admin/knowledge/updatebefore - 方法:
GET - 描述: 获取更新知识库前所需的信息。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 知识库ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "Create Success",
"data": {
// 更新知识库前所需的信息
},
"time": 1698765432
}7.15 后台知识库列表接口
- URL:
/admin/knowledge/list - 方法:
GET - 描述: 获取后台知识库列表。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| page | int | 否 | 页码 |
| size | int | 否 | 每页数量 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
// 知识库列表的具体结构
},
"time": 1698765432
}7.16 前台知识库列表接口
- URL:
/user/knowledge/list - 方法:
GET - 描述: 获取前台知识库列表。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| page | int | 否 | 页码 |
| size | int | 否 | 每页数量 |
| nopage | bool | 否 | 是否分页 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
// 知识库列表的具体结构
},
"time": 1698765432
}7.17 删除知识库接口
- URL:
/admin/knowledge/delete - 方法:
POST - 描述: 删除指定ID的知识库。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 知识库ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "删除成功",
"data": null,
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }未找到知识库
{ "code": -1, "success": false, "message": "未找到知识库", "time": 1698765432 }删除失败
{ "code": -1, "success": false, "message": "删除失败", "time": 1698765432 }
7.18 同步钉钉空间知识库文件接口
- URL:
/admin/knowledge/file/sync - 方法:
POST - 描述: 同步钉钉空间的知识库文件。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 知识库ID |
| engine | string | 否 | 引擎标识符 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": null,
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }同步失败
{ "code": -1, "success": false, "message": "同步失败", "time": 1698765432 }
7.19 查看知识库文件列表接口
- URL:
/admin/knowledge/file/list - 方法:
GET - 描述: 获取指定知识库的文件列表。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 知识库ID |
| page | int | 否 | 页码 |
| size | int | 否 | 每页数量 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
// 文件列表的具体结构
},
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }
7.20 上传知识库文件接口
- URL:
/admin/knowledge/file/upload/:id - 方法:
POST - 描述: 上传文件到指定知识库。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 知识库ID |
| files | file[] | 是 | 文件列表 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": null,
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }上传文件为空
{ "code": -1, "success": false, "message": "上传文件为空", "time": 1698765432 }
7.21 清流知识库文件列表接口
- URL:
/admin/knowledge/file/qllist - 方法:
GET - 描述: 查看清流知识库文件列表。
请求参数
无
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
// 清流知识库文件列表的具体结构
},
"time": 1698765432
}7.22 更新单个知识库文件接口
- URL:
/admin/knowledge/file/updateone - 方法:
GET - 描述: 更新单个知识库文件。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 文件ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "更新成功",
"data": null,
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }更新失败
{ "code": -1, "success": false, "message": "更新失败", "time": 1698765432 }
7.23 更新多个知识库文件接口
- URL:
/admin/knowledge/file/updates - 方法:
GET - 描述: 更新多个知识库文件。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 文件ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "更新成功",
"data": null,
"time": 1698765432
}错误响应
更新失败
{ "code": -1, "success": false, "message": "更新失败", "time": 1698765432 }
7.24 后台添加知识库文件接口
- URL:
/admin/knowledge/add - 方法:
POST - 描述: 后台添加文件到指定知识库。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | int32 | 是 | 知识库ID |
| engine | string | 是 | 引擎标识符 |
| data_id | int32 | 否 | 数据ID |
| files | []string | 是 | 文件路径列表 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": null,
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }
7.25 前台添加知识库文件接口
- URL:
/user/knowledge/add - 方法:
POST - 描述: 前台添加文件到指定知识库。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | int32 | 是 | 知识库ID |
| engine | string | 是 | 引擎标识符 |
| data_id | int32 | 否 | 数据ID |
| files | []string | 是 | 文件路径列表 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": null,
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }
7.26 后台询问知识库接口
- URL:
/admin/knowledge/ask - 方法:
POST - 描述: 后台对指定知识库进行问答。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| ids | []int32 | 是 | 知识库ID列表 |
| engine | string | 是 | 引擎标识符 |
| message | string | 是 | 问题内容 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": [
{
"id": "响应ID",
"metadata": {
// 元数据
},
"embedding": [0.1, 0.2, ...],
"content": "响应内容",
"similarity": 0.95
}
],
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }问答失败
{ "code": -1, "success": false, "message": "问答失败", "time": 1698765432 }
7.27 前台询问知识库接口
- URL:
/user/knowledge/ask - 方法:
POST - 描述: 前台对指定知识库进行问答。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| ids | []int32 | 是 | 知识库ID列表 |
| engine | string | 是 | 引擎标识符 |
| message | string | 是 | 问题内容 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": [
{
"id": "响应ID",
"metadata": {
// 元数据
},
"embedding": [0.1, 0.2, ...],
"content": "响应内容",
"similarity": 0.95
}
],
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }问答失败
{ "code": -1, "success": false, "message": "问答失败", "time": 1698765432 }
7.28 删除知识库文件接口
- URL:
/admin/knowledge/deletefile - 方法:
GET - 描述: 删除指定的知识库文件。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 文件ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "删除成功",
"data": null,
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }删除失败
{ "code": -1, "success": false, "message": "删除失败", "time": 1698765432 }
7.29 删除清流知识库文件接口
- URL:
/admin/knowledge/deleteqlfile - 方法:
GET - 描述: 删除清流知识库中的文件。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 文件ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "删除成功",
"data": null,
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }删除失败
{ "code": -1, "success": false, "message": "删除失败", "time": 1698765432 }
7.30 添加知识库收藏接口
- URL:
/user/knowledge/addfavorites - 方法:
GET - 描述: 添加知识库到收藏列表。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 知识库ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "收藏成功",
"data": null,
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }收藏失败
{ "code": -1, "success": false, "message": "收藏失败", "time": 1698765432 }
7.31 上传翻译文件接口
- URL:
/user/translation/add - 方法:
POST - 描述: 用户上传文件进行翻译。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| source_lang | string | 否 | 源语言 |
| target_lang | string | 否 | 目标语言 |
| text | string | 是 | 翻译文本 |
| file_name | string | 否 | 文件名 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "添加成功",
"data": {
"filename": "文件名",
"old_path": "旧文件路径",
"new_path": "新文件路径",
"user_id": 用户ID,
"amount": 翻译金额,
"engine": "baidufanyi",
"add_time": 添加时间
},
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }翻译失败
{ "code": -1, "success": false, "message": "翻译失败", "time": 1698765432 }
7.32 前台获取翻译列表接口
- URL:
/user/translation/list - 方法:
GET - 描述: 获取用户的翻译列表。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| page | int | 否 | 页码 |
| limit | int | 否 | 每页数量 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "查询成功",
"data": {
"total": 总记录数,
"data": [
{
"filename": "文件名",
"old_path": "旧文件路径",
"new_path": "新文件路径",
"user_id": 用户ID,
"amount": 翻译金额,
"engine": "baidufanyi",
"add_time": 添加时间
}
]
},
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }查询失败
{ "code": -1, "success": false, "message": "查询翻译记录失败", "time": 1698765432 }
7.33 后台获取翻译列表接口
- URL:
/admin/translation/list - 方法:
GET - 描述: 获取管理员的翻译列表。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| page | int | 否 | 页码 |
| limit | int | 否 | 每页数量 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "查询成功",
"data": {
"total": 总记录数,
"data": [
{
"filename": "文件名",
"old_path": "旧文件路径",
"new_path": "新文件路径",
"user_id": 用户ID,
"amount": 翻译金额,
"engine": "baidufanyi",
"add_time": 添加时间
}
]
},
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }查询失败
{ "code": -1, "success": false, "message": "查询翻译记录失败", "time": 1698765432 }
7.34 删除翻译接口
- URL:
/admin/translation/delete - 方法:
DELETE - 描述: 删除指定的翻译记录。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | uint | 是 | 翻译记录ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "删除成功",
"data": null,
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }删除失败
{ "code": -1, "success": false, "message": "删除记录失败", "time": 1698765432 }
7.35 获取AI应用列表接口
- URL:
/admin/ai/applist - 方法:
GET - 描述: 获取AI应用的列表。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| page | int | 否 | 页码 |
| limit | int | 否 | 每页数量 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "查询成功",
"data": {
"total": 总记录数,
"list": [
{
"id": 应用ID,
"name": "应用名称",
"desc": "应用描述",
"engine": "引擎",
"model": "模型",
"knowledge_ids": "知识库ID列表",
"param_desc": "参数描述",
"top_p": TopP值,
"temperature": 温度值,
"max_token": 最大Token数,
"is_def": 是否默认,
"ref_id": "引用ID",
"add_time": 添加时间,
"up_time": 更新时间
}
]
},
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }查询失败
{ "code": -1, "success": false, "message": "查询AI应用记录失败", "time": 1698765432 }
7.36 创建AI应用前获取信息接口
- URL:
/admin/ai/appaddbefore - 方法:
GET - 描述: 创建AI应用前获取必要的信息。
请求参数
无
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "查询成功",
"data": {
"knowlageList": 知识库树状列表,
"engineList": 引擎列表
},
"time": 1698765432
}错误响应
查询失败
{ "code": -1, "success": false, "message": "查询失败", "time": 1698765432 }
7.37 创建AI应用接口
- URL:
/admin/ai/appadd - 方法:
POST - 描述: 创建新的AI应用。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| name | string | 是 | 应用名称 |
| desc | string | 否 | 应用描述 |
| engine | string | 是 | 引擎 |
| model | string | 是 | 模型 |
| knowledge_ids | string | 否 | 知识库ID列表 |
| param_desc | string | 否 | 参数描述 |
| top_p | float | 否 | TopP值 |
| temperature | float | 否 | 温度值 |
| max_token | int | 否 | 最大Token数 |
| is_def | int | 否 | 是否默认 |
| ref_id | string | 否 | 引用ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "添加成功",
"data": {
"id": 应用ID
},
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }添加失败
{ "code": -1, "success": false, "message": "添加AI应用记录失败", "time": 1698765432 }
7.38 更新AI应用前获取信息接口
- URL:
/admin/ai/appeditbefore - 方法:
GET - 描述: 更新AI应用前获取必要的信息。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 应用ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "查询成功",
"data": {
"data": AI应用数据,
"knowlageList": 知识库树状列表,
"engineList": 引擎列表
},
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }查询失败
{ "code": -1, "success": false, "message": "查询AI应用记录失败", "time": 1698765432 }
7.39 更新AI应用接口
- URL:
/admin/ai/appedit - 方法:
POST - 描述: 更新指定的AI应用。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 应用ID |
| name | string | 是 | 应用名称 |
| desc | string | 否 | 应用描述 |
| engine | string | 是 | 引擎 |
| model | string | 是 | 模型 |
| knowledge_ids | string | 否 | 知识库ID列表 |
| param_desc | string | 否 | 参数描述 |
| top_p | float | 否 | TopP值 |
| temperature | float | 否 | 温度值 |
| max_token | int | 否 | 最大Token数 |
| is_def | int | 否 | 是否默认 |
| ref_id | string | 否 | 引用ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "更新成功",
"data": {
"id": 应用ID
},
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }更新失败
{ "code": -1, "success": false, "message": "更新AI应用记录失败", "time": 1698765432 }
7.40 删除AI应用接口
- URL:
/admin/ai/appdelete/:id - 方法:
DELETE - 描述: 删除指定的AI应用。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 应用ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "删除成功",
"data": null,
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }删除失败
{ "code": -1, "success": false, "message": "删除AI应用记录失败", "time": 1698765432 }
7.41 前台AI应用对话接口
- URL:
/user/ai/chat - 方法:
POST - 描述: 用户与AI应用进行对话。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| message | string | 是 | 用户消息 |
| file_content | string | 否 | 文件内容 |
| file_name | string | 否 | 文件名 |
| web_search | bool | 否 | 是否进行网络搜索 |
| knowledge_id | int32 | 否 | 知识库ID |
| conversation_id | string | 否 | 对话ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
"content": "AI回复内容",
"request_id": "请求ID",
"document_slices": "文档片段",
"problems": "历史问题"
},
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }对话失败
{ "code": -1, "success": false, "message": "对话失败", "time": 1698765432 }
7.42 获取AI应用对话ID接口
- URL:
/user/ai/getid - 方法:
GET - 描述: 获取AI应用对话ID。
请求参数
无
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": "对话ID",
"time": 1698765432
}错误响应
获取失败
{ "code": -1, "success": false, "message": "获取对话ID失败", "time": 1698765432 }
7.43 获取AI应用对话记录接口
- URL:
/user/ai/getrecord - 方法:
GET - 描述: 获取AI应用对话记录。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| conversation_id | string | 是 | 对话ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": "对话记录",
"time": 1698765432
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }获取失败
{ "code": -1, "success": false, "message": "获取对话记录失败", "time": 1698765432 }
7.44 后台AI应用对话接口
- URL:
/admin/ai/chat - 方法:
POST - 描述: 管理员与AI应用进行对话。
请求参数
与前台AI应用对话接口相同。
响应参数
与前台AI应用对话接口相同。
7.45 创建词条接口
- URL:
/user/entry/create - 方法:
POST - 描述: 创建新的词条。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| title | string | 是 | 词条标题 |
| category_id | int | 是 | 分类ID |
| content | string | 是 | 词条内容 |
| cover | string | 否 | 封面图片 |
| tag_ids | []int | 否 | 标签ID列表 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "词条创建成功",
"data": {
"id": 词条ID,
"title": "词条标题",
"category_name": "分类名称",
"is_top": 是否置顶,
"is_recommended": 是否推荐,
"contributor": "贡献者",
"view": 浏览量,
"tags": ["标签1", "标签2"],
"cover": "封面图片",
"content": "词条内容",
"created_at": "创建时间",
"updated_at": "更新时间"
}
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }创建失败
{ "code": -1, "success": false, "message": "创建词条失败", "time": 1698765432 }
7.46 获取词条分类列表接口
- URL:
/user/entry/category - 方法:
GET - 描述: 获取词条分类列表。
请求参数
无
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
"list": [
{
"id": 分类ID,
"name": "分类名称"
}
]
}
}错误响应
获取失败
{ "code": -1, "success": false, "message": "获取词条分类失败", "time": 1698765432 }
7.47 增加词条浏览量接口
- URL:
/user/entry/view - 方法:
POST - 描述: 增加词条的浏览量。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | string | 是 | 词条ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "浏览量增加成功",
"data": null
}错误响应
参数错误
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }增加失败
{ "code": -1, "success": false, "message": "增加浏览量失败", "time": 1698765432 }
7.48 获取词条列表接口
- URL:
/user/entry/list - 方法:
GET - 描述: 获取词条列表。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| cursor | string | 否 | 游标 |
| limit | string | 否 | 每页数量 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
"list": [
{
"id": 词条ID,
"title": "词条标题",
"category_name": "分类名称",
"category_id": "分类ID",
"is_top": 是否置顶,
"is_recommended": 是否推荐,
"contributor": "贡献者",
"view": 浏览量,
"tags": ["标签1", "标签2"],
"tag_ids": ["标签ID1", "标签ID2"],
"cover": "封面图片",
"content": "词条内容",
"created_at": "创建时间",
"updated_at": "更新时间"
}
]
}
}错误响应
获取失败
{ "code": -1, "success": false, "message": "获取词条列表失败", "time": 1698765432 }
7.49 获取词条详情接口
- URL:
/user/entry/detail - 方法:
GET - 描述: 获取词条详情。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | string | 是 | 词条ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
"id": 词条ID,
"title": "词条标题",
"category_name": "分类名称",
"is_top": 是否置顶,
"is_recommended": 是否推荐,
"contributor": "贡献者",
"view": 浏览量,
"tags": ["标签1", "标签2"],
"cover": "封面图片",
"content": "词条内容",
"created_at": "创建时间",
"updated_at": "更新时间"
}
}错误响应
获取失败
{ "code": -1, "success": false, "message": "获取词条详情失败", "time": 1698765432 }
7.50 获取置顶词条接口
- URL:
/user/entry/top - 方法:
GET - 描述: 获取置顶词条。
请求参数
无
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
"list": [
{
"id": 词条ID,
"title": "词条标题",
"content": "词条内容",
"cover": "封面图片"
}
]
}
}错误响应
获取失败
{ "code": -1, "success": false, "message": "获取置顶词条失败", "time": 1698765432 }
7.51 获取推荐词条接口
- URL:
/user/entry/recommended - 方法:
GET - 描述: 获取推荐词条。
请求参数
无
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
"list": [
{
"id": 词条ID,
"title": "词条标题"
}
]
}
}错误响应
获取失败
{ "code": -1, "success": false, "message": "获取推荐词条失败", "time": 1698765432 }
7.52 获取热门词条接口
- URL:
/user/entry/hot - 方法:
GET - 描述: 获取热门词条。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| period | string | 是 | 时间段 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "获取热门词条成功",
"data": {
"list": [
{
"id": 词条ID,
"title": "词条标题",
"content": "词条内容",
"view": 浏览量
}
]
}
}错误响应
获取失败
{ "code": -1, "success": false, "message": "获取热门词条失败", "time": 1698765432 }
7.53 获取词条标签列表接口
- URL:
/user/tag/list - 方法:
GET - 描述: 获取词条标签列表。
请求参数
无
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": [
{
"id": 标签ID,
"name": "标签名称"
}
]
}错误响应
获取失败
{ "code": -1, "success": false, "message": "获取标签列表失败", "time": 1698765432 }
7.54 获取词条分类列表接口
- URL:
/user/category/list - 方法:
GET - 描述: 获取词条分类列表。
请求参数
无
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": [
{
"id": 分类ID,
"name": "分类名称"
}
]
}错误响应
获取失败
{ "code": -1, "success": false, "message": "获取分类列表失败", "time": 1698765432 }
7.55 获取分类词条列表接口
- URL:
/user/category/entry/list - 方法:
GET - 描述: 获取分类词条列表。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| category_id | string | 是 | 分类ID |
| page | string | 否 | 页码 |
| pageSize | string | 否 | 每页数量 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "获取分类词条列表成功",
"data": {
"list": [
{
"id": 词条ID,
"title": "词条标题",
"content": "词条内容",
"view": 浏览量
}
]
}
}错误响应
获取失败
{ "code": -1, "success": false, "message": "获取分类词条列表失败", "time": 1698765432 }
7.56 获取词条列表接口(管理员)
- URL:
/admin/entry/list - 方法:
GET - 描述: 管理员获取词条列表。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| page | string | 否 | 页码 |
| pageSize | string | 否 | 每页数量 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "success",
"data": {
"total": 总记录数,
"list": [
{
"id": 词条ID,
"title": "词条标题",
"category_name": "分类名称",
"category_id": "分类ID",
"is_top": 是否置顶,
"is_recommended": 是否推荐,
"contributor": "贡献者",
"view": 浏览量,
"tags": ["标签1", "标签2"],
"tag_ids": ["标签ID1", "标签ID2"],
"cover": "封面图片",
"content": "词条内容",
"created_at": "创建时间",
"updated_at": "更新时间"
}
]
}
}错误响应
获取失败
{ "code": -1, "success": false, "message": "获取词条列表失败", "time": 1698765432 }
7.57 编辑词条接口
- URL:
/admin/entry/edit - 方法:
POST - 描述: 管理员编辑词条。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 词条ID |
| title | string | 是 | 词条标题 |
| category_id | int | 是 | 分类ID |
| is_top | bool | 否 | 是否置顶 |
| is_recommended | bool | 否 | 是否推荐 |
| contributor | string | 否 | 贡献者 |
| view | int | 否 | 浏览量 |
| tags | []int | 否 | 标签ID列表 |
| cover | string | 否 | 封面图片 |
| content | string | 是 | 词条内容 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "编辑成功",
"data": {
"id": 词条ID,
"title": "词条标题",
"category_id": 分类ID,
"is_top": 是否置顶,
"is_recommended": 是否推荐,
"contributor": "贡献者",
"view": 浏览量,
"tags": ["标签1", "标签2"],
"cover": "封面图片",
"content": "词条内容",
"created_at": "创建时间",
"updated_at": "更新时间"
}
}错误响应
编辑失败
{ "code": -1, "success": false, "message": "编辑词条失败", "time": 1698765432 }
7.58 删除词条接口
- URL:
/admin/entry/delete - 方法:
GET - 描述: 管理员删除词条。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | string | 是 | 词条ID |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "删除成功",
"data": null
}错误响应
删除失败
{ "code": -1, "success": false, "message": "删除词条失败", "time": 1698765432 }
7.59 创建词条分类接口
- URL:
/admin/entry/category/create - 方法:
POST - 描述: 管理员创建词条分类。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| name | string | 是 | 分类名称 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "分类创建成功",
"data": {
"id": 分类ID,
"name": "分类名称"
}
}错误响应
创建失败
{ "code": -1, "success": false, "message": "创建分类失败", "time": 1698765432 }
7.60 创建词条标签接口
- URL:
/admin/entry/tag/create - 方法:
POST - 描述: 管理员创建词条标签。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| name | string | 是 | 标签名称 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "标签创建成功",
"data": {
"id": 标签ID,
"name": "标签名称"
}
}错误响应
创建失败
{ "code": -1, "success": false, "message": "创建标签失败", "time": 1698765432 }
7.61 钉钉系统设置前接口
- URL:
/admin/setting/dingbefore - 方法:
GET - 描述: 获取钉钉系统设置的当前配置。
请求参数
无
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "获取成功",
"data": {
"ding": {
"appKey": "应用Key",
"appSecret": "应用Secret",
"corpId": "企业ID",
"host": "主机地址",
"userLogin": 是否允许用户登录
}
}
}错误响应
获取失败
{ "code": -1, "success": false, "message": "查询失败", "time": 1698765432 }
7.62 保存钉钉系统设置接口
- URL:
/admin/setting/dingsave - 方法:
POST - 描述: 保存钉钉系统设置。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| appKey | string | 是 | 应用Key |
| appSecret | string | 是 | 应用Secret |
| corpId | string | 是 | 企业ID |
| host | string | 是 | 主机地址 |
| userLogin | bool | 是 | 是否允许用户登录 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "保存成功",
"data": null
}错误响应
保存失败
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }
7.63 手机号第三方登录设置前接口
- URL:
/admin/setting/phonebefore - 方法:
GET - 描述: 获取手机号第三方登录设置的当前配置。
请求参数
无
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "获取成功",
"data": {
"phone": {
"serviceType": "服务类型",
"universalCode": "通用代码",
"userLogin": 是否允许用户登录,
"enable": 是否启用
}
}
}错误响应
获取失败
{ "code": -1, "success": false, "message": "查询失败", "time": 1698765432 }
7.64 保存手机号第三方登录设置接口
- URL:
/admin/setting/phonesave - 方法:
POST - 描述: 保存手机号第三方登录设置。
请求参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| serviceType | string | 是 | 服务类型 |
| universalCode | string | 是 | 通用代码 |
| userLogin | bool | 是 | 是否允许用户登录 |
| enable | bool | 是 | 是否启用 |
响应参数
成功响应
{
"code": 0,
"success": true,
"message": "保存成功",
"data": null
}错误响应
保存失败
{ "code": -1, "success": false, "message": "参数错误", "time": 1698765432 }