diff options
Diffstat (limited to 'packages/server/src/core/client.ts')
| -rw-r--r-- | packages/server/src/core/client.ts | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/packages/server/src/core/client.ts b/packages/server/src/core/client.ts index 69b815ab..9006c675 100644 --- a/packages/server/src/core/client.ts +++ b/packages/server/src/core/client.ts @@ -23,6 +23,7 @@ import { getResponseText } from '../utils/generateContentResponseUtilities.js'; import { checkNextSpeaker } from '../utils/nextSpeakerChecker.js'; import { reportError } from '../utils/errorReporting.js'; import { GeminiChat } from './geminiChat.js'; +import { retryWithBackoff } from '../utils/retry.js'; export class GeminiClient { private client: GoogleGenAI; @@ -194,16 +195,20 @@ export class GeminiClient { ...config, }; - const result = await this.client.models.generateContent({ - model, - config: { - ...requestConfig, - systemInstruction, - responseSchema: schema, - responseMimeType: 'application/json', - }, - contents, - }); + const apiCall = () => + this.client.models.generateContent({ + model, + config: { + ...requestConfig, + systemInstruction, + responseSchema: schema, + responseMimeType: 'application/json', + }, + contents, + }); + + const result = await retryWithBackoff(apiCall); + const text = getResponseText(result); if (!text) { const error = new Error( |
