diff --git a/changelog.d/fixes/10832-unprefixed-dalle3.md b/changelog.d/fixes/10832-unprefixed-dalle3.md new file mode 100644 index 0000000000..2dfd970b13 --- /dev/null +++ b/changelog.d/fixes/10832-unprefixed-dalle3.md @@ -0,0 +1 @@ +- **fix(images):** register OpenAI `dall-e-3` in the image registry so unprefixed `dall-e-3` (and `openai/dall-e-3`) route to OpenAI Images instead of Microsoft Designer Web, and so the chat catalog no longer lists `openai/dall-e-3` as a 128k chat model ([#10832](https://github.com/diegosouzapw/OmniRoute/issues/10832)) diff --git a/open-sse/config/imageRegistry.ts b/open-sse/config/imageRegistry.ts index d50865599d..17ce7de90e 100644 --- a/open-sse/config/imageRegistry.ts +++ b/open-sse/config/imageRegistry.ts @@ -210,6 +210,7 @@ export const IMAGE_PROVIDERS: Record = { authHeader: "bearer", format: "openai", // native OpenAI format models: [ + { id: "dall-e-3", name: "DALLĀ·E 3" }, { id: "gpt-image-2", name: "GPT Image 2" }, { id: "gpt-image-1.5", name: "GPT Image 1.5" }, { id: "gpt-image-1-mini", name: "GPT Image 1 Mini" }, diff --git a/tests/unit/unprefixed-dalle3-10832.test.ts b/tests/unit/unprefixed-dalle3-10832.test.ts new file mode 100644 index 0000000000..ae6200cbf5 --- /dev/null +++ b/tests/unit/unprefixed-dalle3-10832.test.ts @@ -0,0 +1,43 @@ +import test from "node:test"; +import assert from "node:assert/strict"; +import { + IMAGE_PROVIDERS, + parseImageModel, + getAllImageModels, + isRegisteredImageModel, +} from "../../open-sse/config/imageRegistry.ts"; + +test("#10832 unprefixed dall-e-3 routes to OpenAI, not Microsoft Designer Web", () => { + assert.deepEqual(parseImageModel("dall-e-3"), { + provider: "openai", + model: "dall-e-3", + }); + assert.deepEqual(parseImageModel("openai/dall-e-3"), { + provider: "openai", + model: "dall-e-3", + }); + assert.deepEqual(parseImageModel("microsoft-designer-web/dall-e-3"), { + provider: "microsoft-designer-web", + model: "dall-e-3", + }); + assert.deepEqual(parseImageModel("msdesigner/dall-e-3"), { + provider: "microsoft-designer-web", + model: "dall-e-3", + }); + + assert.equal(isRegisteredImageModel("openai", "dall-e-3"), true); + assert.equal(isRegisteredImageModel("microsoft-designer-web", "dall-e-3"), true); + + const openai = IMAGE_PROVIDERS.openai; + assert.ok(openai.models.some((model) => model.id === "dall-e-3")); + + const catalog = getAllImageModels(); + assert.ok(catalog.some((model) => model.id === "openai/dall-e-3" && model.provider === "openai")); + assert.ok( + catalog.some( + (model) => + model.id === "microsoft-designer-web/dall-e-3" && + model.provider === "microsoft-designer-web" + ) + ); +});