fix: AI分类完全不可用,移除system()调用改用合并prompt方式 (v1.1.2)

This commit is contained in:
sunny-335
2026-06-24 16:34:02 +08:00
parent 122069e221
commit 5337a62a13
8 changed files with 138 additions and 18 deletions
+16
View File
@@ -1,5 +1,21 @@
# 更新日志
## v1.1.2
> 2026-06-24
### Bug 修复
- **修复 AI 分类完全不可用** — `classifyWithChoice``classifyWithChat` 均使用了 `GenerateTextRequest.Builder.system()` 方法,而该方法在当前 AI Foundation 版本中不被支持或导致运行时错误,导致所有评论均被拦截并显示"AI分类服务不可用,安全拦截"。现改为将 system prompt 合并到 user prompt 中,与可用的 `chat()` 方法保持一致的调用方式
- **修复 `classifyWithChoice` NPE** — `.map()` 返回 `null` 时触发 Reactor 内部 NullPointerException,改为 `.flatMap()` + `Mono.empty()` 正确触发 fallback
### 改进
- **分类调用诊断日志增强** — 在 `AiFoundationDelegate``AiFoundationClient``CommentPreFilterService` 中增加关键诊断日志(分类开始、fallback 触发、分类结果、异常详情),便于排查分类链路问题
- **AI 分类空结果处理** — 当 AI 返回空字符串时单独拦截,区别于"服务不可用"场景
---
## v1.1.0
> 2026-06-23
+15
View File
@@ -92,6 +92,21 @@
前置过滤默认启用。AI 会对评论进行分类判断,若 AI 服务不可用或分类失败,为安全起见会拦截评论而非放行。如果你发现正常评论被误拦截,可以在设置中关闭"启用前置过滤"开关。被拦截的评论会在日志页生成一条"已拦截"状态的记录,可查看具体分类标签和拦截原因。
## 所有评论都显示"AI分类服务不可用,安全拦截"怎么办?
这表示 AI 分类调用链路存在问题,可能的原因:
1. **AI Foundation 插件未安装或未启用** — 请确保 AI Foundation 插件已正确安装并启用
2. **AI Foundation 中未配置模型** — 请在 AI Foundation 中配置至少一个 AI 模型
3. **模型名称配置错误** — 检查插件设置中的模型名称是否与 AI Foundation 中的 AiModel 资源名称一致,留空则使用默认模型
4. **AI Foundation 版本过旧** — 请确保使用最新版本的 AI Foundation 插件
::: tip 排查步骤
1. 检查插件设置页面顶部的 AI Foundation 连接状态
2. 查看插件日志中 `[Delegate]``[PreFilter]` 前缀的诊断信息
3. 确认 AI 回复功能(非前置过滤)是否正常工作 — 如果 AI 回复也无法生成,说明是 AI Foundation 连接问题
:::
## 被前置过滤拦截的评论会怎样?
1. **停止生成 AI 回复** — 不会消耗后续 Token