@henjicc/ai-sdk 0.2.8 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/CHANGELOG.md +153 -143
  2. package/README.md +486 -461
  3. package/dist/capabilities/embedding/bailian.d.ts +23 -0
  4. package/dist/capabilities/embedding/bailian.js +10 -0
  5. package/dist/capabilities/embedding/bigmodel.d.ts +9 -0
  6. package/dist/capabilities/embedding/bigmodel.js +5 -0
  7. package/dist/capabilities/embedding/index.d.ts +1 -0
  8. package/dist/capabilities/embedding/index.js +1 -0
  9. package/dist/capabilities/embedding/ppio.d.ts +7 -0
  10. package/dist/capabilities/embedding/ppio.js +5 -0
  11. package/dist/capabilities/embedding/siliconflow.d.ts +21 -0
  12. package/dist/capabilities/embedding/siliconflow.js +10 -0
  13. package/dist/capabilities/embedding/volcengine.d.ts +10 -0
  14. package/dist/capabilities/embedding/volcengine.js +6 -0
  15. package/dist/capabilities/rerank/bailian.d.ts +21 -0
  16. package/dist/capabilities/rerank/bailian.js +14 -0
  17. package/dist/capabilities/rerank/bigmodel.d.ts +9 -0
  18. package/dist/capabilities/rerank/bigmodel.js +5 -0
  19. package/dist/capabilities/rerank/index.d.ts +1 -0
  20. package/dist/capabilities/rerank/index.js +1 -0
  21. package/dist/capabilities/rerank/ppio.d.ts +7 -0
  22. package/dist/capabilities/rerank/ppio.js +5 -0
  23. package/dist/capabilities/rerank/siliconflow.d.ts +21 -0
  24. package/dist/capabilities/rerank/siliconflow.js +10 -0
  25. package/dist/capabilities/retrieval/http.d.ts +3 -0
  26. package/dist/capabilities/retrieval/http.js +48 -0
  27. package/dist/capabilities/retrieval/module.d.ts +11 -0
  28. package/dist/capabilities/retrieval/module.js +110 -0
  29. package/dist/capabilities/retrieval/types.d.ts +54 -0
  30. package/dist/capabilities/retrieval/types.js +1 -0
  31. package/dist/capabilities/retrieval/validation.d.ts +10 -0
  32. package/dist/capabilities/retrieval/validation.js +65 -0
  33. package/dist/capabilities/types.d.ts +1 -1
  34. package/dist/catalog/apimart/gpt-image-2.5.model.d.ts +2 -0
  35. package/dist/catalog/apimart/gpt-image-2.5.model.js +51 -0
  36. package/dist/catalog/fal/gpt-image-2.5.model.d.ts +2 -0
  37. package/dist/catalog/fal/gpt-image-2.5.model.js +53 -0
  38. package/dist/catalog/fal/ic-light-v2.model.js +9 -13
  39. package/dist/catalog/grsai/gpt-image-2.5.model.d.ts +2 -0
  40. package/dist/catalog/grsai/gpt-image-2.5.model.js +54 -0
  41. package/dist/catalog/grsai/gptImage25Sizes.d.ts +1 -0
  42. package/dist/catalog/grsai/gptImage25Sizes.js +76 -0
  43. package/dist/catalog/index.js +112 -104
  44. package/dist/catalog/kie/gpt-image-2.5.model.d.ts +2 -0
  45. package/dist/catalog/kie/gpt-image-2.5.model.js +38 -0
  46. package/dist/catalog/shared/gptImage25.d.ts +16 -0
  47. package/dist/catalog/shared/gptImage25.js +48 -0
  48. package/dist/catalog/shared/gptImage25Pricing.d.ts +12 -0
  49. package/dist/catalog/shared/gptImage25Pricing.js +508 -0
  50. package/dist/llm/defaults.d.ts +1 -1
  51. package/dist/llm/defaults.js +1 -1
  52. package/dist/llm/modelCatalogEntries.js +16 -0
  53. package/dist/llm/providerPresets.js +2 -2
  54. package/dist/packs/models/apimart/gpt-image-2.5.d.ts +6 -0
  55. package/dist/packs/models/apimart/gpt-image-2.5.js +7 -0
  56. package/dist/packs/models/fal/gpt-image-2.5.d.ts +6 -0
  57. package/dist/packs/models/fal/gpt-image-2.5.js +7 -0
  58. package/dist/packs/models/grsai/gpt-image-2.5.d.ts +6 -0
  59. package/dist/packs/models/grsai/gpt-image-2.5.js +7 -0
  60. package/dist/packs/models/kie/gpt-image-2.5.d.ts +6 -0
  61. package/dist/packs/models/kie/gpt-image-2.5.js +7 -0
  62. package/dist/packs/provider-packs/apimart.d.ts +1 -1
  63. package/dist/packs/provider-packs/apimart.js +21 -20
  64. package/dist/packs/provider-packs/fal.d.ts +1 -1
  65. package/dist/packs/provider-packs/fal.js +37 -36
  66. package/dist/packs/provider-packs/grsai.d.ts +1 -1
  67. package/dist/packs/provider-packs/grsai.js +6 -5
  68. package/dist/packs/provider-packs/kie.d.ts +1 -1
  69. package/dist/packs/provider-packs/kie.js +28 -27
  70. package/dist/packs/tool-models/fal/{qwen-image-edit-2509-multiple-angles.d.ts → qwen-image-edit-2511-multiple-angles.d.ts} +1 -1
  71. package/dist/packs/tool-models/fal/{qwen-image-edit-2509-multiple-angles.js → qwen-image-edit-2511-multiple-angles.js} +1 -1
  72. package/dist/packs/tool-packs/fal-multi-angle-tools.js +1 -1
  73. package/dist/tool-packs/fal-multi-angle/models/qwen-image-edit-2511-multiple-angles.model.d.ts +2 -0
  74. package/dist/tool-packs/fal-multi-angle/models/{qwen-image-edit-2509-multiple-angles.model.js → qwen-image-edit-2511-multiple-angles.model.js} +20 -17
  75. package/docs/README.md +26 -26
  76. package/docs/consumers.md +54 -48
  77. package/docs/llm-adaptation/README.md +139 -139
  78. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/DeepSeek.md +103 -91
  79. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/Kimi.md +75 -75
  80. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/MiniMax.md +84 -84
  81. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//345/260/217/347/261/263MiMo.md +85 -85
  82. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//346/231/272/350/260/261GLM.md +232 -232
  83. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//347/201/253/345/261/261/345/274/225/346/223/216.md +87 -87
  84. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//347/231/276/347/202/274Qwen.md +84 -84
  85. package/docs/llm-adaptation//346/226/207/346/241/243/351/207/207/351/233/206/346/211/213/345/206/214.md +88 -88
  86. package/docs/model-adaptation/Bria-Eraser/Bria-Eraser_Fal.md +32 -32
  87. package/docs/model-adaptation/Bria-/345/210/233/346/204/217/346/224/276/345/244/247/Bria-/345/210/233/346/204/217/346/224/276/345/244/247_Fal.md +31 -31
  88. package/docs/model-adaptation/ControlLight/ControlLight_Fal.md +85 -85
  89. package/docs/model-adaptation/FLUX-2-/345/244/232/350/247/222/345/272/246/FLUX-2-/345/244/232/350/247/222/345/272/246_Fal.md +107 -107
  90. package/docs/model-adaptation/Finegrain-Eraser/Finegrain-Eraser_Fal.md +31 -31
  91. package/docs/model-adaptation/Flux-Pro-Erase/Flux-Pro-Erase_Fal.md +34 -34
  92. package/docs/model-adaptation/Fun-ASR/Fun-ASR_/347/231/276/347/202/274.md +43 -43
  93. package/docs/model-adaptation/Fun-ASR-Flash-2026-06-15/Fun-ASR-Flash-2026-06-15_/347/231/276/347/202/274.md +41 -41
  94. package/docs/model-adaptation/Fun-ASR-Realtime/Fun-ASR-Realtime_/347/231/276/347/202/274.md +37 -37
  95. package/docs/model-adaptation/Fun-ASR-Realtime-2026-02-28/Fun-ASR-Realtime-2026-02-28_/347/231/276/347/202/274.md +39 -39
  96. package/docs/model-adaptation/GLM-5.3-Flash/GLM-5.3-Flash_/346/231/272/350/260/261.md +207 -207
  97. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_APIMart.md +173 -173
  98. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_Fal.md +94 -94
  99. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_Grsai.md +137 -137
  100. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_KIE.md +93 -93
  101. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_APIMart.md +66 -0
  102. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_Fal.md +55 -0
  103. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_Grsai.md +53 -0
  104. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_KIE.md +55 -0
  105. package/docs/model-adaptation/GPT-OSS-20B/GPT-OSS-20B_Groq.md +62 -62
  106. package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_APIMart.md +124 -124
  107. package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_Fal.md +84 -84
  108. package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_KIE.md +129 -129
  109. package/docs/model-adaptation/Grok-Imagine/Grok-Imagine_KIE.md +36 -36
  110. package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_APIMart.md +250 -250
  111. package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_Fal.md +84 -84
  112. package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_KIE.md +105 -105
  113. package/docs/model-adaptation/Hailuo-02/Hailuo-02_Fal.md +93 -93
  114. package/docs/model-adaptation/Hailuo-02/Hailuo-02_KIE.md +56 -56
  115. package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_Fal.md +88 -88
  116. package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_KIE.md +51 -51
  117. package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_/346/264/276/346/254/247/344/272/221.md +70 -70
  118. package/docs/model-adaptation/IC-Light-v2/IC-Light-v2_Fal.md +97 -94
  119. package/docs/model-adaptation/Ideogram-/345/233/276/347/211/207/346/224/276/345/244/247/Ideogram-/345/233/276/347/211/207/346/224/276/345/244/247_Fal.md +41 -41
  120. package/docs/model-adaptation/Image-Apps-v2-/345/225/206/345/223/201/346/221/204/345/275/261/Image-Apps-v2-/345/225/206/345/223/201/346/221/204/345/275/261_Fal.md +72 -72
  121. package/docs/model-adaptation/Image-Apps-v2-/346/211/251/345/233/276/Image-Apps-v2-/346/211/251/345/233/276_Fal.md +93 -93
  122. package/docs/model-adaptation/Image-Apps-v2-/347/205/247/347/211/207/344/277/256/345/244/215/Image-Apps-v2-/347/205/247/347/211/207/344/277/256/345/244/215_Fal.md +86 -86
  123. package/docs/model-adaptation/Image-Apps-v2-/351/207/215/346/211/223/345/205/211/Image-Apps-v2-/351/207/215/346/211/223/345/205/211_Fal.md +84 -84
  124. package/docs/model-adaptation/Kling-3.0/Kling-3.0_APIMart.md +112 -112
  125. package/docs/model-adaptation/Kling-3.0/Kling-3.0_Fal.md +89 -89
  126. package/docs/model-adaptation/Kling-3.0/Kling-3.0_KIE.md +106 -106
  127. package/docs/model-adaptation/Kling-3.0/Kling-3.0_/346/264/276/346/254/247/344/272/221.md +119 -119
  128. package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_APIMart.md +125 -125
  129. package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_Fal.md +107 -107
  130. package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_KIE.md +143 -143
  131. package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_APIMart.md +85 -85
  132. package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_Fal.md +83 -83
  133. package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_KIE.md +84 -84
  134. package/docs/model-adaptation/Midjourney/Midjourney_APIMart.md +396 -396
  135. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_APIMart.md +234 -234
  136. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_Fal.md +108 -108
  137. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_KIE.md +111 -111
  138. package/docs/model-adaptation/MiniMax-Speech/MiniMax-Speech_/346/264/276/346/254/247/344/272/221.md +170 -170
  139. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_APIMart.md +89 -89
  140. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_Fal.md +99 -99
  141. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_Grsai.md +82 -82
  142. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_KIE.md +70 -70
  143. package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_APIMart.md +79 -79
  144. package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_Grsai.md +65 -65
  145. package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_KIE.md +64 -64
  146. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_APIMart.md +83 -83
  147. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_Fal.md +89 -89
  148. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_Grsai.md +82 -82
  149. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_KIE.md +64 -64
  150. package/docs/model-adaptation/Pixelcut-/350/203/214/346/231/257/347/247/273/351/231/244/Pixelcut-/350/203/214/346/231/257/347/247/273/351/231/244_Fal.md +79 -79
  151. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_APIMart.md +117 -117
  152. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_Fal.md +84 -84
  153. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_KIE.md +103 -103
  154. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_/347/231/276/347/202/274.md +138 -138
  155. package/docs/model-adaptation/Qwen-Image-Edit-2511-/345/244/232/350/247/222/345/272/246/Qwen-Image-Edit-2511-/345/244/232/350/247/222/345/272/246_Fal.md +57 -0
  156. package/docs/model-adaptation/Qwen-MT-Flash/Qwen-MT-Flash_/347/231/276/347/202/274.md +47 -47
  157. package/docs/model-adaptation/Qwen-MT-Lite/Qwen-MT-Lite_/347/231/276/347/202/274.md +39 -39
  158. package/docs/model-adaptation/Qwen-MT-Plus/Qwen-MT-Plus_/347/231/276/347/202/274.md +39 -39
  159. package/docs/model-adaptation/Qwen3-ASR-Flash/Qwen3-ASR-Flash_/347/231/276/347/202/274.md +40 -40
  160. package/docs/model-adaptation/Qwen3-ASR-Flash-2026-02-10/Qwen3-ASR-Flash-2026-02-10_/347/231/276/347/202/274.md +33 -33
  161. package/docs/model-adaptation/Qwen3-ASR-Flash-Filetrans/Qwen3-ASR-Flash-Filetrans_/347/231/276/347/202/274.md +41 -41
  162. package/docs/model-adaptation/Qwen3-ASR-Flash-Realtime/Qwen3-ASR-Flash-Realtime_/347/231/276/347/202/274.md +35 -35
  163. package/docs/model-adaptation/Qwen3-ASR-Flash-Realtime-2026-02-10/Qwen3-ASR-Flash-Realtime-2026-02-10_/347/231/276/347/202/274.md +37 -37
  164. package/docs/model-adaptation/README.md +313 -295
  165. package/docs/model-adaptation/SeedASR-2.0-File/SeedASR-2.0-File_/347/201/253/345/261/261/345/274/225/346/223/216.md +115 -115
  166. package/docs/model-adaptation/SeedASR-2.0-Realtime/SeedASR-2.0-Realtime_/347/201/253/345/261/261/345/274/225/346/223/216.md +143 -143
  167. package/docs/model-adaptation/SeedVR2-/345/233/276/347/211/207/346/224/276/345/244/247/SeedVR2-/345/233/276/347/211/207/346/224/276/345/244/247_Fal.md +45 -45
  168. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_APIMart.md +121 -121
  169. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_Fal.md +97 -97
  170. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_KIE.md +86 -86
  171. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_APIMart.md +89 -89
  172. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_Fal.md +95 -95
  173. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_KIE.md +78 -78
  174. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_APIMart.md +89 -89
  175. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_Fal.md +96 -96
  176. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_KIE.md +78 -78
  177. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_APIMart.md +212 -212
  178. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_Fal.md +94 -94
  179. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_KIE.md +89 -89
  180. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_APIMart.md +106 -106
  181. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_Fal.md +91 -91
  182. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_KIE.md +89 -89
  183. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_/347/201/253/345/261/261/345/274/225/346/223/216.md +108 -108
  184. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_APIMart.md +194 -194
  185. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_Fal.md +100 -100
  186. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_KIE.md +141 -141
  187. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_/347/201/253/345/261/261/345/274/225/346/223/216.md +137 -137
  188. package/docs/model-adaptation/SenseVoiceSmall/SenseVoiceSmall_/347/241/205/345/237/272/346/265/201/345/212/250.md +69 -69
  189. package/docs/model-adaptation/TeleSpeechASR/TeleSpeechASR_/347/241/205/345/237/272/346/265/201/345/212/250.md +72 -72
  190. package/docs/model-adaptation/Topaz-/345/233/276/347/211/207/346/224/276/345/244/247/Topaz-/345/233/276/347/211/207/346/224/276/345/244/247_Fal.md +87 -87
  191. package/docs/model-adaptation/Topaz-/351/200/217/346/230/216/345/233/276/346/224/276/345/244/247/Topaz-/351/200/217/346/230/216/345/233/276/346/224/276/345/244/247_Fal.md +34 -34
  192. package/docs/model-adaptation/Wan-2.5-Preview/Wan-2.5-Preview_/346/264/276/346/254/247/344/272/221.md +82 -82
  193. package/docs/model-adaptation/Wan-2.6/Wan-2.6_/346/264/276/346/254/247/344/272/221.md +84 -84
  194. package/docs/model-adaptation/Wan-2.7/Wan-2.7_/346/264/276/346/254/247/344/272/221.md +122 -122
  195. package/docs/model-adaptation/Whisper-Large-v3/Whisper-Large-v3_Groq.md +76 -76
  196. package/docs/model-adaptation/Whisper-Large-v3-Turbo/Whisper-Large-v3-Turbo_Groq.md +75 -75
  197. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_APIMart.md +88 -88
  198. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_Fal.md +95 -95
  199. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_KIE.md +71 -71
  200. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_/347/231/276/347/202/274.md +122 -122
  201. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_/351/255/224/346/220/255.md +97 -97
  202. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/APIMart.md +238 -238
  203. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Fal.md +172 -172
  204. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Groq.md +121 -121
  205. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Grsai.md +217 -217
  206. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/KIE.md +131 -131
  207. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//345/200/231/351/200/211/344/276/233/345/272/224/345/225/206/350/260/203/347/240/224-/345/233/276/347/211/207/345/267/245/345/205/267.md +151 -151
  208. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//345/277/253/351/200/237/351/200/202/351/205/215/344/276/233/345/272/224/345/225/206.md +65 -65
  209. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//346/264/276/346/254/247/344/272/221.md +147 -138
  210. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//347/201/253/345/261/261/345/274/225/346/223/216.md +181 -171
  211. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//347/231/276/347/202/274.md +237 -227
  212. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//347/241/205/345/237/272/346/265/201/345/212/250.md +110 -88
  213. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//351/255/224/346/220/255.md +207 -207
  214. package/docs/model-adaptation//346/226/207/346/241/243/351/207/207/351/233/206/346/211/213/345/206/214.md +338 -311
  215. package/docs/model-adaptation//351/200/217/350/247/206/345/217/230/346/215/242//351/200/217/350/247/206/345/217/230/346/215/242_Fal.md +59 -59
  216. package/docs//346/216/245/345/205/245/346/214/207/345/215/227/Electron.md +77 -77
  217. package/docs//346/216/245/345/205/245/346/214/207/345/215/227/Tauri.md +81 -81
  218. package/docs//346/216/245/345/205/245/346/214/207/345/215/227/UXP.md +169 -169
  219. package/docs//346/216/245/345/205/245/346/214/207/345/215/227//344/276/233/345/272/224/345/225/206/345/237/237/345/220/215.md +83 -83
  220. package/docs//346/216/245/345/205/245/346/214/207/345/215/227//351/224/231/350/257/257/345/244/204/347/220/206.md +72 -72
  221. package/examples/form-renderer/README.md +17 -17
  222. package/examples/form-renderer/cli.ts +32 -32
  223. package/examples/form-renderer/index.ts +144 -144
  224. package/examples/form-renderer/package.json +16 -16
  225. package/examples/form-renderer/tsconfig.json +14 -14
  226. package/examples/llm-chat/README.md +32 -32
  227. package/examples/llm-chat/index.ts +100 -100
  228. package/examples/llm-chat/package.json +19 -19
  229. package/examples/llm-chat/tsconfig.json +14 -14
  230. package/examples/minimal-node/README.md +31 -31
  231. package/examples/minimal-node/index.ts +138 -138
  232. package/examples/minimal-node/package.json +17 -17
  233. package/examples/minimal-node/tsconfig.json +14 -14
  234. package/package.json +252 -197
  235. package/dist/tool-packs/fal-multi-angle/models/qwen-image-edit-2509-multiple-angles.model.d.ts +0 -2
  236. package/docs/model-adaptation/Qwen-Image-Edit-2509-/345/244/232/350/247/222/345/272/246/Qwen-Image-Edit-2509-/345/244/232/350/247/222/345/272/246_Fal.md +0 -116
