fix: raise provider HTTP timeouts from 30s to 10min
30-second resty client timeout was killing long streaming responses mid-generation. Models with large output windows (e.g. deepseek-v4-pro at 384K max_tokens) routinely exceed 30s. Raised all providers to 10 minutes (Ollama already at 15min, unchanged). Circuit breaker recovery timeout raised from 30s to 5min.
This commit is contained in:
@@ -17,7 +17,7 @@ func NewCircuitBreakerProvider(p Provider) Provider {
|
|||||||
name := p.Name()
|
name := p.Name()
|
||||||
var maxRequests uint32 = 5
|
var maxRequests uint32 = 5
|
||||||
var interval = 60 * time.Second
|
var interval = 60 * time.Second
|
||||||
var timeout = 30 * time.Second
|
var timeout = 5 * time.Minute
|
||||||
|
|
||||||
settings := gobreaker.Settings{
|
settings := gobreaker.Settings{
|
||||||
Name: name,
|
Name: name,
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ type DeepSeekProvider struct {
|
|||||||
|
|
||||||
func NewDeepSeekProvider(cfg config.DeepSeekConfig, apiKey string) *DeepSeekProvider {
|
func NewDeepSeekProvider(cfg config.DeepSeekConfig, apiKey string) *DeepSeekProvider {
|
||||||
return &DeepSeekProvider{
|
return &DeepSeekProvider{
|
||||||
client: resty.New().SetTimeout(30 * time.Second),
|
client: resty.New().SetTimeout(10 * time.Minute),
|
||||||
config: cfg,
|
config: cfg,
|
||||||
apiKey: apiKey,
|
apiKey: apiKey,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ type GeminiProvider struct {
|
|||||||
|
|
||||||
func NewGeminiProvider(cfg config.GeminiConfig, apiKey string) *GeminiProvider {
|
func NewGeminiProvider(cfg config.GeminiConfig, apiKey string) *GeminiProvider {
|
||||||
return &GeminiProvider{
|
return &GeminiProvider{
|
||||||
client: resty.New().SetTimeout(30 * time.Second),
|
client: resty.New().SetTimeout(10 * time.Minute),
|
||||||
config: cfg,
|
config: cfg,
|
||||||
apiKey: apiKey,
|
apiKey: apiKey,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ type GrokProvider struct {
|
|||||||
|
|
||||||
func NewGrokProvider(cfg config.GrokConfig, apiKey string) *GrokProvider {
|
func NewGrokProvider(cfg config.GrokConfig, apiKey string) *GrokProvider {
|
||||||
return &GrokProvider{
|
return &GrokProvider{
|
||||||
client: resty.New().SetTimeout(30 * time.Second),
|
client: resty.New().SetTimeout(10 * time.Minute),
|
||||||
config: cfg,
|
config: cfg,
|
||||||
apiKey: apiKey,
|
apiKey: apiKey,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ type MoonshotProvider struct {
|
|||||||
|
|
||||||
func NewMoonshotProvider(cfg config.MoonshotConfig, apiKey string) *MoonshotProvider {
|
func NewMoonshotProvider(cfg config.MoonshotConfig, apiKey string) *MoonshotProvider {
|
||||||
return &MoonshotProvider{
|
return &MoonshotProvider{
|
||||||
client: resty.New().SetTimeout(30 * time.Second),
|
client: resty.New().SetTimeout(10 * time.Minute),
|
||||||
config: cfg,
|
config: cfg,
|
||||||
apiKey: strings.TrimSpace(apiKey),
|
apiKey: strings.TrimSpace(apiKey),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ type OpenAIProvider struct {
|
|||||||
|
|
||||||
func NewOpenAIProvider(cfg config.OpenAIConfig, apiKey string) *OpenAIProvider {
|
func NewOpenAIProvider(cfg config.OpenAIConfig, apiKey string) *OpenAIProvider {
|
||||||
return &OpenAIProvider{
|
return &OpenAIProvider{
|
||||||
client: resty.New().SetTimeout(30 * time.Second),
|
client: resty.New().SetTimeout(10 * time.Minute),
|
||||||
config: cfg,
|
config: cfg,
|
||||||
apiKey: apiKey,
|
apiKey: apiKey,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user