🛡️ 蜀道安全AI系统 API文档

ShuDao SafeAI Backend API v1.0 | 基础路径: /apiv1

🔐 认证接口

POST /apiv1/auth/local_login
本地登录
用户名密码登录,返回JWT Token(需配置enable_local_login=true)
请求参数 (Body JSON)
username string - 用户名
password string - 密码
响应
200 token, userInfo

💬 AI对话接口

POST /apiv1/send_deepseek_message
发送DeepSeek消息
发送消息到AI模型,支持安全培训PPT生成、AI写作等业务类型
请求参数 (Body JSON)
message string - 用户消息
ai_conversation_id uint64 - 对话ID(可选)
business_type int - 业务类型(1:安全培训,2:AI写作)
exam_name string - 考试名称(可选)
POST /apiv1/stream/chat
流式聊天 (SSE)
流式输出AI回复,支持RAG检索增强生成
请求参数 (Body JSON)
message string - 用户消息
model string - 模型名称(可选)
响应
SSE text/event-stream
POST /apiv1/stream/chat-with-db
流式聊天(数据库集成)
流式聊天并自动保存对话记录到数据库
请求参数 (Body JSON)
message string - 用户消息
ai_conversation_id uint64 - 对话ID
business_type int - 业务类型
online_search_content string - 联网搜索内容
GET /apiv1/get_history_record
获取历史记录
获取当前用户的AI对话历史记录列表
请求参数
无参数,从Token获取用户ID
POST /apiv1/delete_conversation
删除对话
删除指定的AI对话
请求参数 (Body JSON)
ai_conversation_id uint64 - 对话ID
POST /apiv1/delete_history_record
删除历史记录
删除指定的历史记录
请求参数 (Body JSON)
id uint64 - 记录ID
POST /apiv1/intent_recognition
意图识别
识别用户输入的意图类型
请求参数 (Body JSON)
message string - 用户消息
GET /apiv1/get_chromadb_document
获取ChromaDB文档
从向量数据库检索相关文档并生成回答
请求参数 (Query)
query string - 查询内容
POST /apiv1/guess_you_want
猜你想问
根据上下文推荐相关问题
请求参数 (Body JSON)
context string - 上下文内容
GET /apiv1/get_user_recommend_question
用户输入推荐问题
用户输入时实时返回推荐问题
请求参数 (Query)
input string - 用户输入内容
GET /apiv1/online_search
联网搜索
执行联网搜索获取实时信息
请求参数 (Query)
query string - 搜索关键词
POST /apiv1/save_online_search_result
保存联网搜索结果
将联网搜索结果存入AIMessage表
请求参数 (Body JSON)
content string - 搜索结果内容
ai_message_id uint64 - 消息ID

📝 考试相关接口

POST /apiv1/exam/build_prompt
生成考试提示词
根据考试配置生成AI提示词
请求参数 (Body JSON)
exam_config object - 考试配置对象
POST /apiv1/exam/build_single_prompt
单题生成提示词
为单个题目重新生成提示词
请求参数 (Body JSON)
question_type string - 题目类型
context string - 上下文
POST /apiv1/re_modify_question
修改考试题目
修改已生成的考试题目内容
请求参数 (Body JSON)
ai_conversation_id uint64 - 对话ID
content string - 新内容
POST /apiv1/re_produce_single_question
重新生成单题
重新生成指定的单个考试题目
请求参数 (Body JSON)
question_id uint64 - 题目ID

🔍 隐患识别接口

POST /apiv1/hazard
隐患识别
使用YOLO模型识别图片中的安全隐患,返回标注后的图片
请求参数 (Body JSON)
scene_name string - 场景名称(模型类型)
image string - 图片OSS链接
date string - 日期
POST /apiv1/save_step
保存步骤
保存PPT生成步骤、JSON文件和封面图
请求参数 (Body JSON)
ai_conversation_id uint64 - 对话ID
step int - 步骤编号
ppt_json_url string - PPT JSON URL
cover_image string - 封面图URL
GET /apiv1/get_history_recognition_record
获取识别历史记录
获取当前用户的隐患识别历史记录
请求参数
无参数,从Token获取用户ID
GET /apiv1/get_recognition_record_detail
获取识别记录详情
获取指定识别记录的详细信息
请求参数 (Query)
recognition_record_id int64 - 记录ID
POST /apiv1/delete_recognition_record
删除识别记录
删除指定的隐患识别历史记录
请求参数 (Body JSON)
id uint64 - 记录ID
POST /apiv1/submit_evaluation
提交点评
用户对识别结果提交点评反馈
请求参数 (Body JSON)
id uint - 记录ID
scene_match int - 场景匹配度
tip_accuracy int - 提示准确度
effect_evaluation int - 效果评价
user_remark string - 用户备注
GET /apiv1/get_latest_recognition_record
获取最新识别记录
查询用户最新的一条识别记录是否已点评
请求参数
无参数,从Token获取用户ID
GET /apiv1/get_third_scene_example_image
获取三级场景示例图
获取隐患识别三级场景的正确和错误示例图
请求参数 (Query)
third_scene_name string - 三级场景名称

