MCPcopy Create free account
hub / github.com/aiprodcoder/MIXAPI / extractUserInputFromMessages

Function extractUserInputFromMessages

relay/relay-text.go:35–67  ·  view source on GitHub ↗

提取用户输入内容(从 messages 中提取用户发送的消息) 修改为只提取最后一条用户消息,避免记录历史输入

(messages []dto.Message)

Source from the content-addressed store, hash-verified

33// 提取用户输入内容(从 messages 中提取用户发送的消息)
34// 修改为只提取最后一条用户消息,避免记录历史输入
35func extractUserInputFromMessages(messages []dto.Message) string {
36 if len(messages) == 0 {
37 return ""
38 }
39
40 // 从后往前查找,只提取最后一条用户消息
41 for i := len(messages) - 1; i >= 0; i-- {
42 message := messages[i]
43 if message.Role == "user" {
44 content := message.StringContent()
45 if content != "" {
46 // 过滤代码类内容
47 if isCodeContent(content) {
48 continue
49 }
50 // 只保留汉字内容
51 filteredContent := filterChineseContent(content)
52 if filteredContent != "" {
53 return filteredContent
54 }
55 }
56 }
57 }
58
59 // 如果没有找到合适的用户消息,返回最后一条消息的内容(作为备选)
60 lastContent := messages[len(messages)-1].StringContent()
61 // 过滤代码类内容
62 if isCodeContent(lastContent) {
63 return ""
64 }
65 // 只保留汉字内容
66 return filterChineseContent(lastContent)
67}
68
69// 检查是否为代码类内容
70func isCodeContent(content string) bool {

Callers 1

postConsumeQuotaFunction · 0.85

Calls 3

isCodeContentFunction · 0.85
filterChineseContentFunction · 0.85
StringContentMethod · 0.80

Tested by

no test coverage detected