diff --git a/libs/providers/langchain-google-common/src/utils/gemini.ts b/libs/providers/langchain-google-common/src/utils/gemini.ts index 8c46e25d8e81..62d35d8ff058 100644 --- a/libs/providers/langchain-google-common/src/utils/gemini.ts +++ b/libs/providers/langchain-google-common/src/utils/gemini.ts @@ -367,6 +367,15 @@ export function getGeminiAPI(config?: GeminiAPIConfig): GoogleAIAPI { } } + function messageContentMultimodalImageData( + content: ContentBlock.Multimodal.Image + ) { + if (!content.url) { + throw new Error("Missing Image URL"); + } + return inlineOrFileDataFromUrl(content.url); + } + function messageContentImageUrlData( content: MessageContentImageUrl ): GeminiPartInlineData | GeminiPartFileData { @@ -378,6 +387,10 @@ export function getGeminiAPI(config?: GeminiAPIConfig): GoogleAIAPI { throw new Error("Missing Image URL"); } + return inlineOrFileDataFromUrl(url); + } + + function inlineOrFileDataFromUrl(url: string) { const mimeTypeAndData = extractMimeType(url); if (mimeTypeAndData) { return { @@ -620,6 +633,13 @@ export function getGeminiAPI(config?: GeminiAPIConfig): GoogleAIAPI { return messageContentImageUrl(content as MessageContentImageUrl); } break; + case "image": + if ("url" in content) { + return messageContentMultimodalImageData( + content as ContentBlock.Multimodal.Image + ); + } + break; case "media": return await messageContentMedia(content); case "reasoning":