diff --git a/dto/openai_request.go b/dto/openai_request.go index da14cdfe..5d0419fe 100644 --- a/dto/openai_request.go +++ b/dto/openai_request.go @@ -14,6 +14,7 @@ type GeneralOpenAIRequest struct { StreamOptions *StreamOptions `json:"stream_options,omitempty"` MaxTokens uint `json:"max_tokens,omitempty"` MaxCompletionTokens uint `json:"max_completion_tokens,omitempty"` + ReasoningEffort string `json:"reasoning_effort,omitempty"` Temperature float64 `json:"temperature,omitempty"` TopP float64 `json:"top_p,omitempty"` TopK int `json:"top_k,omitempty"` diff --git a/relay/channel/openai/adaptor.go b/relay/channel/openai/adaptor.go index 9c4369dc..52ab542d 100644 --- a/relay/channel/openai/adaptor.go +++ b/relay/channel/openai/adaptor.go @@ -109,12 +109,20 @@ func (a *Adaptor) ConvertRequest(c *gin.Context, info *relaycommon.RelayInfo, re if info.ChannelType != common.ChannelTypeOpenAI { request.StreamOptions = nil } - if strings.HasPrefix(request.Model, "o1-") { + if strings.HasPrefix(request.Model, "o1") { if request.MaxCompletionTokens == 0 && request.MaxTokens != 0 { request.MaxCompletionTokens = request.MaxTokens request.MaxTokens = 0 } } + if request.Model == "o1" || request.Model == "o1-2024-12-17" { + //修改第一个Message的内容,将system改为developer + if len(request.Messages) > 0 { + if request.Messages[0].Role == "system" { + request.Messages[0].Role = "developer" + } + } + } return request, nil } diff --git a/relay/channel/openai/constant.go b/relay/channel/openai/constant.go index 400121b1..5af47522 100644 --- a/relay/channel/openai/constant.go +++ b/relay/channel/openai/constant.go @@ -13,6 +13,7 @@ var ModelList = []string{ "gpt-4o-mini", "gpt-4o-mini-2024-07-18", "o1-preview", "o1-preview-2024-09-12", "o1-mini", "o1-mini-2024-09-12", + "o1", "o1-2024-12-17", "gpt-4o-audio-preview", "gpt-4o-audio-preview-2024-10-01", "gpt-4o-realtime-preview", "gpt-4o-realtime-preview-2024-10-01", "text-embedding-ada-002", "text-embedding-3-small", "text-embedding-3-large",