@henjicc/ai-sdk 0.2.8 → 0.4.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 (244) hide show
  1. package/CHANGELOG.md +157 -141
  2. package/README.md +497 -455
  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/discovery.d.ts +2 -0
  53. package/dist/llm/discovery.js +16 -5
  54. package/dist/llm/modelCatalogEntries.js +32 -0
  55. package/dist/llm/providerPresets.d.ts +3 -1
  56. package/dist/llm/providerPresets.js +6 -3
  57. package/dist/llm/providerReasoningRequest.js +14 -1
  58. package/dist/llm/siliconflow/index.d.ts +21 -0
  59. package/dist/llm/siliconflow/index.js +32 -0
  60. package/dist/llm/siliconflow/preset.d.ts +6 -0
  61. package/dist/llm/siliconflow/preset.js +33 -0
  62. package/dist/packs/models/apimart/gpt-image-2.5.d.ts +6 -0
  63. package/dist/packs/models/apimart/gpt-image-2.5.js +7 -0
  64. package/dist/packs/models/fal/gpt-image-2.5.d.ts +6 -0
  65. package/dist/packs/models/fal/gpt-image-2.5.js +7 -0
  66. package/dist/packs/models/grsai/gpt-image-2.5.d.ts +6 -0
  67. package/dist/packs/models/grsai/gpt-image-2.5.js +7 -0
  68. package/dist/packs/models/kie/gpt-image-2.5.d.ts +6 -0
  69. package/dist/packs/models/kie/gpt-image-2.5.js +7 -0
  70. package/dist/packs/provider-packs/apimart.d.ts +1 -1
  71. package/dist/packs/provider-packs/apimart.js +21 -20
  72. package/dist/packs/provider-packs/fal.d.ts +1 -1
  73. package/dist/packs/provider-packs/fal.js +37 -36
  74. package/dist/packs/provider-packs/grsai.d.ts +1 -1
  75. package/dist/packs/provider-packs/grsai.js +6 -5
  76. package/dist/packs/provider-packs/kie.d.ts +1 -1
  77. package/dist/packs/provider-packs/kie.js +28 -27
  78. package/dist/packs/tool-models/fal/{qwen-image-edit-2509-multiple-angles.d.ts → qwen-image-edit-2511-multiple-angles.d.ts} +1 -1
  79. package/dist/packs/tool-models/fal/{qwen-image-edit-2509-multiple-angles.js → qwen-image-edit-2511-multiple-angles.js} +1 -1
  80. package/dist/packs/tool-packs/fal-multi-angle-tools.js +1 -1
  81. package/dist/tool-packs/fal-multi-angle/models/qwen-image-edit-2511-multiple-angles.model.d.ts +2 -0
  82. 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
  83. package/docs/README.md +26 -26
  84. package/docs/consumers.md +56 -48
  85. package/docs/llm-adaptation/README.md +139 -137
  86. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/DeepSeek.md +103 -91
  87. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/Kimi.md +75 -75
  88. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/MiniMax.md +84 -84
  89. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//345/260/217/347/261/263MiMo.md +85 -85
  90. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//346/231/272/350/260/261GLM.md +232 -232
  91. 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
  92. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//347/231/276/347/202/274Qwen.md +84 -84
  93. 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
  94. package/docs/model-adaptation/Bria-Eraser/Bria-Eraser_Fal.md +32 -32
  95. 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
  96. package/docs/model-adaptation/ControlLight/ControlLight_Fal.md +85 -85
  97. 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
  98. package/docs/model-adaptation/Finegrain-Eraser/Finegrain-Eraser_Fal.md +31 -31
  99. package/docs/model-adaptation/Flux-Pro-Erase/Flux-Pro-Erase_Fal.md +34 -34
  100. package/docs/model-adaptation/Fun-ASR/Fun-ASR_/347/231/276/347/202/274.md +43 -43
  101. 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
  102. package/docs/model-adaptation/Fun-ASR-Realtime/Fun-ASR-Realtime_/347/231/276/347/202/274.md +37 -37
  103. 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
  104. package/docs/model-adaptation/GLM-5.3-Flash/GLM-5.3-Flash_/346/231/272/350/260/261.md +207 -207
  105. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_APIMart.md +173 -173
  106. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_Fal.md +94 -94
  107. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_Grsai.md +137 -137
  108. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_KIE.md +93 -93
  109. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_APIMart.md +66 -0
  110. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_Fal.md +55 -0
  111. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_Grsai.md +53 -0
  112. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_KIE.md +55 -0
  113. package/docs/model-adaptation/GPT-OSS-20B/GPT-OSS-20B_Groq.md +62 -62
  114. package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_APIMart.md +124 -124
  115. package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_Fal.md +84 -84
  116. package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_KIE.md +129 -129
  117. package/docs/model-adaptation/Grok-Imagine/Grok-Imagine_KIE.md +36 -36
  118. package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_APIMart.md +250 -250
  119. package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_Fal.md +84 -84
  120. package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_KIE.md +105 -105
  121. package/docs/model-adaptation/Hailuo-02/Hailuo-02_Fal.md +93 -93
  122. package/docs/model-adaptation/Hailuo-02/Hailuo-02_KIE.md +56 -56
  123. package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_Fal.md +88 -88
  124. package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_KIE.md +51 -51
  125. package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_/346/264/276/346/254/247/344/272/221.md +70 -70
  126. package/docs/model-adaptation/IC-Light-v2/IC-Light-v2_Fal.md +97 -94
  127. 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
  128. 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
  129. 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
  130. 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
  131. 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
  132. package/docs/model-adaptation/Kling-3.0/Kling-3.0_APIMart.md +112 -112
  133. package/docs/model-adaptation/Kling-3.0/Kling-3.0_Fal.md +89 -89
  134. package/docs/model-adaptation/Kling-3.0/Kling-3.0_KIE.md +106 -106
  135. package/docs/model-adaptation/Kling-3.0/Kling-3.0_/346/264/276/346/254/247/344/272/221.md +119 -119
  136. package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_APIMart.md +125 -125
  137. package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_Fal.md +107 -107
  138. package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_KIE.md +143 -143
  139. package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_APIMart.md +85 -85
  140. package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_Fal.md +83 -83
  141. package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_KIE.md +84 -84
  142. package/docs/model-adaptation/Midjourney/Midjourney_APIMart.md +396 -396
  143. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_APIMart.md +234 -234
  144. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_Fal.md +108 -108
  145. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_KIE.md +111 -111
  146. package/docs/model-adaptation/MiniMax-Speech/MiniMax-Speech_/346/264/276/346/254/247/344/272/221.md +170 -170
  147. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_APIMart.md +89 -89
  148. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_Fal.md +99 -99
  149. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_Grsai.md +82 -82
  150. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_KIE.md +70 -70
  151. package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_APIMart.md +79 -79
  152. package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_Grsai.md +65 -65
  153. package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_KIE.md +64 -64
  154. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_APIMart.md +83 -83
  155. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_Fal.md +89 -89
  156. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_Grsai.md +82 -82
  157. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_KIE.md +64 -64
  158. 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
  159. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_APIMart.md +117 -117
  160. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_Fal.md +84 -84
  161. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_KIE.md +103 -103
  162. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_/347/231/276/347/202/274.md +138 -138
  163. 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
  164. package/docs/model-adaptation/Qwen-MT-Flash/Qwen-MT-Flash_/347/231/276/347/202/274.md +47 -47
  165. package/docs/model-adaptation/Qwen-MT-Lite/Qwen-MT-Lite_/347/231/276/347/202/274.md +39 -39
  166. package/docs/model-adaptation/Qwen-MT-Plus/Qwen-MT-Plus_/347/231/276/347/202/274.md +39 -39
  167. package/docs/model-adaptation/Qwen3-ASR-Flash/Qwen3-ASR-Flash_/347/231/276/347/202/274.md +40 -40
  168. 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
  169. package/docs/model-adaptation/Qwen3-ASR-Flash-Filetrans/Qwen3-ASR-Flash-Filetrans_/347/231/276/347/202/274.md +41 -41
  170. package/docs/model-adaptation/Qwen3-ASR-Flash-Realtime/Qwen3-ASR-Flash-Realtime_/347/231/276/347/202/274.md +35 -35
  171. 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
  172. package/docs/model-adaptation/README.md +313 -295
  173. 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
  174. 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
  175. 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
  176. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_APIMart.md +121 -121
  177. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_Fal.md +97 -97
  178. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_KIE.md +86 -86
  179. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_APIMart.md +89 -89
  180. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_Fal.md +95 -95
  181. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_KIE.md +78 -78
  182. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_APIMart.md +89 -89
  183. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_Fal.md +96 -96
  184. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_KIE.md +78 -78
  185. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_APIMart.md +212 -212
  186. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_Fal.md +94 -94
  187. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_KIE.md +89 -89
  188. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_APIMart.md +106 -106
  189. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_Fal.md +91 -91
  190. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_KIE.md +89 -89
  191. 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
  192. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_APIMart.md +194 -194
  193. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_Fal.md +100 -100
  194. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_KIE.md +141 -141
  195. 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
  196. package/docs/model-adaptation/SenseVoiceSmall/SenseVoiceSmall_/347/241/205/345/237/272/346/265/201/345/212/250.md +69 -69
  197. package/docs/model-adaptation/TeleSpeechASR/TeleSpeechASR_/347/241/205/345/237/272/346/265/201/345/212/250.md +72 -72
  198. 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
  199. 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
  200. package/docs/model-adaptation/Wan-2.5-Preview/Wan-2.5-Preview_/346/264/276/346/254/247/344/272/221.md +82 -82
  201. package/docs/model-adaptation/Wan-2.6/Wan-2.6_/346/264/276/346/254/247/344/272/221.md +84 -84
  202. package/docs/model-adaptation/Wan-2.7/Wan-2.7_/346/264/276/346/254/247/344/272/221.md +122 -122
  203. package/docs/model-adaptation/Whisper-Large-v3/Whisper-Large-v3_Groq.md +76 -76
  204. package/docs/model-adaptation/Whisper-Large-v3-Turbo/Whisper-Large-v3-Turbo_Groq.md +75 -75
  205. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_APIMart.md +88 -88
  206. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_Fal.md +95 -95
  207. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_KIE.md +71 -71
  208. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_/347/231/276/347/202/274.md +122 -122
  209. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_/351/255/224/346/220/255.md +97 -97
  210. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/APIMart.md +238 -238
  211. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Fal.md +172 -172
  212. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Groq.md +121 -121
  213. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Grsai.md +217 -217
  214. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/KIE.md +131 -131
  215. 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
  216. 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
  217. 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
  218. 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
  219. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//347/231/276/347/202/274.md +237 -227
  220. 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 +140 -75
  221. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//351/255/224/346/220/255.md +207 -207
  222. 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
  223. 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
  224. package/docs//346/216/245/345/205/245/346/214/207/345/215/227/Electron.md +77 -77
  225. package/docs//346/216/245/345/205/245/346/214/207/345/215/227/Tauri.md +81 -81
  226. package/docs//346/216/245/345/205/245/346/214/207/345/215/227/UXP.md +169 -169
  227. 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
  228. 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
  229. package/examples/form-renderer/README.md +17 -17
  230. package/examples/form-renderer/cli.ts +32 -32
  231. package/examples/form-renderer/index.ts +144 -144
  232. package/examples/form-renderer/package.json +16 -16
  233. package/examples/form-renderer/tsconfig.json +14 -14
  234. package/examples/llm-chat/README.md +32 -32
  235. package/examples/llm-chat/index.ts +100 -100
  236. package/examples/llm-chat/package.json +19 -19
  237. package/examples/llm-chat/tsconfig.json +14 -14
  238. package/examples/minimal-node/README.md +31 -31
  239. package/examples/minimal-node/index.ts +138 -138
  240. package/examples/minimal-node/package.json +17 -17
  241. package/examples/minimal-node/tsconfig.json +14 -14
  242. package/package.json +255 -195
  243. package/dist/tool-packs/fal-multi-angle/models/qwen-image-edit-2509-multiple-angles.model.d.ts +0 -2
  244. 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,87 +1,87 @@
