fix: bound summarization max tokens for claude models

This commit is contained in:
temp
2026-08-25 16:37:45 +08:00
parent e4441f91ad
commit 4c011abb9d
2 changed files with 15 additions and 0 deletions
+1
View File
@@ -301,6 +301,7 @@ func newEinoSummarizationModelOptions(outputReserve int, modelName, kind string,
label = "eino " + kind + " summarization generate request" label = "eino " + kind + " summarization generate request"
} }
return []model.Option{ return []model.Option{
model.WithMaxTokens(outputReserve),
einoopenai.WithMaxCompletionTokens(outputReserve), einoopenai.WithMaxCompletionTokens(outputReserve),
einoopenai.WithExtraHeader(map[string]string{ einoopenai.WithExtraHeader(map[string]string{
copenai.SummarizationRequestHeader: "1", copenai.SummarizationRequestHeader: "1",
@@ -5,6 +5,8 @@ import (
"testing" "testing"
"cyberstrike-ai/internal/config" "cyberstrike-ai/internal/config"
"github.com/cloudwego/eino/components/model"
) )
func TestStripReasoningFromSummarizationPayload(t *testing.T) { func TestStripReasoningFromSummarizationPayload(t *testing.T) {
@@ -68,3 +70,15 @@ func TestStripReasoningFromSummarizationPayloadHonorsOpenAICompatProfile(t *test
t.Fatalf("expected OpenAI-compatible profile to strip reasoning fields, got %s", s) t.Fatalf("expected OpenAI-compatible profile to strip reasoning fields, got %s", s)
} }
} }
func TestEinoSummarizationModelOptionsSetCommonMaxTokens(t *testing.T) {
const outputReserve = 4096
opts := newEinoSummarizationModelOptions(outputReserve, "minimax-m3", "agentic", nil, nil)
common := model.GetCommonOptions(nil, opts...)
if common == nil || common.MaxTokens == nil {
t.Fatal("expected summarization options to set common max_tokens")
}
if *common.MaxTokens != outputReserve {
t.Fatalf("max_tokens = %d, want %d", *common.MaxTokens, outputReserve)
}
}