From 36d70a4d0a7643640e49d6eab4c075151328fe8c Mon Sep 17 00:00:00 2001 From: Michael Doyle Date: Mon, 6 May 2024 16:04:02 -0400 Subject: [PATCH] Do not pass systemInstructions to models that do not support it --- js/plugins/googleai/src/gemini.ts | 10 ++++++---- js/plugins/vertexai/src/gemini.ts | 11 +++++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/js/plugins/googleai/src/gemini.ts b/js/plugins/googleai/src/gemini.ts index bd0f0aefab..04e3c6f9d3 100644 --- a/js/plugins/googleai/src/gemini.ts +++ b/js/plugins/googleai/src/gemini.ts @@ -325,10 +325,12 @@ export function googleAIModel( // message detected with role=system will be used for systemInstructions. // Any additional system messages may be considered to be "exceptional". let systemInstruction: GeminiMessage | undefined = undefined; - const systemMessage = messages.find((m) => m.role === 'system'); - if (systemMessage) { - messages.splice(messages.indexOf(systemMessage), 1); - systemInstruction = toGeminiSystemInstruction(systemMessage); + if (SUPPORTED_V15_MODELS[name]) { + const systemMessage = messages.find((m) => m.role === 'system'); + if (systemMessage) { + messages.splice(messages.indexOf(systemMessage), 1); + systemInstruction = toGeminiSystemInstruction(systemMessage); + } } const chatRequest = { diff --git a/js/plugins/vertexai/src/gemini.ts b/js/plugins/vertexai/src/gemini.ts index fc87b2208e..35fd72109a 100644 --- a/js/plugins/vertexai/src/gemini.ts +++ b/js/plugins/vertexai/src/gemini.ts @@ -433,11 +433,14 @@ export function geminiModel(name: string, vertex: VertexAI): ModelAction { // message detected with role=system will be used for systemInstructions. // Any additional system messages may be considered to be "exceptional". let systemInstruction: Content | undefined = undefined; - const systemMessage = messages.find((m) => m.role === 'system'); - if (systemMessage) { - messages.splice(messages.indexOf(systemMessage), 1); - systemInstruction = toGeminiSystemInstruction(systemMessage); + if (SUPPORTED_V15_MODELS[name]) { + const systemMessage = messages.find((m) => m.role === 'system'); + if (systemMessage) { + messages.splice(messages.indexOf(systemMessage), 1); + systemInstruction = toGeminiSystemInstruction(systemMessage); + } } + const chatRequest: StartChatParams = { systemInstruction, tools: request.tools?.length