diff options
| author | N. Taylor Mullen <[email protected]> | 2025-05-30 10:57:00 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-05-30 17:57:00 +0000 |
| commit | 8c46108a852128d1d0792c149746631d83fc58cf (patch) | |
| tree | 4d3ca2e8abd03e3722a1a75fce0dc752752a391c /packages/server/src/tools/web-search.ts | |
| parent | c5608869c00c433a468fe5e88bcbafd83f6599a1 (diff) | |
feat: Implement retry with backoff for API calls (#613)
Diffstat (limited to 'packages/server/src/tools/web-search.ts')
| -rw-r--r-- | packages/server/src/tools/web-search.ts | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/packages/server/src/tools/web-search.ts b/packages/server/src/tools/web-search.ts index b690146d..ed2f341f 100644 --- a/packages/server/src/tools/web-search.ts +++ b/packages/server/src/tools/web-search.ts @@ -11,6 +11,7 @@ import { SchemaValidator } from '../utils/schemaValidator.js'; import { getErrorMessage } from '../utils/errors.js'; import { Config } from '../config/config.js'; import { getResponseText } from '../utils/generateContentResponseUtilities.js'; +import { retryWithBackoff } from '../utils/retry.js'; interface GroundingChunkWeb { uri?: string; @@ -121,13 +122,16 @@ export class WebSearchTool extends BaseTool< } try { - const response = await this.ai.models.generateContent({ - model: this.modelName, - contents: [{ role: 'user', parts: [{ text: params.query }] }], - config: { - tools: [{ googleSearch: {} }], - }, - }); + const apiCall = () => + this.ai.models.generateContent({ + model: this.modelName, + contents: [{ role: 'user', parts: [{ text: params.query }] }], + config: { + tools: [{ googleSearch: {} }], + }, + }); + + const response = await retryWithBackoff(apiCall); const responseText = getResponseText(response); const groundingMetadata = response.candidates?.[0]?.groundingMetadata; |
