From d3b19446aa65409517715fcd771a6e76a11b19ca Mon Sep 17 00:00:00 2001 From: K8sCat Date: Tue, 28 Apr 2026 13:33:30 +0800 Subject: [PATCH] fix(deepseek): add Thinking support to stream request and test case --- components/model/deepseek/deepseek.go | 1 + components/model/deepseek/deepseek_test.go | 26 ++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/components/model/deepseek/deepseek.go b/components/model/deepseek/deepseek.go index cf0ea8e5f..b65680fcd 100644 --- a/components/model/deepseek/deepseek.go +++ b/components/model/deepseek/deepseek.go @@ -532,6 +532,7 @@ func (cm *ChatModel) generateStreamRequest(ctx context.Context, in []*schema.Mes Tools: origReq.Tools, LogProbs: origReq.LogProbs, TopLogProbs: origReq.TopLogProbs, + Thinking: origReq.Thinking, ExtraFields: origReq.ExtraFields, } return req, cbIn, nil diff --git a/components/model/deepseek/deepseek_test.go b/components/model/deepseek/deepseek_test.go index f763d73ba..e0354a34c 100644 --- a/components/model/deepseek/deepseek_test.go +++ b/components/model/deepseek/deepseek_test.go @@ -459,6 +459,32 @@ func TestThinkingConfig(t *testing.T) { }) } +func TestThinkingConfigStream(t *testing.T) { + var capturedReq *deepseek.StreamChatCompletionRequest + defer mockey.Mock((*deepseek.Client).CreateChatCompletionStream).To(func(ctx context.Context, request *deepseek.StreamChatCompletionRequest) (deepseek.ChatCompletionStream, error) { + capturedReq = request + return &mockStream{}, nil + }).Build().UnPatch() + + ctx := context.Background() + cm, err := NewChatModel(ctx, &ChatModelConfig{ + APIKey: "test-key", + Model: "deepseek-reasoner", + ThinkingConfig: &ThinkingConfig{ + Type: "enabled", + }, + }) + assert.Nil(t, err) + + stream, err := cm.Stream(ctx, []*schema.Message{schema.UserMessage("hello")}) + assert.Nil(t, err) + if assert.NotNil(t, stream) && + assert.NotNil(t, capturedReq) && + assert.NotNil(t, capturedReq.Thinking) { + assert.Equal(t, "enabled", capturedReq.Thinking.Type) + } +} + func TestNewChatModel(t *testing.T) { ctx := context.Background()