Release / update-version (push) Has been cancelled
Release / build-frontend (push) Has been cancelled
Release / release (push) Has been cancelled
Release / sync-version-file (push) Has been cancelled
CI / shell (push) Canceled after 0s
CI / test (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CI / golangci-lint (push) Canceled after 0s
Security Scan / backend-security (push) Canceled after 0s
Security Scan / frontend-security (push) Canceled after 0s
38 lines
1.1 KiB
Go
38 lines
1.1 KiB
Go
package service
|
|
|
|
import (
|
|
"regexp"
|
|
"strings"
|
|
)
|
|
|
|
const (
|
|
OpenAIPreviousResponseIDKindEmpty = "empty"
|
|
OpenAIPreviousResponseIDKindResponseID = "response_id"
|
|
OpenAIPreviousResponseIDKindMessageID = "message_id"
|
|
OpenAIPreviousResponseIDKindUnknown = "unknown"
|
|
)
|
|
|
|
var (
|
|
openAIResponseIDPattern = regexp.MustCompile(`^resp_[A-Za-z0-9_-]{1,256}$`)
|
|
openAIMessageIDPattern = regexp.MustCompile(`^(msg|message|item|chatcmpl)_[A-Za-z0-9_-]{1,256}$`)
|
|
)
|
|
|
|
// ClassifyOpenAIPreviousResponseIDKind classifies previous_response_id to improve diagnostics.
|
|
func ClassifyOpenAIPreviousResponseIDKind(id string) string {
|
|
trimmed := strings.TrimSpace(id)
|
|
if trimmed == "" {
|
|
return OpenAIPreviousResponseIDKindEmpty
|
|
}
|
|
if openAIResponseIDPattern.MatchString(trimmed) {
|
|
return OpenAIPreviousResponseIDKindResponseID
|
|
}
|
|
if openAIMessageIDPattern.MatchString(strings.ToLower(trimmed)) {
|
|
return OpenAIPreviousResponseIDKindMessageID
|
|
}
|
|
return OpenAIPreviousResponseIDKindUnknown
|
|
}
|
|
|
|
func IsOpenAIPreviousResponseIDLikelyMessageID(id string) bool {
|
|
return ClassifyOpenAIPreviousResponseIDKind(id) == OpenAIPreviousResponseIDKindMessageID
|
|
}
|