MCPcopy Create free account
hub / github.com/BlueSkyXN/AI2API / findMostLikelyContent

Function findMostLikelyContent

wo2api.go:1083–1167  ·  view source on GitHub ↗

从流式响应中查找最有可能的完整内容

(lines []string, reqID string)

Source from the content-addressed store, hash-verified

1081
1082// 从流式响应中查找最有可能的完整内容
1083func findMostLikelyContent(lines []string, reqID string) string {
1084 // 如果行数少于2,无法使用此方法
1085 if len(lines) < 2 {
1086 return ""
1087 }
1088
1089 // 先解析所有有效的JSON行
1090 var jsonObjects []map[string]interface{}
1091
1092 for _, line := range lines {
1093 line = strings.TrimSpace(line)
1094 if !strings.HasPrefix(line, "data:") {
1095 continue
1096 }
1097
1098 jsonStr := strings.TrimPrefix(line, "data:")
1099 jsonStr = strings.TrimSpace(jsonStr)
1100
1101 if jsonStr == "[DONE]" || jsonStr == "" {
1102 continue
1103 }
1104
1105 var obj map[string]interface{}
1106 if err := json.Unmarshal([]byte(jsonStr), &obj); err != nil {
1107 // 尝试修复JSON
1108 fixedJson := sanitizeJsonString(jsonStr, reqID)
1109 if err := json.Unmarshal([]byte(fixedJson), &obj); err != nil {
1110 continue
1111 }
1112 }
1113
1114 jsonObjects = append(jsonObjects, obj)
1115 }
1116
1117 // 如果没有有效JSON对象,返回空
1118 if len(jsonObjects) == 0 {
1119 return ""
1120 }
1121
1122 // 提取每个对象中的所有字符串值
1123 allValues := make([]map[string]string, len(jsonObjects))
1124
1125 for i, obj := range jsonObjects {
1126 allValues[i] = make(map[string]string)
1127 extractAllStringValues(obj, allValues[i], "")
1128 }
1129
1130 // 分析哪些路径出现频率最高
1131 pathFrequency := make(map[string]int)
1132 for _, values := range allValues {
1133 for path := range values {
1134 pathFrequency[path]++
1135 }
1136 }
1137
1138 // 找出最常见的路径
1139 var mostCommonPath string
1140 var maxFrequency int = 0

Callers 2

saveResponseForAnalysisFunction · 0.85

Calls 3

sanitizeJsonStringFunction · 0.85
extractAllStringValuesFunction · 0.85
logInfoFunction · 0.70

Tested by

no test coverage detected