feat(compliance): content moderation on model input and output — local lexicon, Aliyun adapter, free completion, admin log

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
This commit is contained in:
Jesse_Chen
2026-09-30 09:42:11 +08:00
co-authored by Claude Opus 5.5
parent e742da268d
commit 4f3d8d7c62
28 changed files with 1143 additions and 6 deletions
+7
View File
@@ -22,6 +22,13 @@ Jyotisha 的可见文案是产品的一部分。正确性红线(真实性、
首页开场语下面可以有一行今日趋势(今日星语卡片的 trend,每日生成);还没生成时写「今天的星语还没写出来。」,没有出生分钟时不写。入口按钮下面平时不写字,只在用户需要动手时写一句:有没做完的校正写「上次那次校正还没完成,可以在历史对话里接着做。」;当前人物不是本人写「生时校正暂时只支持本人。」。不再写「不确定出生时间时,用记得住的经历一步步缩小范围」「上次已经校正完,可以拿最新资料再来一次」,也不要用「·」把两句不相干的提示拼成一行。
## 内容审核的三句话(2026-09-30,合规轮)
- 用户输入被拦:「这个话题我们不能讨论,换个问题试试。」——一句,不说教、不解释规则、不说「违规」。
- 涉及自伤:「听起来你现在很难受。请马上联系身边信任的人,或拨打心理援助热线 12356;如果有紧急危险,请拨打 110 或 120。」——先共情、给出路,不拒绝、不评判(热线号码上线前请法务/产品确认)。
- 模型回答被撤下:「这段回答里有不适合展示的内容,已经撤下,本次不扣点。换个问法再试试。」——说清发生了什么、钱没扣、下一步。
- 三句都在 `src/lib/moderation/index.ts`,改文案只改那里。
## 性别(选填)(2026-09-27,TASK-consult-gender-optional)
- 标题「性别(选填)」,三个选项「女」「男」「不填」;下面只有一行说明:「用于婚恋解读里判断夫星 / 妻星,不填也能用。」不解释为什么只有两项,不劝用户填。