fix(ai): prevent customer iccid disclosure

This commit is contained in:
t
2026-08-30 19:52:45 +08:00
parent c39094156c
commit 2994cd5b2c
7 changed files with 122 additions and 5 deletions
@@ -62,6 +62,26 @@ func TestReplyCommitRejectsSensitiveModelOutput(t *testing.T) {
}
}
func TestReplyCommitRedactsICCIDBeforePersisting(t *testing.T) {
db := setupReplyCommitTestDB(t)
aiAgent := createReplyCommitTestAIAgent(t, db)
conversation := createReplyCommitTestConversation(t, db, aiAgent.ID)
replyMessage, err := newReplyCommitService().CommitAIReply(replyCommitInput{
Conversation: *conversation, Message: models.Message{ID: 104, RequestID: "trace-104"}, AIAgent: *aiAgent,
ReplyText: "业务状态:正常\nICCID8986042302268012345", ClientPrefix: "ai_reply",
})
if err != nil {
t.Fatalf("CommitAIReply() error = %v", err)
}
var stored models.Message
if err := db.First(&stored, replyMessage.ID).Error; err != nil {
t.Fatalf("find reply message: %v", err)
}
if strings.Contains(stored.Content, "8986042302268012345") || !strings.Contains(stored.Content, "系统内部标识") {
t.Fatalf("ICCID was persisted in customer reply: %q", stored.Content)
}
}
func TestFailureReplyDeduplicatesByDeterministicClientMessageID(t *testing.T) {
db := setupReplyCommitTestDB(t)
aiAgent := createReplyCommitTestAIAgent(t, db)