Problem Statement
The current embedding and LLM integrations for Gemini (internal/integrations/gemini/) do not handle rate limiting (HTTP 429) or transient network errors. When processing high-volume requests (like bulk indexing or frequent triaging), the pipeline fails immediately upon hitting a rate limit.
Proposed Solution
- Implement a retry mechanism with exponential backoff for:
internal/integrations/gemini/embedder.go: Embed and EmbedBatch methods.
internal/integrations/gemini/llm.go: All generative methods (AnalyzeIssue, RouteIssue, etc.).
- Ensure retries only occur on transient errors (429, 5xx) and NOT on client errors (400, 403, 404).
Context
Identified during self-hosting configuration.
Problem Statement
The current embedding and LLM integrations for Gemini (
internal/integrations/gemini/) do not handle rate limiting (HTTP 429) or transient network errors. When processing high-volume requests (like bulk indexing or frequent triaging), the pipeline fails immediately upon hitting a rate limit.Proposed Solution
internal/integrations/gemini/embedder.go:EmbedandEmbedBatchmethods.internal/integrations/gemini/llm.go: All generative methods (AnalyzeIssue,RouteIssue, etc.).Context
Identified during self-hosting configuration.