{"_id":"@ai-media/provider-azure-openai","_rev":"6-df13c67d9cde4d08de885344fe6d4416","name":"@ai-media/provider-azure-openai","dist-tags":{"latest":"0.1.5"},"versions":{"0.1.0":{"name":"@ai-media/provider-azure-openai","version":"0.1.0","license":"MIT","_id":"@ai-media/provider-azure-openai@0.1.0","maintainers":[{"name":"windzb","email":"windzb@qq.com"}],"dist":{"shasum":"a04bcf5d914049cade7ae25f6183385eb6ac4004","tarball":"https://registry.npmjs.org/@ai-media/provider-azure-openai/-/provider-azure-openai-0.1.0.tgz","fileCount":5,"integrity":"sha512-s6IJ6j+MHPlhM3x3WQSi3VvfCrZ2H5/cpdsxt41YHuYcxQ/h7d5YNCzYBo01F0+aKPYMrNNI0saLLeCAtwz9dw==","signatures":[{"sig":"MEYCIQDfIJsMTOX+w+AZMZ7n3S/W39XJhOvotlJ830573ml6yAIhAPDgBtE9v9uR0SFBA3X+qWWF1fqyxYl2yb6Vukrm3bu1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15158},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"554268b9348db1e0795cc2e407fe175b654e025c","scripts":{"lint":"eslint","test":"bun test","build":"tsup src/index.ts --format esm --dts --out-dir dist --clean --external @ai-media/sdk","format":"prettier --write \"**/*.{ts,tsx}\"","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit","typecheck:release":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"windzb","email":"windzb@qq.com"},"_npmVersion":"11.13.0","description":"Azure OpenAI image generation provider for AI Media SDK","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@ai-media/sdk":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.2.0","typescript":"^5","@types/node":"^20","@workspace/eslint-config":"workspace:*","@workspace/typescript-config":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/provider-azure-openai_0.1.0_1786090727749_0.41269663463121864","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@ai-media/provider-azure-openai","version":"0.1.1","license":"MIT","_id":"@ai-media/provider-azure-openai@0.1.1","maintainers":[{"name":"windzb","email":"windzb@qq.com"}],"dist":{"shasum":"197a05b8ba7d63459fddcfad92a0b8b0de5f8541","tarball":"https://registry.npmjs.org/@ai-media/provider-azure-openai/-/provider-azure-openai-0.1.1.tgz","fileCount":10,"integrity":"sha512-pAU7ce+EDsmSv2fiL42E+G02ZJyp2Ty87xw5hMiFXZxzjLxVjY5jCtj+4xeVkm0MGZf9sEX/bRlQWb5TwSTEJw==","signatures":[{"sig":"MEYCIQDyPad4TOGF/8PBiVxOXnc4YY2zIEHjyVBFslu9i2voUQIhAIbk1xHAL13Dads8rsKZRh125wXnStWssPYoCvIlGmFk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19557},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"2424f1f89827219fc8467a3752f06b84bef86807","scripts":{"test":"bun test","build":"tsup src/index.ts --format esm --out-dir dist --clean --external @ai-media/sdk && tsc -p tsconfig.emit-dts.json","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit","typecheck:release":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"windzb","email":"windzb@qq.com"},"_npmVersion":"11.13.0","description":"Azure OpenAI image generation provider for AI Media SDK","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@ai-media/sdk":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.0","typescript":"^7.0.2","@types/node":"^20","@workspace/typescript-config":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/provider-azure-openai_0.1.1_1786609209747_0.35468113021020464","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@ai-media/provider-azure-openai","version":"0.1.2","license":"MIT","_id":"@ai-media/provider-azure-openai@0.1.2","maintainers":[{"name":"windzb","email":"windzb@qq.com"}],"dist":{"shasum":"27db30f90c443641cc2a9bba9e6fabd58ff64a10","tarball":"https://registry.npmjs.org/@ai-media/provider-azure-openai/-/provider-azure-openai-0.1.2.tgz","fileCount":10,"integrity":"sha512-dELMIxTLO2Sw3Av8OHdQMyi6G4a8x8ITdlE7rmbKdhfmHFk3rPlsxMSgY8TdhrspjfS4TBs6Dsnrg4Dn1vq3sg==","signatures":[{"sig":"MEYCIQCeXnssMgpWWj02kf4ZZGRUJSEUA1T3K/VxfPj6NUWbQQIhALIRYPBfI3bMzkvYbEfvWXAlJBoZT5rzlmPvmeu+EHVN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19557},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ea34b4d9d1140bae548933472771a6dd44d7865b","scripts":{"test":"bun test","build":"tsup src/index.ts --format esm --out-dir dist --clean --external @ai-media/sdk && tsc -p tsconfig.emit-dts.json","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit","typecheck:release":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"windzb","email":"windzb@qq.com"},"_npmVersion":"11.13.0","description":"Azure OpenAI image generation provider for AI Media SDK","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@ai-media/sdk":"^0.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.0","typescript":"^7.0.2","@types/node":"^20","@workspace/typescript-config":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/provider-azure-openai_0.1.2_1786617043891_0.688527281315829","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@ai-media/provider-azure-openai","version":"0.1.3","license":"MIT","_id":"@ai-media/provider-azure-openai@0.1.3","maintainers":[{"name":"windzb","email":"windzb@qq.com"}],"dist":{"shasum":"c73eef5094feb204d5e02a682a5633d756c2f625","tarball":"https://registry.npmjs.org/@ai-media/provider-azure-openai/-/provider-azure-openai-0.1.3.tgz","fileCount":10,"integrity":"sha512-W4VJhypNGSWGX0SmDHVRB5ptk6no5kkRCPR8oCteCD1WlJe94//0H0rXf0AuymdIkcz+C7uP22dbZVwosJrRyA==","signatures":[{"sig":"MEUCIFuODj08kJk8Q2mIUcaRuHEamWT/9ArutirCM90szHUwAiEA100ORFpJD8t7NZd89oCKFEKCBkm9EmFkd/A585NWkCE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20021},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6c3b3f554fde04c18b01ab1db1a640c686a1b627","scripts":{"test":"bun test","build":"tsup src/index.ts --format esm --out-dir dist --clean --external @ai-media/sdk && tsc -p tsconfig.emit-dts.json","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit","typecheck:release":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"windzb","email":"windzb@qq.com"},"_npmVersion":"11.13.0","description":"Azure OpenAI image generation provider for AI Media SDK","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@ai-media/sdk":"^0.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.0","typescript":"^7.0.2","@types/node":"^20","@workspace/typescript-config":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/provider-azure-openai_0.1.3_1788338217529_0.5695766931281319","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@ai-media/provider-azure-openai","version":"0.1.4","license":"MIT","_id":"@ai-media/provider-azure-openai@0.1.4","maintainers":[{"name":"windzb","email":"windzb@qq.com"}],"dist":{"shasum":"cb28fbf2ee5e4c3236cf5aefd507bd817b16c74d","tarball":"https://registry.npmjs.org/@ai-media/provider-azure-openai/-/provider-azure-openai-0.1.4.tgz","fileCount":10,"integrity":"sha512-+mLrk0vW7x/f4HZNRGJPWJXBB7p+igSLbV4icKJhI/lUvm5iKHIx5FDjqRHOIvObuq489NokE+JRFWSHBbTJOg==","signatures":[{"sig":"MEYCIQCwUHErE+tpSvQysv4WGi/A+q+Q/e7rTD7I3sLoyNKvgAIhAKw+coHkQhPWxelkIMKDxTiS1L43oqzdMSepP6wD4iDZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20021},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5c8cd107a8ccb6238e595123b53eff87d2da7f26","scripts":{"test":"bun test","build":"tsup src/index.ts --format esm --out-dir dist --clean --external @ai-media/sdk && tsc -p tsconfig.emit-dts.json","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit","typecheck:release":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"windzb","email":"windzb@qq.com"},"_npmVersion":"10.9.3","description":"Azure OpenAI image generation provider for AI Media SDK","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@ai-media/sdk":"^0.1.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.0","typescript":"^7.0.2","@types/node":"^20","@workspace/typescript-config":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/provider-azure-openai_0.1.4_1788873424638_0.5378071719878312","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@ai-media/provider-azure-openai","version":"0.1.5","type":"module","description":"Azure OpenAI image generation provider for AI Media SDK","license":"MIT","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"publishConfig":{"access":"public"},"scripts":{"build":"tsup src/index.ts --format esm --out-dir dist --clean --external @ai-media/sdk && tsc -p tsconfig.emit-dts.json","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit","typecheck:release":"tsc -p tsconfig.json --noEmit","test":"bun test"},"dependencies":{"@ai-media/sdk":"^0.1.5"},"devDependencies":{"@types/bun":"^1.2.0","@types/node":"^20","@workspace/typescript-config":"workspace:*","typescript":"^7.0.2"},"_id":"@ai-media/provider-azure-openai@0.1.5","gitHead":"ca953c8881ebb066181712b134a2e559b827aa9f","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-kUzrH5+Nka7tk6ZNLoYpHd9KK22D3XyKf8ilkJb2uonnODXdHx34K6FgYslHLbPJ1zBPe/R/fZRfX0XMJXgD2Q==","shasum":"570d1beb53a4b047949f791f54542680475a824d","tarball":"https://registry.npmjs.org/@ai-media/provider-azure-openai/-/provider-azure-openai-0.1.5.tgz","fileCount":10,"unpackedSize":20021,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGAJQAJlc4uWjwBXWH8OUQpeg0rHXTPzjhamWW5nx1PuAiEA7CuvLSo6hWMfYeC3J9XZTVcTN+N5u71eFr+ouaMj8W8="}]},"_npmUser":{"name":"windzb","email":"windzb@qq.com"},"directories":{},"maintainers":[{"name":"windzb","email":"windzb@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/provider-azure-openai_0.1.5_1789053220691_0.8584581573504073"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-07T08:18:47.616Z","modified":"2026-09-10T15:13:41.063Z","0.1.0":"2026-08-07T08:18:47.890Z","0.1.1":"2026-08-13T08:20:09.902Z","0.1.2":"2026-08-13T10:30:44.037Z","0.1.3":"2026-09-02T08:36:57.651Z","0.1.4":"2026-09-08T13:17:04.766Z","0.1.5":"2026-09-10T15:13:40.857Z"},"license":"MIT","description":"Azure OpenAI image generation provider for AI Media SDK","maintainers":[{"name":"windzb","email":"windzb@qq.com"}],"readme":"# @ai-media/provider-azure-openai\n\n[![npm version](https://img.shields.io/npm/v/@ai-media/provider-azure-openai.svg)](https://www.npmjs.com/package/@ai-media/provider-azure-openai)\n[![npm downloads](https://img.shields.io/npm/dm/@ai-media/provider-azure-openai.svg)](https://www.npmjs.com/package/@ai-media/provider-azure-openai)\n[![License](https://img.shields.io/npm/l/@ai-media/provider-azure-openai.svg)](https://github.com/ecafe8/ai-media-sdk/blob/main/packages/provider-azure-openai/LICENSE)\n\n[AI Media SDK](../ai-media-sdk/README.md) 的 Azure OpenAI 图像生成 Provider。基于原生 `fetch` 调用 Azure OpenAI 图像 API（同步），不依赖 OpenAI 官方 SDK。\n\n> **注意**：本项目处于快速迭代期间，API 可能随时变更，生产使用请锁定版本。\n\n## 安装\n\n```bash\nnpm install @ai-media/sdk @ai-media/provider-azure-openai\n```\n\n运行时要求：Node.js >= 20（或 Bun），ESM-only。\n\n## 配置\n\n通过 `createAzureOpenAIProvider(config)` 传入配置对象：\n\n```ts\nimport { createAzureOpenAIProvider } from \"@ai-media/provider-azure-openai\";\n\nconst provider = createAzureOpenAIProvider({\n  /** API key，作为 `Authorization: Bearer` 凭据发送 */\n  apiKey: \"<your-api-key>\",\n  /** Azure 资源 endpoint，如 https://<resource>.cognitiveservices.azure.com */\n  endpoint: \"https://<resource>.cognitiveservices.azure.com\",\n  /** Azure OpenAI API 版本，如 2024-02-01 */\n  apiVersion: \"2024-02-01\",\n});\n```\n\n## 快速开始\n\n```ts\nimport { generateImage } from \"@ai-media/sdk\";\n\nconst result = await generateImage({\n  model: provider.image(\"gpt-image-2\"),\n  prompt: \"A quiet riverside town at sunrise\",\n  n: 1,\n  size: \"1024x1024\",\n});\n\nconsole.log(result.content); // ImageContent[]\n```\n\n## 模型\n\n| deployment    | 生成 | 编辑   | 调用方式 | size                                             | n 上限 |\n| ------------- | ---- | ------ | -------- | ------------------------------------------------ | ------ |\n| `gpt-image-2` | 支持 | 不支持 | 同步     | `1024x1024` / `1024x1536` / `1536x1024` / `auto` | 1      |\n\nAzure 的 deployment 名称在 Azure Portal 中由用户自定义，无法全局枚举。注册表只内置了已实测确认的 `gpt-image-2`（Serverless Global Standard）；其他 deployment 需要运行时注册：\n\n```ts\nimport { createAzureModel } from \"@ai-media/provider-azure-openai\";\n\n// 方式一：包级函数\nconst model = createAzureModel(provider, \"my-custom-deployment\", {\n  modality: \"image\",\n  generate: true,\n  edit: false,\n});\n\n// 方式二：实例方法（等价）\nconst model2 = provider.createModel(\"my-custom-deployment\");\n\nconst result = await generateImage({ model, prompt: \"...\" });\n```\n\n未提供能力元数据的自定义 deployment 不声明 size/n 约束，参数将原样透传。未注册 deployment 调用 `provider.image()` 会抛出 `UNKNOWN_MODEL`。\n\n列出注册表中的模型：\n\n```ts\nfor (const model of provider.listModels()) {\n  console.log(model.id, model.capabilities);\n}\n```\n\n## provider 专属参数\n\nAzure 专属字段放在 `providerOptions.azure` 命名空间下（类型 `AzureImageProviderOptions`）：\n\n```ts\nconst result = await generateImage({\n  model: provider.image(\"gpt-image-2\"),\n  prompt: \"A quiet riverside town at sunrise\",\n  size: \"1024x1024\",\n  providerOptions: {\n    azure: {\n      quality: \"high\", // 质量提示，如 low / high\n      output_format: \"png\", // 输出格式，如 png / jpeg\n      output_compression: 80, // 压缩级别 0-100（格式支持时）\n    },\n  },\n});\n```\n\n## 限制\n\n- 仅支持同步图像生成；`editImage` 会抛出 `NOT_IMPLEMENTED`。\n- 不支持异步任务（`submitImageTask` 对该 Provider 不可用）。\n- `gpt-image-2` 每次调用固定返回 1 张图（`n` 上限为 1）。\n\n## 错误处理\n\n所有失败抛出 `@ai-media/sdk` 的 `SdkError`（`AUTH_ERROR` / `RATE_LIMITED` / `INVALID_REQUEST` / `PROVIDER_ERROR` / `TIMEOUT` / `NETWORK_ERROR` 等），错误信息不包含凭据。详见 `@ai-media/sdk` README。\n\n## License\n\nMIT\n","readmeFilename":"README.md"}