- 添加Ollama配置参数,包括基础URL、模型设置、超时配置等 - 创建AI知识库相关数据库表(文档表和分段表) - 实现AI数据分析服务,支持订单数据查询和分析 - 开发AI聊天控制器,提供模型列表、对话和流式对话功能 - 构建知识库RAG服务,支持文档上传、CMS同步和问答功能 - 添加多种AI相关的DTO类和实体类 - 实现AI嵌入向量计算和相似度匹配算法 - 集成Tika用于文档内容提取和解析
AI 模块(Ollama + RAG + 订单分析)
1. 配置
见 src/main/resources/application.yml:
ai.ollama.base-url:主地址(例如https://ai-api.websoft.top)ai.ollama.fallback-url:备用地址(例如http://47.119.165.234:11434)ai.ollama.chat-model:对话模型(qwen3.5:cloud)ai.ollama.embed-model:向量模型(qwen3-embedding:4b)
2. 建表(知识库)
执行:docs/ai/ai_kb_tables.sql
3. API
说明:所有接口默认需要登录(@PreAuthorize("isAuthenticated()")),并且要求能够拿到 tenantId(header 或登录用户)。
3.1 对话
GET /api/ai/models:获取 Ollama 模型列表POST /api/ai/chat:非流式对话POST /api/ai/chat/stream:流式对话(SSE)GET /api/ai/chat/stream?prompt=...:流式对话(SSE,适配 EventSource)
请求示例(非流式):
{
"prompt": "帮我写一个退款流程说明"
}
3.2 知识库(RAG)
POST /api/ai/kb/upload:上传文档入库(建议 txt/md/html)POST /api/ai/kb/sync/cms:同步 CMS 已发布文章到知识库(当前租户)POST /api/ai/kb/query:仅检索 topKPOST /api/ai/kb/ask:检索 + 生成答案(答案要求引用 chunk_id)
请求示例(ask):
{
"question": "怎么开具发票?",
"topK": 5
}
3.3 商城订单分析(按租户/按天)
POST /api/ai/analytics/query:返回按天指标数据POST /api/ai/analytics/ask:基于指标数据生成分析结论
请求示例(ask):
{
"question": "最近30天支付率有没有明显下滑?请给出原因排查建议。",
"startDate": "2026-02-01",
"endDate": "2026-02-27"
}