@@ -6,7 +6,6 @@ import (
12 "github.com/anthropics/anthropic-sdk-go"
11 "github.com/anthropics/anthropic-sdk-go"
@@ -150,28 +149,18 @@ func (a *anthropicClient) finishReason(reason string) message.FinishReason {
150func (a *anthropicClient) preparedMessages(messages []anthropic.MessageParam, tools []anthropic.ToolUnionParam) anthropic.MessageNewParams {
149func (a *anthropicClient) preparedMessages(messages []anthropic.MessageParam, tools []anthropic.ToolUnionParam) anthropic.MessageNewParams {
151 model := a.providerOptions.model(a.providerOptions.modelType)
150 model := a.providerOptions.model(a.providerOptions.modelType)
152 var thinkingParam anthropic.ThinkingConfigParamUnion
151 var thinkingParam anthropic.ThinkingConfigParamUnion
153− // TODO: Implement a proper thinking function
154− // lastMessage := messages[len(messages)-1]
155− // isUser := lastMessage.Role == anthropic.MessageParamRoleUser
156− // messageContent := ""
157− temperature := anthropic.Float(0)
159− // for _, m := range lastMessage.Content {
160− // if m.OfText != nil && m.OfText.Text != "" {
161− // messageContent = m.OfText.Text
164− // if messageContent != "" && a.shouldThink != nil && a.options.shouldThink(messageContent) {
165− // thinkingParam = anthropic.ThinkingConfigParamOfEnabled(int64(float64(a.providerOptions.maxTokens) * 0.8))
166− // temperature = anthropic.Float(1)
170 cfg := config.Get()
152 cfg := config.Get()
171 modelConfig := cfg.Models.Large
153 modelConfig := cfg.Models.Large
172 if a.providerOptions.modelType == config.SmallModel {
154 if a.providerOptions.modelType == config.SmallModel {
173 modelConfig = cfg.Models.Small
155 modelConfig = cfg.Models.Small
157+ temperature := anthropic.Float(0)
159+ if a.Model().CanReason && modelConfig.Think {
160+ thinkingParam = anthropic.ThinkingConfigParamOfEnabled(int64(float64(a.providerOptions.maxTokens) * 0.8))
161+ temperature = anthropic.Float(1)
175 maxTokens := model.DefaultMaxTokens
164 maxTokens := model.DefaultMaxTokens
176 if modelConfig.MaxTokens > 0 {
165 if modelConfig.MaxTokens > 0 {
177 maxTokens = modelConfig.MaxTokens
166 maxTokens = modelConfig.MaxTokens
@@ -456,8 +445,3 @@ func (a *anthropicClient) usage(msg anthropic.Message) TokenUsage {
456func (a *anthropicClient) Model() config.Model {
445func (a *anthropicClient) Model() config.Model {
457 return a.providerOptions.model(a.providerOptions.modelType)
446 return a.providerOptions.model(a.providerOptions.modelType)
460−// TODO: check if we need
461−func DefaultShouldThinkFn(s string) bool {
462− return strings.Contains(strings.ToLower(s), "think")