📁 OSS文件上传接口

POST /apiv1/oss/upload
获取上传凭证
生成S3预签名上传凭证,用于前端直传OSS
响应
url - 上传地址
fields - 签名字段
expire - 过期时间
POST /apiv1/oss/shudao/upload_image
上传图片
上传图片到OSS,自动压缩到200KB以下
请求参数 (FormData)
image file - 图片文件(≤10MB)
响应
fileUrl - 代理访问URL
fileName - 文件名
fileSize - 文件大小
POST /apiv1/oss/shudao/upload_json
上传PPT JSON文件
上传PPT配置JSON文件到OSS
请求参数 (FormData)
json file - JSON文件(≤50MB)
响应
fileUrl - 代理访问URL
GET /apiv1/oss/parse
OSS代理解析
代理转发OSS URL请求,解密并获取文件内容
请求参数 (Query)
url string - 加密的OSS URL

🔧 通用功能接口

GET /apiv1/recommend_question
获取推荐问题
随机返回推荐问题列表
请求参数 (Query)
limit int - 数量(默认5)
GET /apiv1/get_function_card
获取功能卡片
随机返回4条功能卡片
请求参数 (Query)
function_type int - 类型(0:AI问答,1:安全培训)
GET /apiv1/get_hot_question
获取热点问题
随机返回4条热点问题
请求参数 (Query)
question_type int - 类型(0:AI问答,1:安全培训)
POST /apiv1/submit_feedback
提交意见反馈
用户提交意见反馈信息
请求参数 (Body JSON)
content string - 反馈内容
contact string - 联系方式
POST /apiv1/like_and_dislike
点赞/踩
对AI回复进行点赞或踩的反馈
请求参数 (Body JSON)
id uint - 消息ID
user_feedback int - 反馈(1:赞,-1:踩)
GET /apiv1/get_user_data_id
获取用户数据ID
根据account_id获取用户数据主键ID
请求参数
无参数,从Token获取account_id

📄 政策文件接口

GET /apiv1/get_policy_file
获取政策文件列表
分页获取政策文件列表,支持类型筛选和搜索
请求参数 (Query)
policy_type int - 政策类型(0:全部)
search string - 搜索关键词
page int - 页码
pageSize int - 每页数量
GET /apiv1/download_file
下载文件
从OSS链接下载文件并返回给前端
请求参数 (Query)
pdf_oss_download_link string - OSS下载链接
file_name string - 自定义文件名(可选)
POST /apiv1/policy_file_count
政策文件统计
政策文件查看和下载次数+1
请求参数 (Body JSON)
policy_file_id int - 政策文件ID
action_type int - 操作类型(1:查看,2:下载)
GET /apiv1/get_file_link
获取文件链接
根据文件名从数据库查找对应的OSS链接
请求参数 (Query)
file_name string - 文件名
GET /apiv1/knowledge/files/advanced-search
知识库高级搜索
从ChromaDB向量数据库进行高级文件搜索
请求参数 (Query)
query_str string - 查询字符串
n_results int - 结果数量(默认50)
POST /apiv1/save_ppt_outline
保存PPT大纲
保存AI生成的PPT大纲内容
请求参数 (Body JSON)
ai_conversation_id uint64 - 对话ID
outline string - 大纲内容
POST /apiv1/save_edit_document
保存编辑文档
AI写作保存编辑后的文档内容
请求参数 (Body JSON)
ai_message_id uint64 - 消息ID
content string - 文档内容

💰 积分系统接口

GET /apiv1/points/balance
获取积分余额
获取当前用户的积分余额
请求参数
无参数,从Token获取用户ID
响应
points - 积分余额
POST /apiv1/points/consume
消费积分
消费积分下载文件(每次10积分)
请求参数 (Body JSON)
file_name string - 文件名
file_url string - 文件URL
响应
new_balance - 新余额
points_consumed - 消费积分
GET /apiv1/points/history
获取消费记录
分页获取用户的积分消费历史记录
请求参数 (Query)
page int - 页码(默认1)
pageSize int - 每页数量(默认10)

📊 埋点记录接口

POST /apiv1/tracking/record
记录埋点数据
记录用户行为埋点数据
请求参数 (Body JSON)
api_path string - 接口路径
method string - 请求方法
extra_data string - 额外数据(可选)
GET /apiv1/tracking/records
获取埋点记录
分页获取埋点记录列表
请求参数 (Query)
user_id int - 用户ID(可选)
api_path string - 接口路径(可选)
page int - 页码(默认1)
page_size int - 每页数量(默认20)
POST /apiv1/tracking/api_mapping
添加接口映射
添加接口路径到名称的映射关系
请求参数 (Body JSON)
api_path string - 接口路径
api_name string - 接口名称
api_desc string - 接口描述(可选)
GET /apiv1/tracking/api_mappings
获取接口映射列表
获取所有接口路径映射关系
请求参数
无参数

蜀道安全AI系统 API文档 v1.0 | 共 45 个接口

基础路径: /apiv1 | 认证方式: JWT Token (Header: Authorization)

生成时间: 2024年12月