diff --git a/open-sse/translator/helpers/geminiHelper.js b/open-sse/translator/helpers/geminiHelper.js index 77be223..24737e7 100644 --- a/open-sse/translator/helpers/geminiHelper.js +++ b/open-sse/translator/helpers/geminiHelper.js @@ -54,6 +54,10 @@ export function convertOpenAIContentToParts(content) { inlineData: { mime_type: mimeType, data: data } }); } + } else if (item.type === "image_url" && item.image_url?.url && (item.image_url.url.startsWith("http://") || item.image_url.url.startsWith("https://"))) { + parts.push({ + fileData: { fileUri: item.image_url.url, mimeType: "image/*" } + }); } } } diff --git a/open-sse/translator/request/openai-to-claude.js b/open-sse/translator/request/openai-to-claude.js index bb2c315..d4a4393 100644 --- a/open-sse/translator/request/openai-to-claude.js +++ b/open-sse/translator/request/openai-to-claude.js @@ -216,6 +216,11 @@ function getContentBlocksFromMessage(msg, toolNameMap = new Map()) { type: "image", source: { type: "base64", media_type: match[1], data: match[2] } }); + } else if (url.startsWith("http://") || url.startsWith("https://")) { + blocks.push({ + type: "image", + source: { type: "url", url } + }); } } else if (part.type === "image" && part.source) { blocks.push({ type: "image", source: part.source });