1
- # 火山引擎(Doubao / Ark 方舟)
2
-
3
- > 核对时间:2026-08-26。信息来源见文末「原始链接索引」,均无需登录(部分页面需要用浏览器打开,SPA 内容 curl 拿不到,见文档采集手册)。
4
-
5
- ## 1. 摘要
6
-
7
- | 项目 | 取值 |
8
- |---|---|
9
- | `providerId`(项目内约定) | `volcengine` / `ark` |
10
- | 对应项目 `adapter` | `openai`(Chat Completions);官方还提供 Responses API |
11
- | 接入优先级(本项目约定,见 [README 第三节](../README.md)) | 目录内三款模型已默认走 **Responses API**;Chat Completions 保留兼容,官方没有 Anthropic Messages API |
12
- | 鉴权 | `Authorization: Bearer $ARK_API_KEY` |
13
- | Base URL | `https://ark.cn-beijing.volces.com/api/v3`(区域相关,其余区域见控制台) |
14
- | 官方协议 | Chat Completions(`/chat/completions`)与 Responses API(`/responses`)**并行维护**,新模型同步支持两者 |
15
-
16
- ## 2. 模型清单
17
-
18
- | 模型 ID | 简介 | 输入 → 输出 | 上下文 / 最大输入 | 最大思维链 / 最大输出 | RPM / TPM |
19
- |---|---|---|---|---|---|
20
- | `doubao-seed-evolving` | 面向 Agent/Coding 的持续升级模型,**Model ID 固定、版本自动滚动**,无需迁移即可拿到新能力 | 文本、图片、视频 → 文本 | 1024K / 1024K | 256K / 256K | 500 / 1,000,000 |
21
- | `doubao-seed-2-1-pro-260628` | Seed 2.1 高复杂度任务版本 | 文本、图片、视频 → 文本 | 256K / 256K | 256K / 256K | 500 / 1,000,000 |
22
- | `doubao-seed-2-1-turbo-260628` | Seed 2.1 规模化、成本更友好版本 | 文本、图片、视频 → 文本 | 256K / 256K | 256K / 256K | 500 / 1,000,000 |
23
-
24
- 价格(元/百万 tokens,常规在线推理档):
25
-
26
- | 模型 | 输入 | 缓存命中 | 缓存存储 | 输出 |
27
- |---|---|---|---|---|
28
- | `doubao-seed-evolving` | 6.00 | 1.20 | 0.017/小时 | 30.00 |
29
- | `doubao-seed-2-1-pro` | 6.00 | 1.20 | 0.017/小时 | 30.00 |
30
- | `doubao-seed-2-1-turbo` | 3.00 | 0.60 | 0.017/小时 | 15.00 |
31
-
32
- 批量推理(Batch):Pro 输入 3.00/输出 15.00,Turbo 输入 1.50/输出 7.50(均半价)。低延迟档 Turbo 价格与 Pro 常规档相同(6.00/1.20/30.00)——**低延迟不等于更贵的 Pro**,是 Turbo 的一个独立计价维度,选型时不要按模型名猜价格。
33
-
34
- `doubao-1-5-pro-32k-character-250715` **不支持** Responses API(官方原文标注的唯一例外),其余 250615 及之后版本的大语言模型默认都支持。
35
-
36
- ## 3. 思考模式
37
-
38
- - 深度思考默认开启,用 `thinking` 参数控制开关。
39
- - `reasoning_effort` 支持 **7 档**:`none`/`minimal`/`low`/`medium`/`high`/`xhigh`/`max`,默认 `high`。(此前整理的资料只列了 4 档,遗漏了 `none`/`xhigh`/`max`。)
40
- - 思考内容默认只返回**摘要**(thinking summary)+ 加密原文,不返回原始思维链;多轮对话建议全量回传加密原文,服务端会按场景判断是否丢弃:
41
- - Chat API:回传 `encrypted_content` 字段。
42
- - Responses API:用 `previous_response_id` 引用上一轮响应即可,不需要手动回传思考内容。
43
-
44
- ## 4. Chat API vs Responses API——字段级差异(接入 Responses 前必读)
45
-
46
- | 维度 | Chat API | Responses API |
47
- |---|---|---|
48
- | 输入 | `messages` 数组,无状态,每轮自己拼全部历史 | `input` 可以是字符串或数组;`instructions` 字段可在某一轮临时插入 system 提示 |
49
- | 多轮管理 | 手动维护 `messages` | 默认开启存储,`previous_response_id` 引用上一轮,服务端管理上下文 |
50
- | 结构化输出 | `response_format` | `text.format` |
51
- | 最大输出长度 | `max_completion_tokens` | `max_output_tokens` |
52
- | 工具定义 | `{"type":"function","function":{"name":...,"parameters":...}}`(嵌套) | `{"type":"function","name":...,"parameters":...}`(**扁平,`name`/`parameters` 提到外层**) |
53
- | 上下文缓存 | 隐式缓存(自动,不保证命中) | 隐式缓存 + **显式缓存**(`caching:{"type":"enabled"}`,ID 粒度更灵活) |
54
-
55
- **内置工具(联网搜索、图像处理、私域知识库搜索、云部署 MCP)只有 Responses API 能用,Chat API 完全不支持**——这是选择要不要接 Responses API 的最直接理由。
56
-
57
- ## 5. 内置工具(均只在 Responses API 可用)
58
-
59
- | 工具 | `tools` 声明 | 备注 |
60
- |---|---|---|
61
- | 联网搜索 Web Search | `{"type":"web_search","max_keyword":2}` | 通过 Responses API 使用时**不推荐 `doubao-seed-1-6-flash`** |
62
- | 图像处理 Image Process | `{"type":"image_process","zoom":{"type":"enabled"},...}` | 需要额外 Header `ark-beta-image-process: true`,支持画点/画线/旋转/缩放/裁剪 |
63
- | 私域知识库搜索 Knowledge Search | `{"type":"knowledge_search","knowledge_resource_id":...}` | 需要额外 Header `ark-beta-knowledge-search: true`,仅支持旗舰版知识库 |
64
- | 云部署 MCP | `{"type":"mcp","server_label":...,"server_url":...}` | 对接 MCP MarketPlace,需要 Header `ark-beta-mcp: true` |
65
-
66
- 这些工具都要求额外的 `default_headers`/`extra_headers` 才能生效,不是单纯在 `tools` 里声明就够——遗漏 Header 大概率是"请求成功但工具没触发"的静默失效,而不是报错。
67
-
68
- ## 6. 图片理解精细度
69
-
70
- `detail` 参数:`low`(token [1,1280],像素 [1764, 2257920])/ `high`(固定 1280 token,默认值)/ `xhigh`(token [1280,5120],像素 [2257920, 9031680])。图片/视频/文档超过 10MB 建议用 Files API 先上传拿 File ID,不要直接塞 base64。
71
-
72
- ## 7. 与「豆包搜索」的区别(避免混淆)
73
-
74
- 火山引擎还有一个独立消费产品叫「豆包搜索」,是 **Agent Plan 套餐**(编程 IDE/Agent 场景)的联网搜索订阅服务,通过 Skill/MCP 接入 Claude Code、OpenCode 等三方工具,跟本文档说的 Responses API `web_search` 内置工具**不是同一套东西**——前者是终端用户在 IDE 里用的订阅制服务,后者是纯 API 调用参数。本项目走 API 集成,不涉及豆包搜索。
75
-
76
- ## 原始链接索引(均无需登录;SPA 页面用浏览器打开,见采集手册)
77
-
78
- - [Doubao-Seed-Evolving 模型详情](https://docs.volcengine.com/docs/82379/2549861)
79
- - [模型列表](https://docs.volcengine.com/docs/82379/1330310)
80
- - [模型价格](https://docs.volcengine.com/docs/82379/1544106)
81
- - [使用 Responses API(基础差异对照)](https://docs.volcengine.com/docs/82379/1585128)
82
- - [Responses API 文本生成](https://docs.volcengine.com/docs/82379/1958520)
83
- - [Responses API 深度思考](https://docs.volcengine.com/docs/82379/1956279)
84
- - [Responses API 多模态理解](https://docs.volcengine.com/docs/82379/1958521)
85
- - [Responses API 结构化输出(beta)](https://docs.volcengine.com/docs/82379/1958523)
86
- - [工具调用(内置工具汇总)](https://docs.volcengine.com/docs/82379/1958524)
87
- - [豆包搜索(Agent Plan 订阅服务,仅供区分参考)](https://docs.volcengine.com/docs/82379/2301412)
1
+ # 火山引擎(Doubao / Ark 方舟)
2
+
3
+ > 核对时间:2026-08-26。信息来源见文末「原始链接索引」,均无需登录(部分页面需要用浏览器打开,SPA 内容 curl 拿不到,见文档采集手册)。
4
+
5
+ ## 1. 摘要
6
+
7
+ | 项目 | 取值 |
8
+ |---|---|
9
+ | `providerId`(项目内约定) | `volcengine` / `ark` |
10
+ | 对应项目 `adapter` | `openai`(Chat Completions);官方还提供 Responses API |
11
+ | 接入优先级(本项目约定,见 [README 第三节](../README.md)) | 目录内三款模型已默认走 **Responses API**;Chat Completions 保留兼容,官方没有 Anthropic Messages API |
12
+ | 鉴权 | `Authorization: Bearer $ARK_API_KEY` |
13
+ | Base URL | `https://ark.cn-beijing.volces.com/api/v3`(区域相关,其余区域见控制台) |
14
+ | 官方协议 | Chat Completions(`/chat/completions`)与 Responses API(`/responses`)**并行维护**,新模型同步支持两者 |
15
+
16
+ ## 2. 模型清单
17
+
18
+ | 模型 ID | 简介 | 输入 → 输出 | 上下文 / 最大输入 | 最大思维链 / 最大输出 | RPM / TPM |
19
+ |---|---|---|---|---|---|
20
+ | `doubao-seed-evolving` | 面向 Agent/Coding 的持续升级模型,**Model ID 固定、版本自动滚动**,无需迁移即可拿到新能力 | 文本、图片、视频 → 文本 | 1024K / 1024K | 256K / 256K | 500 / 1,000,000 |
21
+ | `doubao-seed-2-1-pro-260628` | Seed 2.1 高复杂度任务版本 | 文本、图片、视频 → 文本 | 256K / 256K | 256K / 256K | 500 / 1,000,000 |
22
+ | `doubao-seed-2-1-turbo-260628` | Seed 2.1 规模化、成本更友好版本 | 文本、图片、视频 → 文本 | 256K / 256K | 256K / 256K | 500 / 1,000,000 |
23
+
24
+ 价格(元/百万 tokens,常规在线推理档):
25
+
26
+ | 模型 | 输入 | 缓存命中 | 缓存存储 | 输出 |
27
+ |---|---|---|---|---|
28
+ | `doubao-seed-evolving` | 6.00 | 1.20 | 0.017/小时 | 30.00 |
29
+ | `doubao-seed-2-1-pro` | 6.00 | 1.20 | 0.017/小时 | 30.00 |
30
+ | `doubao-seed-2-1-turbo` | 3.00 | 0.60 | 0.017/小时 | 15.00 |
31
+
32
+ 批量推理(Batch):Pro 输入 3.00/输出 15.00,Turbo 输入 1.50/输出 7.50(均半价)。低延迟档 Turbo 价格与 Pro 常规档相同(6.00/1.20/30.00)——**低延迟不等于更贵的 Pro**,是 Turbo 的一个独立计价维度,选型时不要按模型名猜价格。
33
+
34
+ `doubao-1-5-pro-32k-character-250715` **不支持** Responses API(官方原文标注的唯一例外),其余 250615 及之后版本的大语言模型默认都支持。
35
+
36
+ ## 3. 思考模式
37
+
38
+ - 深度思考默认开启,用 `thinking` 参数控制开关。
39
+ - `reasoning_effort` 支持 **7 档**:`none`/`minimal`/`low`/`medium`/`high`/`xhigh`/`max`,默认 `high`。(此前整理的资料只列了 4 档,遗漏了 `none`/`xhigh`/`max`。)
40
+ - 思考内容默认只返回**摘要**(thinking summary)+ 加密原文,不返回原始思维链;多轮对话建议全量回传加密原文,服务端会按场景判断是否丢弃:
41
+ - Chat API:回传 `encrypted_content` 字段。
42
+ - Responses API:用 `previous_response_id` 引用上一轮响应即可,不需要手动回传思考内容。
43
+
44
+ ## 4. Chat API vs Responses API——字段级差异(接入 Responses 前必读)
45
+
46
+ | 维度 | Chat API | Responses API |
47
+ |---|---|---|
48
+ | 输入 | `messages` 数组,无状态,每轮自己拼全部历史 | `input` 可以是字符串或数组;`instructions` 字段可在某一轮临时插入 system 提示 |
49
+ | 多轮管理 | 手动维护 `messages` | 默认开启存储,`previous_response_id` 引用上一轮,服务端管理上下文 |
50
+ | 结构化输出 | `response_format` | `text.format` |
51
+ | 最大输出长度 | `max_completion_tokens` | `max_output_tokens` |
52
+ | 工具定义 | `{"type":"function","function":{"name":...,"parameters":...}}`(嵌套) | `{"type":"function","name":...,"parameters":...}`(**扁平,`name`/`parameters` 提到外层**) |
53
+ | 上下文缓存 | 隐式缓存(自动,不保证命中) | 隐式缓存 + **显式缓存**(`caching:{"type":"enabled"}`,ID 粒度更灵活) |
54
+
55
+ **内置工具(联网搜索、图像处理、私域知识库搜索、云部署 MCP)只有 Responses API 能用,Chat API 完全不支持**——这是选择要不要接 Responses API 的最直接理由。
56
+
57
+ ## 5. 内置工具(均只在 Responses API 可用)
58
+
59
+ | 工具 | `tools` 声明 | 备注 |
60
+ |---|---|---|
61
+ | 联网搜索 Web Search | `{"type":"web_search","max_keyword":2}` | 通过 Responses API 使用时**不推荐 `doubao-seed-1-6-flash`** |
62
+ | 图像处理 Image Process | `{"type":"image_process","zoom":{"type":"enabled"},...}` | 需要额外 Header `ark-beta-image-process: true`,支持画点/画线/旋转/缩放/裁剪 |
63
+ | 私域知识库搜索 Knowledge Search | `{"type":"knowledge_search","knowledge_resource_id":...}` | 需要额外 Header `ark-beta-knowledge-search: true`,仅支持旗舰版知识库 |
64
+ | 云部署 MCP | `{"type":"mcp","server_label":...,"server_url":...}` | 对接 MCP MarketPlace,需要 Header `ark-beta-mcp: true` |
65
+
66
+ 这些工具都要求额外的 `default_headers`/`extra_headers` 才能生效,不是单纯在 `tools` 里声明就够——遗漏 Header 大概率是"请求成功但工具没触发"的静默失效,而不是报错。
67
+
68
+ ## 6. 图片理解精细度
69
+
70
+ `detail` 参数:`low`(token [1,1280],像素 [1764, 2257920])/ `high`(固定 1280 token,默认值)/ `xhigh`(token [1280,5120],像素 [2257920, 9031680])。图片/视频/文档超过 10MB 建议用 Files API 先上传拿 File ID,不要直接塞 base64。
71
+
72
+ ## 7. 与「豆包搜索」的区别(避免混淆)
73
+
74
+ 火山引擎还有一个独立消费产品叫「豆包搜索」,是 **Agent Plan 套餐**(编程 IDE/Agent 场景)的联网搜索订阅服务,通过 Skill/MCP 接入 Claude Code、OpenCode 等三方工具,跟本文档说的 Responses API `web_search` 内置工具**不是同一套东西**——前者是终端用户在 IDE 里用的订阅制服务,后者是纯 API 调用参数。本项目走 API 集成,不涉及豆包搜索。
75
+
76
+ ## 原始链接索引(均无需登录;SPA 页面用浏览器打开,见采集手册)
77
+
78
+ - [Doubao-Seed-Evolving 模型详情](https://docs.volcengine.com/docs/82379/2549861)
79
+ - [模型列表](https://docs.volcengine.com/docs/82379/1330310)
80
+ - [模型价格](https://docs.volcengine.com/docs/82379/1544106)
81
+ - [使用 Responses API(基础差异对照)](https://docs.volcengine.com/docs/82379/1585128)
82
+ - [Responses API 文本生成](https://docs.volcengine.com/docs/82379/1958520)
83
+ - [Responses API 深度思考](https://docs.volcengine.com/docs/82379/1956279)
84
+ - [Responses API 多模态理解](https://docs.volcengine.com/docs/82379/1958521)
85
+ - [Responses API 结构化输出(beta)](https://docs.volcengine.com/docs/82379/1958523)
86
+ - [工具调用(内置工具汇总)](https://docs.volcengine.com/docs/82379/1958524)
87
+ - [豆包搜索(Agent Plan 订阅服务,仅供区分参考)](https://docs.volcengine.com/docs/82379/2301412)
@@ -1,84 +1,84 @@
1
- # 阿里云百炼 / Qwen
2
-
3
- > 核对时间:2026-08-26。信息来源见文末「原始链接索引」。**控制台模型详情页(`bailian.console.aliyun.com`)需要登录**,实测自动化浏览器访问会被拦截(`请求失败,请检查网络设置`);本文档内容全部来自 `help.aliyun.com` 的公开文档页,未登录也能完整核对协议、模型清单与价格。仅当需要交互式"体验中心"截图或账号级用量数据时才必须登录控制台。
4
-
5
- ## 1. 摘要
6
-
7
- | 项目 | 取值 |
8
- |---|---|
9
- | `providerId`(项目内约定) | `bailian` / `dashscope` |
10
- | 对应项目 `adapter` | `openai`(Chat Completions);官方也提供 Responses API |
11
- | 接入优先级(本项目约定,见 [README 第三节](../README.md)) | Qwen3.8-Max 已默认走 **Responses API**;Chat Completions 保留兼容,官方没有 Anthropic Messages API |
12
- | 鉴权 | `Authorization: Bearer $DASHSCOPE_API_KEY` |
13
- | Base URL | `https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1`(**地域相关,`{WorkspaceId}` 和区域后缀需要从控制台"查看代码"复制当前值,不要硬编码**) |
14
- | 官方协议 | OpenAI Chat Completions(`/chat/completions`)+ OpenAI Responses API(`/responses`),同一 Base URL 下两个路径 |
15
-
16
- ## 2. 模型:`qwen3.8-max`
17
-
18
- 千问最新旗舰 MoE 模型,强化编程、办公、原生视觉理解、超长文档与长视频能力。
19
-
20
- **关键适配陷阱**:`qwen3.8-max` 必须使用**多模态接口**格式发送消息,不能用给纯文本模型(如 `qwen-plus`)准备的简单文本接口——官方原文警告"直接替换模型会导致 `url error` 错误"。也就是说即便请求内容是纯文字对话,`qwen3.8-max` 的 `content` 字段也要按多模态消息数组的形式组织(`[{"type":"text","text":"..."}]`),不能直接传字符串。这是从"模型能力标注含图片/视频"这句话本身看不出来的隐藏约束,写 `request.builder()` 时必须按多模态 schema 走。
21
-
22
- 同样要求多模态接口的还有:`qwen3.8-27b`、`qwen3.7-max-2026-06-08`、Qwen3.6/Qwen3.5 系列;仅需纯文本接口的是:`qwen3.8-2.4t-a95b`、`qwen3.7-max`、`qwen3.7-max-2026-05-20`、`qwen3.6-max-preview`。两类接口不能混用模型 ID。
23
-
24
- ### 价格(元/百万 tokens,`0 < Token ≤ 1M`,服务部署范围"全球")
25
-
26
- | 模型 ID | 输入 | 输出(思维链+回答) | 免费额度 |
27
- |---|---|---|---|
28
- | `qwen3.8-max` | 12 | 36 | 100 万 Token(有效期 90 天) |
29
- | `qwen3.8-max-prime`(优速模式 Prime) | 24 | 72 | 无免费额度 |
30
-
31
- `qwen3.8-max-prime` 是此前资料遗漏的一个变体——"优速模式",价格是标准版的整整 2 倍,用于对延迟更敏感的场景,属于同一发布线下的独立计价档位,接入时应作为一个可选的产品级参数(渠道/模式)而不是隐藏细节。
32
-
33
- 国际(`国际`)与欧盟区域价格更高(`qwen3.8-max` 国际区 14.988/44.965 元),实际扣费以当前请求命中的区域为准;Batch 调用半价,上下文缓存命中享折扣(具体折扣比例见 [上下文缓存文档](https://help.aliyun.com/document_detail/2862577.html))。
34
-
35
- ## 3. Responses API 接入示例
36
-
37
- ```python
38
- client = OpenAI(api_key=..., base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1")
39
- response = client.responses.create(model="qwen3.8-max", input="简要介绍下你能做什么?")
40
- ```
41
-
42
- - 返回结构里 `output` 数组包含 `reasoning`(仅思考模式开启时出现)和 `message`。
43
- - **已知限制**:Responses API 路径**不支持** `enable_source`/`enable_citation`/`citation_format` 参数,不会在回复正文里自动插入 `[1]` 角标引用——如果产品需要角标标注,只能退回传统 DashScope 原生调用方式,不能靠 Responses API 实现。
44
-
45
- ## 4. 思考模式
46
-
47
- 用 `extra_body={"enable_thinking": true}`(Chat Completions/Responses 均适用)控制是否开启深度思考;官方没有像 GLM/Kimi 那样给出离散的 `reasoning_effort` 档位字符串,是布尔开关而非强度分级。
48
-
49
- ## 5. 联网搜索与内置工具
50
-
51
- Responses API 下可以在 `tools` 数组里组合声明三个内置工具,模型自主决定调不调用:
52
-
53
- ```python
54
- response = client.responses.create(
55
- model="qwen3.8-max",
56
- input="杭州天气",
57
- tools=[
58
- {"type": "web_search"},
59
- {"type": "web_extractor"},
60
- {"type": "code_interpreter"},
61
- ],
62
- extra_body={"enable_thinking": True},
63
- )
64
- ```
65
-
66
- - `web_search`:联网搜索,价格 4 元/1,000 次。
67
- - `web_extractor`:网页正文抓取,官方页面标注限时免费。
68
- - `code_interpreter`:代码解释器,官方页面标注限时免费。
69
- - 搜索来源在响应 `output` 数组里 `type=web_search_call` 的元素、其 `action.sources` 字段里,不在正文文本中自动标注引用。
70
- - **Chat Completions 路径的等价用法更简单**:直接传 `enable_search: true`(布尔值),不需要声明完整的 `tools` 数组,但拿不到 `web_extractor`/`code_interpreter` 这类独立工具,只有联网搜索一项。两条路径的联网搜索能力不完全对等,接入时要按实际选的协议决定暴露哪种开关。
71
-
72
- ## 6. 与其它供应商在百炼上共存(了解即可,不改变本文档定位)
73
-
74
- 百炼控制台除了阿里自有的 Qwen 系列,还以"三方直供"名义上架了 Kimi K3、智谱 GLM-5.3、MiniMax-M3、`mimo-v2.5-pro` 等——即这几家供应商也可以通过百炼这个统一入口调用。本项目的供应商划分以官方原生 API 为准(各自单独一份文档),百炼上的"三方直供"版本只是同一模型的另一个接入口,不单独维护文档,只在这里作为背景记录。
75
-
76
- ## 原始链接索引
77
-
78
- - [模型概览(含所有可用模型清单)](https://help.aliyun.com/zh/model-studio/models) — 无需登录
79
- - [文本生成(含 Chat Completions/Responses 双协议代码示例、多模态接口区分表)](https://help.aliyun.com/zh/model-studio/text-generation) — 无需登录
80
- - [联网搜索工具](https://help.aliyun.com/zh/model-studio/web-search) — 无需登录
81
- - [模型价格](https://help.aliyun.com/zh/model-studio/model-pricing) — 无需登录
82
- - [Qwen 使用指南](https://help.aliyun.com/zh/model-studio/user-guide/qwen) — 无需登录
83
- - [OpenAI 兼容-Responses(完整迁移指南)](https://help.aliyun.com/document_detail/3016539.html) — 无需登录
84
- - 百炼控制台模型详情页(`bailian.console.aliyun.com/.../model-market/detail/qwen3.8-max`)—— **需要登录**,自动化访问被拦截;需要交互式体验或账号级信息时再手动登录查看
1
+ # 阿里云百炼 / Qwen
2
+
3
+ > 核对时间:2026-08-26。信息来源见文末「原始链接索引」。**控制台模型详情页(`bailian.console.aliyun.com`)需要登录**,实测自动化浏览器访问会被拦截(`请求失败,请检查网络设置`);本文档内容全部来自 `help.aliyun.com` 的公开文档页,未登录也能完整核对协议、模型清单与价格。仅当需要交互式"体验中心"截图或账号级用量数据时才必须登录控制台。
4
+
5
+ ## 1. 摘要
6
+
7
+ | 项目 | 取值 |
8
+ |---|---|
9
+ | `providerId`(项目内约定) | `bailian` / `dashscope` |
10
+ | 对应项目 `adapter` | `openai`(Chat Completions);官方也提供 Responses API |
11
+ | 接入优先级(本项目约定,见 [README 第三节](../README.md)) | Qwen3.8-Max 已默认走 **Responses API**;Chat Completions 保留兼容,官方没有 Anthropic Messages API |
12
+ | 鉴权 | `Authorization: Bearer $DASHSCOPE_API_KEY` |
13
+ | Base URL | `https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1`(**地域相关,`{WorkspaceId}` 和区域后缀需要从控制台"查看代码"复制当前值,不要硬编码**) |
14
+ | 官方协议 | OpenAI Chat Completions(`/chat/completions`)+ OpenAI Responses API(`/responses`),同一 Base URL 下两个路径 |
15
+
16
+ ## 2. 模型:`qwen3.8-max`
17
+
18
+ 千问最新旗舰 MoE 模型,强化编程、办公、原生视觉理解、超长文档与长视频能力。
19
+
20
+ **关键适配陷阱**:`qwen3.8-max` 必须使用**多模态接口**格式发送消息,不能用给纯文本模型(如 `qwen-plus`)准备的简单文本接口——官方原文警告"直接替换模型会导致 `url error` 错误"。也就是说即便请求内容是纯文字对话,`qwen3.8-max` 的 `content` 字段也要按多模态消息数组的形式组织(`[{"type":"text","text":"..."}]`),不能直接传字符串。这是从"模型能力标注含图片/视频"这句话本身看不出来的隐藏约束,写 `request.builder()` 时必须按多模态 schema 走。
21
+
22
+ 同样要求多模态接口的还有:`qwen3.8-27b`、`qwen3.7-max-2026-06-08`、Qwen3.6/Qwen3.5 系列;仅需纯文本接口的是:`qwen3.8-2.4t-a95b`、`qwen3.7-max`、`qwen3.7-max-2026-05-20`、`qwen3.6-max-preview`。两类接口不能混用模型 ID。
23
+
24
+ ### 价格(元/百万 tokens,`0 < Token ≤ 1M`,服务部署范围"全球")
25
+
26
+ | 模型 ID | 输入 | 输出(思维链+回答) | 免费额度 |
27
+ |---|---|---|---|
28
+ | `qwen3.8-max` | 12 | 36 | 100 万 Token(有效期 90 天) |
29
+ | `qwen3.8-max-prime`(优速模式 Prime) | 24 | 72 | 无免费额度 |
30
+
31
+ `qwen3.8-max-prime` 是此前资料遗漏的一个变体——"优速模式",价格是标准版的整整 2 倍,用于对延迟更敏感的场景,属于同一发布线下的独立计价档位,接入时应作为一个可选的产品级参数(渠道/模式)而不是隐藏细节。
32
+
33
+ 国际(`国际`)与欧盟区域价格更高(`qwen3.8-max` 国际区 14.988/44.965 元),实际扣费以当前请求命中的区域为准;Batch 调用半价,上下文缓存命中享折扣(具体折扣比例见 [上下文缓存文档](https://help.aliyun.com/document_detail/2862577.html))。
34
+
35
+ ## 3. Responses API 接入示例
36
+
37
+ ```python
38
+ client = OpenAI(api_key=..., base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1")
39
+ response = client.responses.create(model="qwen3.8-max", input="简要介绍下你能做什么?")
40
+ ```
41
+
42
+ - 返回结构里 `output` 数组包含 `reasoning`(仅思考模式开启时出现)和 `message`。
43
+ - **已知限制**:Responses API 路径**不支持** `enable_source`/`enable_citation`/`citation_format` 参数,不会在回复正文里自动插入 `[1]` 角标引用——如果产品需要角标标注,只能退回传统 DashScope 原生调用方式,不能靠 Responses API 实现。
44
+
45
+ ## 4. 思考模式
46
+
47
+ 用 `extra_body={"enable_thinking": true}`(Chat Completions/Responses 均适用)控制是否开启深度思考;官方没有像 GLM/Kimi 那样给出离散的 `reasoning_effort` 档位字符串,是布尔开关而非强度分级。
48
+
49
+ ## 5. 联网搜索与内置工具
50
+
51
+ Responses API 下可以在 `tools` 数组里组合声明三个内置工具,模型自主决定调不调用:
52
+
53
+ ```python
54
+ response = client.responses.create(
55
+ model="qwen3.8-max",
56
+ input="杭州天气",
57
+ tools=[
58
+ {"type": "web_search"},
59
+ {"type": "web_extractor"},
60
+ {"type": "code_interpreter"},
61
+ ],
62
+ extra_body={"enable_thinking": True},
63
+ )
64
+ ```
65
+
66
+ - `web_search`:联网搜索,价格 4 元/1,000 次。
67
+ - `web_extractor`:网页正文抓取,官方页面标注限时免费。
68
+ - `code_interpreter`:代码解释器,官方页面标注限时免费。
69
+ - 搜索来源在响应 `output` 数组里 `type=web_search_call` 的元素、其 `action.sources` 字段里,不在正文文本中自动标注引用。
70
+ - **Chat Completions 路径的等价用法更简单**:直接传 `enable_search: true`(布尔值),不需要声明完整的 `tools` 数组,但拿不到 `web_extractor`/`code_interpreter` 这类独立工具,只有联网搜索一项。两条路径的联网搜索能力不完全对等,接入时要按实际选的协议决定暴露哪种开关。
71
+
72
+ ## 6. 与其它供应商在百炼上共存(了解即可,不改变本文档定位)
73
+
74
+ 百炼控制台除了阿里自有的 Qwen 系列,还以"三方直供"名义上架了 Kimi K3、智谱 GLM-5.3、MiniMax-M3、`mimo-v2.5-pro` 等——即这几家供应商也可以通过百炼这个统一入口调用。本项目的供应商划分以官方原生 API 为准(各自单独一份文档),百炼上的"三方直供"版本只是同一模型的另一个接入口,不单独维护文档,只在这里作为背景记录。
75
+
76
+ ## 原始链接索引
77
+
78
+ - [模型概览(含所有可用模型清单)](https://help.aliyun.com/zh/model-studio/models) — 无需登录
79
+ - [文本生成(含 Chat Completions/Responses 双协议代码示例、多模态接口区分表)](https://help.aliyun.com/zh/model-studio/text-generation) — 无需登录
80
+ - [联网搜索工具](https://help.aliyun.com/zh/model-studio/web-search) — 无需登录
81
+ - [模型价格](https://help.aliyun.com/zh/model-studio/model-pricing) — 无需登录
82
+ - [Qwen 使用指南](https://help.aliyun.com/zh/model-studio/user-guide/qwen) — 无需登录
83
+ - [OpenAI 兼容-Responses(完整迁移指南)](https://help.aliyun.com/document_detail/3016539.html) — 无需登录
84
+ - 百炼控制台模型详情页(`bailian.console.aliyun.com/.../model-market/detail/qwen3.8-max`)—— **需要登录**,自动化访问被拦截;需要交互式体验或账号级信息时再手动登录查看
@@ -1,88 +1,88 @@
1
- # 文档采集手册(LLM 供应商)
2
-
3
- > 这份手册只记 LLM 供应商调研中**做过一遍才知道**的东西,是 [docs/model-adaptation/文档采集手册.md](../model-adaptation/文档采集手册.md) 方法论在 LLM 场景下的落地版本;通用方法(`.md` 后缀技巧、SPA 找内容 API、交叉校验)不重复抄写,只记这里特有的坑。
4
- > 最后更新:2026-08-26(基于 7 家 LLM 供应商的实际采集)
5
-
6
- ## 一、大多数 LLM 文档站是 Mintlify,`.md` 后缀直接返回原文
7
-
8
- `platform.kimi.com`、`docs.bigmodel.cn`、`platform.minimaxi.com`、`api-docs.deepseek.com`(部分页面)在 URL 末尾加 `.md` 都能拿到干净的 Markdown 原文,且首行会自带一条 `llms.txt` 全量索引提示:
9
-
10
- ```bash
11
- curl -sL "https://platform.kimi.com/docs/guide/kimi-k3-quickstart.md"
12
- curl -sL "https://docs.bigmodel.cn/cn/guide/models/text/glm-5.3.md"
13
- curl -sL "https://platform.minimaxi.com/docs/guides/server-tools.md"
14
- ```
15
-
16
- 先抓 `<域名>/docs/llms.txt`(Kimi/MiniMax/智谱都有),按关键词过滤出目标模型的全部页面——LLM 供应商的文档比生成模型供应商更"碎",同一个模型的思考参数、联网搜索、工具调用、定价往往各自独立成页,只看模型主页会漏掉大半细节(例如 Kimi K3 的 `$web_search` 用法、固定采样参数、视觉输入必须 base64 这几条,全部在主页之外的独立页面)。
17
-
18
- ## 二、Docusaurus 站点(DeepSeek):先查 sitemap,不要猜 locale 前缀
19
-
20
- `api-docs.deepseek.com` 是 Docusaurus,**不支持** `.md` 后缀(会静默 fallback 到别的页面,返回 200 但内容驴唇不对马嘴),也没有 `/zh-cn/` 中文前缀可用(那是根据浏览器语言自动切换的,服务端 sitemap 里只有不带前缀的英文路径):
21
-
22
- ```bash
23
- curl -sL "https://api-docs.deepseek.com/sitemap.xml" | grep -oE "<loc>[^<]+</loc>"
24
- ```
25
-
26
- 抓到真实 URL 列表后直接 curl 拿完整 SSR HTML,配合下面的 HTML 转文本脚本提取正文,不要在浏览器里跟折叠 UI 搏斗。
27
-
28
- ```python
29
- # strip_html.py 核心思路:用 HTMLParser 只保留 article / .theme-doc-markdown 容器内的文本,
30
- # pre/code 块保留反引号和代码围栏,跳过 script/style/nav/header/footer。
31
- # 完整实现见本次调研留档,或按需重写——逻辑不复杂,不必依赖第三方库。
32
- ```
33
-
34
- ## 三、Volcengine 方舟文档:内容 API 对新版块(Responses API)会"假成功、真空"
35
-
36
- `docs.volcengine.com/api/doc/getDocDetail?LibraryID=82379&DocumentID=<id>&type=online` 对大多数页面能直接拿到 `Result.MDContent`,但**对"进阶使用 → 使用 Responses API"这个分类节点本身**,接口返回 200 且结构完整,`Result` 却是空的——包括在浏览器里发同一个请求也是空,不是登录墙,是这类"目录节点"本身没有正文,真正的内容在它的子页面。
37
-
38
- 排查方法:用浏览器打开该节点对应的 `docs.volcengine.com/docs/82379/<id>` 页面,`read_page(filter: interactive)` 读出左侧导航栏里子项的 `href`,从 `href` 里拿到真实子页面的 `DocumentID`,再逐个用内容 API 拉取:
39
-
40
- ```
41
- Responses API(父节点,内容为空)[1956278]
42
- ├─ 迁移至 Responses API [1585128]
43
- ├─ 文本生成 [1958520]
44
- ├─ 深度思考 [1956279]
45
- ├─ 多模态理解 [1958521]
46
- ├─ 工具调用 [1958524]
47
- └─ 结构化输出(beta) [1958523]
48
- ```
49
-
50
- `getDocList?DataSchema=all_second_nav` 拿到的目录树里能看到这些 DocumentID 和 `ParentID` 关系,但父子内容的可用性不能只看目录结构猜,要么试抓一次,要么直接进浏览器看子项链接。
51
-
52
- ## 四、纯 SPA 站点(MiMo):`.md` 后缀无效,必须用浏览器渲染取 `innerText`
53
-
54
- `mimo.mi.com` 是纯客户端渲染的 SPA(Vite/React 之类),不管加不加 `.md` 后缀,curl 拿到的都是同一份 index.html 外壳(`<title>Xiaomi MiMo Home</title>`,几百字节的 meta 标签,没有正文)。判断方法:`curl` 到的内容不含目标关键词、且多个不同路径返回**完全相同的字节数**,基本可以确认是 SPA 落到了同一个 fallback 页。
55
-
56
- 处理方式:
57
-
58
- 1. 用浏览器打开目标 URL,`wait` 2 秒后 `get_page_text` 通常就能拿到渲染后的正文(这个站点用了标准的 `<main>` 容器,抽取效果不错)。
59
- 2. 页面内部导航链接("Web Search"这类侧边栏项)不一定对应你猜的 URL slug,`read_page` 有时拿不到完整树(返回空),改用 `javascript_tool` 执行 `Array.from(document.querySelectorAll('a')).map(a=>a.href)` 直接把全部 `<a>` 真实 href 枚举出来,比猜路径快得多,且不会漏掉英文/中文双语言路径(MiMo 的英文文档实际路径带 `/docs/en-US/...` 前缀,中文版没有,两者内容深度不同,**英文版信息量明显更全**,优先读英文版)。
60
-
61
- ## 五、登录墙不代表拿不到数据:先找"控制台之外"的公开镜像
62
-
63
- 阿里云百炼的模型详情页(`bailian.console.aliyun.com/.../model-market/detail/<model>`)需要登录,自动化浏览器访问会被拦截(`请求失败,请检查网络设置`,不是普通登录跳转,疑似有风控识别自动化指纹)。
64
-
65
- **不要止步于此就去问用户登录**——先确认 `help.aliyun.com`(SSR,无需登录)是否已经覆盖了同样信息:
66
-
67
- ```bash
68
- curl -sL "https://help.aliyun.com/zh/model-studio/models.md" # 模型清单
69
- curl -sL "https://help.aliyun.com/zh/model-studio/text-generation.md" # 协议、Base URL、代码示例
70
- curl -sL "https://help.aliyun.com/zh/model-studio/model-pricing.md" # 完整价格表(含控制台看不到的历史档位)
71
- curl -sL "https://help.aliyun.com/zh/model-studio/web-search.md" # 联网搜索工具
72
- ```
73
-
74
- 这次调研里,百炼模型的 Base URL、协议、请求示例、思考模式、联网搜索、完整价格表(含此前遗漏的 `-prime` 优速档)全部从这几个公开页面拿到,控制台页面实际只有"体验中心""账号用量"这类交互功能是必须登录的。**只有确认公开文档站确实覆盖不了、且信息对本次任务是必需的,才应该停下来请用户登录**,不要把"控制台需要登录"直接等同于"这份资料需要登录才能拿到"。
75
-
76
- ## 六、LLM 供应商的三项高频交叉校验
77
-
78
- | 校验 | 为什么 | 这次的实例 |
79
- |---|---|---|
80
- | **协议覆盖面**:一份"总览/清单"资料说某供应商"支持 Responses API",不代表所有模型、所有账号状态都支持 | 官方文档经常在正文里单独标注例外 | GLM-5.3 官方原文写"订阅过 GLM Coding Plan(含已过期)的账号暂时只能走 Chat Completions";火山方舟官方原文写"`doubao-1-5-pro-32k-character-250715` 不支持 Responses API" |
81
- | **联网搜索的协议边界**:同一供应商,联网搜索能不能用往往和主协议选择绑定,不能默认"哪个协议都能用" | 服务端工具通常只在部分协议上实现 | 火山方舟联网搜索**只有** Responses API 能用,Chat API 完全不支持;MiMo 联网搜索**只有** Chat Completions 能用,Anthropic 协议不支持;MiniMax 联网搜索 Anthropic + Responses 都支持但纯 Chat Completions 不支持 |
82
- | **模型是否要求特定请求形态**:官方模型页说"支持图片/视频输入",不代表能直接套用别的模型的请求 schema | 有的模型要求特定接口/字段结构,用错会直接报错而非降级 | 百炼 `qwen3.8-max` 必须用多模态消息数组格式,套用纯文本模型的字符串 `content` 会报 `url error`;Kimi K3 图片输入必须 base64,传公网 URL 不会报错但模型看不到图 |
83
-
84
- **处理原则**:三项校验任何一项没做,接入代码大概率会出现"部分场景能用、部分场景莫名其妙不生效"的问题,且大概率不会在请求阶段报错——LLM 供应商的容错策略普遍是"未知参数静默忽略"而不是"报 400",比生成模型供应商更难通过报错定位问题,写文档时要把这类边界条件明确列出来,不能只写"支持"二字。
85
-
86
- ---
87
-
88
- 相关:[README.md](README.md)(协议矩阵与供应商清单)、[docs/model-adaptation/文档采集手册.md](../model-adaptation/文档采集手册.md)(生成模型侧的通用方法论)
1
+ # 文档采集手册(LLM 供应商)
2
+
3
+ > 这份手册只记 LLM 供应商调研中**做过一遍才知道**的东西,是 [docs/model-adaptation/文档采集手册.md](../model-adaptation/文档采集手册.md) 方法论在 LLM 场景下的落地版本;通用方法(`.md` 后缀技巧、SPA 找内容 API、交叉校验)不重复抄写,只记这里特有的坑。
4
+ > 最后更新:2026-08-26(基于 7 家 LLM 供应商的实际采集)
5
+
6
+ ## 一、大多数 LLM 文档站是 Mintlify,`.md` 后缀直接返回原文
7
+
8
+ `platform.kimi.com`、`docs.bigmodel.cn`、`platform.minimaxi.com`、`api-docs.deepseek.com`(部分页面)在 URL 末尾加 `.md` 都能拿到干净的 Markdown 原文,且首行会自带一条 `llms.txt` 全量索引提示:
9
+
10
+ ```bash
11
+ curl -sL "https://platform.kimi.com/docs/guide/kimi-k3-quickstart.md"
12
+ curl -sL "https://docs.bigmodel.cn/cn/guide/models/text/glm-5.3.md"
13
+ curl -sL "https://platform.minimaxi.com/docs/guides/server-tools.md"
14
+ ```
15
+
16
+ 先抓 `<域名>/docs/llms.txt`(Kimi/MiniMax/智谱都有),按关键词过滤出目标模型的全部页面——LLM 供应商的文档比生成模型供应商更"碎",同一个模型的思考参数、联网搜索、工具调用、定价往往各自独立成页,只看模型主页会漏掉大半细节(例如 Kimi K3 的 `$web_search` 用法、固定采样参数、视觉输入必须 base64 这几条,全部在主页之外的独立页面)。
17
+
18
+ ## 二、Docusaurus 站点(DeepSeek):先查 sitemap,不要猜 locale 前缀
19
+
20
+ `api-docs.deepseek.com` 是 Docusaurus,**不支持** `.md` 后缀(会静默 fallback 到别的页面,返回 200 但内容驴唇不对马嘴),也没有 `/zh-cn/` 中文前缀可用(那是根据浏览器语言自动切换的,服务端 sitemap 里只有不带前缀的英文路径):
21
+
22
+ ```bash
23
+ curl -sL "https://api-docs.deepseek.com/sitemap.xml" | grep -oE "<loc>[^<]+</loc>"
24
+ ```
25
+
26
+ 抓到真实 URL 列表后直接 curl 拿完整 SSR HTML,配合下面的 HTML 转文本脚本提取正文,不要在浏览器里跟折叠 UI 搏斗。
27
+
28
+ ```python
29
+ # strip_html.py 核心思路:用 HTMLParser 只保留 article / .theme-doc-markdown 容器内的文本,
30
+ # pre/code 块保留反引号和代码围栏,跳过 script/style/nav/header/footer。
31
+ # 完整实现见本次调研留档,或按需重写——逻辑不复杂,不必依赖第三方库。
32
+ ```
33
+
34
+ ## 三、Volcengine 方舟文档:内容 API 对新版块(Responses API)会"假成功、真空"
35
+
36
+ `docs.volcengine.com/api/doc/getDocDetail?LibraryID=82379&DocumentID=<id>&type=online` 对大多数页面能直接拿到 `Result.MDContent`,但**对"进阶使用 → 使用 Responses API"这个分类节点本身**,接口返回 200 且结构完整,`Result` 却是空的——包括在浏览器里发同一个请求也是空,不是登录墙,是这类"目录节点"本身没有正文,真正的内容在它的子页面。
37
+
38
+ 排查方法:用浏览器打开该节点对应的 `docs.volcengine.com/docs/82379/<id>` 页面,`read_page(filter: interactive)` 读出左侧导航栏里子项的 `href`,从 `href` 里拿到真实子页面的 `DocumentID`,再逐个用内容 API 拉取:
39
+
40
+ ```
41
+ Responses API(父节点,内容为空)[1956278]
42
+ ├─ 迁移至 Responses API [1585128]
43
+ ├─ 文本生成 [1958520]
44
+ ├─ 深度思考 [1956279]
45
+ ├─ 多模态理解 [1958521]
46
+ ├─ 工具调用 [1958524]
47
+ └─ 结构化输出(beta) [1958523]
48
+ ```
49
+
50
+ `getDocList?DataSchema=all_second_nav` 拿到的目录树里能看到这些 DocumentID 和 `ParentID` 关系,但父子内容的可用性不能只看目录结构猜,要么试抓一次,要么直接进浏览器看子项链接。
51
+
52
+ ## 四、纯 SPA 站点(MiMo):`.md` 后缀无效,必须用浏览器渲染取 `innerText`
53
+
54
+ `mimo.mi.com` 是纯客户端渲染的 SPA(Vite/React 之类),不管加不加 `.md` 后缀,curl 拿到的都是同一份 index.html 外壳(`<title>Xiaomi MiMo Home</title>`,几百字节的 meta 标签,没有正文)。判断方法:`curl` 到的内容不含目标关键词、且多个不同路径返回**完全相同的字节数**,基本可以确认是 SPA 落到了同一个 fallback 页。
55
+
56
+ 处理方式:
57
+
58
+ 1. 用浏览器打开目标 URL,`wait` 2 秒后 `get_page_text` 通常就能拿到渲染后的正文(这个站点用了标准的 `<main>` 容器,抽取效果不错)。
59
+ 2. 页面内部导航链接("Web Search"这类侧边栏项)不一定对应你猜的 URL slug,`read_page` 有时拿不到完整树(返回空),改用 `javascript_tool` 执行 `Array.from(document.querySelectorAll('a')).map(a=>a.href)` 直接把全部 `<a>` 真实 href 枚举出来,比猜路径快得多,且不会漏掉英文/中文双语言路径(MiMo 的英文文档实际路径带 `/docs/en-US/...` 前缀,中文版没有,两者内容深度不同,**英文版信息量明显更全**,优先读英文版)。
60
+
61
+ ## 五、登录墙不代表拿不到数据:先找"控制台之外"的公开镜像
62
+
63
+ 阿里云百炼的模型详情页(`bailian.console.aliyun.com/.../model-market/detail/<model>`)需要登录,自动化浏览器访问会被拦截(`请求失败,请检查网络设置`,不是普通登录跳转,疑似有风控识别自动化指纹)。
64
+
65
+ **不要止步于此就去问用户登录**——先确认 `help.aliyun.com`(SSR,无需登录)是否已经覆盖了同样信息:
66
+
67
+ ```bash
68
+ curl -sL "https://help.aliyun.com/zh/model-studio/models.md" # 模型清单
69
+ curl -sL "https://help.aliyun.com/zh/model-studio/text-generation.md" # 协议、Base URL、代码示例
70
+ curl -sL "https://help.aliyun.com/zh/model-studio/model-pricing.md" # 完整价格表(含控制台看不到的历史档位)
71
+ curl -sL "https://help.aliyun.com/zh/model-studio/web-search.md" # 联网搜索工具
72
+ ```
73
+
74
+ 这次调研里,百炼模型的 Base URL、协议、请求示例、思考模式、联网搜索、完整价格表(含此前遗漏的 `-prime` 优速档)全部从这几个公开页面拿到,控制台页面实际只有"体验中心""账号用量"这类交互功能是必须登录的。**只有确认公开文档站确实覆盖不了、且信息对本次任务是必需的,才应该停下来请用户登录**,不要把"控制台需要登录"直接等同于"这份资料需要登录才能拿到"。
75
+
76
+ ## 六、LLM 供应商的三项高频交叉校验
77
+
78
+ | 校验 | 为什么 | 这次的实例 |
79
+ |---|---|---|
80
+ | **协议覆盖面**:一份"总览/清单"资料说某供应商"支持 Responses API",不代表所有模型、所有账号状态都支持 | 官方文档经常在正文里单独标注例外 | GLM-5.3 官方原文写"订阅过 GLM Coding Plan(含已过期)的账号暂时只能走 Chat Completions";火山方舟官方原文写"`doubao-1-5-pro-32k-character-250715` 不支持 Responses API" |
81
+ | **联网搜索的协议边界**:同一供应商,联网搜索能不能用往往和主协议选择绑定,不能默认"哪个协议都能用" | 服务端工具通常只在部分协议上实现 | 火山方舟联网搜索**只有** Responses API 能用,Chat API 完全不支持;MiMo 联网搜索**只有** Chat Completions 能用,Anthropic 协议不支持;MiniMax 联网搜索 Anthropic + Responses 都支持但纯 Chat Completions 不支持 |
82
+ | **模型是否要求特定请求形态**:官方模型页说"支持图片/视频输入",不代表能直接套用别的模型的请求 schema | 有的模型要求特定接口/字段结构,用错会直接报错而非降级 | 百炼 `qwen3.8-max` 必须用多模态消息数组格式,套用纯文本模型的字符串 `content` 会报 `url error`;Kimi K3 图片输入必须 base64,传公网 URL 不会报错但模型看不到图 |
83
+
84
+ **处理原则**:三项校验任何一项没做,接入代码大概率会出现"部分场景能用、部分场景莫名其妙不生效"的问题,且大概率不会在请求阶段报错——LLM 供应商的容错策略普遍是"未知参数静默忽略"而不是"报 400",比生成模型供应商更难通过报错定位问题,写文档时要把这类边界条件明确列出来,不能只写"支持"二字。
85
+
86
+ ---
87
+
88
+ 相关:[README.md](README.md)(协议矩阵与供应商清单)、[docs/model-adaptation/文档采集手册.md](../model-adaptation/文档采集手册.md)(生成模型侧的通用方法论)
@@ -1,32 +1,32 @@
1
- # Bria Eraser · Fal
2
-
3
- | 项目 | 内容 |
4
- |---|---|
5
- | 最后更新 | 2026-08-28 |
6
- | SDK 模型 ID | `fal-bria-eraser`(可选工具模型,不进入默认 105 目录) |
7
- | Fal endpoint ID | `fal-ai/bria/eraser` |
8
- | API 文档 | https://fal.ai/models/fal-ai/bria/eraser/api |
9
- | 价格 | $0.04/次 |
10
- | 登录 | 文档与模型页无需登录;调用需要 Fal Key |
11
-
12
- ## 协议与字段
13
-
14
- 使用 Fal 队列公共协议,认证、提交、状态与结果读取同 [Fal 供应商文档](../供应商/Fal.md)。
15
- 输出位于 `image.url`。
16
-
17
- | 字段 | 约束 | SDK 策略 |
18
- |---|---|---|
19
- | `image_url` | 必填,待处理原图 | `image-upload`,Fal CDN 自动上传 |
20
- | `mask_url` | 必填,二值遮罩 | `image-upload`,Fal CDN 自动上传 |
21
- | `mask_type` | `manual` / `automatic`,默认 `manual` | Photoshop 遮罩来自用户选区/画笔,固定发送 `manual` |
22
- | `preserve_alpha` | 可选 | 插件当前未使用,不发送 |
23
- | `sync_mode` | 可选 | 不发送,统一走队列 |
24
-
25
- 该模型的统一画像由 schema 派生为图片输入、图片输出、`operation=image-edit`、`feature=erase`;
26
- 模型定义仍为 `type: image`,避免制造新的生成模态或执行协议。
27
-
28
- ## 原始链接索引
29
-
30
- - https://fal.ai/models/fal-ai/bria/eraser/api — endpoint、字段、结果与队列示例。
31
- - https://fal.ai/models/fal-ai/bria/eraser — 当前 $0.04/次价格。
32
- - https://fal.ai/docs/documentation/model-apis/inference/queue — Fal 队列公共协议。
1
+ # Bria Eraser · Fal
2
+
3
+ | 项目 | 内容 |
4
+ |---|---|
5
+ | 最后更新 | 2026-08-28 |
6
+ | SDK 模型 ID | `fal-bria-eraser`(可选工具模型,不进入默认 105 目录) |
7
+ | Fal endpoint ID | `fal-ai/bria/eraser` |
8
+ | API 文档 | https://fal.ai/models/fal-ai/bria/eraser/api |
9
+ | 价格 | $0.04/次 |
10
+ | 登录 | 文档与模型页无需登录;调用需要 Fal Key |
11
+
12
+ ## 协议与字段
13
+
14
+ 使用 Fal 队列公共协议,认证、提交、状态与结果读取同 [Fal 供应商文档](../供应商/Fal.md)。
15
+ 输出位于 `image.url`。
16
+
17
+ | 字段 | 约束 | SDK 策略 |
18
+ |---|---|---|
19
+ | `image_url` | 必填,待处理原图 | `image-upload`,Fal CDN 自动上传 |
20
+ | `mask_url` | 必填,二值遮罩 | `image-upload`,Fal CDN 自动上传 |
21
+ | `mask_type` | `manual` / `automatic`,默认 `manual` | Photoshop 遮罩来自用户选区/画笔,固定发送 `manual` |
22
+ | `preserve_alpha` | 可选 | 插件当前未使用,不发送 |
23
+ | `sync_mode` | 可选 | 不发送,统一走队列 |
24
+
25
+ 该模型的统一画像由 schema 派生为图片输入、图片输出、`operation=image-edit`、`feature=erase`;
26
+ 模型定义仍为 `type: image`,避免制造新的生成模态或执行协议。
27
+
28
+ ## 原始链接索引
29
+
30
+ - https://fal.ai/models/fal-ai/bria/eraser/api — endpoint、字段、结果与队列示例。
31
+ - https://fal.ai/models/fal-ai/bria/eraser — 当前 $0.04/次价格。
32
+ - https://fal.ai/docs/documentation/model-apis/inference/queue — Fal 队列公共协议。