From f45126883031efa4b8ab87c3709e72dc1f8e1609 Mon Sep 17 00:00:00 2001 From: "1808837298@qq.com" <1808837298@qq.com> Date: Tue, 25 Feb 2025 22:01:05 +0800 Subject: [PATCH] feat: Update Claude relay temperature setting --- common/utils.go | 19 +++++++++++++++++++ relay/channel/claude/relay-claude.go | 3 +++ 2 files changed, 22 insertions(+) diff --git a/common/utils.go b/common/utils.go index fb769a7c..e57801e3 100644 --- a/common/utils.go +++ b/common/utils.go @@ -5,6 +5,7 @@ import ( "context" crand "crypto/rand" "encoding/base64" + "encoding/json" "fmt" "github.com/pkg/errors" "html/template" @@ -213,6 +214,24 @@ func RandomSleep() { time.Sleep(time.Duration(rand.Intn(3000)) * time.Millisecond) } +func GetPointer[T any](v T) *T { + return &v +} + +func Any2Type[T any](data any) (T, error) { + var zero T + bytes, err := json.Marshal(data) + if err != nil { + return zero, err + } + var res T + err = json.Unmarshal(bytes, &res) + if err != nil { + return zero, err + } + return res, nil +} + // SaveTmpFile saves data to a temporary file. The filename would be apppended with a random string. func SaveTmpFile(filename string, data io.Reader) (string, error) { f, err := os.CreateTemp(os.TempDir(), filename) diff --git a/relay/channel/claude/relay-claude.go b/relay/channel/claude/relay-claude.go index 5ad9c7af..b903c4a8 100644 --- a/relay/channel/claude/relay-claude.go +++ b/relay/channel/claude/relay-claude.go @@ -108,7 +108,10 @@ func RequestOpenAI2ClaudeMessage(textRequest dto.GeneralOpenAIRequest) (*ClaudeR Type: "enabled", BudgetTokens: int(float64(claudeRequest.MaxTokens) * 0.8), } + // TODO: 临时处理 + // https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking#important-considerations-when-using-extended-thinking claudeRequest.TopP = 0 + claudeRequest.Temperature = common.GetPointer[float64](1.0) claudeRequest.Model = strings.TrimSuffix(textRequest.Model, "-thinking") }