summaryrefslogtreecommitdiff
path: root/packages/server/src/core/client.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/server/src/core/client.ts')
-rw-r--r--packages/server/src/core/client.ts25
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(