package ai import "context" type ctxKey int const ( ctxMaxTokens ctxKey = iota + 1 ctxTemperature ) // WithMaxTokens 限制 completion 輸出上限(靈感短聊用小值可明顯加速)。 func WithMaxTokens(ctx context.Context, n int) context.Context { if n <= 0 { return ctx } return context.WithValue(ctx, ctxMaxTokens, n) } // MaxTokensFrom returns 0 if unset. func MaxTokensFrom(ctx context.Context) int { if ctx == nil { return 0 } v, _ := ctx.Value(ctxMaxTokens).(int) return v } // WithTemperature sets sampling temperature when > 0. func WithTemperature(ctx context.Context, t float64) context.Context { if t <= 0 { return ctx } return context.WithValue(ctx, ctxTemperature, t) } // TemperatureFrom returns 0 if unset (caller uses default). func TemperatureFrom(ctx context.Context) float64 { if ctx == nil { return 0 } v, _ := ctx.Value(ctxTemperature).(float64) return v }