|
@@ -19,8 +19,8 @@ import (
|
|
|
"github.com/QuantumNous/new-api/relay/helper"
|
|
"github.com/QuantumNous/new-api/relay/helper"
|
|
|
"github.com/QuantumNous/new-api/service"
|
|
"github.com/QuantumNous/new-api/service"
|
|
|
"github.com/QuantumNous/new-api/setting/model_setting"
|
|
"github.com/QuantumNous/new-api/setting/model_setting"
|
|
|
|
|
+ "github.com/QuantumNous/new-api/setting/reasoning"
|
|
|
"github.com/QuantumNous/new-api/types"
|
|
"github.com/QuantumNous/new-api/types"
|
|
|
-
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/gin-gonic/gin"
|
|
|
)
|
|
)
|
|
|
|
|
|
|
@@ -122,6 +122,14 @@ func clampThinkingBudgetByEffort(modelName string, effort string) int {
|
|
|
return clampThinkingBudget(modelName, maxBudget)
|
|
return clampThinkingBudget(modelName, maxBudget)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+func parseThinkingLevelSuffix(modelName string) (string, string) {
|
|
|
|
|
+ base, level, ok := reasoning.TrimEffortSuffix(modelName)
|
|
|
|
|
+ if !ok {
|
|
|
|
|
+ return modelName, ""
|
|
|
|
|
+ }
|
|
|
|
|
+ return base, level
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
func ThinkingAdaptor(geminiRequest *dto.GeminiChatRequest, info *relaycommon.RelayInfo, oaiRequest ...dto.GeneralOpenAIRequest) {
|
|
func ThinkingAdaptor(geminiRequest *dto.GeminiChatRequest, info *relaycommon.RelayInfo, oaiRequest ...dto.GeneralOpenAIRequest) {
|
|
|
if model_setting.GetGeminiSettings().ThinkingAdapterEnabled {
|
|
if model_setting.GetGeminiSettings().ThinkingAdapterEnabled {
|
|
|
modelName := info.UpstreamModelName
|
|
modelName := info.UpstreamModelName
|
|
@@ -178,6 +186,12 @@ func ThinkingAdaptor(geminiRequest *dto.GeminiChatRequest, info *relaycommon.Rel
|
|
|
ThinkingBudget: common.GetPointer(0),
|
|
ThinkingBudget: common.GetPointer(0),
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ } else if _, level := parseThinkingLevelSuffix(modelName); level != "" {
|
|
|
|
|
+ geminiRequest.GenerationConfig.ThinkingConfig = &dto.GeminiThinkingConfig{
|
|
|
|
|
+ IncludeThoughts: true,
|
|
|
|
|
+ ThinkingLevel: level,
|
|
|
|
|
+ }
|
|
|
|
|
+ info.ReasoningEffort = level
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|