




















@@ -1181,6 +1181,38 @@ describe("openai image generation provider", () => {
11811181);
11821182});
118311831184+it("omits model from Azure generation body because deployment is URL-scoped", async () => {
1185+mockGeneratedPngResponse();
1186+1187+const provider = buildOpenAIImageGenerationProvider();
1188+await provider.generateImage({
1189+provider: "openai",
1190+model: "gpt-image-2-1",
1191+prompt: "Azure cat",
1192+cfg: {
1193+models: {
1194+providers: {
1195+openai: {
1196+baseUrl: "https://myresource.openai.azure.com/openai/v1",
1197+models: [],
1198+},
1199+},
1200+},
1201+},
1202+});
1203+1204+expect(postJsonRequestMock).toHaveBeenCalledWith(
1205+expect.objectContaining({
1206+url: "https://myresource.openai.azure.com/openai/deployments/gpt-image-2-1/images/generations?api-version=2024-12-01-preview",
1207+body: {
1208+prompt: "Azure cat",
1209+n: 1,
1210+size: "1024x1024",
1211+},
1212+}),
1213+);
1214+});
1215+11841216it("uses api-key header and deployment-scoped URL for .cognitiveservices.azure.com hosts", async () => {
11851217mockGeneratedPngResponse();
11861218@@ -1308,6 +1340,41 @@ describe("openai image generation provider", () => {
13081340);
13091341});
131013421343+it("omits model from Azure edit form because deployment is URL-scoped", async () => {
1344+mockGeneratedPngResponse();
1345+1346+const provider = buildOpenAIImageGenerationProvider();
1347+await provider.generateImage({
1348+provider: "openai",
1349+model: "gpt-image-2-1",
1350+prompt: "Change background",
1351+cfg: {
1352+models: {
1353+providers: {
1354+openai: {
1355+baseUrl: "https://myresource.openai.azure.com/openai/v1",
1356+models: [],
1357+},
1358+},
1359+},
1360+},
1361+inputImages: [
1362+{
1363+buffer: Buffer.from("png-bytes"),
1364+mimeType: "image/png",
1365+fileName: "reference.png",
1366+},
1367+],
1368+});
1369+1370+const editCallArgs = postMultipartRequestMock.mock.calls[0]?.[0] as {
1371+body: FormData;
1372+};
1373+expect(editCallArgs.body.has("model")).toBe(false);
1374+expect(editCallArgs.body.get("prompt")).toBe("Change background");
1375+expect(editCallArgs.body.get("size")).toBe("1024x1024");
1376+});
1377+13111378it("strips trailing /v1 from Azure base URL", async () => {
13121379mockGeneratedPngResponse();
13131380此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。