# 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) 请求示例(非流式): ```json { "prompt": "帮我写一个退款流程说明" } ``` ### 3.2 知识库(RAG) - `POST /api/ai/kb/upload`:上传文档入库(建议 txt/md/html) - `POST /api/ai/kb/sync/cms`:同步 CMS 已发布文章到知识库(当前租户) - `POST /api/ai/kb/query`:仅检索 topK - `POST /api/ai/kb/ask`:检索 + 生成答案(答案要求引用 chunk_id) 请求示例(ask): ```json { "question": "怎么开具发票?", "topK": 5 } ``` ### 3.3 商城订单分析(按租户/按天) - `POST /api/ai/analytics/query`:返回按天指标数据 - `POST /api/ai/analytics/ask`:基于指标数据生成分析结论 请求示例(ask): ```json { "question": "最近30天支付率有没有明显下滑?请给出原因排查建议。", "startDate": "2026-02-01", "endDate": "2026-02-27" } ```