@@ -1,227 +1,237 @@
1
- # 阿里云百炼 · 供应商基础文档
2
-
3
- | 项目 | 内容 |
4
- |---|---|
5
- | 最后更新 | 2026-08-28 |
6
- | 供应商类型 | 模型原厂/云平台(Alibaba Cloud Model Studio) |
7
- | 项目内 `providerId` | `bailian` |
8
- | 鉴权 | `Authorization: Bearer <DashScope API Key>` |
9
- | 本次资料范围 | 图片生成/编辑、在线 ASR(实时/短音频/文件)、Qwen-MT 文本翻译 |
10
- | 文档/价格可见性 | 公开,无需登录;API Key、空间和账单需登录 |
11
-
12
- ## 1. Base URL 和区域
13
-
14
- 百炼的 API Key、业务空间和 Base URL 有区域绑定,不能混用。
15
-
16
- | 区域 | 推荐 DashScope Base URL | 历史公共地址 |
17
- |---|---|---|
18
- | 华北2(北京) | `https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1` | `https://dashscope.aliyuncs.com/api/v1` |
19
- | 新加坡 | `https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1` | `https://dashscope-intl.aliyuncs.com/api/v1` |
20
- | 美国(弗吉尼亚) | `https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/api/v1` | 按当前官方地域文档 |
21
-
22
- `WorkspaceId` 需从百炼控制台的业务空间详情获取。官方目前仍保证历史地址可用,但推荐迁移到空间专属域名以获得更稳定的访问。
23
-
24
- 实时 WebSocket 同样受地域约束:
25
-
26
- ```text
27
- Fun-ASR-Realtime: wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/inference
28
- Qwen3-ASR-Realtime: wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/realtime?model=<model_id>
29
- ```
30
-
31
- 新加坡使用 `{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com`。API Key、Workspace、地域必须一致。
32
-
33
- ## 2. 生成端点
34
-
35
- ### 2.1 同步多模态生成(当前项目使用)
36
-
37
- ```text
38
- POST /api/v1/services/aigc/multimodal-generation/generation
39
- ```
40
-
41
- 该契约适用于当前 Qwen Image 3.0 等同步图片模型。主要结果路径:
42
-
43
- ```text
44
- output.choices[].message.content[].image
45
- ```
46
-
47
- 图片 URL 通常仅保留 **24 小时**,需及时转存。
48
-
49
- ### 2.2 异步生成(按模型支持)
50
-
51
- 百炼的异步接口并非所有模型共用同一个提交路由。以历史 Qwen Image 异步文生图为例:
52
-
53
- ```text
54
- POST /api/v1/services/aigc/text2image/image-synthesis
55
- X-DashScope-Async: enable
56
- ```
57
-
58
- 查询任务:
59
-
60
- ```text
61
- GET /api/v1/tasks/{task_id}
62
- ```
63
-
64
- 通用状态包括 `PENDING`、`RUNNING`、`SUCCEEDED`、`FAILED`、`CANCELED`、`UNKNOWN`。但每个模型是否支持异步、提交路由与结果结构必须查询单模型文档,不得仅因为供应商有 tasks API 就强行切换。
65
-
66
- ## 3. 上传本地文件
67
-
68
- 百炼提供免费临时存储,用于将本地图片、视频或音频转为 `oss://` 地址。
69
-
70
- ### 3.1 获取上传凭证
71
-
72
- ```text
73
- GET https://dashscope.aliyuncs.com/api/v1/uploads?action=getPolicy&model=<model-name>
74
- Authorization: Bearer <API Key>
75
- ```
76
-
77
- 返回 `data.upload_host`、`upload_dir`、`policy`、`signature`、`oss_access_key_id`、`x_oss_object_acl`、`x_oss_forbid_overwrite` 等字段。凭证通常只在 `expire_in_seconds` 内有效。
78
-
79
- ### 3.2 上传到 OSS
80
-
81
- `POST {data.upload_host}`,multipart 字段包含:
82
-
83
- - `OSSAccessKeyId`
84
- - `Signature`
85
- - `policy`
86
- - `x-oss-object-acl`
87
- - `x-oss-forbid-overwrite`
88
- - `key`
89
- - `success_action_status=200`
90
- - `file`(必须放在最后)
91
-
92
- 生成给模型使用的地址:`oss://<upload_dir>/<filename>`。
93
-
94
- ### 3.3 使用临时 URL
95
-
96
- - 调用模型时必须加 `X-DashScope-OssResourceResolve: enable`。
97
- - 文件有效期 **48 小时**。
98
- - 上传时必须指定后续调用的精确模型名,不同模型不能共享该文件。
99
- - 上传和生成使用的 API Key 必须属于同一阿里云主账号。
100
- - 单文件上传接口上限 1 GB,具体模型通常有更低的输入限制。
101
- - 临时存储不用于生产长期托管,高并发建议使用自有 OSS。
102
-
103
- ## 4. 在线 ASR 三类协议
104
-
105
- ### 4.1 Fun-ASR-Realtime WebSocket
106
-
107
- 1. 建立 WSS,握手头带 `Authorization: Bearer <API Key>`。
108
- 2. 发 `run-task`(客户端生成 UUID `task_id`)。
109
- 3. 等 `task-started` 后发单声道二进制音频,持续接收 `result-generated`。
110
- 4. 发 `finish-task`,等 `task-finished` 后才可复用连接或关闭。
111
- 5. `task-failed` 后服务端关闭连接,该连接不可复用;完成后 60 秒内无新任务会自动断开。
112
-
113
- `result-generated` 同时承载句子生命周期和文本。官方“句子开始结果”为 `sentence_begin=true`、`sentence_end=false`、`text=""`、`words=[]`,应忽略空文本并继续等待;`sentence_end=true` 才是必须带文本的最终结果。`task-finished.payload` 通常为空,只表示任务结束。实现必须保留此前累计的 final,并在任务全程没有有效 final 时明确报无有效转写。
114
-
115
- 音频格式 `pcm/wav/mp3/opus/speex/aac/amr`,采样率任意,时长无限制;输入必须单声道。
116
-
117
- ### 4.2 Qwen3-ASR-Flash-Realtime WebSocket
118
-
119
- 该系列不复用 `run-task` 协议,而是会话事件:`session.created` → `session.update` → 多个 `input_audio_buffer.append` →(Manual 模式发 `input_audio_buffer.commit`)→ `session.finish` → `session.finished`。
120
-
121
- - VAD 模式由服务端断句;Manual 模式由客户端 `commit`。
122
- - 最终文本为 `conversation.item.input_audio_transcription.completed`,中间文本为 `.text`,失败为 `.failed` / `error`。
123
- - 推完音频必须先发 `session.finish` 并等 `session.finished`,直接断开会丢弃未完成结果。每次会话后主动断开,不支持连接复用。
124
- - `pcm/opus`,8kHz/16kHz,单声道;单个 `append` 的 Base64 `audio` 最大 15 MiB,实时使用应分小块。
125
-
126
- ### 4.3 短音频同步 HTTP
127
-
128
- | 系列 | 端点 | 输入 | 上限 | 结果 |
129
- |---|---|---|---|---|
130
- | `fun-asr-flash-2026-06-15` | `POST /api/v1/services/aigc/multimodal-generation/generation` | `input.messages[].content[].input_audio.data` 为公网 URL 或 Data URI | 5 分钟 / 2 GB | `output.text` / `output.sentence` + `usage.duration` |
131
- | `qwen3-asr-flash*` | OpenAI 兼容 `POST /compatible-mode/v1/chat/completions`;或上述 DashScope 同步端点 | URL 或 Base64;OpenAI 兼容额外参数放 `asr_options` | 5 分钟 / 10 MB | OpenAI `choices[].message.content`;DashScope `output.choices[]` |
132
-
133
- `fun-asr-flash` 协议支持 `X-DashScope-SSE: enable`;音频不少于 1 分钟时才会多次返回中间结果。
134
-
135
- ### 4.4 文件异步 HTTP
136
-
137
- ```text
138
- POST /api/v1/services/audio/asr/transcription
139
- X-DashScope-Async: enable
140
- GET /api/v1/tasks/{task_id}
141
- ```
142
-
143
- - `fun-asr` 提交 `input.file_urls` (单次 1 个公网 URL);`qwen3-asr-flash-filetrans` 提交 `input.file_url`。
144
- - 两者上限均为 12 小时 / 2 GB;说话人分离场景建议不超过 2 小时。
145
- - 状态:`PENDING/RUNNING/SUCCEEDED/FAILED/UNKNOWN`。`fun-asr` 成功结果在 `output.results[].transcription_url`,需再下载 JSON;内含 `transcript/sentences/words/speaker_id`。
146
- - 异步任务支持查询最近 24 小时提交的任务;必须将转写结果及时落地,不得把签名 URL 当长期资源。
147
-
148
- ## 5. Qwen-MT 翻译
149
-
150
- Qwen-MT 可通过 OpenAI 兼容 `POST /compatible-mode/v1/chat/completions` 或 DashScope `POST /api/v1/services/aigc/text-generation/generation` 调用。请求只支持 User Message,译文在 `choices[0].message.content`。
151
-
152
- `translation_options` 必填:
153
-
154
- - `source_lang`:源语言英文全称,或 `auto`。
155
- - `target_lang`:目标语言英文全称。
156
- - `terms` / `tm_list` / `domains`:可选术语干预、翻译记忆、英文领域提示。
157
-
158
- `qwen-mt-flash` / `qwen-mt-lite` 流式返回是增量片段;`qwen-mt-plus` 为累积序列,消费时不能一律字符串追加。
159
-
160
- ## 6. 计价查询
161
-
162
- 百炼生成模型没有一个可以用 DashScope API Key 查询全部图片/视频当前单价的稳定公开 API。项目使用以下优先级:
163
-
164
- 1. 当前官方模型价格页。
165
- 2. 单模型 API 文档中的计费规则。
166
- 3. 调用返回的 `usage`,用于对账输出数量/像素/等效用量。
167
- 4. 最终账单与用量明细。
168
-
169
- 价格与可用模型都可能按区域不同,文档必须同时记录地域。
170
-
171
- 本次官方价格页(2026-08-28 读取,北京原价):
172
-
173
- | 模型族 | 输入单价 |
174
- |---|---|
175
- | Fun-ASR / Fun-ASR-Flash | 0.00022 元/秒 |
176
- | Fun-ASR-Realtime | 0.00033 元/秒 |
177
- | Qwen3-ASR-Flash / Filetrans | 0.00022 元/秒,输出不计费 |
178
- | Qwen3-ASR-Flash-Realtime | 0.00033 元/秒 |
179
- | Qwen-MT Plus | 输入 1.8 元/百万 Token,输出 5.4 元/百万 Token |
180
- | Qwen-MT Flash | 输入 0.7 元/百万 Token,输出 1.95 元/百万 Token |
181
- | Qwen-MT Lite | 输入 0.6 元/百万 Token,输出 1.6 元/百万 Token |
182
-
183
- ## 7. 错误边界
184
-
185
- - WebSocket 握手时 Key 缺失/无效返回 HTTP 401/403;任务层 Fun-ASR 为 `task-failed`,Qwen3-ASR 为 `error` / `conversation.item.input_audio_transcription.failed`。
186
- - HTTP 同步错误通常在顶层 `code/message/request_id`;异步还需读 `output.task_status/code/message` 与每个 `results[].subtask_status/code/message`。
187
- - 需显式分类:模型 ID 不存在/服务未开通(不重试)、Key/空间/地域错配(不重试)、空音频/格式或时长不合法(不重试)、媒体 URL 下载失败(替换输入或上传后重试)、限流/网络/服务端错误(受控退避)。
188
- - 用户取消要在错误归一前优先识别:WS 停止送音频并关连接,HTTP/SSE 中止 fetch,异步停止轮询;不得转成“网络失败”后自动重试。
189
-
190
- ## 8. 余额
191
-
192
- 余额/账单属于阿里云财务体系,通常需要云账号 AccessKey 和 OpenAPI 签名,不是 DashScope 生成 API Key 的同一契约。按当前优先级,Henji-AI 只保存 Key 并标记“未在线验证”,暂不接入云财务权限。
193
-
194
- ## 9. 项目当前实现
195
-
196
- | 能力 | 状态 | 说明 |
197
- |---|---|---|
198
- | 同步图片生成 | 已接入 | `providers/bailian.ts` |
199
- | 图片 URL 解析 | 已接入 | 兼容 `image` / `url` 嵌套字段 |
200
- | Base URL | 可用但未完整配置化 | 当前固定历史北京地址;未提供 WorkspaceId/区域设置 |
201
- | 本地文件 | 已支持当前模型 | 当前转 Data URI;接入不支持 Data URI 或大文件模型前,先实现上述 `oss://` 公共上传 |
202
- | 异步任务 | 未提前造分支 | 当前模型不使用;新异步模型接入时按它的官方路由实现 |
203
- | 余额查询 | 暂缓 | 避免引入云账号 AK/SK 高权限 |
204
- | Qwen-MT | **已接入 SDK,待真实请求** | 三模型通过 `capabilities/translation/bailian` 按需导入;已有官方示例 fixture 与精确测试,尚无真实付费请求证据 |
205
- | ASR | **短音频/文件已接入,实时待后续** | `capabilities/speech-recognition/bailian` 按需导入;实时 WebSocket 由后续独立任务实现,不与翻译模块互相导入 |
206
-
207
- ## 10. 原始链接索引
208
-
209
- | 信息 | 链接 | 登录 |
210
- |---|---|---|
211
- | 模型与地域总览 | https://help.aliyun.com/zh/model-studio/models | 否 |
212
- | Qwen Image API(同步/异步、地址、结果) | https://help.aliyun.com/zh/model-studio/qwen-image-api | 否 |
213
- | 上传文件获取临时 URL | https://help.aliyun.com/zh/model-studio/get-temporary-file-url | 否 |
214
- | ASR 模型与音频规格 | https://help.aliyun.com/zh/model-studio/asr-model/ | 否 |
215
- | 实时 ASR 用户指南 | https://help.aliyun.com/zh/model-studio/real-time-speech-recognition-user-guide | 否 |
216
- | Fun-ASR-Realtime WebSocket 协议 | https://help.aliyun.com/zh/model-studio/fun-asr-realtime-websocket-api | 否 |
217
- | Fun-ASR-Realtime 客户端/服务端事件 | https://help.aliyun.com/zh/model-studio/fun-asr-client-events ; https://help.aliyun.com/zh/model-studio/fun-asr-server-events | 否 |
218
- | Qwen-ASR-Realtime 交互/事件 | https://help.aliyun.com/zh/model-studio/qwen-asr-realtime-interaction-process ; https://help.aliyun.com/zh/model-studio/qwen-asr-realtime-client-events ; https://help.aliyun.com/zh/model-studio/qwen-asr-realtime-server-events | 否 |
219
- | 非实时 ASR 用户指南 | https://help.aliyun.com/zh/model-studio/non-realtime-speech-recognition-user-guide | 否 |
220
- | Fun-ASR 文件异步 API | https://help.aliyun.com/zh/model-studio/fun-asr-recorded-speech-recognition-http-api | 否 |
221
- | Fun-ASR-Flash 短音频 API | https://help.aliyun.com/zh/model-studio/non-real-time-speech-recognition-for-fun-asr-flash | 否 |
222
- | Qwen-ASR 短音频/文件 API | https://help.aliyun.com/zh/model-studio/qwen-asr-api-reference | 否 |
223
- | Qwen-MT API | https://help.aliyun.com/zh/model-studio/qwen-mt-api | 否 |
224
- | Qwen-MT 能力页 | https://help.aliyun.com/zh/model-studio/machine-translation | 否(本次访问触发验证码,未取正文) |
225
- | 官方模型价格 | https://help.aliyun.com/zh/model-studio/model-pricing | 否 |
226
- | 错误码/区域不匹配 | https://help.aliyun.com/zh/model-studio/developer-reference/error-code | 否 |
227
- | API Key | https://bailian.console.aliyun.com/?apiKey=1#/api-key | 是 |
1
+ # 阿里云百炼 · 供应商基础文档
2
+
3
+ | 项目 | 内容 |
4
+ |---|---|
5
+ | 最后更新 | 2026-08-28 |
6
+ | 供应商类型 | 模型原厂/云平台(Alibaba Cloud Model Studio) |
7
+ | 项目内 `providerId` | `bailian` |
8
+ | 鉴权 | `Authorization: Bearer <DashScope API Key>` |
9
+ | 本次资料范围 | 图片生成/编辑、在线 ASR(实时/短音频/文件)、Qwen-MT 文本翻译 |
10
+ | 文档/价格可见性 | 公开,无需登录;API Key、空间和账单需登录 |
11
+
12
+ ## 1. Base URL 和区域
13
+
14
+ 百炼的 API Key、业务空间和 Base URL 有区域绑定,不能混用。
15
+
16
+ | 区域 | 推荐 DashScope Base URL | 历史公共地址 |
17
+ |---|---|---|
18
+ | 华北2(北京) | `https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1` | `https://dashscope.aliyuncs.com/api/v1` |
19
+ | 新加坡 | `https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1` | `https://dashscope-intl.aliyuncs.com/api/v1` |
20
+ | 美国(弗吉尼亚) | `https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/api/v1` | 按当前官方地域文档 |
21
+
22
+ `WorkspaceId` 需从百炼控制台的业务空间详情获取。官方目前仍保证历史地址可用,但推荐迁移到空间专属域名以获得更稳定的访问。
23
+
24
+ 实时 WebSocket 同样受地域约束:
25
+
26
+ ```text
27
+ Fun-ASR-Realtime: wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/inference
28
+ Qwen3-ASR-Realtime: wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/realtime?model=<model_id>
29
+ ```
30
+
31
+ 新加坡使用 `{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com`。API Key、Workspace、地域必须一致。
32
+
33
+ ## 2. 生成端点
34
+
35
+ ### 2.1 同步多模态生成(当前项目使用)
36
+
37
+ ```text
38
+ POST /api/v1/services/aigc/multimodal-generation/generation
39
+ ```
40
+
41
+ 该契约适用于当前 Qwen Image 3.0 等同步图片模型。主要结果路径:
42
+
43
+ ```text
44
+ output.choices[].message.content[].image
45
+ ```
46
+
47
+ 图片 URL 通常仅保留 **24 小时**,需及时转存。
48
+
49
+ ### 2.2 异步生成(按模型支持)
50
+
51
+ 百炼的异步接口并非所有模型共用同一个提交路由。以历史 Qwen Image 异步文生图为例:
52
+
53
+ ```text
54
+ POST /api/v1/services/aigc/text2image/image-synthesis
55
+ X-DashScope-Async: enable
56
+ ```
57
+
58
+ 查询任务:
59
+
60
+ ```text
61
+ GET /api/v1/tasks/{task_id}
62
+ ```
63
+
64
+ 通用状态包括 `PENDING`、`RUNNING`、`SUCCEEDED`、`FAILED`、`CANCELED`、`UNKNOWN`。但每个模型是否支持异步、提交路由与结果结构必须查询单模型文档,不得仅因为供应商有 tasks API 就强行切换。
65
+
66
+ ## 3. 上传本地文件
67
+
68
+ 百炼提供免费临时存储,用于将本地图片、视频或音频转为 `oss://` 地址。
69
+
70
+ ### 3.1 获取上传凭证
71
+
72
+ ```text
73
+ GET https://dashscope.aliyuncs.com/api/v1/uploads?action=getPolicy&model=<model-name>
74
+ Authorization: Bearer <API Key>
75
+ ```
76
+
77
+ 返回 `data.upload_host`、`upload_dir`、`policy`、`signature`、`oss_access_key_id`、`x_oss_object_acl`、`x_oss_forbid_overwrite` 等字段。凭证通常只在 `expire_in_seconds` 内有效。
78
+
79
+ ### 3.2 上传到 OSS
80
+
81
+ `POST {data.upload_host}`,multipart 字段包含:
82
+
83
+ - `OSSAccessKeyId`
84
+ - `Signature`
85
+ - `policy`
86
+ - `x-oss-object-acl`
87
+ - `x-oss-forbid-overwrite`
88
+ - `key`
89
+ - `success_action_status=200`
90
+ - `file`(必须放在最后)
91
+
92
+ 生成给模型使用的地址:`oss://<upload_dir>/<filename>`。
93
+
94
+ ### 3.3 使用临时 URL
95
+
96
+ - 调用模型时必须加 `X-DashScope-OssResourceResolve: enable`。
97
+ - 文件有效期 **48 小时**。
98
+ - 上传时必须指定后续调用的精确模型名,不同模型不能共享该文件。
99
+ - 上传和生成使用的 API Key 必须属于同一阿里云主账号。
100
+ - 单文件上传接口上限 1 GB,具体模型通常有更低的输入限制。
101
+ - 临时存储不用于生产长期托管,高并发建议使用自有 OSS。
102
+
103
+ ## 4. 在线 ASR 三类协议
104
+
105
+ ### 4.1 Fun-ASR-Realtime WebSocket
106
+
107
+ 1. 建立 WSS,握手头带 `Authorization: Bearer <API Key>`。
108
+ 2. 发 `run-task`(客户端生成 UUID `task_id`)。
109
+ 3. 等 `task-started` 后发单声道二进制音频,持续接收 `result-generated`。
110
+ 4. 发 `finish-task`,等 `task-finished` 后才可复用连接或关闭。
111
+ 5. `task-failed` 后服务端关闭连接,该连接不可复用;完成后 60 秒内无新任务会自动断开。
112
+
113
+ `result-generated` 同时承载句子生命周期和文本。官方“句子开始结果”为 `sentence_begin=true`、`sentence_end=false`、`text=""`、`words=[]`,应忽略空文本并继续等待;`sentence_end=true` 才是必须带文本的最终结果。`task-finished.payload` 通常为空,只表示任务结束。实现必须保留此前累计的 final,并在任务全程没有有效 final 时明确报无有效转写。
114
+
115
+ 音频格式 `pcm/wav/mp3/opus/speex/aac/amr`,采样率任意,时长无限制;输入必须单声道。
116
+
117
+ ### 4.2 Qwen3-ASR-Flash-Realtime WebSocket
118
+
119
+ 该系列不复用 `run-task` 协议,而是会话事件:`session.created` → `session.update` → 多个 `input_audio_buffer.append` →(Manual 模式发 `input_audio_buffer.commit`)→ `session.finish` → `session.finished`。
120
+
121
+ - VAD 模式由服务端断句;Manual 模式由客户端 `commit`。
122
+ - 最终文本为 `conversation.item.input_audio_transcription.completed`,中间文本为 `.text`,失败为 `.failed` / `error`。
123
+ - 推完音频必须先发 `session.finish` 并等 `session.finished`,直接断开会丢弃未完成结果。每次会话后主动断开,不支持连接复用。
124
+ - `pcm/opus`,8kHz/16kHz,单声道;单个 `append` 的 Base64 `audio` 最大 15 MiB,实时使用应分小块。
125
+
126
+ ### 4.3 短音频同步 HTTP
127
+
128
+ | 系列 | 端点 | 输入 | 上限 | 结果 |
129
+ |---|---|---|---|---|
130
+ | `fun-asr-flash-2026-06-15` | `POST /api/v1/services/aigc/multimodal-generation/generation` | `input.messages[].content[].input_audio.data` 为公网 URL 或 Data URI | 5 分钟 / 2 GB | `output.text` / `output.sentence` + `usage.duration` |
131
+ | `qwen3-asr-flash*` | OpenAI 兼容 `POST /compatible-mode/v1/chat/completions`;或上述 DashScope 同步端点 | URL 或 Base64;OpenAI 兼容额外参数放 `asr_options` | 5 分钟 / 10 MB | OpenAI `choices[].message.content`;DashScope `output.choices[]` |
132
+
133
+ `fun-asr-flash` 协议支持 `X-DashScope-SSE: enable`;音频不少于 1 分钟时才会多次返回中间结果。
134
+
135
+ ### 4.4 文件异步 HTTP
136
+
137
+ ```text
138
+ POST /api/v1/services/audio/asr/transcription
139
+ X-DashScope-Async: enable
140
+ GET /api/v1/tasks/{task_id}
141
+ ```
142
+
143
+ - `fun-asr` 提交 `input.file_urls` (单次 1 个公网 URL);`qwen3-asr-flash-filetrans` 提交 `input.file_url`。
144
+ - 两者上限均为 12 小时 / 2 GB;说话人分离场景建议不超过 2 小时。
145
+ - 状态:`PENDING/RUNNING/SUCCEEDED/FAILED/UNKNOWN`。`fun-asr` 成功结果在 `output.results[].transcription_url`,需再下载 JSON;内含 `transcript/sentences/words/speaker_id`。
146
+ - 异步任务支持查询最近 24 小时提交的任务;必须将转写结果及时落地,不得把签名 URL 当长期资源。
147
+
148
+ ## 5. Qwen-MT 翻译
149
+
150
+ Qwen-MT 可通过 OpenAI 兼容 `POST /compatible-mode/v1/chat/completions` 或 DashScope `POST /api/v1/services/aigc/text-generation/generation` 调用。请求只支持 User Message,译文在 `choices[0].message.content`。
151
+
152
+ `translation_options` 必填:
153
+
154
+ - `source_lang`:源语言英文全称,或 `auto`。
155
+ - `target_lang`:目标语言英文全称。
156
+ - `terms` / `tm_list` / `domains`:可选术语干预、翻译记忆、英文领域提示。
157
+
158
+ `qwen-mt-flash` / `qwen-mt-lite` 流式返回是增量片段;`qwen-mt-plus` 为累积序列,消费时不能一律字符串追加。
159
+
160
+ ## 6. 计价查询
161
+
162
+ 百炼生成模型没有一个可以用 DashScope API Key 查询全部图片/视频当前单价的稳定公开 API。项目使用以下优先级:
163
+
164
+ 1. 当前官方模型价格页。
165
+ 2. 单模型 API 文档中的计费规则。
166
+ 3. 调用返回的 `usage`,用于对账输出数量/像素/等效用量。
167
+ 4. 最终账单与用量明细。
168
+
169
+ 价格与可用模型都可能按区域不同,文档必须同时记录地域。
170
+
171
+ 本次官方价格页(2026-08-28 读取,北京原价):
172
+
173
+ | 模型族 | 输入单价 |
174
+ |---|---|
175
+ | Fun-ASR / Fun-ASR-Flash | 0.00022 元/秒 |
176
+ | Fun-ASR-Realtime | 0.00033 元/秒 |
177
+ | Qwen3-ASR-Flash / Filetrans | 0.00022 元/秒,输出不计费 |
178
+ | Qwen3-ASR-Flash-Realtime | 0.00033 元/秒 |
179
+ | Qwen-MT Plus | 输入 1.8 元/百万 Token,输出 5.4 元/百万 Token |
180
+ | Qwen-MT Flash | 输入 0.7 元/百万 Token,输出 1.95 元/百万 Token |
181
+ | Qwen-MT Lite | 输入 0.6 元/百万 Token,输出 1.6 元/百万 Token |
182
+
183
+ ## 7. 错误边界
184
+
185
+ - WebSocket 握手时 Key 缺失/无效返回 HTTP 401/403;任务层 Fun-ASR 为 `task-failed`,Qwen3-ASR 为 `error` / `conversation.item.input_audio_transcription.failed`。
186
+ - HTTP 同步错误通常在顶层 `code/message/request_id`;异步还需读 `output.task_status/code/message` 与每个 `results[].subtask_status/code/message`。
187
+ - 需显式分类:模型 ID 不存在/服务未开通(不重试)、Key/空间/地域错配(不重试)、空音频/格式或时长不合法(不重试)、媒体 URL 下载失败(替换输入或上传后重试)、限流/网络/服务端错误(受控退避)。
188
+ - 用户取消要在错误归一前优先识别:WS 停止送音频并关连接,HTTP/SSE 中止 fetch,异步停止轮询;不得转成“网络失败”后自动重试。
189
+
190
+ ## 8. 余额
191
+
192
+ 余额/账单属于阿里云财务体系,通常需要云账号 AccessKey 和 OpenAPI 签名,不是 DashScope 生成 API Key 的同一契约。按当前优先级,Henji-AI 只保存 Key 并标记“未在线验证”,暂不接入云财务权限。
193
+
194
+ ## 9. 项目当前实现
195
+
196
+ | 能力 | 状态 | 说明 |
197
+ |---|---|---|
198
+ | 同步图片生成 | 已接入 | `providers/bailian.ts` |
199
+ | 图片 URL 解析 | 已接入 | 兼容 `image` / `url` 嵌套字段 |
200
+ | Base URL | 可用但未完整配置化 | 当前固定历史北京地址;未提供 WorkspaceId/区域设置 |
201
+ | 本地文件 | 已支持当前模型 | 当前转 Data URI;接入不支持 Data URI 或大文件模型前,先实现上述 `oss://` 公共上传 |
202
+ | 异步任务 | 未提前造分支 | 当前模型不使用;新异步模型接入时按它的官方路由实现 |
203
+ | 余额查询 | 暂缓 | 避免引入云账号 AK/SK 高权限 |
204
+ | Qwen-MT | **已接入 SDK,待真实请求** | 三模型通过 `capabilities/translation/bailian` 按需导入;已有官方示例 fixture 与精确测试,尚无真实付费请求证据 |
205
+ | ASR | **短音频/文件已接入,实时待后续** | `capabilities/speech-recognition/bailian` 按需导入;实时 WebSocket 由后续独立任务实现,不与翻译模块互相导入 |
206
+
207
+ ## 10. 原始链接索引
208
+
209
+ | 信息 | 链接 | 登录 |
210
+ |---|---|---|
211
+ | 模型与地域总览 | https://help.aliyun.com/zh/model-studio/models | 否 |
212
+ | Qwen Image API(同步/异步、地址、结果) | https://help.aliyun.com/zh/model-studio/qwen-image-api | 否 |
213
+ | 上传文件获取临时 URL | https://help.aliyun.com/zh/model-studio/get-temporary-file-url | 否 |
214
+ | ASR 模型与音频规格 | https://help.aliyun.com/zh/model-studio/asr-model/ | 否 |
215
+ | 实时 ASR 用户指南 | https://help.aliyun.com/zh/model-studio/real-time-speech-recognition-user-guide | 否 |
216
+ | Fun-ASR-Realtime WebSocket 协议 | https://help.aliyun.com/zh/model-studio/fun-asr-realtime-websocket-api | 否 |
217
+ | Fun-ASR-Realtime 客户端/服务端事件 | https://help.aliyun.com/zh/model-studio/fun-asr-client-events ; https://help.aliyun.com/zh/model-studio/fun-asr-server-events | 否 |
218
+ | Qwen-ASR-Realtime 交互/事件 | https://help.aliyun.com/zh/model-studio/qwen-asr-realtime-interaction-process ; https://help.aliyun.com/zh/model-studio/qwen-asr-realtime-client-events ; https://help.aliyun.com/zh/model-studio/qwen-asr-realtime-server-events | 否 |
219
+ | 非实时 ASR 用户指南 | https://help.aliyun.com/zh/model-studio/non-realtime-speech-recognition-user-guide | 否 |
220
+ | Fun-ASR 文件异步 API | https://help.aliyun.com/zh/model-studio/fun-asr-recorded-speech-recognition-http-api | 否 |
221
+ | Fun-ASR-Flash 短音频 API | https://help.aliyun.com/zh/model-studio/non-real-time-speech-recognition-for-fun-asr-flash | 否 |
222
+ | Qwen-ASR 短音频/文件 API | https://help.aliyun.com/zh/model-studio/qwen-asr-api-reference | 否 |
223
+ | Qwen-MT API | https://help.aliyun.com/zh/model-studio/qwen-mt-api | 否 |
224
+ | Qwen-MT 能力页 | https://help.aliyun.com/zh/model-studio/machine-translation | 否(本次访问触发验证码,未取正文) |
225
+ | 官方模型价格 | https://help.aliyun.com/zh/model-studio/model-pricing | 否 |
226
+ | 错误码/区域不匹配 | https://help.aliyun.com/zh/model-studio/developer-reference/error-code | 否 |
227
+ | API Key | https://bailian.console.aliyun.com/?apiKey=1#/api-key | 是 |
228
+ # 2026-09-11:文本检索能力
229
+
230
+ 本次接入同步文本 Embedding / Rerank,复用 capability client 的超时、取消和凭据注入,不包含知识库托管、索引或多模态检索。
231
+
232
+ - 官方正文(公开,无需登录):https://help.aliyun.com/en/model-studio/text-embedding-synchronous-api 、https://help.aliyun.com/en/model-studio/text-rerank-api 。价格:https://help.aliyun.com/zh/model-studio/model-pricing 。
233
+ - 北京业务空间 API Host 由宿主提供,例如 `https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com`;不得使用占位空间发请求,不自动跨地域回退。Bearer API Key,JSON POST。
234
+ - Embedding 走 `/compatible-mode/v1/embeddings`,发送 `model,input,encoding_format:float` 和可选 `dimensions`。返回 `data[].index/embedding`、`usage`。`qwen3.7-text-embedding`:20 条、128000 token/条,维度 256/512/768/1024/1536/2048/2560;flash:20 条、128000 token/条,256/512/768/1024;`text-embedding-v4`:10 条,维度 64/128/256/512/768/1024/1536/2048。v4 的概览页 33000 与同步 API 页 8192 token 冲突,不用字符数伪造 token 校验,交由服务端 tokenizer 裁定;不自动截断。普通/flash/v4 价格分别 0.5/0.125/0.5 元每百万输入 token。
235
+ - `qwen3.7-text-rerank` 走 `/api/v1/services/rerank/text-rerank/text-rerank`,发送 `model,input:{query,documents},parameters:{top_n,instruct}`,读取 `output.results`。`qwen3-rerank` 走 `/compatible-api/v1/reranks`,参数展开到顶层,读取 `results`。两者北京价格均 0.5 元每百万输入 token,最多 500 文档;单条 token 限额按模型表 30000/4000,整个请求 120000(新版为建议值)。
236
+ - 本次统一返回原始输入索引、分数与本地输入文本,避免依赖不同模型的 return_documents 支持差异;不跨请求比较分数。Embedding 只提供稠密浮点向量。
237
+ - 同步终态:HTTP 成功且结果合法才完成;错误状态、顶层 code/error、非法 JSON、缺失结果、重复/越界索引、非数值向量/分数均拒绝。取消透传 AbortSignal,无 SDK 自动重试付费请求。官方示例及字段构造 fixture 标注来源,覆盖成功、失败、取消、超时和畸形响应。