no message
This commit is contained in:
@@ -13,6 +13,205 @@
|
||||
|
||||
## 一、已完成事项
|
||||
|
||||
### 36. 用户主页底部间隔优化
|
||||
|
||||
- 状态:已完成 - 时间:2026-06-11
|
||||
|
||||
完成内容:
|
||||
- `/packages_community/pages/user_profile` 移除 `scroll-view` 基于 `windowHeight` 的 JS 高度计算,改为页面根容器纵向 flex 布局。
|
||||
- 内容区使用 `flex: 1; height: 0; min-height: 0` 自适应剩余空间,并补充底部安全区 padding,避免 Android/iOS 端底部出现灰色间隔。
|
||||
- H5 移动视口截图抽样确认底部为白色;`npm run build:h5` 与 `npm run build:app` 均已通过。
|
||||
|
||||
涉及模块:
|
||||
- `uniapp/src/packages_community/pages/user_profile.vue`
|
||||
|
||||
### 35. 帖子加好友与私聊 v1
|
||||
|
||||
- 状态:已完成 - 时间:2026-06-11
|
||||
|
||||
完成内容:
|
||||
- “好友”复用社区关注关系 `la_community_follow`,帖子作者区、他人主页、我的关注/粉丝列表均新增“加好友/已好友”和“私聊”入口,不新增好友申请/同意流程。
|
||||
- 新增前台私聊接口 `/api/chat/sessions`、`/api/chat/open`、`/api/chat/messages`、`/api/chat/send`,登录后可查看会话、打开会话、轮询消息和发送文字/图片消息。
|
||||
- 新增私聊数据表初始化 SQL:`docs/sql/create_private_chat_tables.sql`,包含 `la_private_chat_session` 与 `la_private_chat_message`,SQL 使用 `CREATE TABLE IF NOT EXISTS` 保持幂等。
|
||||
- 私聊会话和消息返回关系状态 `is_followed_by_me`、`is_following_me`、`is_mutual`、`relationship_text`;未互关时聊天页顶部和首屏提示展示“不是好友”。
|
||||
- uni-app 新增 `src/api/chat.ts`、`/pages/private_chat/list` 会话列表、`/pages/private_chat/room` 聊天室,聊天室每 3 秒通过 `after_id` 轮询新消息,页面隐藏/卸载时停止轮询。
|
||||
- 个人中心新增“私聊消息”入口,并展示 `chat_unread_count` 未读数;`/api/community/userStats` 同步返回私聊未读总数。
|
||||
|
||||
涉及模块:
|
||||
- `server/app/api/controller/ChatController.php`
|
||||
- `server/app/api/controller/CommunityController.php`
|
||||
- `server/app/common/model/chat/PrivateChatSession.php`
|
||||
- `server/app/common/model/chat/PrivateChatMessage.php`
|
||||
- `server/app/common/service/chat/PrivateChatService.php`
|
||||
- `uniapp/src/api/chat.ts`
|
||||
- `uniapp/src/pages/private_chat/list.vue`
|
||||
- `uniapp/src/pages/private_chat/room.vue`
|
||||
- `uniapp/src/packages_community/pages/post_detail.vue`
|
||||
- `uniapp/src/packages_community/pages/user_profile.vue`
|
||||
- `uniapp/src/pages/my_follow/my_follow.vue`
|
||||
- `uniapp/src/pages/user/user.vue`
|
||||
- `docs/sql/create_private_chat_tables.sql`
|
||||
- `qa/backend/test_private_chat_api.py`
|
||||
|
||||
验证记录:
|
||||
- 已执行新增/修改 PHP 文件 `php -l`,语法检查通过。
|
||||
- 已执行 `uniapp` 的 `npm run build:h5`,H5 构建通过并复制到 `server/public/mobile`。
|
||||
- `qa/backend/test_private_chat_api.py` 已确认可由 `C:\Python311\python.exe` 启动;当前环境缺少 `PRIVATE_CHAT_TOKEN_A`、`PRIVATE_CHAT_TOKEN_B`、`PRIVATE_CHAT_TARGET_USER_ID`,未进入真实接口请求阶段。
|
||||
|
||||
### 34. AI 助手等待回复读秒
|
||||
|
||||
- 状态:已完成 - 时间:2026-06-11
|
||||
|
||||
完成内容:
|
||||
- `/pages/ai_assistant/ai_assistant` 在助手 pending 气泡中新增“分析用时”读秒展示,发送消息后从 `0m0s` 开始逐秒更新。
|
||||
- 接口成功或失败后停止计时并替换为正式回答或失败提示;完成后的历史消息不持久化本地计时字段。
|
||||
- 页面卸载时清理计时器,避免切页后 interval 继续运行。
|
||||
|
||||
涉及模块:
|
||||
- `uniapp/src/pages/ai_assistant/ai_assistant.vue`
|
||||
|
||||
### 33. AI 助手测试服接口 500/403 修复
|
||||
|
||||
- 状态:已完成 - 时间:2026-06-11
|
||||
|
||||
完成内容:
|
||||
- 测试服补执行 `docs/sql/create_ai_assistant_tables.sql`,创建 `la_ai_chat_session`、`la_ai_chat_message` 并写入 `assistant_%` 配置,修复 `/api/assistant/sessions` 因缺表导致的 500。
|
||||
- `AiAssistantService` 的助手模型调用改为优先读取 `qwen_api_key` / `qwen_base_url` / `qwen_model`,并回退 `server/.env` 的 `DASHSCOPE_API_KEY`;未配置 Qwen 时才使用现有默认客户端。
|
||||
- 前台助手失败时返回通用“暂时不可用”文案,真实下游错误继续写入 `la_ai_chat_message.error_msg`,便于后台排查。
|
||||
|
||||
涉及模块:
|
||||
- `server/app/common/service/ai/AiAssistantService.php`
|
||||
- `docs/sql/create_ai_assistant_tables.sql`
|
||||
|
||||
### 32. 世博头条 AI 助手 v1
|
||||
|
||||
- 状态:已完成 - 时间:2026-06-11
|
||||
|
||||
完成内容:
|
||||
- 新增前台 `/api/assistant/chat`、`/api/assistant/sessions`、`/api/assistant/messages`、`/api/assistant/clear`,支持匿名 `client_id` 与登录用户两类会话隔离。
|
||||
- 新增 AI 助手会话表与消息表初始化 SQL:`docs/sql/create_ai_assistant_tables.sql`,并追加 `assistant_%` 配置项。
|
||||
- 新增 `AiAssistantService` 与 `AiAssistantContextService`,复用 GPT 中转客户端、`KbService::retrieve()`、AI 调用日志和 Redis 频控。
|
||||
- 知识库召回覆盖资讯、社区、彩票,并扩展 `match:event` 赛事知识库文档生成;加密行情按币种实时查询 Binance ticker 后注入上下文。
|
||||
- uni-app 新增 `/pages/ai_assistant/ai_assistant` 页面、`src/api/assistant.ts`、首页入口和个人中心入口,支持快捷问题、历史会话、引用来源跳转和匿名对话。
|
||||
|
||||
涉及模块:
|
||||
- `server/app/api/controller/AssistantController.php`
|
||||
- `server/app/common/service/ai/AiAssistantService.php`
|
||||
- `server/app/common/service/ai/AiAssistantContextService.php`
|
||||
- `server/app/common/service/ai/KbService.php`
|
||||
- `uniapp/src/pages/ai_assistant/ai_assistant.vue`
|
||||
- `uniapp/src/api/assistant.ts`
|
||||
- `docs/sql/create_ai_assistant_tables.sql`
|
||||
|
||||
### 31. AI 生成与图片识别切换到 GPT 中转
|
||||
|
||||
- 状态:已完成 - 时间:2026-06-10
|
||||
|
||||
完成内容:
|
||||
- `DeepSeekClient` 保留历史类名以兼容既有引用,但默认提供商已硬编码切换为 GPT 中转,base url 为 `https://sub2.congmingai.com`,默认模型 `gpt-5.5`。
|
||||
- 客户端新增 OpenAI Responses API wire 支持,请求路径自动拼接 `/v1/responses`,并兼容 `output_text` 与 `output[].content[].text` 两类返回结构。
|
||||
- 社区帖子 RAG 最终生成从 Qwen 固定配置改为 GPT 中转,并显式传入 `wire_api=responses`。
|
||||
- 旧澳/新澳六合彩图片识别链路从 DashScope Qwen 改为 GPT 中转,图片仍会先转为 data URL 后提交,降低第三方图片 URL 被模型侧拒绝的概率。
|
||||
- AI 日志模型 fallback 改为 `gpt-5.5`;知识库 Embedding 暂保留原有 embedding 配置,避免用生成模型替代向量模型导致召回不可用。
|
||||
|
||||
涉及模块:
|
||||
- `server/app/common/service/ai/DeepSeekClient.php`
|
||||
- `server/app/common/service/ai/KbRagService.php`
|
||||
- `server/app/common/service/ai/AiService.php`
|
||||
|
||||
### 30. 帖子 AI 分析页展示原图并改为看图自由分析
|
||||
|
||||
- 状态:已完成 - 时间:2026-06-10
|
||||
|
||||
完成内容:
|
||||
- `/pages/ai_analysis/ai_analysis` 在帖子 AI 分析场景新增原帖图片展示,读取 `/api/community/postDetail` 返回的 `images`,支持点击预览。
|
||||
- 帖子分析结果新增 `图片解读` 与 `诗句字谜` 展示区,对应后端返回的 `image_interpretation` 与 `poem_analysis` 字段。
|
||||
- 旧澳/新澳六合彩帖子分析改为只依据当前帖子文案与图片识别内容自由解读,不再要求依赖知识库证据,也不会把“知识库证据不足”作为主结论。
|
||||
- 后端归一化阶段新增兜底过滤:新澳六合、旧澳六合帖子如果模型仍返回“知识库”相关表述,会替换为“仅依据当前图片和帖子文案解读”的口径。
|
||||
- 后端新增 `analysis_source=image_free_v1` 缓存版本标记,并要求六合彩帖子缓存命中该标记,避免继续复用旧的知识库不足缓存。
|
||||
- 图片内容识别仍保留理性风险提示,但允许围绕诗句、字谜、藏宝图、生肖、波色、尾数、胆码、旺弱号码等当前图片内容进行自由分析。
|
||||
- 前端补充 AI 响应安全解包,避免请求异常或旧路由返回空数据时出现 `Cannot read properties of undefined (reading 'analysis')`。
|
||||
- `/api/community/aiAnalysis` 新增 `force=1` 支持;前端发现旧版缓存缺少 `analysis_source=image_free_v1` 时,会自动强制刷新并重新生成看图分析。
|
||||
|
||||
涉及模块:
|
||||
- `server/app/common/service/ai/KbRagService.php`
|
||||
- `server/app/common/service/ai/AiService.php`
|
||||
- `server/app/api/controller/CommunityController.php`
|
||||
- `uniapp/src/api/community.ts`
|
||||
- `uniapp/src/pages/ai_analysis/ai_analysis.vue`
|
||||
|
||||
### 29. AI 分析长请求断线后轮询结果
|
||||
|
||||
- 状态:已完成 - 时间:2026-06-10
|
||||
|
||||
完成内容:
|
||||
- 社区帖子 AI 分析新增 `/api/community/aiAnalysisResult` 只读结果接口,只查询 `la_ai_analysis` 成功缓存,不触发图片识别、知识库召回或 LLM 生成。
|
||||
- `/pages/ai_analysis/ai_analysis` 帖子分析主请求如果遇到 `timeout / request:fail / abort`,不再立即退出失败态,而是继续 loading 并轮询缓存结果,最多等待约 `120` 秒。
|
||||
- 轮询期间如果测试服尚未同步新接口或返回异常,会低频回退查询原 `/community/aiAnalysis`,优先命中已生成缓存,避免页面直接报“网络失败”。
|
||||
- AI 请求前端超时从 `3` 分钟放宽到 `5` 分钟;`docs/sql/insert_qwen_ai_config.sql` 中 `ai_request_timeout` 默认值和更新语句同步改为 `300` 秒。
|
||||
- 本地尝试直连测试库更新 `la_ai_config.ai_request_timeout=300` 时被 MySQL 拒绝访问,需在有数据库权限的环境执行对应 SQL 后才算线上配置完全生效。
|
||||
|
||||
涉及模块:
|
||||
- `server/app/api/controller/CommunityController.php`
|
||||
- `uniapp/src/api/aiRequest.ts`
|
||||
- `uniapp/src/api/community.ts`
|
||||
- `uniapp/src/pages/ai_analysis/ai_analysis.vue`
|
||||
- `docs/sql/insert_qwen_ai_config.sql`
|
||||
|
||||
### 28. 社区帖子 AI 分析 request:fail 稳定性优化
|
||||
|
||||
- 状态:已完成 - 时间:2026-06-10
|
||||
|
||||
完成内容:
|
||||
- 复测 `/api/community/aiAnalysis?post_id=5310`,测试服当前已稳定返回 `code=1` JSON,并命中帖子 AI 分析缓存,不再返回 ThinkPHP 500 HTML。
|
||||
- 针对 uni-app 端长耗时 AI 请求补充 `ignoreCancel=true`,避免 `/community/aiAnalysis` 这类相同 URL 的长请求被全局请求取消器误 abort,前端表现为 `request:fail`。
|
||||
- AI 分析页补充 `abort` 与通用 `request:fail` 错误文案,用户侧不再直接暴露底层错误字符串。
|
||||
- 已执行 `npm run build:h5` 验证通过;构建产物复制到 `server/public/mobile`。
|
||||
|
||||
涉及模块:
|
||||
- `uniapp/src/api/aiRequest.ts`
|
||||
- `uniapp/src/pages/ai_analysis/ai_analysis.vue`
|
||||
|
||||
### 27. 全站 AI 默认提供商切换为 DashScope Qwen
|
||||
|
||||
- 状态:已完成 - 时间:2026-06-10
|
||||
|
||||
完成内容:
|
||||
- OpenAI-compatible 聊天客户端默认提供商已从 `deepseek_*` 配置切换为 DashScope Qwen,默认模型 `qwen3.7-plus`,默认 base url 为 `https://dashscope.aliyuncs.com/compatible-mode`。
|
||||
- `DeepSeekClient` 保留历史类名以兼容服务器同步和既有引用,但内部默认提供商已改为 DashScope Qwen。
|
||||
- `DASHSCOPE_API_KEY` 作为默认密钥来源;后台 `qwen_api_key` 留空时自动回退到 `.env`,避免密钥硬编码。
|
||||
- 赛事分析、资讯分析、彩票分析、帖子分析、用户可信度分析、文章评论生成等所有默认 LLM 生成链路现在统一走 Qwen;帖子图片识别原本已走 Qwen,保持一致。
|
||||
- 知识库 Embedding 默认也切换为 DashScope compatible 接口,默认模型 `text-embedding-v4`、默认维度 `1024`,避免向量召回因 `embedding_*` 未配置而退化。
|
||||
- 后台知识库配置列表已放开 `qwen_%` 配置项,并新增幂等 SQL `docs/sql/insert_qwen_ai_config.sql`;当前测试库已执行该 SQL。
|
||||
|
||||
涉及模块:
|
||||
- `server/app/common/service/ai/DeepSeekClient.php`
|
||||
- `server/app/common/service/ai/EmbeddingClient.php`
|
||||
- `server/app/common/service/ai/AiService.php`
|
||||
- `server/app/adminapi/lists/ai/KbConfigLists.php`
|
||||
- `docs/sql/insert_qwen_ai_config.sql`
|
||||
|
||||
### 26. AI 分析页长耗时请求超时优化
|
||||
|
||||
- 状态:已完成 - 时间:2026-06-10
|
||||
|
||||
完成内容:
|
||||
- `/pages/ai_analysis/ai_analysis` 使用的赛事分段分析、资讯分析和帖子分析请求已改为 AI 专属 3 分钟超时,不再受全局普通接口 `60s` 超时限制。
|
||||
- 长耗时 AI GET 请求已禁用自动超时重试,避免一次模型分析尚未返回时又重复触发新的 LLM/RAG 请求。
|
||||
- 请求封装已修复“禁用重试后 timeout 错误丢失”的问题,超时会继续把原始错误交给页面处理。
|
||||
- AI 分析页补充字符串错误和 `errMsg` 兼容,超时时显示更明确的“耗时较长/稍后重试”提示;加载超过 60 秒时会提示正在结合知识库与模型继续推理。
|
||||
- 同步给彩票 AI 分析类接口套用相同长超时策略,减少后续彩票模块 AI 请求被前端提前截断。
|
||||
- 后端 OpenAI-compatible 模型客户端的固定 `60s` cURL 超时已改为可配置 `ai_request_timeout`,默认 `180s`,并增加连接超时,避免前端已延长但后端先断开。
|
||||
|
||||
涉及模块:
|
||||
- `server/app/common/service/ai/DeepSeekClient.php`
|
||||
- `uniapp/src/api/aiRequest.ts`
|
||||
- `uniapp/src/api/ai.ts`
|
||||
- `uniapp/src/api/community.ts`
|
||||
- `uniapp/src/api/lottery.ts`
|
||||
- `uniapp/src/pages/ai_analysis/ai_analysis.vue`
|
||||
- `uniapp/src/utils/request/http.ts`
|
||||
|
||||
### 25. 社区帖子 RAG 生成模型切换到 Qwen3.7
|
||||
|
||||
- 状态:已完成 - 时间:2026-06-10
|
||||
|
||||
Reference in New Issue
Block a user