MCPcopy Create free account
hub / github.com/53AI/53AIHub / convertToEnhancedMessages

Function convertToEnhancedMessages

api/controller/message.go:76–129  ·  view source on GitHub ↗

convertToEnhancedMessages 将普通消息转换为增强消息

(messages []*model.Message, fileMap map[int64]string)

Source from the content-addressed store, hash-verified

74
75// convertToEnhancedMessages 将普通消息转换为增强消息
76func convertToEnhancedMessages(messages []*model.Message, fileMap map[int64]string) []*EnhancedMessage {
77 enhancedMessages := make([]*EnhancedMessage, len(messages))
78
79 for i, msg := range messages {
80 enhanced := &EnhancedMessage{
81 Message: msg,
82 MessageType: msg.GetMessageType(),
83 ProcessRecords: []*model.MessageProcessStep{},
84 }
85
86 // 填充文件名
87 if msg.FileID > 0 && fileMap != nil {
88 enhanced.FileName = fileMap[msg.FileID]
89 }
90
91 // 根据消息类型解析内容
92 switch enhanced.MessageType {
93 case model.MessageTypeChat:
94 // 解析聊天消息
95 if parsedMsg, err := msg.ParseChatMessage(); err == nil {
96 enhanced.ParsedMessage = parsedMsg
97 } else {
98 enhanced.ParsedMessage = msg.Message // 解析失败时返回原始内容
99 }
100 enhanced.ParsedAnswer = msg.Answer // 聊天消息的 answer 就是文本
101
102 case model.MessageTypeWorkflow:
103 // 解析工作流消息
104 if parsedParams, err := msg.ParseWorkflowParameters(); err == nil {
105 enhanced.ParsedMessage = parsedParams
106 } else {
107 enhanced.ParsedMessage = msg.Message // 解析失败时返回原始内容
108 }
109
110 if parsedOutput, err := msg.ParseWorkflowOutput(); err == nil {
111 enhanced.ParsedAnswer = parsedOutput
112 } else {
113 enhanced.ParsedAnswer = msg.Answer // 解析失败时返回原始内容
114 }
115 }
116
117 // 解析RAG统计数据
118 if msg.RAGStats != "" {
119 if ragStatsData, err := parseRAGStats(msg.RAGStats); err == nil {
120 enhanced.RAGStats = ragStatsData
121 }
122 // 解析失败时RAGStats保持为nil,不影响其他字段
123 }
124
125 enhancedMessages[i] = enhanced
126 }
127
128 return enhancedMessages
129}
130
131func attachProcessRecords(enhancedMessages []*EnhancedMessage, processRecordMap map[int64][]*model.MessageProcessStep) {
132 if len(enhancedMessages) == 0 || len(processRecordMap) == 0 {

Callers 4

buildEnhancedMessagesFunction · 0.85
GetUserMessagesFunction · 0.85
GetShareFunction · 0.85

Calls 5

parseRAGStatsFunction · 0.85
GetMessageTypeMethod · 0.80
ParseChatMessageMethod · 0.80
ParseWorkflowOutputMethod · 0.80

Tested by

no test coverage detected