diff --git a/relay/channel/xai/adaptor.go b/relay/channel/xai/adaptor.go index 3f934e42..21c33ca8 100644 --- a/relay/channel/xai/adaptor.go +++ b/relay/channel/xai/adaptor.go @@ -10,6 +10,7 @@ import ( "one-api/relay/channel" "one-api/relay/channel/openai" relaycommon "one-api/relay/common" + "strings" ) type Adaptor struct { @@ -49,6 +50,24 @@ func (a *Adaptor) ConvertOpenAIRequest(c *gin.Context, info *relaycommon.RelayIn return nil, errors.New("request is nil") } request.StreamOptions = nil + if strings.HasPrefix(request.Model, "grok-3-mini") { + if request.MaxCompletionTokens == 0 && request.MaxTokens != 0 { + request.MaxCompletionTokens = request.MaxTokens + request.MaxTokens = 0 + } + if strings.HasSuffix(request.Model, "-high") { + request.ReasoningEffort = "high" + request.Model = strings.TrimSuffix(request.Model, "-high") + } else if strings.HasSuffix(request.Model, "-low") { + request.ReasoningEffort = "low" + request.Model = strings.TrimSuffix(request.Model, "-low") + } else if strings.HasSuffix(request.Model, "-medium") { + request.ReasoningEffort = "medium" + request.Model = strings.TrimSuffix(request.Model, "-medium") + } + info.ReasoningEffort = request.ReasoningEffort + info.UpstreamModelName = request.Model + } return request, nil } diff --git a/relay/channel/xai/constants.go b/relay/channel/xai/constants.go index fb034a36..0e42f383 100644 --- a/relay/channel/xai/constants.go +++ b/relay/channel/xai/constants.go @@ -1,9 +1,16 @@ package xai var ModelList = []string{ - // grok-2,grok-2-vision,grok-3-mini-beta,grok-3-beta - "grok-3-beta", "grok-3-mini-beta", "grok-2", "grok-2-vision", "grok-3", "grok-beta", "grok-vision-beta", + // grok-3 + "grok-3-beta", "grok-3-mini-beta", + // grok-3 mini "grok-3-fast-beta", "grok-3-mini-fast-beta", + // extend grok-3-mini reasoning + "grok-3-mini-beta-high", "grok-3-mini-beta-low", "grok-3-mini-beta-medium", + "grok-3-mini-fast-beta-high", "grok-3-mini-fast-beta-low", "grok-3-mini-fast-beta-medium", + + "grok-2", "grok-2-vision", + "grok-beta", "grok-vision-beta", } var ChannelName = "xai"