package controller import ("strings"; "github.com/tidwall/gjson") func detectionHTML(raw []byte, contentType string) string { result := gjson.ParseBytes(raw) if strings.Contains(contentType, "text/event-stream") { result = gjson.Result{} for line := range strings.SplitSeq(string(raw), "\n") { if strings.HasPrefix(line, "data:") { event := gjson.Parse(strings.TrimSpace(strings.TrimPrefix(line, "data:"))) if event.Get("type").String() == "response.completed" { result = event.Get("response") } } } } if result.Get("status").String() != "completed" { return "" } var output strings.Builder for _, item := range result.Get("output").Array() { if item.Get("type").String() != "message" { continue } for _, part := range item.Get("content").Array() { if part.Get("type").String() == "output_text" { output.WriteString(part.Get("text").String()) } } } html := strings.TrimSpace(output.String()) lower := strings.ToLower(html) start := strings.Index(lower, "") if start < 0 || end < start || len(html) > 2<<20 { return "" } return html[start : end+7] }