Просмотр исходного кода

feat: add xai grok-3-mini reasoning effort

HynoR 11 месяцев назад
Родитель
Сommit
c5103237b0
2 измененных файлов с 28 добавлено и 2 удалено
  1. 19 0
      relay/channel/xai/adaptor.go
  2. 9 2
      relay/channel/xai/constants.go

+ 19 - 0
relay/channel/xai/adaptor.go

@@ -10,6 +10,7 @@ import (
 	"one-api/relay/channel"
 	"one-api/relay/channel"
 	"one-api/relay/channel/openai"
 	"one-api/relay/channel/openai"
 	relaycommon "one-api/relay/common"
 	relaycommon "one-api/relay/common"
+	"strings"
 )
 )
 
 
 type Adaptor struct {
 type Adaptor struct {
@@ -49,6 +50,24 @@ func (a *Adaptor) ConvertOpenAIRequest(c *gin.Context, info *relaycommon.RelayIn
 		return nil, errors.New("request is nil")
 		return nil, errors.New("request is nil")
 	}
 	}
 	request.StreamOptions = 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
 	return request, nil
 }
 }
 
 

+ 9 - 2
relay/channel/xai/constants.go

@@ -1,9 +1,16 @@
 package xai
 package xai
 
 
 var ModelList = []string{
 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",
 	"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"
 var ChannelName = "xai"