feat(sync): full code sync from release
This commit is contained in:
37
backend/internal/service/openai_previous_response_id.go
Normal file
37
backend/internal/service/openai_previous_response_id.go
Normal file
@@ -0,0 +1,37 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user