refactor: simplify model prefix checks and update message role for o-series models

This commit is contained in:
CaIon
2025-04-17 16:50:52 +08:00
parent 995c19a997
commit ee4f27d01b
3 changed files with 11 additions and 11 deletions

View File

@@ -186,7 +186,7 @@ func buildTestRequest(model string) *dto.GeneralOpenAIRequest {
return testRequest return testRequest
} }
// 并非Embedding 模型 // 并非Embedding 模型
if strings.HasPrefix(model, "o1") || strings.HasPrefix(model, "o3") { if strings.HasPrefix(model, "o") {
testRequest.MaxCompletionTokens = 10 testRequest.MaxCompletionTokens = 10
} else if strings.Contains(model, "thinking") { } else if strings.Contains(model, "thinking") {
if !strings.Contains(model, "claude") { if !strings.Contains(model, "claude") {

View File

@@ -147,14 +147,12 @@ func (a *Adaptor) ConvertOpenAIRequest(c *gin.Context, info *relaycommon.RelayIn
if info.ChannelType != common.ChannelTypeOpenAI && info.ChannelType != common.ChannelTypeAzure { if info.ChannelType != common.ChannelTypeOpenAI && info.ChannelType != common.ChannelTypeAzure {
request.StreamOptions = nil request.StreamOptions = nil
} }
if strings.HasPrefix(request.Model, "o1") || strings.HasPrefix(request.Model, "o3") { if strings.HasPrefix(request.Model, "o") {
if request.MaxCompletionTokens == 0 && request.MaxTokens != 0 { if request.MaxCompletionTokens == 0 && request.MaxTokens != 0 {
request.MaxCompletionTokens = request.MaxTokens request.MaxCompletionTokens = request.MaxTokens
request.MaxTokens = 0 request.MaxTokens = 0
} }
if strings.HasPrefix(request.Model, "o3") || strings.HasPrefix(request.Model, "o1") { request.Temperature = nil
request.Temperature = nil
}
if strings.HasSuffix(request.Model, "-high") { if strings.HasSuffix(request.Model, "-high") {
request.ReasoningEffort = "high" request.ReasoningEffort = "high"
request.Model = strings.TrimSuffix(request.Model, "-high") request.Model = strings.TrimSuffix(request.Model, "-high")
@@ -167,11 +165,13 @@ func (a *Adaptor) ConvertOpenAIRequest(c *gin.Context, info *relaycommon.RelayIn
} }
info.ReasoningEffort = request.ReasoningEffort info.ReasoningEffort = request.ReasoningEffort
info.UpstreamModelName = request.Model info.UpstreamModelName = request.Model
}
if request.Model == "o1" || request.Model == "o1-2024-12-17" || strings.HasPrefix(request.Model, "o3") { // o系列模型developer适配o1-mini除外
//修改第一个Message的内容将system改为developer if !strings.HasPrefix(request.Model, "o1-mini") {
if len(request.Messages) > 0 && request.Messages[0].Role == "system" { //修改第一个Message的内容将system改为developer
request.Messages[0].Role = "developer" if len(request.Messages) > 0 && request.Messages[0].Role == "system" {
request.Messages[0].Role = "developer"
}
} }
} }

View File

@@ -43,7 +43,7 @@ func InitTokenEncoders() {
} else { } else {
tokenEncoderMap[model] = defaultTokenEncoder tokenEncoderMap[model] = defaultTokenEncoder
} }
} else if strings.HasPrefix(model, "o1") { } else if strings.HasPrefix(model, "o") {
tokenEncoderMap[model] = o200kTokenEncoder tokenEncoderMap[model] = o200kTokenEncoder
} else { } else {
tokenEncoderMap[model] = defaultTokenEncoder tokenEncoderMap[model] = defaultTokenEncoder