refactor: remove Subject field from Conversation model and related logic, replace with CustomerName

This commit is contained in:
mlogclub
2026-04-27 19:22:40 +08:00
parent 2d2d2d2051
commit 3a9bc4914a
24 changed files with 49 additions and 64 deletions
@@ -84,9 +84,6 @@ func buildAnalyzeConversationResult(conversation models.Conversation, messages [
func buildConversationSummary(conversation models.Conversation, messages []models.Message, input AnalyzeConversationInput) string {
parts := make([]string, 0, 4)
if strings.TrimSpace(conversation.Subject) != "" {
parts = append(parts, "会话主题:"+strings.TrimSpace(conversation.Subject))
}
if input.ObservedIssue != "" {
parts = append(parts, "当前问题:"+input.ObservedIssue)
} else if strings.TrimSpace(conversation.LastMessageSummary) != "" {
@@ -103,7 +100,6 @@ func buildConversationSummary(conversation models.Conversation, messages []model
func buildConversationCorpus(conversation models.Conversation, messages []models.Message, input AnalyzeConversationInput) string {
parts := make([]string, 0, len(messages)+4)
parts = append(parts, strings.TrimSpace(conversation.Subject))
parts = append(parts, strings.TrimSpace(conversation.LastMessageSummary))
parts = append(parts, input.Goal, input.ObservedIssue, input.AdditionalContext)
for i := range messages {
@@ -200,9 +196,6 @@ func recommendQuestions(intent string, signals []string, input AnalyzeConversati
func buildConversationAnalysisFacts(conversation models.Conversation, messages []models.Message) []string {
facts := make([]string, 0, 4)
if strings.TrimSpace(conversation.Subject) != "" {
facts = append(facts, "会话主题:"+strings.TrimSpace(conversation.Subject))
}
if strings.TrimSpace(conversation.LastMessageSummary) != "" {
facts = append(facts, "最近摘要:"+strings.TrimSpace(conversation.LastMessageSummary))
}
@@ -9,7 +9,6 @@ import (
func TestBuildAnalyzeConversationResult_RecommendsHandoffForComplaint(t *testing.T) {
conversation := models.Conversation{
Subject: "用户投诉扣费异常",
LastMessageSummary: "用户反馈被重复扣费,并要求人工处理",
}
messages := []models.Message{
@@ -33,7 +32,6 @@ func TestBuildAnalyzeConversationResult_RecommendsHandoffForComplaint(t *testing
func TestBuildAnalyzeConversationResult_RecommendsPrepareTicket(t *testing.T) {
conversation := models.Conversation{
Subject: "订单无法支付",
LastMessageSummary: "用户要求登记问题并尽快处理",
}
messages := []models.Message{
@@ -114,7 +114,7 @@ func (g *CreateTicketGraph) buildCreateRequest(argumentsInJSON string) (request.
req.Priority = args.Priority
req.Severity = args.Severity
if req.Title == "" {
req.Title = strings.TrimSpace(g.conversation.Subject)
req.Title = strings.TrimSpace(g.conversation.LastMessageSummary)
}
if req.Description == "" {
req.Description = strings.TrimSpace(g.conversation.LastMessageSummary)
@@ -100,8 +100,6 @@ func buildDraftTitle(conversation models.Conversation, input PrepareTicketDraftI
return limitText(input.Title, 80)
case input.Issue != "":
return limitText(input.Issue, 80)
case strings.TrimSpace(conversation.Subject) != "":
return limitText(conversation.Subject, 80)
case strings.TrimSpace(conversation.LastMessageSummary) != "":
return limitText(conversation.LastMessageSummary, 80)
default:
@@ -144,9 +142,6 @@ func hasSufficientIssueContext(input PrepareTicketDraftInput, description string
func buildConversationFacts(conversation models.Conversation, messages []models.Message) []string {
facts := make([]string, 0, 4)
if strings.TrimSpace(conversation.Subject) != "" {
facts = append(facts, "会话主题:"+strings.TrimSpace(conversation.Subject))
}
if strings.TrimSpace(conversation.LastMessageSummary) != "" {
facts = append(facts, "最近摘要:"+strings.TrimSpace(conversation.LastMessageSummary))
}
@@ -9,7 +9,6 @@ import (
func TestBuildPrepareTicketDraftResult_UsesConversationFallbacks(t *testing.T) {
conversation := models.Conversation{
Subject: "企业微信登录异常",
LastMessageSummary: "用户反馈企业微信扫码后页面空白,无法进入工作台",
}
messages := []models.Message{
@@ -38,7 +37,6 @@ func TestBuildPrepareTicketDraftResult_UsesConversationFallbacks(t *testing.T) {
func TestBuildPrepareTicketDraftResult_ReadyWithExplicitIssue(t *testing.T) {
conversation := models.Conversation{
Subject: "订单支付失败",
LastMessageSummary: "用户反馈连续支付失败",
}
@@ -9,7 +9,6 @@ import (
func TestTriageServiceRequestResult_PrepareTicket(t *testing.T) {
conversation := models.Conversation{
Subject: "支付失败需要登记工单",
LastMessageSummary: "用户要求建单跟进支付失败问题",
}
messages := []models.Message{
@@ -31,7 +30,6 @@ func TestTriageServiceRequestResult_PrepareTicket(t *testing.T) {
func TestTriageServiceRequestResult_Handoff(t *testing.T) {
conversation := models.Conversation{
Subject: "投诉转人工",
LastMessageSummary: "用户要求人工处理扣费投诉",
}
messages := []models.Message{