@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,139 +1,139 @@
1
- # LLM 供应商适配清单(总索引)
2
-
3
- | 项目 | 内容 |
4
- |---|---|
5
- | 最后更新 | 2026-08-28 |
6
- | 覆盖供应商 | 火山引擎(Doubao)、Kimi(Moonshot)、智谱 GLM、DeepSeek、小米 MiMo、阿里云百炼(Qwen)、MiniMax |
7
- | 覆盖模型 | 7 家供应商的当前旗舰文本/多模态系列;供应商专属模型见各自文档内的“模型清单” |
8
-
9
- ## 一、这是什么,和 `docs/model-adaptation/` 有什么不一样
10
-
11
- `../model-adaptation/` 管的是**生成模型**(图片/视频/音频):每个 (模型, 供应商) 组合对应一份 SDK catalog 定义,包含参数 schema、提交/轮询/结果解析与计价,文档和代码是 1:1 影子关系,所以按"一个模型一个文件夹、每个支持它的供应商一份文件"组织。
12
-
13
- LLM(本目录)是完全不同的架构:
14
-
15
- - **供应商和模型是用户运行时自建的**(设置页手填 `providerId`/`baseUrl`/API Key,模型 ID 靠手填或探测),不是代码里为每个模型写一份文件。三个消费方——智能助手 Agent、画布文本处理节点、提示词优化——共用同一份 `LlmConfigState`(`providers` + `models`),走同一条 `runModelStep` → AI SDK `streamText` 管线([modelStep.ts](../../src/llm/modelStep.ts)、[SDK modelStep.ts](../../src/llm/sdk/modelStep.ts))。
16
- - 真正需要"文档变了就要回去改代码"的东西只有两处,且都是**供应商级**而不是模型级:
17
- 1. [providerProtocol.ts](../../src/llm/providerProtocol.ts) 里按 `providerId` 收口的协议怪癖(额外认证头、请求体字段改名)
18
- 2. [providerAdapter.ts](../../src/llm/sdk/providerAdapter.ts) 里的 `ModelStepProviderAdapterRegistry`——按协议注册的适配器
19
- - 因此本目录按**供应商**组织,不按模型:`供应商/<供应商名>.md`,每份文件自包含该供应商的 Base URL、协议现状、模型速查表、思考参数、联网搜索能力和已知怪癖。
20
-
21
- ```
22
- docs/llm-adaptation/
23
- ├── README.md # 本文件:协议矩阵 + 供应商速查 + 代码现状
24
- ├── 文档采集手册.md # 怎么发现/抓取 LLM 供应商文档(调研前先看)
25
- └── 供应商/
26
- ├── 火山引擎.md
27
- ├── Kimi.md
28
- ├── 智谱GLM.md
29
- ├── DeepSeek.md
30
- ├── 小米MiMo.md
31
- ├── 百炼Qwen.md
32
- └── MiniMax.md
33
- ```
34
-
35
- ## 二、代码现状(先看这个,再看下面的协议矩阵)
36
-
37
- ### 2.1 已经落到代码里的(2026-08-29)
38
-
39
- | 能力 | 落点 | 说明 |
40
- |---|---|---|
41
- | 内置模型能力目录 | [modelCatalog.ts](../../src/llm/modelCatalog.ts) + [modelCatalogEntries.ts](../../src/llm/modelCatalogEntries.ts) | 本目录里核对过的模型按 ID 登记输入模态、工具调用、结构化输出、上下文与输出上限。添加模型(手动、探测、预设三个入口)时自动标好,用户不用自己勾;存量配置在归一化时补标一次并盖 `catalogId` 戳,之后用户的手工修改不再被覆盖 |
42
- | 内置供应商预设 | [providerPresets.ts](../../src/llm/providerPresets.ts) | 七家供应商 + 派欧云的 Base URL、思考默认值、推荐模型打包,设置页「管理供应商」里选一下即可建好 |
43
- | 思考参数按供应商翻译 | [providerReasoningRequest.ts](../../src/llm/providerReasoningRequest.ts) | 把统一的五档强度映射到各家实际接受的字段与取值(第六节那张表就是它的数据来源),原生流式与 SDK 模型步骤两条路径共用 |
44
- | Responses API 运行时 | [provider.ts](../../src/llm/sdk/provider.ts) + [providerPresets.ts](../../src/llm/providerPresets.ts) | `openai-responses` 与 Chat 并存;预制供应商按“供应商端点 × 具体模型”自动选择,用户不需要也不能逐模型手选协议 |
45
-
46
- 改动前的状态:思考模式下拉**只对 DeepSeek 有效**,其余六家发出去的请求里根本没有对应字段;而且两条路径给 DeepSeek 发的还不一样(原生流式发 `reasoning: true`,不是官方要求的 `thinking` + `reasoning_effort`)。
47
-
48
- ### 2.2 协议选择已经收进 SDK
49
-
50
- - `LlmApiProtocol` 已包含 `openai-compatible`(Chat Completions)与 `openai-responses`。
51
- - `ModelStepProviderAdapterRegistry` 同时注册两条真实运行时;Responses 通过官方 `@ai-sdk/openai` 转换请求与标准 SSE 事件。
52
- - 协议不是供应商级一刀切:例如智谱国内只有 `glm-5.3` 默认 Responses,`glm-5.3-flash` / `glm-5v-turbo` 保持 Chat;派欧云聚合网关也不会因为底层模型原厂支持 Responses 就被误切换。
53
- - 预制供应商的协议控件不在界面显示;自定义未知端点才允许选择 Chat / Responses。Anthropic 没有运行时实现,也不在界面显示,存量伪配置继续归一化成 OpenAI Chat。
54
-
55
- 当前已自动走 Responses 的预制组合:DeepSeek V4 Pro / Flash / Vision、火山引擎目录内三款 Doubao、百炼 Qwen3.8-Max、MiniMax-M3、智谱中国大陆 GLM-5.3。Kimi、MiMo、Groq、派欧云以及未确认的智谱模型继续走 Chat。
56
-
57
- ### 2.3 Responses 事件契约与验证证据
58
-
59
- | 官方事件/边界 | SDK 统一结果 | 验证 |
60
- |---|---|---|
61
- | `response.created` | 记录 response id,不向业务层制造文本事件 | 官方形状 fixture |
62
- | `response.output_item.added` + `response.output_text.delta` | `TextDelta` 与最终文本 | [openai-responses-text.json](../../tests/fixtures/llm/openai-responses-text.json) |
63
- | `response.function_call_arguments.delta` + function item done | 既有 `ToolCall`,工具仍由助手运行时执行 | runtime 工具调用精确测试 |
64
- | `response.completed` / `response.incomplete` | finish reason、usage、缓存与推理 token | runtime 精确测试 |
65
- | `response.failed` / SSE `error` | 结构化 provider error,不返回半成功结果 | runtime 负例测试 |
66
- | AbortSignal / 断流 | 取消请求并释放读取器,统一为 `task_cancelled` | runtime 取消测试 |
67
-
68
- Responses 请求统一下发 `store: false`:助手自己的会话存储仍是唯一事实来源,同时兼容 DeepSeek 不支持 `store` / `previous_response_id` 的无状态实现。
69
-
70
- ### 2.4 一个容易踩的坑:两条请求路径能表达的输入模态不同
71
-
72
- - 画布文本处理、提示词优化走**原生流式路径**([streaming.ts](../../src/llm/streaming.ts)),`image_url` / `video_url` / `input_audio` 三种内容块都能发。
73
- - 智能助手走 **AI SDK 模型步骤**([provider.ts](../../src/llm/sdk/provider.ts)),当前转换器只能表达 **image 与 audio**,视频会被 `assertInputModalities` 拦下。
74
-
75
- 所以模型能力目录里的 `input` 记的是"**本项目当前请求路径下真实可用**"的模态,不是模型宣传的模态。DeepSeek 视觉模型已经因 Responses 接通而开放图片;智能助手的视频输入仍会在协议边界明确阻断,不会降级成文本地址造成静默失效。
76
-
77
- ## 三、本项目的协议接入优先级(产品决策,不是能力强弱排序)
78
-
79
- 新写协议适配器、给某个供应商挑协议时,按下面顺序取舍——这是本项目的既定优先级,**不因某家供应商官方推荐哪个协议就单独提高它的顺序**(MiniMax 官方推荐 Anthropic,但本项目仍按下表顺序执行,见 [MiniMax.md 第 6 节](供应商/MiniMax.md)):
80
-
81
- 1. **Responses API 优先**。结构化输出、上下文管理、内置工具(联网搜索等)通常最先在这条协议上落地,是新协议适配器要覆盖的首要目标。
82
- 2. **Chat Completions 兜底**。Responses 未确认的供应商/模型继续用它,不阻塞可用性。
83
- 3. **Anthropic Messages API 暂不实现、不显示**。官方支持面只作为未来资料保留,不向用户暴露一个不能工作的选项。
84
-
85
- 每个供应商文件的「摘要」表里都有一行"接入优先级",按这三条给出该供应商的具体落点(例如 Kimi/百炼没有 Anthropic,MiMo 没有 Responses API,落点就相应收窄)。
86
-
87
- ## 四、协议矩阵(官方支持面,供路线图参考)
88
-
89
- | 供应商 | Chat Completions | Responses API | Anthropic Messages API | 联网搜索可用协议 |
90
- |---|---|---|---|---|
91
- | [火山引擎](供应商/火山引擎.md) | ✅ | ✅ | ❌ 官方未提供 | **仅 Responses API**(Chat API 完全不支持内置工具) |
92
- | [Kimi](供应商/Kimi.md) | ✅ | ❌ 官方未提供 | ❌ 官方未提供 | Chat Completions(`$web_search`,官方标注"近期不建议用于生产") |
93
- | [智谱 GLM](供应商/智谱GLM.md) | ✅(`glm-5.3-flash` 目前仅确认此协议) | ✅(仅 `glm-5.3`) | ✅(仅 `glm-5.3`) | Chat Completions 工具 / 独立 Web Search API 均可,GLM-Coding-Plan 订阅账号暂时只能走 Chat Completions |
94
- | [DeepSeek](供应商/DeepSeek.md) | ✅ | ✅ | ✅ | **仅 Responses API**(Chat Completions 不支持 `web_search`) |
95
- | [小米 MiMo](供应商/小米MiMo.md) | ✅ | ❌ 官方未提供 | ✅ | **仅 Chat Completions**(官方原文:"其他 API 协议暂不支持"),且需先在控制台激活插件 |
96
- | [百炼 Qwen](供应商/百炼Qwen.md) | ✅ | ✅ | ❌ 官方未提供 | 两条协议都支持,但 Responses 路径能力更全(额外有 `web_extractor`/`code_interpreter`) |
97
- | [MiniMax](供应商/MiniMax.md) | ✅ | ✅ | ✅(**官方推荐首选**) | Anthropic Messages + Responses API 均支持,纯 Chat Completions 不支持 |
98
-
99
- **两条对制定路线图有直接影响的结论**:
100
-
101
- 1. **7 家里有 6 家原生支持 Responses API 或与之等价的能力**(火山引擎、GLM-5.3、DeepSeek、百炼、MiniMax 直接支持 Responses API;Kimi、小米 MiMo 没有 Responses API,只能走 Chat Completions)——这与第三节"Responses API 优先"的既定优先级吻合,先做 Responses API 适配器能覆盖到的供应商数量最多,也是联网搜索等内置工具最主要的解锁路径。
102
- 2. **联网搜索能不能用,很大程度上取决于选了哪个协议**,不是"这家供应商支不支持"这么简单:火山引擎和 DeepSeek 的联网搜索**必须**走 Responses API,MiMo 的联网搜索**必须**走 Chat Completions,MiniMax 的联网搜索 Anthropic/Responses 都行但纯 Chat Completions 不行。做 Responses API 适配器时可以顺带核对一下能不能同时把对应供应商的联网搜索也接上,性价比更高。
103
- 3. **4 家(DeepSeek、GLM、MiMo、MiniMax)原生支持 Anthropic Messages API,MiniMax 官方甚至推荐它作为首选**——这是资料记录,供未来"顺手就能接"时参考,**不代表应该优先做**:按第三节的既定优先级,Anthropic 排在 Responses API 和 Chat Completions 之后,不单独立项。
104
-
105
- ## 五、供应商速查表
106
-
107
- | 供应商 | Base URL(OpenAI 兼容) | 旗舰模型 | 上下文 | 价格量级(输入/输出,元/百万 tokens) |
108
- |---|---|---|---|---|
109
- | 火山引擎 | `https://ark.cn-beijing.volces.com/api/v3` | `doubao-seed-evolving` | 1024K | 6 / 30 |
110
- | Kimi | `https://api.moonshot.cn/v1` | `kimi-k3` | 1,048,576 | 20 / 100 |
111
- | 智谱 GLM | 国内 `https://open.bigmodel.cn/api/paas/v4`;国际 `https://api.z.ai/api/paas/v4` | `glm-5.3` / `glm-5.3-flash`(原生多模态) | 1M | 国内 GLM-5.3:8 / 28;Flash:CNY 0.8 / 2.8、USD 0.15 / 0.50 |
112
- | DeepSeek | `https://api.deepseek.com` | `deepseek-v4-pro` | 1M | 4.5 / 13.5(闲时) |
113
- | 小米 MiMo | `https://api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | 1M | 3 / 6 |
114
- | 百炼 Qwen | `https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1` | `qwen3.8-max` | ~1M | 12 / 36 |
115
- | MiniMax | `https://api.minimaxi.com/v1` | `MiniMax-M3` | 1,000,000 | 2.10 / 8.40(≤512K,促销价) |
116
-
117
- 价格列只取旗舰模型的标准档,完整价格表(含缓存命中价、批量价、区域差异)见各供应商文件;价格会变,不要把这张表当长期不变的计费合同。
118
-
119
- ## 六、思考参数速查(各家字段名一致但取值集合不同,不要共用常量)
120
-
121
- | 供应商 | 字段 | 取值 | 默认 | 能否关闭 |
122
- |---|---|---|---|---|
123
- | 火山引擎 | `reasoning_effort` | `none`/`minimal`/`low`/`medium`/`high`/`xhigh`/`max`(7 档) | `high` | 可以(`thinking` 开关) |
124
- | Kimi | `reasoning_effort` | `low`/`high`/`max` | `max` | **不可以**,K3 始终思考 |
125
- | 智谱 GLM | `reasoning_effort` + `thinking` | `low`/`high`/`max`(`glm-5.3`、`glm-5.3-flash`) | `max` | GLM-5.3 / Flash 不可以;GLM-5V-Turbo 可以 |
126
- | DeepSeek | `reasoning_effort` + `thinking.type` | 字符串透传,无固定枚举 | — | 可以 |
127
- | 小米 MiMo | 无强度分级,仅 `reasoning_content` 回传约定 | — | — | 未见明确开关文档 |
128
- | 百炼 Qwen | `enable_thinking`(布尔) | `true`/`false` | 视模型而定 | 可以 |
129
- | MiniMax | 仅 Anthropic 协议下确认为原生 `thinking` 内容块;Chat/Responses 路径的思考强度字段未在公开文档中找到,接入 Responses API 时需要单独实测确认 | — | — | 视协议而定 |
130
-
131
- ## 七、维护方式
132
-
133
- - **动手前**:先读 [文档采集手册.md](文档采集手册.md)——LLM 供应商的文档比生成模型更碎,同一模型的思考参数、联网搜索、工具调用往往各自独立成页,只看模型主页会漏掉大半内容。
134
- - **新增供应商**:在本文件协议矩阵、供应商速查表、思考参数速查三张表里各加一行 → 在 `供应商/` 下新建 `<供应商名>.md`,按现有文件的结构写(摘要 → Base URL → 协议现状 → 模型清单 → 思考模式 → 联网搜索/工具 → 适配要点 → 原始链接索引)→ 再把它落到代码的三处:[modelCatalogEntries.ts](../../src/llm/modelCatalogEntries.ts) 加模型条目、[providerPresets.ts](../../src/llm/providerPresets.ts) 加供应商预设、思考参数写法与通用 `reasoning_effort` 不同时在 [providerReasoningRequest.ts](../../src/llm/providerReasoningRequest.ts) 加一条映射。
135
- - **文档与代码的对齐由测试守着**:`modelCatalog.test.ts` 断言每条目录条目的 `docs` 路径真实存在,`providerPresets.test.ts` 断言每个预设的推荐模型都能在目录里查到、且有专门思考写法的供应商 id 与映射表一致。改了文件名或 providerId 而没同步,测试会红。
136
- - **只登记文档明确写出的能力**:目录里的每一项都要能在对应供应商文档里找到出处,文档没写的保持保守取值(false / null),交给用户手工勾或走「验证此模型」动态探测,不靠模型名猜。
137
- - **更新已有供应商**:直接改对应文件,同步更新该文件与本文件头部的"最后更新"。
138
- - **信息来源要求**:每条参数/价格都要能追溯到文件末尾"原始链接索引"里的某个链接;需要登录才能看到的页面必须标注,且优先尝试公开镜像(如 `help.aliyun.com` 之于百炼控制台)而不是直接要求登录。
139
- - **代码侧一旦补上新协议适配器**:回来更新本文件第二节"代码现状",把对应协议从"资料"状态标记为"已实现",否则这份文档会长期落后于代码。
1
+ # LLM 供应商适配清单(总索引)
2
+
3
+ | 项目 | 内容 |
4
+ |---|---|
5
+ | 最后更新 | 2026-08-28 |
6
+ | 覆盖供应商 | 火山引擎(Doubao)、Kimi(Moonshot)、智谱 GLM、DeepSeek、小米 MiMo、阿里云百炼(Qwen)、MiniMax |
7
+ | 覆盖模型 | 7 家供应商的当前旗舰文本/多模态系列;供应商专属模型见各自文档内的“模型清单” |
8
+
9
+ ## 一、这是什么,和 `docs/model-adaptation/` 有什么不一样
10
+
11
+ `../model-adaptation/` 管的是**生成模型**(图片/视频/音频):每个 (模型, 供应商) 组合对应一份 SDK catalog 定义,包含参数 schema、提交/轮询/结果解析与计价,文档和代码是 1:1 影子关系,所以按"一个模型一个文件夹、每个支持它的供应商一份文件"组织。
12
+
13
+ LLM(本目录)是完全不同的架构:
14
+
15
+ - **供应商和模型是用户运行时自建的**(设置页手填 `providerId`/`baseUrl`/API Key,模型 ID 靠手填或探测),不是代码里为每个模型写一份文件。三个消费方——智能助手 Agent、画布文本处理节点、提示词优化——共用同一份 `LlmConfigState`(`providers` + `models`),走同一条 `runModelStep` → AI SDK `streamText` 管线([modelStep.ts](../../src/llm/modelStep.ts)、[SDK modelStep.ts](../../src/llm/sdk/modelStep.ts))。
16
+ - 真正需要"文档变了就要回去改代码"的东西只有两处,且都是**供应商级**而不是模型级:
17
+ 1. [providerProtocol.ts](../../src/llm/providerProtocol.ts) 里按 `providerId` 收口的协议怪癖(额外认证头、请求体字段改名)
18
+ 2. [providerAdapter.ts](../../src/llm/sdk/providerAdapter.ts) 里的 `ModelStepProviderAdapterRegistry`——按协议注册的适配器
19
+ - 因此本目录按**供应商**组织,不按模型:`供应商/<供应商名>.md`,每份文件自包含该供应商的 Base URL、协议现状、模型速查表、思考参数、联网搜索能力和已知怪癖。
20
+
21
+ ```
22
+ docs/llm-adaptation/
23
+ ├── README.md # 本文件:协议矩阵 + 供应商速查 + 代码现状
24
+ ├── 文档采集手册.md # 怎么发现/抓取 LLM 供应商文档(调研前先看)
25
+ └── 供应商/
26
+ ├── 火山引擎.md
27
+ ├── Kimi.md
28
+ ├── 智谱GLM.md
29
+ ├── DeepSeek.md
30
+ ├── 小米MiMo.md
31
+ ├── 百炼Qwen.md
32
+ └── MiniMax.md
33
+ ```
34
+
35
+ ## 二、代码现状(先看这个,再看下面的协议矩阵)
36
+
37
+ ### 2.1 已经落到代码里的(2026-08-29)
38
+
39
+ | 能力 | 落点 | 说明 |
40
+ |---|---|---|
41
+ | 内置模型能力目录 | [modelCatalog.ts](../../src/llm/modelCatalog.ts) + [modelCatalogEntries.ts](../../src/llm/modelCatalogEntries.ts) | 本目录里核对过的模型按 ID 登记输入模态、工具调用、结构化输出、上下文与输出上限。添加模型(手动、探测、预设三个入口)时自动标好,用户不用自己勾;存量配置在归一化时补标一次并盖 `catalogId` 戳,之后用户的手工修改不再被覆盖 |
42
+ | 内置供应商预设 | [providerPresets.ts](../../src/llm/providerPresets.ts) | 七家供应商 + 派欧云的 Base URL、思考默认值、推荐模型打包,设置页「管理供应商」里选一下即可建好 |
43
+ | 思考参数按供应商翻译 | [providerReasoningRequest.ts](../../src/llm/providerReasoningRequest.ts) | 把统一的五档强度映射到各家实际接受的字段与取值(第六节那张表就是它的数据来源),原生流式与 SDK 模型步骤两条路径共用 |
44
+ | Responses API 运行时 | [provider.ts](../../src/llm/sdk/provider.ts) + [providerPresets.ts](../../src/llm/providerPresets.ts) | `openai-responses` 与 Chat 并存;预制供应商按“供应商端点 × 具体模型”自动选择,用户不需要也不能逐模型手选协议 |
45
+
46
+ 改动前的状态:思考模式下拉**只对 DeepSeek 有效**,其余六家发出去的请求里根本没有对应字段;而且两条路径给 DeepSeek 发的还不一样(原生流式发 `reasoning: true`,不是官方要求的 `thinking` + `reasoning_effort`)。
47
+
48
+ ### 2.2 协议选择已经收进 SDK
49
+
50
+ - `LlmApiProtocol` 已包含 `openai-compatible`(Chat Completions)与 `openai-responses`。
51
+ - `ModelStepProviderAdapterRegistry` 同时注册两条真实运行时;Responses 通过官方 `@ai-sdk/openai` 转换请求与标准 SSE 事件。
52
+ - 协议不是供应商级一刀切:例如智谱国内只有 `glm-5.3` 默认 Responses,`glm-5.3-flash` / `glm-5v-turbo` 保持 Chat;派欧云聚合网关也不会因为底层模型原厂支持 Responses 就被误切换。
53
+ - 预制供应商的协议控件不在界面显示;自定义未知端点才允许选择 Chat / Responses。Anthropic 没有运行时实现,也不在界面显示,存量伪配置继续归一化成 OpenAI Chat。
54
+
55
+ 当前已自动走 Responses 的预制组合:DeepSeek V4 Pro / Flash / Vision、火山引擎目录内三款 Doubao、百炼 Qwen3.8-Max、MiniMax-M3、智谱中国大陆 GLM-5.3。Kimi、MiMo、Groq、派欧云以及未确认的智谱模型继续走 Chat。
56
+
57
+ ### 2.3 Responses 事件契约与验证证据
58
+
59
+ | 官方事件/边界 | SDK 统一结果 | 验证 |
60
+ |---|---|---|
61
+ | `response.created` | 记录 response id,不向业务层制造文本事件 | 官方形状 fixture |
62
+ | `response.output_item.added` + `response.output_text.delta` | `TextDelta` 与最终文本 | [openai-responses-text.json](../../tests/fixtures/llm/openai-responses-text.json) |
63
+ | `response.function_call_arguments.delta` + function item done | 既有 `ToolCall`,工具仍由助手运行时执行 | runtime 工具调用精确测试 |
64
+ | `response.completed` / `response.incomplete` | finish reason、usage、缓存与推理 token | runtime 精确测试 |
65
+ | `response.failed` / SSE `error` | 结构化 provider error,不返回半成功结果 | runtime 负例测试 |
66
+ | AbortSignal / 断流 | 取消请求并释放读取器,统一为 `task_cancelled` | runtime 取消测试 |
67
+
68
+ Responses 请求统一下发 `store: false`:助手自己的会话存储仍是唯一事实来源,同时兼容 DeepSeek 不支持 `store` / `previous_response_id` 的无状态实现。
69
+
70
+ ### 2.4 一个容易踩的坑:两条请求路径能表达的输入模态不同
71
+
72
+ - 画布文本处理、提示词优化走**原生流式路径**([streaming.ts](../../src/llm/streaming.ts)),`image_url` / `video_url` / `input_audio` 三种内容块都能发。
73
+ - 智能助手走 **AI SDK 模型步骤**([provider.ts](../../src/llm/sdk/provider.ts)),当前转换器只能表达 **image 与 audio**,视频会被 `assertInputModalities` 拦下。
74
+
75
+ 所以模型能力目录里的 `input` 记的是"**本项目当前请求路径下真实可用**"的模态,不是模型宣传的模态。DeepSeek 视觉模型已经因 Responses 接通而开放图片;智能助手的视频输入仍会在协议边界明确阻断,不会降级成文本地址造成静默失效。
76
+
77
+ ## 三、本项目的协议接入优先级(产品决策,不是能力强弱排序)
78
+
79
+ 新写协议适配器、给某个供应商挑协议时,按下面顺序取舍——这是本项目的既定优先级,**不因某家供应商官方推荐哪个协议就单独提高它的顺序**(MiniMax 官方推荐 Anthropic,但本项目仍按下表顺序执行,见 [MiniMax.md 第 6 节](供应商/MiniMax.md)):
80
+
81
+ 1. **Responses API 优先**。结构化输出、上下文管理、内置工具(联网搜索等)通常最先在这条协议上落地,是新协议适配器要覆盖的首要目标。
82
+ 2. **Chat Completions 兜底**。Responses 未确认的供应商/模型继续用它,不阻塞可用性。
83
+ 3. **Anthropic Messages API 暂不实现、不显示**。官方支持面只作为未来资料保留,不向用户暴露一个不能工作的选项。
84
+
85
+ 每个供应商文件的「摘要」表里都有一行"接入优先级",按这三条给出该供应商的具体落点(例如 Kimi/百炼没有 Anthropic,MiMo 没有 Responses API,落点就相应收窄)。
86
+
87
+ ## 四、协议矩阵(官方支持面,供路线图参考)
88
+
89
+ | 供应商 | Chat Completions | Responses API | Anthropic Messages API | 联网搜索可用协议 |
90
+ |---|---|---|---|---|
91
+ | [火山引擎](供应商/火山引擎.md) | ✅ | ✅ | ❌ 官方未提供 | **仅 Responses API**(Chat API 完全不支持内置工具) |
92
+ | [Kimi](供应商/Kimi.md) | ✅ | ❌ 官方未提供 | ❌ 官方未提供 | Chat Completions(`$web_search`,官方标注"近期不建议用于生产") |
93
+ | [智谱 GLM](供应商/智谱GLM.md) | ✅(`glm-5.3-flash` 目前仅确认此协议) | ✅(仅 `glm-5.3`) | ✅(仅 `glm-5.3`) | Chat Completions 工具 / 独立 Web Search API 均可,GLM-Coding-Plan 订阅账号暂时只能走 Chat Completions |
94
+ | [DeepSeek](供应商/DeepSeek.md) | ✅ | ✅ | ✅ | **仅 Responses API**(Chat Completions 不支持 `web_search`) |
95
+ | [小米 MiMo](供应商/小米MiMo.md) | ✅ | ❌ 官方未提供 | ✅ | **仅 Chat Completions**(官方原文:"其他 API 协议暂不支持"),且需先在控制台激活插件 |
96
+ | [百炼 Qwen](供应商/百炼Qwen.md) | ✅ | ✅ | ❌ 官方未提供 | 两条协议都支持,但 Responses 路径能力更全(额外有 `web_extractor`/`code_interpreter`) |
97
+ | [MiniMax](供应商/MiniMax.md) | ✅ | ✅ | ✅(**官方推荐首选**) | Anthropic Messages + Responses API 均支持,纯 Chat Completions 不支持 |
98
+
99
+ **两条对制定路线图有直接影响的结论**:
100
+
101
+ 1. **7 家里有 6 家原生支持 Responses API 或与之等价的能力**(火山引擎、GLM-5.3、DeepSeek、百炼、MiniMax 直接支持 Responses API;Kimi、小米 MiMo 没有 Responses API,只能走 Chat Completions)——这与第三节"Responses API 优先"的既定优先级吻合,先做 Responses API 适配器能覆盖到的供应商数量最多,也是联网搜索等内置工具最主要的解锁路径。
102
+ 2. **联网搜索能不能用,很大程度上取决于选了哪个协议**,不是"这家供应商支不支持"这么简单:火山引擎和 DeepSeek 的联网搜索**必须**走 Responses API,MiMo 的联网搜索**必须**走 Chat Completions,MiniMax 的联网搜索 Anthropic/Responses 都行但纯 Chat Completions 不行。做 Responses API 适配器时可以顺带核对一下能不能同时把对应供应商的联网搜索也接上,性价比更高。
103
+ 3. **4 家(DeepSeek、GLM、MiMo、MiniMax)原生支持 Anthropic Messages API,MiniMax 官方甚至推荐它作为首选**——这是资料记录,供未来"顺手就能接"时参考,**不代表应该优先做**:按第三节的既定优先级,Anthropic 排在 Responses API 和 Chat Completions 之后,不单独立项。
104
+
105
+ ## 五、供应商速查表
106
+
107
+ | 供应商 | Base URL(OpenAI 兼容) | 旗舰模型 | 上下文 | 价格量级(输入/输出,元/百万 tokens) |
108
+ |---|---|---|---|---|
109
+ | 火山引擎 | `https://ark.cn-beijing.volces.com/api/v3` | `doubao-seed-evolving` | 1024K | 6 / 30 |
110
+ | Kimi | `https://api.moonshot.cn/v1` | `kimi-k3` | 1,048,576 | 20 / 100 |
111
+ | 智谱 GLM | 国内 `https://open.bigmodel.cn/api/paas/v4`;国际 `https://api.z.ai/api/paas/v4` | `glm-5.3` / `glm-5.3-flash`(原生多模态) | 1M | 国内 GLM-5.3:8 / 28;Flash:CNY 0.8 / 2.8、USD 0.15 / 0.50 |
112
+ | DeepSeek | `https://api.deepseek.com` | `deepseek-v4-pro` | 1M | 4.5 / 13.5(闲时) |
113
+ | 小米 MiMo | `https://api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | 1M | 3 / 6 |
114
+ | 百炼 Qwen | `https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1` | `qwen3.8-max` | ~1M | 12 / 36 |
115
+ | MiniMax | `https://api.minimaxi.com/v1` | `MiniMax-M3` | 1,000,000 | 2.10 / 8.40(≤512K,促销价) |
116
+
117
+ 价格列只取旗舰模型的标准档,完整价格表(含缓存命中价、批量价、区域差异)见各供应商文件;价格会变,不要把这张表当长期不变的计费合同。
118
+
119
+ ## 六、思考参数速查(各家字段名一致但取值集合不同,不要共用常量)
120
+
121
+ | 供应商 | 字段 | 取值 | 默认 | 能否关闭 |
122
+ |---|---|---|---|---|
123
+ | 火山引擎 | `reasoning_effort` | `none`/`minimal`/`low`/`medium`/`high`/`xhigh`/`max`(7 档) | `high` | 可以(`thinking` 开关) |
124
+ | Kimi | `reasoning_effort` | `low`/`high`/`max` | `max` | **不可以**,K3 始终思考 |
125
+ | 智谱 GLM | `reasoning_effort` + `thinking` | `low`/`high`/`max`(`glm-5.3`、`glm-5.3-flash`) | `max` | GLM-5.3 / Flash 不可以;GLM-5V-Turbo 可以 |
126
+ | DeepSeek | `reasoning_effort` + `thinking.type` | 字符串透传,无固定枚举 | — | 可以 |
127
+ | 小米 MiMo | 无强度分级,仅 `reasoning_content` 回传约定 | — | — | 未见明确开关文档 |
128
+ | 百炼 Qwen | `enable_thinking`(布尔) | `true`/`false` | 视模型而定 | 可以 |
129
+ | MiniMax | 仅 Anthropic 协议下确认为原生 `thinking` 内容块;Chat/Responses 路径的思考强度字段未在公开文档中找到,接入 Responses API 时需要单独实测确认 | — | — | 视协议而定 |
130
+
131
+ ## 七、维护方式
132
+
133
+ - **动手前**:先读 [文档采集手册.md](文档采集手册.md)——LLM 供应商的文档比生成模型更碎,同一模型的思考参数、联网搜索、工具调用往往各自独立成页,只看模型主页会漏掉大半内容。
134
+ - **新增供应商**:在本文件协议矩阵、供应商速查表、思考参数速查三张表里各加一行 → 在 `供应商/` 下新建 `<供应商名>.md`,按现有文件的结构写(摘要 → Base URL → 协议现状 → 模型清单 → 思考模式 → 联网搜索/工具 → 适配要点 → 原始链接索引)→ 再把它落到代码的三处:[modelCatalogEntries.ts](../../src/llm/modelCatalogEntries.ts) 加模型条目、[providerPresets.ts](../../src/llm/providerPresets.ts) 加供应商预设、思考参数写法与通用 `reasoning_effort` 不同时在 [providerReasoningRequest.ts](../../src/llm/providerReasoningRequest.ts) 加一条映射。
135
+ - **文档与代码的对齐由测试守着**:`modelCatalog.test.ts` 断言每条目录条目的 `docs` 路径真实存在,`providerPresets.test.ts` 断言每个预设的推荐模型都能在目录里查到、且有专门思考写法的供应商 id 与映射表一致。改了文件名或 providerId 而没同步,测试会红。
136
+ - **只登记文档明确写出的能力**:目录里的每一项都要能在对应供应商文档里找到出处,文档没写的保持保守取值(false / null),交给用户手工勾或走「验证此模型」动态探测,不靠模型名猜。
137
+ - **更新已有供应商**:直接改对应文件,同步更新该文件与本文件头部的"最后更新"。
138
+ - **信息来源要求**:每条参数/价格都要能追溯到文件末尾"原始链接索引"里的某个链接;需要登录才能看到的页面必须标注,且优先尝试公开镜像(如 `help.aliyun.com` 之于百炼控制台)而不是直接要求登录。
139
+ - **代码侧一旦补上新协议适配器**:回来更新本文件第二节"代码现状",把对应协议从"资料"状态标记为"已实现",否则这份文档会长期落后于代码。
@@ -1,91 +1,103 @@
1
- # DeepSeek
2
-
3
- > 核对时间:2026-08-26。信息来源见文末「原始链接索引」,均无需登录。
4
-
5
- ## 1. 摘要
6
-
7
- | 项目 | 取值 |
8
- |---|---|
9
- | `providerId`(项目内约定) | `deepseek` |
10
- | 对应项目 `adapter` | `deepseek`(已实现;思考参数映射见 `packages/ai-sdk/src/llm/providerReasoningRequest.ts`,认证与请求体怪癖见 `packages/ai-sdk/src/llm/providerProtocol.ts`) |
11
- | 接入优先级(本项目约定,见 [README 第三节](../README.md)) | **Responses API 已实现并作为直连默认** Chat Completions 兜底;Anthropic 暂不实现、不显示 |
12
- | 鉴权 | `Authorization: Bearer <DEEPSEEK_API_KEY>` |
13
- | 官方协议 | OpenAI Chat CompletionsOpenAI Responses API、**Anthropic Messages API** 三选一,同一 Base URL 域名 |
14
- | 项目当前实际协议 | 直连预制模型自动使用 Responses;Chat Completions 保留为兼容路径 |
15
-
16
- ## 2. Base URL
17
-
18
- | 协议 | Base URL |
19
- |---|---|
20
- | OpenAI 格式(Chat Completions / Responses) | `https://api.deepseek.com` |
21
- | Anthropic 格式(Messages API) | `https://api.deepseek.com/anthropic` |
22
-
23
- 三种协议共用同一域名,只是路径不同:`/chat/completions`、`/responses`、`/anthropic/v1/messages`。
24
-
25
- ## 3. 协议现状
26
-
27
- | 协议 | 官方支持 | 备注 |
28
- |---|---|---|
29
- | Chat Completions | ✅ | SDK 兼容路径 |
30
- | Responses API | | SDK 直连默认;`client.responses.create(model=..., input=...)`,见第 6 节 |
31
- | Anthropic Messages API | ✅ | 把 Claude 模型名映射到 DeepSeek 模型(`claude-opus-*` → `deepseek-v4-pro`;`claude-haiku-*`/`claude-sonnet-*` → `deepseek-v4-flash`),可以不改代码直接把现有 Anthropic 客户端指过来 |
32
-
33
- 三种协议**同一批新模型会同步支持**,官方没有"新模型先上 Chat 后补 Responses"的滞后期。
34
-
35
- ## 4. 模型清单
36
-
37
- 官方用稳定别名指向最新快照,调用时直接用别名即可,无需关心具体快照号:
38
-
39
- | 模型别名 | 当前快照 | 简介 | 输入 → 输出 | 上下文 / 最大输出 | 并发上限 |
40
- |---|---|---|---|---|---|
41
- | `deepseek-v4-flash` | DeepSeek-V4-Flash-0731 | 高性价比、低延迟 | 文本 文本 | 1M / 384K | 2500 |
42
- | `deepseek-v4-pro` | DeepSeek-V4-Pro-0813 | 高能力,复杂推理与长任务 | 文本 文本 | 1M / 384K | 500 |
43
- | `deepseek-v4-flash-vision-exp` | | **实验性视觉模型**,在 Flash 基础上加图片输入 | 文本、图片文本 | 1M / 384K | 2500 |
44
-
45
- `deepseek-v4-flash-vision-exp` 不在此前整理的清单里,是新发现——它是唯一支持图片输入的 DeepSeek 模型,且**只能通过 Responses API 调用**(`input_image` 内容块),Chat Completions 路径下这个模型不接受图片。
46
-
47
- ### 价格(元/百万 tokens,闲时/高峰各半,高峰为北京时间 09:00–12:00、14:00–18:00 工作日)
48
-
49
- | 模型 | 输入(缓存命中) | 输入(缓存未命中) | 输出 |
50
- |---|---|---|---|
51
- | `deepseek-v4-flash` | 闲时 0.05 / 高峰 0.10 | 闲时 1.5 / 高峰 3 | 闲时 4.5 / 高峰 9 |
52
- | `deepseek-v4-pro` | 闲时 0.15 / 高峰 0.30 | 闲时 4.5 / 高峰 9 | 闲时 13.5 / 高峰 27 |
53
- | `deepseek-v4-flash-vision-exp` | flash | flash | flash |
54
-
55
- ## 5. 思考模式
56
-
57
- - 请求体同时传 `thinking: {"type": "enabled"}` 和顶层 `reasoning_effort`;官方两个字段都要求(示例见 curl)。`reasoning_effort` 取值与思考强度的对应关系官方未列举离散档位,直接透传字符串即可。
58
- - 思考模式下 `temperature`、`top_p` 无效——传了也不报错,但不生效,UI 应避免让用户误以为调节生效。
59
-
60
- ## 6. Responses API 适配要点(比 Chat Completions 复杂得多,接入前必读)
61
-
62
- `client.responses.create(model=..., input=..., instructions=...)`:
63
-
64
- - `input` 可以是字符串或 `input_text`/`input_image` 内容块数组;`instructions` 相当于插入一条首位 system 消息。
65
- - **不支持** `previous_response_id`、`conversation`、`store`(响应恒为 `store: false`)——**是无状态 API**,不要按 OpenAI 官方 Responses API 的"自动多轮托管"心智去设计,每次都要自己拼完整历史。
66
- - `tools` 只支持 `function` 与 `web_search`/`web_search_2025_08_26`,其余内置工具类型(`file_search`/`code_interpreter`/`computer_use`/`mcp`)会被**静默忽略**,不报错。
67
- - `web_search` 由服务端执行,`search_context_size`/`user_location` 参数会被忽略,服务端自动续搜最多 10 轮。**Chat Completions 完全不支持这个工具**——DeepSeek 官方 `guides/tool_calls` 文档里没有出现过 `web_search`,要联网搜索必须走 Responses API。
68
- - 未知/不支持的顶层参数一律静默忽略而不报错,意味着"参数传了但没生效"这类 bug 不会在 DeepSeek 侧报错,需要自己校验响应内容。
69
-
70
- ## 7. Anthropic Messages API 适配要点(最低优先级,仅供顺手接入时参考)
71
-
72
- - 沿用 Anthropic 官方字段名(`system`、`messages[].content[].type=text/image/tool_use/tool_result` 等),`thinking` 支持但 `budget_tokens` 被忽略。
73
- - `output_config.effort` 是 DeepSeek 侧唯一生效的思考强度字段,其余 Anthropic 原生参数(`top_k`、`cache_control`、`disable_parallel_tool_use` 等)大多被忽略。
74
- - 项目设置页不显示 Anthropic:它没有运行时实现,存量伪配置会归一化成 OpenAI Chat。官方能力只留作未来资料,不让用户面对无效协议选项。
75
-
76
- ## 8. 视觉输入限制(`deepseek-v4-flash-vision-exp`)
77
-
78
- - 单张内联图片 ≤ 32 MiB,`file_id` 图片 ≤ 64 MiB;不含 `file_id` 时总大小 ≤ 64 MiB,含则 ≤ 200 MiB;单请求最多 600 张图。
79
- - 图片只能出现在 `user`/`developer` 消息里,出现在 `system`/`assistant` 消息会直接返回 400
80
- - 非视觉模型收到 `input_image` 不会报错,而是被替换成占位文本——容易造成"没报错但模型看不到图"的静默失效。
81
-
82
- ## 原始链接索引(均无需登录)
83
-
84
- - [Your First API Call](https://api-docs.deepseek.com/quick_start/pricing)(含 base_url/模型 ID/思考请求示例)
85
- - [Models & Pricing](https://api-docs.deepseek.com/quick_start/pricing)
86
- - [Using the Responses API](https://api-docs.deepseek.com/guides/responses_api)
87
- - [Using the Anthropic API](https://api-docs.deepseek.com/guides/anthropic_api)
88
- - [Reasoning Model(思考模式)](https://api-docs.deepseek.com/guides/reasoning_model)
89
- - [Function Calling](https://api-docs.deepseek.com/guides/tool_calls)
90
- - [Vision(视觉输入限制)](https://api-docs.deepseek.com/guides/vision)
91
- - [API sitemap](https://api-docs.deepseek.com/sitemap.xml)(用于核对页面是否存在,避免中文 `/zh-cn/` 前缀 404 后静默 fallback 到错误页面)
1
+ # DeepSeek
2
+
3
+ > 核对时间:2026-09-11。以中文官方文档为准,英文页面尚有更新滞后。
4
+
5
+ ## 2026-09-11 更新(覆盖下方历史资料中的旧模型和能力说明)
6
+
7
+ - 官方默认与预设唯一推荐模型改为 `deepseek-flash`(DeepSeek V4.1 Flash),原生文本、图片输入,1M 上下文、384K 最大输出。Chat Completions 和 Responses 均支持图片;项目继续默认 Responses。
8
+ - 旧 `deepseek-v4-flash`、`deepseek-v4-flash-vision-exp` 已由官方转发到新版。`deepseek-v4-pro` 将于北京时间 2026-09-14 12:00 转由新版承接。项目不再推荐这些旧名字,也不把聚合供应商的旧 ID 当作新版别名。
9
+ - 新版价格(人民币/百万 token,闲时 / 工作日高峰):缓存命中输入 0.02 / 0.04,未命中输入 1 / 2,输出 4 / 8。高峰为北京时间工作日 09:00–12:00、14:00–18:00。
10
+ - 思考默认开启,默认 high;正式档位 low/high/max,兼容 minimal→low、medium/xhigh→high、ultra→max。Responses 用 reasoning.effort,none 关闭。思考时 temperature 无效,top_p 生效但下限 0.95;非思考 top_p 固定 1。
11
+ - Responses 为无状态 API,必须回传完整历史;text.format 支持 json_schema。当前仅支持 function 工具,内置工具会被忽略,不能再据旧资料宣称 web_search 可用。SDK 本次只更新目录与默认选型,不新增内置工具或协议分支。
12
+ - 图片支持 JPEG/PNG/GIF/WebP;请求体最多 48 MiB,单图内联/URL 32 MiB,file_id 64 MiB,最多 600 张;总大小不含 file_id 64 MiB、包含时 200 MiB。Chat 图片仅 user;Responses 支持 user/developer 和工具结果,system/assistant 图片返回 400。SDK 沿用已实现的 URL/内联图片通道,不新增 Files 上传能力。
13
+ - 官方来源:[模型与价格](https://api-docs.deepseek.com/zh-cn/quick_start/pricing/)[图片理解](https://api-docs.deepseek.com/zh-cn/guides/vision/)、[思考模式](https://api-docs.deepseek.com/zh-cn/guides/thinking_mode/)、[Responses API](https://api-docs.deepseek.com/zh-cn/api/create-response/)。
14
+
15
+ 以下为 2026-08-26 历史采集记录;冲突字段以本节为准。
16
+
17
+ ## 1. 摘要
18
+
19
+ | 项目 | 取值 |
20
+ |---|---|
21
+ | `providerId`(项目内约定) | `deepseek` |
22
+ | 对应项目 `adapter` | `deepseek`(已实现;思考参数映射见 `packages/ai-sdk/src/llm/providerReasoningRequest.ts`,认证与请求体怪癖见 `packages/ai-sdk/src/llm/providerProtocol.ts`) |
23
+ | 接入优先级(本项目约定,见 [README 第三节](../README.md)) | **Responses API 已实现并作为直连默认** → Chat Completions 兜底;Anthropic 暂不实现、不显示 |
24
+ | 鉴权 | `Authorization: Bearer <DEEPSEEK_API_KEY>` |
25
+ | 官方协议 | OpenAI Chat Completions、OpenAI Responses API、**Anthropic Messages API** 三选一,同一 Base URL 域名 |
26
+ | 项目当前实际协议 | 直连预制模型自动使用 Responses;Chat Completions 保留为兼容路径 |
27
+
28
+ ## 2. Base URL
29
+
30
+ | 协议 | Base URL |
31
+ |---|---|
32
+ | OpenAI 格式(Chat Completions / Responses) | `https://api.deepseek.com` |
33
+ | Anthropic 格式(Messages API) | `https://api.deepseek.com/anthropic` |
34
+
35
+ 三种协议共用同一域名,只是路径不同:`/chat/completions`、`/responses`、`/anthropic/v1/messages`。
36
+
37
+ ## 3. 协议现状
38
+
39
+ | 协议 | 官方支持 | 备注 |
40
+ |---|---|---|
41
+ | Chat Completions | | SDK 兼容路径 |
42
+ | Responses API | | SDK 直连默认;`client.responses.create(model=..., input=...)`,见第 6 |
43
+ | Anthropic Messages API | | Claude 模型名映射到 DeepSeek 模型(`claude-opus-*``deepseek-v4-pro`;`claude-haiku-*`/`claude-sonnet-*` `deepseek-v4-flash`),可以不改代码直接把现有 Anthropic 客户端指过来 |
44
+
45
+ 三种协议**同一批新模型会同步支持**,官方没有"新模型先上 Chat 后补 Responses"的滞后期。
46
+
47
+ ## 4. 模型清单
48
+
49
+ 官方用稳定别名指向最新快照,调用时直接用别名即可,无需关心具体快照号:
50
+
51
+ | 模型别名 | 当前快照 | 简介 | 输入 输出 | 上下文 / 最大输出 | 并发上限 |
52
+ |---|---|---|---|---|---|
53
+ | `deepseek-v4-flash` | DeepSeek-V4-Flash-0731 | 高性价比、低延迟 | 文本 文本 | 1M / 384K | 2500 |
54
+ | `deepseek-v4-pro` | DeepSeek-V4-Pro-0813 | 高能力,复杂推理与长任务 | 文本 → 文本 | 1M / 384K | 500 |
55
+ | `deepseek-v4-flash-vision-exp` | — | **实验性视觉模型**,在 Flash 基础上加图片输入 | 文本、图片 → 文本 | 1M / 384K | 2500 |
56
+
57
+ `deepseek-v4-flash-vision-exp` 不在此前整理的清单里,是新发现——它是唯一支持图片输入的 DeepSeek 模型,且**只能通过 Responses API 调用**(`input_image` 内容块),Chat Completions 路径下这个模型不接受图片。
58
+
59
+ ### 价格(元/百万 tokens,闲时/高峰各半,高峰为北京时间 09:00–12:00、14:00–18:00 工作日)
60
+
61
+ | 模型 | 输入(缓存命中) | 输入(缓存未命中) | 输出 |
62
+ |---|---|---|---|
63
+ | `deepseek-v4-flash` | 闲时 0.05 / 高峰 0.10 | 闲时 1.5 / 高峰 3 | 闲时 4.5 / 高峰 9 |
64
+ | `deepseek-v4-pro` | 闲时 0.15 / 高峰 0.30 | 闲时 4.5 / 高峰 9 | 闲时 13.5 / 高峰 27 |
65
+ | `deepseek-v4-flash-vision-exp` | flash | flash | flash |
66
+
67
+ ## 5. 思考模式
68
+
69
+ - 请求体同时传 `thinking: {"type": "enabled"}` 和顶层 `reasoning_effort`;官方两个字段都要求(示例见 curl)。`reasoning_effort` 取值与思考强度的对应关系官方未列举离散档位,直接透传字符串即可。
70
+ - 思考模式下 `temperature`、`top_p` 无效——传了也不报错,但不生效,UI 应避免让用户误以为调节生效。
71
+
72
+ ## 6. Responses API 适配要点(比 Chat Completions 复杂得多,接入前必读)
73
+
74
+ `client.responses.create(model=..., input=..., instructions=...)`:
75
+
76
+ - `input` 可以是字符串或 `input_text`/`input_image` 内容块数组;`instructions` 相当于插入一条首位 system 消息。
77
+ - **不支持** `previous_response_id`、`conversation`、`store`(响应恒为 `store: false`)——**是无状态 API**,不要按 OpenAI 官方 Responses API 的"自动多轮托管"心智去设计,每次都要自己拼完整历史。
78
+ - `tools` 只支持 `function` `web_search`/`web_search_2025_08_26`,其余内置工具类型(`file_search`/`code_interpreter`/`computer_use`/`mcp`)会被**静默忽略**,不报错。
79
+ - `web_search` 由服务端执行,`search_context_size`/`user_location` 参数会被忽略,服务端自动续搜最多 10 轮。**Chat Completions 完全不支持这个工具**——DeepSeek 官方 `guides/tool_calls` 文档里没有出现过 `web_search`,要联网搜索必须走 Responses API
80
+ - 未知/不支持的顶层参数一律静默忽略而不报错,意味着"参数传了但没生效"这类 bug 不会在 DeepSeek 侧报错,需要自己校验响应内容。
81
+
82
+ ## 7. Anthropic Messages API 适配要点(最低优先级,仅供顺手接入时参考)
83
+
84
+ - 沿用 Anthropic 官方字段名(`system`、`messages[].content[].type=text/image/tool_use/tool_result` 等),`thinking` 支持但 `budget_tokens` 被忽略。
85
+ - `output_config.effort` DeepSeek 侧唯一生效的思考强度字段,其余 Anthropic 原生参数(`top_k`、`cache_control`、`disable_parallel_tool_use` 等)大多被忽略。
86
+ - 项目设置页不显示 Anthropic:它没有运行时实现,存量伪配置会归一化成 OpenAI Chat。官方能力只留作未来资料,不让用户面对无效协议选项。
87
+
88
+ ## 8. 视觉输入限制(`deepseek-v4-flash-vision-exp`)
89
+
90
+ - 单张内联图片 ≤ 32 MiB,`file_id` 图片 ≤ 64 MiB;不含 `file_id` 时总大小 ≤ 64 MiB,含则 ≤ 200 MiB;单请求最多 600 张图。
91
+ - 图片只能出现在 `user`/`developer` 消息里,出现在 `system`/`assistant` 消息会直接返回 400。
92
+ - 非视觉模型收到 `input_image` 不会报错,而是被替换成占位文本——容易造成"没报错但模型看不到图"的静默失效。
93
+
94
+ ## 原始链接索引(均无需登录)
95
+
96
+ - [Your First API Call](https://api-docs.deepseek.com/quick_start/pricing)(含 base_url/模型 ID/思考请求示例)
97
+ - [Models & Pricing](https://api-docs.deepseek.com/quick_start/pricing)
98
+ - [Using the Responses API](https://api-docs.deepseek.com/guides/responses_api)
99
+ - [Using the Anthropic API](https://api-docs.deepseek.com/guides/anthropic_api)
100
+ - [Reasoning Model(思考模式)](https://api-docs.deepseek.com/guides/reasoning_model)
101
+ - [Function Calling](https://api-docs.deepseek.com/guides/tool_calls)
102
+ - [Vision(视觉输入限制)](https://api-docs.deepseek.com/guides/vision)
103
+ - [API sitemap](https://api-docs.deepseek.com/sitemap.xml)(用于核对页面是否存在,避免中文 `/zh-cn/` 前缀 404 后静默 fallback 到错误页面)