@henjicc/ai-sdk 0.8.0 → 0.10.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.
- package/CHANGELOG.md +275 -211
- package/README.md +580 -577
- package/dist/capabilities/speech-recognition/bailian/module.js +40 -26
- package/dist/capabilities/speech-recognition/bailian/parse.js +9 -2
- package/dist/capabilities/speech-recognition/bailian/presets.d.ts +9 -1
- package/dist/capabilities/speech-recognition/bailian/presets.js +7 -2
- package/dist/capabilities/speech-recognition/bailian/realtime/presets.d.ts +2 -1
- package/dist/capabilities/speech-recognition/bailian/realtime/presets.js +2 -0
- package/dist/capabilities/speech-recognition/bailian/types.d.ts +2 -0
- package/dist/capabilities/speech-recognition/bailian/upload.js +11 -58
- package/dist/capabilities/speech-recognition/index.d.ts +5 -0
- package/dist/capabilities/speech-recognition/siliconflow/presets.d.ts +2 -3
- package/dist/capabilities/speech-recognition/siliconflow/presets.js +0 -2
- package/dist/capabilities/translation/bailian/types.d.ts +3 -0
- package/dist/capabilities/translation/bailian/types.js +6 -4
- package/dist/catalog/apimart/flux-3-image.model.d.ts +3 -0
- package/dist/catalog/apimart/flux-3-image.model.js +62 -0
- package/dist/catalog/apimart/flux-3-video.model.d.ts +3 -0
- package/dist/catalog/apimart/flux-3-video.model.js +120 -0
- package/dist/catalog/apimart/gemini-omni-1.2-flash.model.d.ts +3 -0
- package/dist/catalog/apimart/gemini-omni-1.2-flash.model.js +175 -0
- package/dist/catalog/apimart/gemini-omni-flash.model.js +30 -37
- package/dist/catalog/apimart/gpt-image-2.5.model.js +1 -1
- package/dist/catalog/apimart/gpt-image-2.6.model.d.ts +3 -0
- package/dist/catalog/apimart/gpt-image-2.6.model.js +103 -0
- package/dist/catalog/apimart/gpt-image-2.model.js +1 -1
- package/dist/catalog/apimart/grok-imagine-2.0.model.js +1 -1
- package/dist/catalog/apimart/grok-imagine-video-1.5.model.d.ts +3 -0
- package/dist/catalog/apimart/grok-imagine-video-1.5.model.js +85 -0
- package/dist/catalog/apimart/happyhorse-1.1.model.d.ts +3 -0
- package/dist/catalog/apimart/happyhorse-1.1.model.js +78 -0
- package/dist/catalog/apimart/kling-3.0-omni.model.js +12 -2
- package/dist/catalog/apimart/kling-3.0-turbo.model.js +5 -2
- package/dist/catalog/apimart/kling-3.0.model.js +1 -1
- package/dist/catalog/apimart/kling-4.0.model.d.ts +3 -0
- package/dist/catalog/apimart/kling-4.0.model.js +149 -0
- package/dist/catalog/apimart/midjourney-video.model.js +31 -32
- package/dist/catalog/apimart/midjourney.model.js +11 -1
- package/dist/catalog/apimart/minimax-h3-max.model.d.ts +3 -0
- package/dist/catalog/apimart/minimax-h3-max.model.js +101 -0
- package/dist/catalog/apimart/minimax-h3.model.js +8 -3
- package/dist/catalog/apimart/nano-banana-2-lite.model.js +1 -1
- package/dist/catalog/apimart/nano-banana-2.1.model.d.ts +2 -0
- package/dist/catalog/apimart/nano-banana-2.1.model.js +49 -0
- package/dist/catalog/apimart/nano-banana-2.model.js +1 -1
- package/dist/catalog/apimart/nano-banana-pro.model.js +1 -1
- package/dist/catalog/apimart/qwen-image-3.0.model.js +1 -1
- package/dist/catalog/apimart/seedance-2.0-fast.model.js +1 -1
- package/dist/catalog/apimart/seedance-2.0-mini.model.js +4 -4
- package/dist/catalog/apimart/seedance-2.0.model.js +1 -1
- package/dist/catalog/apimart/seedance-2.5.model.js +27 -5
- package/dist/catalog/apimart/seedream-5.0-flash.model.d.ts +3 -0
- package/dist/catalog/apimart/seedream-5.0-flash.model.js +52 -0
- package/dist/catalog/apimart/seedream-5.0-lite.model.js +4 -4
- package/dist/catalog/apimart/seedream-5.0-pro.model.js +1 -1
- package/dist/catalog/apimart/veo-3.1.model.d.ts +3 -0
- package/dist/catalog/apimart/veo-3.1.model.js +132 -0
- package/dist/catalog/apimart/wan-2.7-image.model.d.ts +3 -0
- package/dist/catalog/apimart/wan-2.7-image.model.js +80 -0
- package/dist/catalog/apimart/wan-3.0.model.d.ts +3 -0
- package/dist/catalog/apimart/wan-3.0.model.js +101 -0
- package/dist/catalog/apimart/z-image-turbo.model.js +1 -1
- package/dist/catalog/audio/tts-common.d.ts +2 -1
- package/dist/catalog/audio/tts-common.js +5 -1
- package/dist/catalog/bailian/cosyvoice-v3.5.model.js +1 -1
- package/dist/catalog/bailian/minimax-h3.model.d.ts +3 -0
- package/dist/catalog/bailian/minimax-h3.model.js +95 -0
- package/dist/catalog/bailian/minimax-speech-2.8.model.js +1 -1
- package/dist/catalog/bailian/qwen-audio-3.1-tts-flash.model.js +14 -3
- package/dist/catalog/bailian/qwen-audio-3.1-tts-plus.model.d.ts +2 -0
- package/dist/catalog/bailian/qwen-audio-3.1-tts-plus.model.js +44 -0
- package/dist/catalog/bailian/qwen-image-3.0.model.js +1 -1
- package/dist/catalog/bailian/wan-3.0.model.d.ts +3 -0
- package/dist/catalog/bailian/wan-3.0.model.js +104 -0
- package/dist/catalog/bailian/z-image-turbo.model.js +1 -1
- package/dist/catalog/consumer-contract.d.ts +16 -1
- package/dist/catalog/consumer-contract.js +31 -0
- package/dist/catalog/continuation.d.ts +20 -0
- package/dist/catalog/continuation.js +41 -0
- package/dist/catalog/fal/bria-creative-upscale.model.js +1 -1
- package/dist/catalog/fal/eleven-v3-tts.model.js +1 -1
- package/dist/catalog/fal/eleven-v4-tts.model.d.ts +2 -0
- package/dist/catalog/fal/eleven-v4-tts.model.js +38 -0
- package/dist/catalog/fal/flux-3-video.model.d.ts +2 -0
- package/dist/catalog/fal/flux-3-video.model.js +187 -0
- package/dist/catalog/fal/flux-3.model.d.ts +2 -0
- package/dist/catalog/fal/flux-3.model.js +69 -0
- package/dist/catalog/fal/gemini-omni-1.2-flash.model.d.ts +2 -0
- package/dist/catalog/fal/gemini-omni-1.2-flash.model.js +129 -0
- package/dist/catalog/fal/gemini-omni-flash.model.js +1 -1
- package/dist/catalog/fal/gpt-image-2.5.model.js +1 -1
- package/dist/catalog/fal/gpt-image-2.6.model.d.ts +2 -0
- package/dist/catalog/fal/gpt-image-2.6.model.js +97 -0
- package/dist/catalog/fal/gpt-image-2.model.js +1 -1
- package/dist/catalog/fal/grok-imagine-2.0.model.js +1 -1
- package/dist/catalog/fal/grok-imagine-video-1.5.model.d.ts +2 -0
- package/dist/catalog/fal/grok-imagine-video-1.5.model.js +121 -0
- package/dist/catalog/fal/hailuo-02.model.js +8 -4
- package/dist/catalog/fal/hailuo-2.3.model.js +1 -1
- package/dist/catalog/fal/ic-light-v2.model.js +1 -1
- package/dist/catalog/fal/ideogram-upscale.model.js +1 -1
- package/dist/catalog/fal/kling-3.0-omni.model.js +1 -1
- package/dist/catalog/fal/kling-3.0-turbo.model.js +5 -2
- package/dist/catalog/fal/kling-3.0.model.js +4 -1
- package/dist/catalog/fal/kling-4.0-flash.model.d.ts +2 -0
- package/dist/catalog/fal/kling-4.0-flash.model.js +132 -0
- package/dist/catalog/fal/kling-4.0.model.d.ts +2 -0
- package/dist/catalog/fal/kling-4.0.model.js +169 -0
- package/dist/catalog/fal/kling-image-o1.model.js +1 -1
- package/dist/catalog/fal/kling-video-o1.model.js +18 -7
- package/dist/catalog/fal/kling-video-v2.6-pro.model.js +3 -2
- package/dist/catalog/fal/ltx-2.3.model.d.ts +2 -0
- package/dist/catalog/fal/ltx-2.3.model.js +223 -0
- package/dist/catalog/fal/ltx-2.model.js +2 -1
- package/dist/catalog/fal/minimax-h3-max.model.d.ts +2 -0
- package/dist/catalog/fal/minimax-h3-max.model.js +132 -0
- package/dist/catalog/fal/minimax-h3.model.js +3 -4
- package/dist/catalog/fal/minimax-speech-2.8.model.js +1 -1
- package/dist/catalog/fal/nano-banana-2.1.model.d.ts +2 -0
- package/dist/catalog/fal/nano-banana-2.1.model.js +68 -0
- package/dist/catalog/fal/nano-banana-2.model.js +1 -1
- package/dist/catalog/fal/nano-banana-pro.model.js +1 -1
- package/dist/catalog/fal/nano-banana.model.js +1 -1
- package/dist/catalog/fal/pixverse-v5.5.model.js +9 -4
- package/dist/catalog/fal/qwen-image-3.0.model.js +2 -2
- package/dist/catalog/fal/qwen3-tts-1.7b.model.js +4 -3
- package/dist/catalog/fal/seedance-2.0-fast.model.js +1 -1
- package/dist/catalog/fal/seedance-2.0-mini.model.js +1 -1
- package/dist/catalog/fal/seedance-2.0.model.js +1 -1
- package/dist/catalog/fal/seedance-2.5.model.js +5 -2
- package/dist/catalog/fal/seedance.model.js +3 -2
- package/dist/catalog/fal/seedream-5.0-lite.model.js +1 -1
- package/dist/catalog/fal/seedream-5.0-pro.model.js +1 -1
- package/dist/catalog/fal/seedream-v4.5.model.js +1 -1
- package/dist/catalog/fal/seedream-v4.model.js +1 -1
- package/dist/catalog/fal/seedvr2-image-upscale.model.js +1 -1
- package/dist/catalog/fal/topaz-image-upscale.model.js +1 -1
- package/dist/catalog/fal/topaz-transparent-upscale.model.js +1 -1
- package/dist/catalog/fal/utils/klingV4.d.ts +17 -0
- package/dist/catalog/fal/utils/klingV4.js +33 -0
- package/dist/catalog/fal/veo-3.1.model.js +5 -2
- package/dist/catalog/fal/vidu-q2.model.js +20 -8
- package/dist/catalog/fal/wan-2.5-preview.model.js +4 -1
- package/dist/catalog/fal/wan-3.0.model.d.ts +2 -0
- package/dist/catalog/fal/wan-3.0.model.js +135 -0
- package/dist/catalog/fal/z-image-turbo.model.js +10 -9
- package/dist/catalog/grsai/gpt-image-2.5.model.js +13 -31
- package/dist/catalog/grsai/gpt-image-2.6.model.d.ts +2 -0
- package/dist/catalog/grsai/gpt-image-2.6.model.js +37 -0
- package/dist/catalog/grsai/gpt-image-2.model.js +5 -2
- package/dist/catalog/grsai/nano-banana-2-lite.model.js +1 -1
- package/dist/catalog/grsai/nano-banana-2.1.model.d.ts +2 -0
- package/dist/catalog/grsai/nano-banana-2.1.model.js +29 -0
- package/dist/catalog/grsai/nano-banana-2.model.js +1 -1
- package/dist/catalog/grsai/nano-banana-pro.model.js +1 -1
- package/dist/catalog/grsai/wan-3.0.model.d.ts +2 -0
- package/dist/catalog/grsai/wan-3.0.model.js +78 -0
- package/dist/catalog/index.d.ts +1 -0
- package/dist/catalog/index.js +205 -124
- package/dist/catalog/kie/eleven-v3-dialogue.model.js +1 -1
- package/dist/catalog/kie/flux-3-klein.model.d.ts +2 -0
- package/dist/catalog/kie/flux-3-klein.model.js +58 -0
- package/dist/catalog/kie/gemini-3.1-flash-tts.model.js +7 -4
- package/dist/catalog/kie/gemini-3.8-flash-lite-tts.model.d.ts +2 -0
- package/dist/catalog/kie/gemini-3.8-flash-lite-tts.model.js +11 -0
- package/dist/catalog/kie/gemini-3.8-flash-tts.model.d.ts +2 -0
- package/dist/catalog/kie/gemini-3.8-flash-tts.model.js +11 -0
- package/dist/catalog/kie/gemini-omni-video.model.js +8 -30
- package/dist/catalog/kie/gemini38Tts.d.ts +3 -0
- package/dist/catalog/kie/gemini38Tts.js +40 -0
- package/dist/catalog/kie/gpt-image-2.5.model.js +1 -1
- package/dist/catalog/kie/gpt-image-2.6.model.d.ts +2 -0
- package/dist/catalog/kie/gpt-image-2.6.model.js +87 -0
- package/dist/catalog/kie/gpt-image-2.model.js +8 -12
- package/dist/catalog/kie/grok-imagine-2.0.model.js +1 -1
- package/dist/catalog/kie/grok-imagine-video-1.5.model.d.ts +2 -0
- package/dist/catalog/kie/grok-imagine-video-1.5.model.js +52 -0
- package/dist/catalog/kie/grok-imagine-video.model.js +7 -3
- package/dist/catalog/kie/grok-imagine.model.js +4 -2
- package/dist/catalog/kie/hailuo-02.model.js +6 -4
- package/dist/catalog/kie/hailuo-2-3.model.js +1 -1
- package/dist/catalog/kie/happyhorse-1.1.model.js +5 -2
- package/dist/catalog/kie/kling-3.0-omni.model.js +51 -23
- package/dist/catalog/kie/kling-3.0-turbo.model.js +1 -1
- package/dist/catalog/kie/kling-3.0.model.js +1 -8
- package/dist/catalog/kie/kling-4.0-flash.model.d.ts +2 -0
- package/dist/catalog/kie/kling-4.0-flash.model.js +16 -0
- package/dist/catalog/kie/kling-4.0.model.d.ts +2 -0
- package/dist/catalog/kie/kling-4.0.model.js +17 -0
- package/dist/catalog/kie/kling-v2-6.model.js +1 -1
- package/dist/catalog/kie/kling40.d.ts +21 -0
- package/dist/catalog/kie/kling40.js +129 -0
- package/dist/catalog/kie/minimax-h3.model.js +16 -21
- package/dist/catalog/kie/nano-banana-2-lite.model.js +1 -1
- package/dist/catalog/kie/nano-banana-2.1.model.d.ts +2 -0
- package/dist/catalog/kie/nano-banana-2.1.model.js +34 -0
- package/dist/catalog/kie/nano-banana-2.model.js +2 -2
- package/dist/catalog/kie/nano-banana-pro.model.js +1 -1
- package/dist/catalog/kie/qwen-image-3.0.model.js +2 -10
- package/dist/catalog/kie/seedance-1.5-pro.model.js +2 -1
- package/dist/catalog/kie/seedance-2.0-fast.model.js +5 -1
- package/dist/catalog/kie/seedance-2.0-mini.model.js +5 -1
- package/dist/catalog/kie/seedance-2.0.model.js +5 -1
- package/dist/catalog/kie/seedance-2.5.model.js +10 -20
- package/dist/catalog/kie/seedance-v1.model.js +8 -4
- package/dist/catalog/kie/seedream-4.0.model.js +1 -1
- package/dist/catalog/kie/seedream-4.5.model.js +1 -1
- package/dist/catalog/kie/seedream-5.0-lite.model.js +1 -1
- package/dist/catalog/kie/seedream-5.0-pro.model.js +1 -1
- package/dist/catalog/kie/wan-3.0-prime.model.d.ts +2 -0
- package/dist/catalog/kie/wan-3.0-prime.model.js +15 -0
- package/dist/catalog/kie/wan-3.0.model.d.ts +2 -0
- package/dist/catalog/kie/wan-3.0.model.js +15 -0
- package/dist/catalog/kie/wan30.d.ts +10 -0
- package/dist/catalog/kie/wan30.js +78 -0
- package/dist/catalog/kie/z-image.model.js +1 -1
- package/dist/catalog/modelscope/flux-1-krea-dev.model.js +4 -2
- package/dist/catalog/modelscope/majicmix-realistic.model.js +3 -2
- package/dist/catalog/modelscope/modelscope-custom.model.js +3 -2
- package/dist/catalog/modelscope/qwen-image-2512.model.d.ts +5 -0
- package/dist/catalog/modelscope/{qwen-image.model.js → qwen-image-2512.model.js} +11 -8
- package/dist/catalog/modelscope/qwen-image-edit-2511.model.d.ts +5 -0
- package/dist/catalog/modelscope/{qwen-image-edit-2509.model.js → qwen-image-edit-2511.model.js} +9 -7
- package/dist/catalog/modelscope/sdxl-14-ckpt.model.js +3 -2
- package/dist/catalog/modelscope/utils.js +2 -2
- package/dist/catalog/modelscope/z-image-turbo.model.js +3 -2
- package/dist/catalog/ppio/kling-3.0.model.js +4 -1
- package/dist/catalog/ppio/minimax-speech.model.js +2 -1
- package/dist/catalog/shared/mediaPresence.d.ts +8 -1
- package/dist/catalog/shared/mediaPresence.js +21 -1
- package/dist/catalog/shared/nanoBanana21.d.ts +11 -0
- package/dist/catalog/shared/nanoBanana21.js +30 -0
- package/dist/catalog/shared/shotList.d.ts +31 -0
- package/dist/catalog/shared/shotList.js +48 -0
- package/dist/catalog/shared/subjectElements.d.ts +36 -0
- package/dist/catalog/shared/subjectElements.js +93 -0
- package/dist/catalog/siliconflow/moss-ttsd-0.5.model.js +1 -1
- package/dist/catalog/validate.js +14 -1
- package/dist/catalog/volcengine/seedance-2.0-fast.model.d.ts +2 -0
- package/dist/catalog/volcengine/seedance-2.0-fast.model.js +11 -0
- package/dist/catalog/volcengine/seedance-2.0-mini.model.d.ts +2 -0
- package/dist/catalog/volcengine/seedance-2.0-mini.model.js +11 -0
- package/dist/catalog/volcengine/seedance-2.0.model.d.ts +2 -0
- package/dist/catalog/volcengine/seedance-2.0.model.js +11 -0
- package/dist/catalog/volcengine/seedance-2.5.model.d.ts +2 -0
- package/dist/catalog/volcengine/seedance-2.5.model.js +11 -0
- package/dist/catalog/volcengine/seedance.d.ts +17 -0
- package/dist/catalog/volcengine/seedance.js +192 -0
- package/dist/catalog/volcengine/seedream-5.0-lite.model.js +2 -1
- package/dist/catalog/volcengine/seedream-5.0.js +1 -1
- package/dist/catalog/volcengine-speech/seed-icl-2.0.model.d.ts +1 -0
- package/dist/catalog/volcengine-speech/seed-icl-2.0.model.js +52 -10
- package/dist/catalog/volcengine-speech/seed-tts-2.0-voices.d.ts +2 -0
- package/dist/catalog/volcengine-speech/seed-tts-2.0-voices.js +438 -0
- package/dist/catalog/volcengine-speech/seed-tts-2.0.model.js +4 -4
- package/dist/discovery/index.js +13 -6
- package/dist/generation/core.d.ts +6 -0
- package/dist/generation/core.js +10 -2
- package/dist/index.d.ts +8 -0
- package/dist/index.js +9 -0
- package/dist/llm/bigmodel/preset.js +2 -1
- package/dist/llm/bigmodel/profiles.js +0 -6
- package/dist/llm/chat.d.ts +8 -0
- package/dist/llm/chat.js +18 -2
- package/dist/llm/chatTypes.d.ts +6 -0
- package/dist/llm/defaults.d.ts +2 -2
- package/dist/llm/defaults.js +3 -3
- package/dist/llm/groq/preset.js +18 -2
- package/dist/llm/modelCatalog.d.ts +9 -2
- package/dist/llm/modelCatalog.js +17 -4
- package/dist/llm/modelCatalogEntries.d.ts +2 -0
- package/dist/llm/modelCatalogEntries.js +197 -42
- package/dist/llm/providerPresets.d.ts +3 -0
- package/dist/llm/providerPresets.js +145 -32
- package/dist/llm/providerReasoningRequest.js +28 -11
- package/dist/llm/siliconflow/index.js +1 -1
- package/dist/llm/siliconflow/preset.js +30 -0
- package/dist/llm/types.d.ts +6 -0
- package/dist/packs/models/{ppio/wan-2.5-preview.d.ts → apimart/flux-3-image.d.ts} +1 -1
- package/dist/packs/models/apimart/flux-3-image.js +7 -0
- package/dist/packs/models/apimart/flux-3-video.d.ts +6 -0
- package/dist/packs/models/apimart/flux-3-video.js +7 -0
- package/dist/packs/models/apimart/gemini-omni-1.2-flash.d.ts +6 -0
- package/dist/packs/models/apimart/gemini-omni-1.2-flash.js +7 -0
- package/dist/packs/models/{modelscope/qwen-image.d.ts → apimart/gpt-image-2.6.d.ts} +1 -1
- package/dist/packs/models/apimart/gpt-image-2.6.js +7 -0
- package/dist/packs/models/apimart/grok-imagine-video-1.5.d.ts +6 -0
- package/dist/packs/models/apimart/grok-imagine-video-1.5.js +7 -0
- package/dist/packs/models/apimart/happyhorse-1.1.d.ts +6 -0
- package/dist/packs/models/apimart/happyhorse-1.1.js +7 -0
- package/dist/packs/models/apimart/kling-4.0.d.ts +6 -0
- package/dist/packs/models/apimart/kling-4.0.js +7 -0
- package/dist/packs/models/apimart/minimax-h3-max.d.ts +6 -0
- package/dist/packs/models/apimart/minimax-h3-max.js +7 -0
- package/dist/packs/models/{ppio/minimax-hailuo-2.3.d.ts → apimart/nano-banana-2.1.d.ts} +1 -1
- package/dist/packs/models/{ppio/minimax-hailuo-2.3.js → apimart/nano-banana-2.1.js} +4 -4
- package/dist/packs/models/apimart/seedream-5.0-flash.d.ts +6 -0
- package/dist/packs/models/apimart/seedream-5.0-flash.js +7 -0
- package/dist/packs/models/apimart/veo-3.1.d.ts +6 -0
- package/dist/packs/models/apimart/veo-3.1.js +7 -0
- package/dist/packs/models/apimart/wan-2.7-image.d.ts +6 -0
- package/dist/packs/models/apimart/wan-2.7-image.js +7 -0
- package/dist/packs/models/apimart/wan-3.0.d.ts +6 -0
- package/dist/packs/models/apimart/wan-3.0.js +7 -0
- package/dist/packs/models/bailian/cosyvoice-v3.5.js +1 -1
- package/dist/packs/models/bailian/minimax-h3.d.ts +6 -0
- package/dist/packs/models/bailian/minimax-h3.js +7 -0
- package/dist/packs/models/bailian/minimax-speech-2.8.js +1 -1
- package/dist/packs/models/bailian/qwen-audio-3.1-tts-flash.js +1 -1
- package/dist/packs/models/bailian/qwen-audio-3.1-tts-plus.d.ts +6 -0
- package/dist/packs/models/bailian/qwen-audio-3.1-tts-plus.js +7 -0
- package/dist/packs/models/bailian/qwen-image-3.0.js +1 -1
- package/dist/packs/models/bailian/wan-3.0.d.ts +6 -0
- package/dist/packs/models/bailian/wan-3.0.js +7 -0
- package/dist/packs/models/bailian/z-image-turbo.js +1 -1
- package/dist/packs/models/fal/eleven-v4-tts.d.ts +6 -0
- package/dist/packs/models/{ppio/wan-2.5-preview.js → fal/eleven-v4-tts.js} +4 -4
- package/dist/packs/models/fal/flux-3-video.d.ts +6 -0
- package/dist/packs/models/fal/flux-3-video.js +7 -0
- package/dist/packs/models/{ppio/wan-2.6.d.ts → fal/flux-3.d.ts} +1 -1
- package/dist/packs/models/{ppio/wan-2.6.js → fal/flux-3.js} +4 -4
- package/dist/packs/models/fal/gemini-omni-1.2-flash.d.ts +6 -0
- package/dist/packs/models/fal/gemini-omni-1.2-flash.js +7 -0
- package/dist/packs/models/fal/gpt-image-2.6.d.ts +6 -0
- package/dist/packs/models/fal/gpt-image-2.6.js +7 -0
- package/dist/packs/models/fal/grok-imagine-video-1.5.d.ts +6 -0
- package/dist/packs/models/fal/grok-imagine-video-1.5.js +7 -0
- package/dist/packs/models/fal/kling-4.0-flash.d.ts +6 -0
- package/dist/packs/models/fal/kling-4.0-flash.js +7 -0
- package/dist/packs/models/fal/kling-4.0.d.ts +6 -0
- package/dist/packs/models/{ppio/wan-2.7.js → fal/kling-4.0.js} +4 -4
- package/dist/packs/models/{ppio/wan-2.7.d.ts → fal/ltx-2.3.d.ts} +1 -1
- package/dist/packs/models/fal/ltx-2.3.js +7 -0
- package/dist/packs/models/fal/minimax-h3-max.d.ts +6 -0
- package/dist/packs/models/fal/minimax-h3-max.js +7 -0
- package/dist/packs/models/fal/nano-banana-2.1.d.ts +6 -0
- package/dist/packs/models/fal/nano-banana-2.1.js +7 -0
- package/dist/packs/models/fal/wan-3.0.d.ts +6 -0
- package/dist/packs/models/fal/wan-3.0.js +7 -0
- package/dist/packs/models/grsai/gpt-image-2.6.d.ts +6 -0
- package/dist/packs/models/grsai/gpt-image-2.6.js +7 -0
- package/dist/packs/models/grsai/nano-banana-2.1.d.ts +6 -0
- package/dist/packs/models/grsai/nano-banana-2.1.js +7 -0
- package/dist/packs/models/grsai/wan-3.0.d.ts +6 -0
- package/dist/packs/models/grsai/wan-3.0.js +7 -0
- package/dist/packs/models/kie/flux-3-klein.d.ts +6 -0
- package/dist/packs/models/kie/flux-3-klein.js +7 -0
- package/dist/packs/models/kie/gemini-3.8-flash-lite-tts.d.ts +6 -0
- package/dist/packs/models/kie/gemini-3.8-flash-lite-tts.js +7 -0
- package/dist/packs/models/kie/{eleven-turbo-2.5-tts.d.ts → gemini-3.8-flash-tts.d.ts} +1 -1
- package/dist/packs/models/kie/{eleven-turbo-2.5-tts.js → gemini-3.8-flash-tts.js} +1 -1
- package/dist/packs/models/kie/gpt-image-2.6.d.ts +6 -0
- package/dist/packs/models/kie/gpt-image-2.6.js +7 -0
- package/dist/packs/models/kie/grok-imagine-video-1.5.d.ts +6 -0
- package/dist/packs/models/kie/grok-imagine-video-1.5.js +7 -0
- package/dist/packs/models/kie/kling-4.0-flash.d.ts +6 -0
- package/dist/packs/models/kie/kling-4.0-flash.js +7 -0
- package/dist/packs/models/kie/kling-4.0.d.ts +6 -0
- package/dist/packs/models/kie/kling-4.0.js +7 -0
- package/dist/packs/models/kie/nano-banana-2.1.d.ts +6 -0
- package/dist/packs/models/kie/nano-banana-2.1.js +7 -0
- package/dist/packs/models/kie/wan-3.0-prime.d.ts +6 -0
- package/dist/packs/models/kie/wan-3.0-prime.js +7 -0
- package/dist/packs/models/kie/wan-3.0.d.ts +6 -0
- package/dist/packs/models/kie/wan-3.0.js +7 -0
- package/dist/packs/models/modelscope/flux-1-krea-dev.js +1 -1
- package/dist/packs/models/modelscope/majicmix-realistic.js +1 -1
- package/dist/packs/models/modelscope/modelscope-custom.js +1 -1
- package/dist/packs/models/modelscope/qwen-image-2512.d.ts +6 -0
- package/dist/packs/models/modelscope/{qwen-image.js → qwen-image-2512.js} +2 -2
- package/dist/packs/models/modelscope/{qwen-image-edit-2509.d.ts → qwen-image-edit-2511.d.ts} +1 -1
- package/dist/packs/models/modelscope/{qwen-image-edit-2509.js → qwen-image-edit-2511.js} +2 -2
- package/dist/packs/models/modelscope/sdxl-14-ckpt.js +1 -1
- package/dist/packs/models/modelscope/z-image-turbo.js +1 -1
- package/dist/packs/models/volcengine/seedance-2.0-fast.d.ts +6 -0
- package/dist/packs/models/volcengine/seedance-2.0-fast.js +7 -0
- package/dist/packs/models/volcengine/seedance-2.0-mini.d.ts +6 -0
- package/dist/packs/models/volcengine/seedance-2.0-mini.js +7 -0
- package/dist/packs/models/volcengine/seedance-2.0.d.ts +6 -0
- package/dist/packs/models/volcengine/seedance-2.0.js +7 -0
- package/dist/packs/models/volcengine/seedance-2.5.d.ts +6 -0
- package/dist/packs/models/volcengine/seedance-2.5.js +7 -0
- package/dist/packs/models/volcengine/seedream-5.0-flash.js +1 -1
- package/dist/packs/models/volcengine/seedream-5.0-lite.js +1 -1
- package/dist/packs/models/volcengine/seedream-5.0-pro.js +1 -1
- package/dist/packs/provider-adapters/bailian.js +1 -1
- package/dist/packs/provider-adapters/modelscope.js +1 -1
- package/dist/packs/provider-adapters/volcengine.js +1 -1
- package/dist/packs/provider-packs/apimart.d.ts +1 -1
- package/dist/packs/provider-packs/apimart.js +35 -22
- package/dist/packs/provider-packs/bailian.d.ts +1 -1
- package/dist/packs/provider-packs/bailian.js +8 -5
- package/dist/packs/provider-packs/fal.d.ts +1 -1
- package/dist/packs/provider-packs/fal.js +52 -40
- package/dist/packs/provider-packs/grsai.d.ts +1 -1
- package/dist/packs/provider-packs/grsai.js +8 -5
- package/dist/packs/provider-packs/kie.d.ts +1 -1
- package/dist/packs/provider-packs/kie.js +41 -32
- package/dist/packs/provider-packs/modelscope.js +2 -2
- package/dist/packs/provider-packs/ppio.d.ts +1 -1
- package/dist/packs/provider-packs/ppio.js +2 -6
- package/dist/packs/provider-packs/volcengine.d.ts +1 -1
- package/dist/packs/provider-packs/volcengine.js +8 -4
- package/dist/pricing/index.d.ts +1 -0
- package/dist/pricing/index.js +1 -0
- package/dist/pricing/mediaContext.d.ts +6 -1
- package/dist/pricing/mediaContext.js +12 -5
- package/dist/pricing/tokenPricing.d.ts +36 -0
- package/dist/pricing/tokenPricing.js +26 -0
- package/dist/providers/bailian.d.ts +1 -1
- package/dist/providers/bailian.js +71 -4
- package/dist/providers/fal.js +11 -1
- package/dist/providers/helpers.d.ts +1 -1
- package/dist/providers/helpers.js +17 -5
- package/dist/providers/kie.js +16 -5
- package/dist/providers/metadata.js +2 -2
- package/dist/providers/openai-speech.d.ts +6 -0
- package/dist/providers/openai-speech.js +31 -0
- package/dist/providers/providerAccessErrors.d.ts +3 -0
- package/dist/providers/providerAccessErrors.js +73 -0
- package/dist/providers/siliconflow.js +2 -27
- package/dist/providers/volcengine-speech.d.ts +1 -1
- package/dist/providers/volcengine-speech.js +31 -8
- package/dist/providers/volcengine-voice-clone.d.ts +3 -0
- package/dist/providers/volcengine-voice-clone.js +138 -0
- package/dist/providers/volcengine.d.ts +1 -1
- package/dist/providers/volcengine.js +89 -11
- package/dist/runtime/retry.js +3 -0
- package/dist/tool-packs/fal-erase/models/bria-eraser.model.js +1 -1
- package/dist/tool-packs/fal-erase/models/finegrain-eraser.model.js +1 -1
- package/dist/tool-packs/fal-erase/models/flux-pro-erase.model.js +1 -1
- package/dist/tool-packs/fal-image-utilities/models/control-light.model.js +1 -1
- package/dist/tool-packs/fal-image-utilities/models/outpaint.model.js +1 -1
- package/dist/tool-packs/fal-image-utilities/models/photo-restoration.model.js +1 -1
- package/dist/tool-packs/fal-image-utilities/models/pixelcut-background-removal.model.js +1 -1
- package/dist/tool-packs/fal-image-utilities/models/product-photography.model.js +1 -1
- package/dist/tool-packs/fal-image-utilities/models/relighting.model.js +1 -1
- package/dist/tool-packs/fal-multi-angle/models/flux-2-multiple-angles.model.js +1 -1
- package/dist/tool-packs/fal-multi-angle/models/perspective-change.model.js +1 -1
- package/dist/tool-packs/fal-multi-angle/models/qwen-image-edit-2511-multiple-angles.model.js +1 -1
- package/dist/types/model.d.ts +68 -12
- package/dist/types/model.js +3 -0
- package/dist/types/modelTags.d.ts +142 -0
- package/dist/types/modelTags.js +44 -0
- package/dist/types/runtime.d.ts +3 -0
- package/dist/types/speechTimings.d.ts +15 -0
- package/dist/types/speechTimings.js +1 -0
- package/dist/upload/apimart-upload.d.ts +1 -1
- package/dist/upload/apimart-upload.js +37 -15
- package/dist/upload/bailian-oss-upload.d.ts +32 -0
- package/dist/upload/bailian-oss-upload.js +74 -0
- package/dist/upload/{fal-legacy.js → fal-host-fetch.js} +2 -2
- package/dist/upload/fal-transport.d.ts +6 -0
- package/dist/upload/fal-transport.js +2 -1
- package/dist/upload/index.d.ts +2 -2
- package/dist/upload/index.js +4 -7
- package/dist/upload/kie-upload.d.ts +1 -1
- package/dist/upload/kie-upload.js +34 -12
- package/dist/upload/media-binary.js +1 -0
- package/dist/upload/media-fields.js +7 -2
- package/dist/upload/preprocess-core.d.ts +2 -0
- package/dist/upload/preprocess-core.js +2 -0
- package/dist/upload/preprocess.d.ts +1 -1
- package/dist/upload/preprocess.js +12 -3
- package/dist/upload/provider-preprocessors/apimart.d.ts +1 -1
- package/dist/upload/provider-preprocessors/apimart.js +13 -5
- package/dist/upload/provider-preprocessors/bailian.d.ts +8 -0
- package/dist/upload/provider-preprocessors/bailian.js +45 -0
- package/dist/upload/provider-preprocessors/kie.d.ts +1 -1
- package/dist/upload/provider-preprocessors/kie.js +26 -9
- package/dist/upload/provider-preprocessors/ppio.d.ts +1 -2
- package/dist/upload/provider-preprocessors/ppio.js +2 -29
- package/dist/upload/provider-preprocessors/public-host.d.ts +5 -0
- package/dist/upload/provider-preprocessors/public-host.js +7 -0
- package/dist/upload/provider-preprocessors/volcengine.d.ts +5 -0
- package/dist/upload/provider-preprocessors/volcengine.js +10 -0
- package/dist/upload/public-host-upload.d.ts +7 -0
- package/dist/upload/public-host-upload.js +55 -0
- package/dist/upload/upload-response.js +12 -7
- package/docs/README.md +26 -26
- package/docs/consumers.md +150 -124
- package/docs/llm-adaptation/README.md +180 -166
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/DeepSeek.md +108 -104
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/Kimi.md +94 -76
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/MiniMax.md +89 -84
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//345/260/217/347/261/263MiMo.md +126 -126
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//346/231/272/350/260/261GLM.md +238 -234
- 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 +131 -87
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//347/231/276/347/202/274Qwen.md +112 -84
- 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
- package/docs/model-adaptation/Bria-Eraser/Bria-Eraser_Fal.md +32 -32
- 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
- package/docs/model-adaptation/ControlLight/ControlLight_Fal.md +85 -85
- package/docs/model-adaptation/Eleven-v4/Eleven-v4_Fal.md +49 -0
- 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
- package/docs/model-adaptation/FLUX-3/FLUX-3_APIMart.md +65 -0
- package/docs/model-adaptation/FLUX-3/FLUX-3_Fal.md +48 -0
- package/docs/model-adaptation/FLUX-3-Klein/FLUX-3-Klein_KIE.md +38 -0
- package/docs/model-adaptation/FLUX-3-Video/FLUX-3-Video_APIMart.md +84 -0
- package/docs/model-adaptation/FLUX-3-Video/FLUX-3-Video_Fal.md +80 -0
- package/docs/model-adaptation/Finegrain-Eraser/Finegrain-Eraser_Fal.md +31 -31
- package/docs/model-adaptation/Flux-Pro-Erase/Flux-Pro-Erase_Fal.md +34 -34
- package/docs/model-adaptation/Fun-ASR/Fun-ASR_/347/231/276/347/202/274.md +47 -47
- package/docs/model-adaptation/Fun-ASR-Flash-2026-06-15/Fun-ASR-Flash-2026-06-15_/347/231/276/347/202/274.md +45 -45
- package/docs/model-adaptation/Fun-ASR-Realtime/Fun-ASR-Realtime_/347/231/276/347/202/274.md +57 -57
- 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
- package/docs/model-adaptation/GLM-5.3-Flash/GLM-5.3-Flash_/346/231/272/350/260/261.md +217 -213
- package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_APIMart.md +173 -173
- package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_Fal.md +94 -94
- package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_Grsai.md +138 -137
- package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_KIE.md +97 -93
- package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_APIMart.md +66 -66
- package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_Fal.md +55 -55
- package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_Grsai.md +59 -53
- package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_KIE.md +55 -55
- package/docs/model-adaptation/GPT-Image-2.6/GPT-Image-2.6_APIMart.md +101 -0
- package/docs/model-adaptation/GPT-Image-2.6/GPT-Image-2.6_Fal.md +55 -0
- package/docs/model-adaptation/GPT-Image-2.6/GPT-Image-2.6_Grsai.md +32 -0
- package/docs/model-adaptation/GPT-Image-2.6/GPT-Image-2.6_KIE.md +51 -0
- package/docs/model-adaptation/GPT-OSS-20B/GPT-OSS-20B_Groq.md +62 -62
- package/docs/model-adaptation/Gemini-3.8-Flash-Lite-TTS/Gemini-3.8-Flash-Lite-TTS_KIE.md +22 -0
- package/docs/model-adaptation/Gemini-3.8-Flash-TTS/Gemini-3.8-Flash-TTS_KIE.md +38 -0
- package/docs/model-adaptation/Gemini-Omni-1.2-Flash/Gemini-Omni-1.2-Flash_APIMart.md +79 -0
- package/docs/model-adaptation/Gemini-Omni-1.2-Flash/Gemini-Omni-1.2-Flash_Fal.md +60 -0
- package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_APIMart.md +131 -124
- package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_Fal.md +84 -84
- package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_KIE.md +132 -129
- package/docs/model-adaptation/Grok-Imagine/Grok-Imagine_KIE.md +38 -36
- package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_APIMart.md +250 -250
- package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_Fal.md +84 -84
- package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_KIE.md +105 -105
- package/docs/model-adaptation/Grok-Imagine-Video-1.5/Grok-Imagine-Video-1.5_APIMart.md +68 -0
- package/docs/model-adaptation/Grok-Imagine-Video-1.5/Grok-Imagine-Video-1.5_Fal.md +47 -0
- package/docs/model-adaptation/Grok-Imagine-Video-1.5/Grok-Imagine-Video-1.5_KIE.md +37 -0
- package/docs/model-adaptation/Hailuo-02/Hailuo-02_Fal.md +95 -93
- package/docs/model-adaptation/Hailuo-02/Hailuo-02_KIE.md +58 -56
- package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_Fal.md +88 -88
- package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_KIE.md +51 -51
- package/docs/model-adaptation/HappyHorse-1.1/HappyHorse-1.1_APIMart.md +66 -0
- package/docs/model-adaptation/HappyHorse-1.1/HappyHorse-1.1_KIE.md +31 -27
- package/docs/model-adaptation/IC-Light-v2/IC-Light-v2_Fal.md +99 -99
- 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
- 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
- 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
- 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
- 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
- package/docs/model-adaptation/Kling-3.0/Kling-3.0_APIMart.md +112 -112
- package/docs/model-adaptation/Kling-3.0/Kling-3.0_Fal.md +91 -89
- package/docs/model-adaptation/Kling-3.0/Kling-3.0_KIE.md +106 -106
- package/docs/model-adaptation/Kling-3.0/Kling-3.0_/346/264/276/346/254/247/344/272/221.md +120 -119
- package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_APIMart.md +130 -125
- package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_Fal.md +107 -107
- package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_KIE.md +148 -143
- package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_APIMart.md +88 -85
- package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_Fal.md +86 -83
- package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_KIE.md +84 -84
- package/docs/model-adaptation/Kling-4.0/Kling-4.0_APIMart.md +76 -0
- package/docs/model-adaptation/Kling-4.0/Kling-4.0_Fal.md +115 -0
- package/docs/model-adaptation/Kling-4.0/Kling-4.0_KIE.md +61 -0
- package/docs/model-adaptation/Kling-4.0-Flash/Kling-4.0-Flash_Fal.md +55 -0
- package/docs/model-adaptation/Kling-4.0-Flash/Kling-4.0-Flash_KIE.md +33 -0
- package/docs/model-adaptation/LTX-2.3/LTX-2.3_Fal.md +121 -0
- package/docs/model-adaptation/Midjourney/Midjourney_APIMart.md +402 -396
- package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_APIMart.md +237 -234
- package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_Fal.md +112 -108
- package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_KIE.md +118 -111
- package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_/347/231/276/347/202/274.md +65 -0
- package/docs/model-adaptation/MiniMax-H3-Max/MiniMax-H3-Max_APIMart.md +78 -0
- package/docs/model-adaptation/MiniMax-H3-Max/MiniMax-H3-Max_Fal.md +62 -0
- package/docs/model-adaptation/MiniMax-Speech/MiniMax-Speech_/346/264/276/346/254/247/344/272/221.md +170 -170
- package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_APIMart.md +89 -89
- package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_Fal.md +99 -99
- package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_Grsai.md +82 -82
- package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_KIE.md +72 -70
- package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_APIMart.md +79 -79
- package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_Grsai.md +65 -65
- package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_KIE.md +64 -64
- package/docs/model-adaptation/Nano-Banana-2.1/Nano-Banana-2.1_APIMart.md +35 -0
- package/docs/model-adaptation/Nano-Banana-2.1/Nano-Banana-2.1_Fal.md +37 -0
- package/docs/model-adaptation/Nano-Banana-2.1/Nano-Banana-2.1_Grsai.md +35 -0
- package/docs/model-adaptation/Nano-Banana-2.1/Nano-Banana-2.1_KIE.md +36 -0
- package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_APIMart.md +83 -83
- package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_Fal.md +89 -89
- package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_Grsai.md +82 -82
- package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_KIE.md +64 -64
- 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
- package/docs/model-adaptation/Qwen-Audio-3.1-TTS-Plus/Qwen-Audio-3.1-TTS-Plus_/347/231/276/347/202/274.md +59 -0
- package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_APIMart.md +117 -117
- package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_Fal.md +85 -84
- package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_KIE.md +103 -103
- package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_/347/231/276/347/202/274.md +138 -138
- 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 -57
- package/docs/model-adaptation/Qwen-MT-Flash/Qwen-MT-Flash_/347/231/276/347/202/274.md +68 -68
- package/docs/model-adaptation/Qwen-MT-Lite/Qwen-MT-Lite_/347/231/276/347/202/274.md +40 -40
- package/docs/model-adaptation/Qwen-MT-Plus/Qwen-MT-Plus_/347/231/276/347/202/274.md +40 -40
- package/docs/model-adaptation/Qwen3-ASR-Flash/Qwen3-ASR-Flash_/347/231/276/347/202/274.md +44 -44
- package/docs/model-adaptation/Qwen3-ASR-Flash-2026-02-10/Qwen3-ASR-Flash-2026-02-10_/347/231/276/347/202/274.md +37 -37
- package/docs/model-adaptation/Qwen3-ASR-Flash-Filetrans/Qwen3-ASR-Flash-Filetrans_/347/231/276/347/202/274.md +45 -45
- package/docs/model-adaptation/Qwen3-ASR-Flash-Realtime/Qwen3-ASR-Flash-Realtime_/347/231/276/347/202/274.md +58 -58
- 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
- package/docs/model-adaptation/README.md +371 -328
- package/docs/model-adaptation/Seed-ICL-2.0/Seed-ICL-2.0_/347/201/253/345/261/261/345/274/225/346/223/216.md +65 -0
- 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
- 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 +147 -147
- 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
- package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_APIMart.md +121 -121
- package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_Fal.md +97 -97
- package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_KIE.md +87 -86
- package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_/347/201/253/345/261/261/345/274/225/346/223/216.md +101 -0
- package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_APIMart.md +89 -89
- package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_Fal.md +95 -95
- package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_KIE.md +79 -78
- package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_/347/201/253/345/261/261/345/274/225/346/223/216.md +98 -0
- package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_APIMart.md +93 -89
- package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_Fal.md +96 -96
- package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_KIE.md +79 -78
- package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_/347/201/253/345/261/261/345/274/225/346/223/216.md +98 -0
- package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_APIMart.md +217 -212
- package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_Fal.md +98 -94
- package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_KIE.md +94 -89
- package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_/347/201/253/345/261/261/345/274/225/346/223/216.md +102 -0
- package/docs/model-adaptation/Seedream-5.0-Flash/Seedream-5.0-Flash_APIMart.md +64 -0
- package/docs/model-adaptation/Seedream-5.0-Flash/Seedream-5.0-Flash_/347/201/253/345/261/261/345/274/225/346/223/216.md +18 -18
- package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_APIMart.md +113 -106
- package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_Fal.md +91 -91
- package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_KIE.md +89 -89
- 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 +110 -108
- package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_APIMart.md +194 -194
- package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_Fal.md +100 -100
- package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_KIE.md +141 -141
- 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
- package/docs/model-adaptation/SenseVoiceSmall/SenseVoiceSmall_/347/241/205/345/237/272/346/265/201/345/212/250.md +73 -73
- package/docs/model-adaptation/TTS-/345/244/232/344/276/233/345/272/224/345/225/206-2026-09.md +52 -6
- package/docs/model-adaptation/TTS-/346/227/266/351/227/264/346/210/263-2026-10.md +36 -0
- 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
- 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
- package/docs/model-adaptation/Veo-3.1/Veo-3.1_APIMart.md +90 -0
- package/docs/model-adaptation/Wan-2.7-Image/Wan-2.7-Image_APIMart.md +81 -0
- package/docs/model-adaptation/Wan-3.0/Wan-3.0_APIMart.md +74 -0
- package/docs/model-adaptation/Wan-3.0/Wan-3.0_Fal.md +60 -0
- package/docs/model-adaptation/Wan-3.0/Wan-3.0_Grsai.md +35 -0
- package/docs/model-adaptation/Wan-3.0/Wan-3.0_KIE.md +38 -0
- package/docs/model-adaptation/Wan-3.0/Wan-3.0_/347/231/276/347/202/274.md +96 -0
- package/docs/model-adaptation/Wan-3.0-Prime/Wan-3.0-Prime_KIE.md +20 -0
- package/docs/model-adaptation/Whisper-Large-v3/Whisper-Large-v3_Groq.md +80 -80
- package/docs/model-adaptation/Whisper-Large-v3-Turbo/Whisper-Large-v3-Turbo_Groq.md +79 -79
- package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_APIMart.md +88 -88
- package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_Fal.md +103 -95
- package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_KIE.md +71 -71
- package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_/347/231/276/347/202/274.md +122 -122
- package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_/351/255/224/346/220/255.md +99 -97
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/APIMart.md +240 -240
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Fal.md +190 -172
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Groq.md +136 -121
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Grsai.md +217 -217
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/KIE.md +159 -131
- 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
- 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
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//346/264/276/346/254/247/344/272/221.md +170 -147
- 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 +191 -183
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//347/231/276/347/202/274.md +339 -282
- 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 +180 -153
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//351/255/224/346/220/255.md +205 -207
- package/docs/model-adaptation//346/226/207/346/241/243/351/207/207/351/233/206/346/211/213/345/206/214.md +339 -338
- 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
- package/docs//346/216/245/345/205/245/346/214/207/345/215/227/Electron.md +77 -77
- package/docs//346/216/245/345/205/245/346/214/207/345/215/227/Tauri.md +81 -81
- package/docs//346/216/245/345/205/245/346/214/207/345/215/227/UXP.md +169 -169
- 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
- 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
- package/examples/form-renderer/README.md +17 -17
- package/examples/form-renderer/cli.ts +32 -32
- package/examples/form-renderer/index.ts +144 -144
- package/examples/form-renderer/package.json +16 -16
- package/examples/form-renderer/tsconfig.json +14 -14
- package/examples/llm-chat/README.md +38 -38
- package/examples/llm-chat/index.ts +100 -100
- package/examples/llm-chat/package.json +19 -19
- package/examples/llm-chat/tsconfig.json +14 -14
- package/examples/minimal-node/README.md +31 -31
- package/examples/minimal-node/index.ts +138 -138
- package/examples/minimal-node/package.json +17 -17
- package/examples/minimal-node/tsconfig.json +14 -14
- package/package.json +259 -258
- package/dist/catalog/grsai/gptImage25Sizes.d.ts +0 -1
- package/dist/catalog/grsai/gptImage25Sizes.js +0 -76
- package/dist/catalog/kie/eleven-turbo-2.5-tts.model.d.ts +0 -2
- package/dist/catalog/kie/eleven-turbo-2.5-tts.model.js +0 -29
- package/dist/catalog/modelscope/qwen-image-edit-2509.model.d.ts +0 -5
- package/dist/catalog/modelscope/qwen-image.model.d.ts +0 -5
- package/dist/catalog/ppio/minimax-hailuo-2.3.model.d.ts +0 -7
- package/dist/catalog/ppio/minimax-hailuo-2.3.model.js +0 -114
- package/dist/catalog/ppio/wan-2.5-preview.model.d.ts +0 -7
- package/dist/catalog/ppio/wan-2.5-preview.model.js +0 -198
- package/dist/catalog/ppio/wan-2.6.model.d.ts +0 -7
- package/dist/catalog/ppio/wan-2.6.model.js +0 -206
- package/dist/catalog/ppio/wan-2.7.model.d.ts +0 -2
- package/dist/catalog/ppio/wan-2.7.model.js +0 -373
- package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_/346/264/276/346/254/247/344/272/221.md +0 -70
- package/docs/model-adaptation/TeleSpeechASR/TeleSpeechASR_/347/241/205/345/237/272/346/265/201/345/212/250.md +0 -76
- package/docs/model-adaptation/Wan-2.5-Preview/Wan-2.5-Preview_/346/264/276/346/254/247/344/272/221.md +0 -82
- package/docs/model-adaptation/Wan-2.6/Wan-2.6_/346/264/276/346/254/247/344/272/221.md +0 -84
- package/docs/model-adaptation/Wan-2.7/Wan-2.7_/346/264/276/346/254/247/344/272/221.md +0 -122
- /package/dist/upload/{fal-legacy.d.ts → fal-host-fetch.d.ts} +0 -0
|
@@ -1,240 +1,240 @@
|
|
|
1
|
-
# APIMart · 供应商基础文档
|
|
2
|
-
|
|
3
|
-
| 项目 | 内容 |
|
|
4
|
-
|---|---|
|
|
5
|
-
| 最后更新 | 2026-09-13 |
|
|
6
|
-
| 供应商类型 | 聚合中转(非模型原厂) |
|
|
7
|
-
| 项目内 providerId | `apimart` |
|
|
8
|
-
| 主域名 | `apimart.ai`(海外主站) |
|
|
9
|
-
| 中国大陆友好域名 | `apib.ai` / `aiuxu.com` / `aishuch.com`(**本目录中唯一提供大陆备用线路的供应商**) |
|
|
10
|
-
| 鉴权 | `Authorization: Bearer <API Key>` |
|
|
11
|
-
| 任务模型 | 异步为主(提交拿 `task_id` → 轮询 / Webhook) |
|
|
12
|
-
| 文档可见性 | 公开,无需登录 |
|
|
13
|
-
| 价格可见性 | 公开,无需登录 |
|
|
14
|
-
|
|
15
|
-
2026-09-13 网络恢复修复:提交请求仅在连接尚未建立时重试或切换线路;新增识别 Node `ECONNRESET` 且底层错误严格为 `Client network socket disconnected before secure TLS connection was established` 的 TLS 前断线。普通 `read ECONNRESET` / socket 断开仍不能重放提交。GET/HEAD 查询遇到连接重置可切换备用线路,不修改任务状态。最终错误 `details` 提供仅含域名、错误码、阶段、耗时的尝试序列及 `submissionState`,不记录请求路径、密钥和正文。TLS 阶段判据依据 [Node 官方实现](https://github.com/nodejs/node/blob/v24.0.0/lib/_tls_wrap.js#L1573-L1585)(公开,无需登录),其他边界为本 SDK 的保守策略,未改变供应商 API 契约。
|
|
16
|
-
|
|
17
|
-
## 1. 端点
|
|
18
|
-
|
|
19
|
-
### 1.1 Base URL 与备用域名
|
|
20
|
-
|
|
21
|
-
官方文档只写了一个地址:
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
https://api.apimart.ai
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
但 APIMart 站点在登录页顶部提供了**备用访问域名**面板,原文:「网络访问受限时,请使用支持中国大陆的域名,建议收藏备用。」
|
|
28
|
-
|
|
29
|
-
| 站点域名 | 定位 | API 端点 | 上传端点 | 文档站 |
|
|
30
|
-
|---|---|---|---|---|
|
|
31
|
-
| `apimart.ai` | 海外主站 | `https://api.apimart.ai` | `https://upload.apimart.ai` | `https://docs.apimart.ai` |
|
|
32
|
-
| `apib.ai` | 中国大陆可用 | `https://api.apib.ai` | `https://upload.apib.ai` | `https://docs.apib.ai` |
|
|
33
|
-
| `aiuxu.com` | 中国大陆可用 | `https://api.aiuxu.com` | `https://upload.aiuxu.com` | `https://docs.aiuxu.com` |
|
|
34
|
-
| `aishuch.com` | 中国大陆可用 | `https://api.aishuch.com` | `https://upload.aishuch.com` | `https://docs.aishuch.com` |
|
|
35
|
-
|
|
36
|
-
**实测结论(2026-08-22,未登录 curl)**:四个 `api.*` 主机对 `GET /v1/models` 均返回 `401 {"error":{"message":"API key is required ...","type":"apimart_error"}}`,即**四条线路都是同一套 API,仅域名不同,路径与协议完全一致**;四个 `upload.*` 主机均返回 200。
|
|
37
|
-
|
|
38
|
-
> 适配含义:Base URL 应当**可配置或有受控备用线路**,而不是只硬编码 `api.apimart.ai`,否则大陆用户在主线路不可达时无法自救。当前代码状态见第 9 节(连通性探测 + 进程内记忆,不做地理位置判断)。
|
|
39
|
-
>
|
|
40
|
-
> 注意:生成结果 URL 与上传返回 URL 用的是**请求时那条线路的 `upload.*` 域名**,切换线路后旧结果链接是否仍可访问未验证,转存时按原域名下载。
|
|
41
|
-
|
|
42
|
-
### 1.2 API 端点一览
|
|
43
|
-
|
|
44
|
-
| 用途 | 方法与路径 | 说明 |
|
|
45
|
-
|---|---|---|
|
|
46
|
-
| 图片生成 | `POST /v1/images/generations` | 统一图片入口,模型由 body 的 `model` 决定 |
|
|
47
|
-
| 视频生成 | `POST /v1/videos/generations` | 统一视频入口 |
|
|
48
|
-
| Midjourney 专用 | `POST /v1/midjourney/{action}` | 18 个端点,见 [Midjourney_APIMart.md](../Midjourney/Midjourney_APIMart.md) |
|
|
49
|
-
| 查询任务 | `GET /v1/tasks/{task_id}?language=zh` | 统一任务查询 |
|
|
50
|
-
| MJ 风格查询 | `GET /v1/midjourney/{task_id}` | 额外返回 `buttons[].customId` |
|
|
51
|
-
| 上传图片 | `POST /v1/uploads/images` | multipart |
|
|
52
|
-
| 令牌余额 | `GET /v1/balance`(别名 `GET /balance`) | 单个 API Key 维度 |
|
|
53
|
-
| 用户余额 | `GET /v1/user/balance`(别名 `GET /user/balance`) | 主账号维度 |
|
|
54
|
-
| 模型列表 | `GET /v1/models`(带 `expand` 可返回参数 schema) | 文本模型元数据为主 |
|
|
55
|
-
| 文本模型定价 | `GET /api/pricing/model` | 只对 TokenPricingV2 文本模型有效,**图片/视频模型不走这个** |
|
|
56
|
-
|
|
57
|
-
## 2. 鉴权
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
Authorization: Bearer <API Key>
|
|
61
|
-
Content-Type: application/json
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
API Key 在 https://apimart.ai/keys 创建(**需登录**),可设置额度上限、模型权限白名单、IP 白名单。
|
|
65
|
-
|
|
66
|
-
## 3. 提交与查询
|
|
67
|
-
|
|
68
|
-
### 3.1 提交
|
|
69
|
-
|
|
70
|
-
同步返回 `task_id`,实际生成异步进行。本项目当前额外下发两个请求头(见 `providers/apimart.ts`):
|
|
71
|
-
|
|
72
|
-
- `Idempotency-Key: <requestId>`:APIMart 支持幂等键,重放不会重复计费
|
|
73
|
-
- `X-APIMart-Response-Version: 2026-07-27`:锁定响应结构版本,避免上游改结构导致解析失效
|
|
74
|
-
|
|
75
|
-
> 当前公开快速开始、开发指南和 API 参考中未找到这两个 Header 的稳定契约说明。文档将它们标记为“项目已有行为”,不把它们当作新客户端必须复制的公开协议。
|
|
76
|
-
|
|
77
|
-
### 3.2 轮询
|
|
78
|
-
|
|
79
|
-
`GET /v1/tasks/{task_id}?language=zh`
|
|
80
|
-
|
|
81
|
-
```json
|
|
82
|
-
{
|
|
83
|
-
"code": 200,
|
|
84
|
-
"data": {
|
|
85
|
-
"id": "task_01KA040M0HP1GJWBJYZMKX1XS1",
|
|
86
|
-
"status": "completed",
|
|
87
|
-
"cost": 0.15,
|
|
88
|
-
"credits_cost": 1.5,
|
|
89
|
-
"progress": 100,
|
|
90
|
-
"result": { "images": [{ "url": ["https://upload.apimart.ai/f/image/...png"], "expires_at": 1763174708 }] },
|
|
91
|
-
"created": 1763088289,
|
|
92
|
-
"completed": 1763088308,
|
|
93
|
-
"estimated_time": 60,
|
|
94
|
-
"actual_time": 19
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
| 字段 | 说明 |
|
|
100
|
-
|---|---|
|
|
101
|
-
| `status` | `pending` / `processing` / `completed` / `failed` / `cancelled` |
|
|
102
|
-
| `cost` | 本次任务扣费金额(美元) |
|
|
103
|
-
| `credits_cost` | 本次任务扣费积分 |
|
|
104
|
-
| `progress` | 0–100 |
|
|
105
|
-
| `estimated_time` / `actual_time` | 预计 / 实际耗时(秒) |
|
|
106
|
-
| `error` | 仅 `failed` 时存在,含 `code` / `message` / `type` |
|
|
107
|
-
|
|
108
|
-
**结果字段**:图片在 `data.result.images[]`,视频在 `data.result.videos[]`,音频在 `data.result.audios[]`。
|
|
109
|
-
**注意 `images[].url` 可能是数组**(一次出多张时),解析必须兼容 string 与 string[]。
|
|
110
|
-
|
|
111
|
-
Midjourney 有一套额外的 MJ 风格状态(`NOT_START` / `SUBMITTED` / `IN_PROGRESS` / `MODAL` / `SUCCESS` / `FAILURE`),其中 `MODAL` 是合法的非终态。
|
|
112
|
-
|
|
113
|
-
### 3.3 Webhook(可替代轮询)
|
|
114
|
-
|
|
115
|
-
提交时在 body 里加 `webhook` 字段(**基础地址**,服务端会自动拼 `/callback`):
|
|
116
|
-
|
|
117
|
-
| 你填的 `webhook` | 实际 POST 到 |
|
|
118
|
-
|---|---|
|
|
119
|
-
| `https://your-server.com` | `https://your-server.com/callback` |
|
|
120
|
-
| `https://your-server.com/api` | `https://your-server.com/api/callback` |
|
|
121
|
-
|
|
122
|
-
- 推送内容与 `GET /v1/tasks/{id}` 完全一致,可复用同一套解析
|
|
123
|
-
- 只在终态(`completed` / `failed`)推送,处理中不推
|
|
124
|
-
- 未在 ~10 秒内返回 `2xx` 或返回 `5xx` → 自动重试 **3 次**,间隔约 10s / 30s / 60s;返回 `4xx` 直接放弃
|
|
125
|
-
- 极端情况可能重复推送,**必须按 `id` 做幂等去重**
|
|
126
|
-
- 地址要求:公网可访问(内网地址被拒)、标准端口(80/443)、不能指向 APIMart 自己的域名
|
|
127
|
-
|
|
128
|
-
> 桌面端没有公网回调地址,本项目用轮询,不使用 Webhook。这里记录是为了说明 `webhook` 字段存在且**不应注册为用户可见参数**。
|
|
129
|
-
|
|
130
|
-
## 4. 上传文件
|
|
131
|
-
|
|
132
|
-
`POST /v1/uploads/images`,`multipart/form-data`,字段名 `file`。
|
|
133
|
-
|
|
134
|
-
| 项目 | 值 |
|
|
135
|
-
|---|---|
|
|
136
|
-
| 支持格式 | JPEG / PNG / WebP / GIF |
|
|
137
|
-
| 最大体积 | 20 MB |
|
|
138
|
-
| 有效期 | **72 小时** |
|
|
139
|
-
| 返回 | `{ "url", "filename", "content_type", "bytes", "created_at" }` |
|
|
140
|
-
| 返回 URL 形态 | `https://upload.apimart.ai/f/image/<id>-<uuid>-<name>.jpg` |
|
|
141
|
-
|
|
142
|
-
```bash
|
|
143
|
-
curl -X POST https://api.apimart.ai/v1/uploads/images \
|
|
144
|
-
-H "Authorization: Bearer $APIMART_KEY" \
|
|
145
|
-
-F 'file=@/path/to/image.jpg'
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
错误:`400` 缺文件字段 / 格式不支持,`413` 超过 20 MB,`429` 频率限制,`500` 上传失败。
|
|
149
|
-
|
|
150
|
-
**⚠️ 文档明确写了重要变更**:「为了更好的性能和成本控制,我们不再支持在生成接口中直接传入 base64 图片数据。请使用本接口上传图片,获取 URL 后再调用生成接口。」
|
|
151
|
-
|
|
152
|
-
本项目已在公共媒体预处理层接入该接口(见第 9 节):本地图片和 data URI 图片会先上传,再把公网 URL 交给生成接口。
|
|
153
|
-
|
|
154
|
-
**没有通用的视频/音频上传接口**:只有 Suno、Flow Music 等模型自带的专用上传端点。视频类输入只能传公网 URL
|
|
155
|
-
|
|
156
|
-
## 5. 获取结果
|
|
157
|
-
|
|
158
|
-
- 结果 URL 由 `upload.<域名>` 提供,公开可访问,无需鉴权
|
|
159
|
-
- 有效期由 `result.images[].expires_at`(Unix 时间戳)给出,多数模型 24 小时,Seedream 5.0 系列 72 小时
|
|
160
|
-
- 无二次签名接口,**必须在有效期内转存**
|
|
161
|
-
|
|
162
|
-
## 6. 计价查询
|
|
163
|
-
|
|
164
|
-
| 方式 | 位置 | 说明 |
|
|
165
|
-
|---|---|---|
|
|
166
|
-
| 定价中心(权威) | https://apimart.ai/zh/pricing | 公开无需登录,图片/视频模型价格以此为准 |
|
|
167
|
-
| 任务返回值 | `data.cost`(美元)、`data.credits_cost`(积分) | **实际扣费**,最可信 |
|
|
168
|
-
| 文档正文价格 | 各模型 API 文档页 | **经常过期**,与定价中心冲突时以定价中心为准(例:Seedream 5.0 Pro 文档写 $0.045/$0.09,定价中心是 $0.02928/$0.05856) |
|
|
169
|
-
| 定价 API | `GET /api/pricing/model` | **仅文本模型**,图片/视频用不上 |
|
|
170
|
-
|
|
171
|
-
Nano Banana 2 / Lite / Pro 在同一产品模型内各有「常规 EXT」与「官方」两条渠道,路由和 body schema 相同,以 `model` 精确 ID 区分;前者按张、后者按 token。SDK 以第一顺位 `role: 'channel'` 参数表达,默认常规渠道以保持 0.1.5 兼容,估价必须随渠道同步切换。
|
|
172
|
-
|
|
173
|
-
## 7. 余额查询
|
|
174
|
-
|
|
175
|
-
两个端点,返回结构几乎一致:
|
|
176
|
-
|
|
177
|
-
```bash
|
|
178
|
-
curl https://api.apimart.ai/v1/balance -H "Authorization: Bearer $KEY" # 令牌维度
|
|
179
|
-
curl https://api.apimart.ai/v1/user/balance -H "Authorization: Bearer $KEY" # 用户维度
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
```json
|
|
183
|
-
{ "success": true, "remain_balance": 10.5, "remain_credits": 105,
|
|
184
|
-
"used_balance": 2.3, "used_credits": 23, "unlimited_quota": false }
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
- 无限额度令牌:`unlimited_quota: true`,且 `remain_balance` / `remain_credits` 返回 `-1`
|
|
188
|
-
- 失败时仍返回 HTTP 200,靠 `success: false` + `message` 判断
|
|
189
|
-
- 余额单位取决于系统配置(USD 或积分)
|
|
190
|
-
|
|
191
|
-
## 8. 错误码
|
|
192
|
-
|
|
193
|
-
| HTTP | 含义 | 处理 |
|
|
194
|
-
|---|---|---|
|
|
195
|
-
| 400 | 请求参数错误 | 不重试,修参数 |
|
|
196
|
-
| 401 | 认证失败 | 不重试 |
|
|
197
|
-
| 402 | 余额不足 | 不重试,提示充值 |
|
|
198
|
-
| 403 | 无权限 | 不重试 |
|
|
199
|
-
| 429 | 频率限制 | 退避重试 |
|
|
200
|
-
| 500 | 服务器错误 | 退避重试 |
|
|
201
|
-
| 502 | 网关错误 | 退避重试 |
|
|
202
|
-
|
|
203
|
-
响应体统一为 `{"error": {"code", "message", "type"}}`,`type` 取值如 `invalid_request_error` / `authentication_error` / `payment_required` / `permission_error` / `rate_limit_error` / `server_error` / `bad_gateway`。
|
|
204
|
-
|
|
205
|
-
## 9. 本项目当前实现与差异
|
|
206
|
-
|
|
207
|
-
| 项目 | 位置 |
|
|
208
|
-
|---|---|
|
|
209
|
-
| 请求执行 | [src/providers/apimart.ts](../../../src/providers/apimart.ts) |
|
|
210
|
-
| 连接检测 / 余额 | [src/providers/connection.ts](../../../src/providers/connection.ts) → `GET /v1/balance` |
|
|
211
|
-
| 上传改写 | [src/upload/preprocess.ts](../../../src/upload/preprocess.ts) → APIMart 图片走 `uploadToApiMart` |
|
|
212
|
-
| 上传实现 | [src/upload/providers.ts](../../../src/upload/providers.ts) → `POST /v1/uploads/images` |
|
|
213
|
-
| Key / 链接配置 | [src/core/config/providers.ts](../../../../../src/core/config/providers.ts) |
|
|
214
|
-
|
|
215
|
-
已知差异:
|
|
216
|
-
|
|
217
|
-
1. Base URL 默认顺序是 `api.apimart.ai` → `api.apib.ai` → `api.aiuxu.com` → `api.aishuch.com`;仅在能证明尚未建立连接的网络故障下受控切换下一个域名,不对已建立连接的失败重放计费请求。不做地理位置判断,改用**连通性探测 + 进程内记忆**:任意一次请求成功命中某个域名后(含应用启动时的后台预热探测),该域名会被记为本次进程运行期间的优先域名,后续请求直接从它开始尝试,其余域名仍留作 fallback;缓存只在内存中,不持久化,应用重启后重新判断。实现见 [src/providers/endpoints/apimart.ts](../../../src/providers/endpoints/apimart.ts),启动预热调用见 [electron/main/index.ts](../../../../../electron/main/index.ts)(仅在已配置 APIMart Key 时触发,不阻塞启动)
|
|
218
|
-
2. 图片已经接入 `/v1/uploads/images`;APIMart 没有通用视频 / 音频上传端点,公共预处理层会明确拒绝这两类本地文件并提示改用公网 URL,具体模型有专用上传协议时再单独接入
|
|
219
|
-
3. `extractUrls` 已处理 `images[].url` 为数组的情况(`collectDeepUrls` 深挖),无需改
|
|
220
|
-
4. 未使用 Webhook(桌面端合理),不需要改
|
|
221
|
-
|
|
222
|
-
## 10. 原始链接索引
|
|
223
|
-
|
|
224
|
-
| 信息 | 链接 | 是否需登录 |
|
|
225
|
-
|---|---|---|
|
|
226
|
-
| 文档总索引(llms.txt) | https://docs.apimart.ai/llms.txt | 否 |
|
|
227
|
-
| 快速开始(Base URL、示例) | https://docs.apimart.ai/cn/quickstart | 否 |
|
|
228
|
-
| 开发指南(轮询、错误码) | https://docs.apimart.ai/cn/development | 否 |
|
|
229
|
-
| 连接与使用问题(端点地址确认) | https://docs.apimart.ai/cn/faqs/connection-usage | 否 |
|
|
230
|
-
| 上传图片 | https://docs.apimart.ai/cn/api-reference/uploads/images | 否 |
|
|
231
|
-
| 获取任务状态 | https://docs.apimart.ai/cn/api-reference/tasks/status | 否 |
|
|
232
|
-
| 任务完成回调(Webhook) | https://docs.apimart.ai/cn/api-reference/tasks/webhook | 否 |
|
|
233
|
-
| 查询令牌余额 | https://docs.apimart.ai/cn/api-reference/account/token-balance | 否 |
|
|
234
|
-
| 查询用户余额 | https://docs.apimart.ai/cn/api-reference/account/user-balance | 否 |
|
|
235
|
-
| 定价中心 | https://apimart.ai/zh/pricing | 否 |
|
|
236
|
-
| **备用访问域名面板**(`apib.ai` / `aiuxu.com` / `aishuch.com`) | https://apimart.ai/zh/login | 否(面板在登录页,但页面本身无需登录即可看到) |
|
|
237
|
-
| API Key 管理 | https://apimart.ai/keys | **是** |
|
|
238
|
-
| 控制台 | https://apimart.ai/overview | **是** |
|
|
239
|
-
|
|
240
|
-
> 文档站所有页面在 URL 末尾加 `.md` 可直接拿到原始 Markdown,例如 `https://docs.apimart.ai/cn/quickstart.md`。
|
|
1
|
+
# APIMart · 供应商基础文档
|
|
2
|
+
|
|
3
|
+
| 项目 | 内容 |
|
|
4
|
+
|---|---|
|
|
5
|
+
| 最后更新 | 2026-09-13 |
|
|
6
|
+
| 供应商类型 | 聚合中转(非模型原厂) |
|
|
7
|
+
| 项目内 providerId | `apimart` |
|
|
8
|
+
| 主域名 | `apimart.ai`(海外主站) |
|
|
9
|
+
| 中国大陆友好域名 | `apib.ai` / `aiuxu.com` / `aishuch.com`(**本目录中唯一提供大陆备用线路的供应商**) |
|
|
10
|
+
| 鉴权 | `Authorization: Bearer <API Key>` |
|
|
11
|
+
| 任务模型 | 异步为主(提交拿 `task_id` → 轮询 / Webhook) |
|
|
12
|
+
| 文档可见性 | 公开,无需登录 |
|
|
13
|
+
| 价格可见性 | 公开,无需登录 |
|
|
14
|
+
|
|
15
|
+
2026-09-13 网络恢复修复:提交请求仅在连接尚未建立时重试或切换线路;新增识别 Node `ECONNRESET` 且底层错误严格为 `Client network socket disconnected before secure TLS connection was established` 的 TLS 前断线。普通 `read ECONNRESET` / socket 断开仍不能重放提交。GET/HEAD 查询遇到连接重置可切换备用线路,不修改任务状态。最终错误 `details` 提供仅含域名、错误码、阶段、耗时的尝试序列及 `submissionState`,不记录请求路径、密钥和正文。TLS 阶段判据依据 [Node 官方实现](https://github.com/nodejs/node/blob/v24.0.0/lib/_tls_wrap.js#L1573-L1585)(公开,无需登录),其他边界为本 SDK 的保守策略,未改变供应商 API 契约。
|
|
16
|
+
|
|
17
|
+
## 1. 端点
|
|
18
|
+
|
|
19
|
+
### 1.1 Base URL 与备用域名
|
|
20
|
+
|
|
21
|
+
官方文档只写了一个地址:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
https://api.apimart.ai
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
但 APIMart 站点在登录页顶部提供了**备用访问域名**面板,原文:「网络访问受限时,请使用支持中国大陆的域名,建议收藏备用。」
|
|
28
|
+
|
|
29
|
+
| 站点域名 | 定位 | API 端点 | 上传端点 | 文档站 |
|
|
30
|
+
|---|---|---|---|---|
|
|
31
|
+
| `apimart.ai` | 海外主站 | `https://api.apimart.ai` | `https://upload.apimart.ai` | `https://docs.apimart.ai` |
|
|
32
|
+
| `apib.ai` | 中国大陆可用 | `https://api.apib.ai` | `https://upload.apib.ai` | `https://docs.apib.ai` |
|
|
33
|
+
| `aiuxu.com` | 中国大陆可用 | `https://api.aiuxu.com` | `https://upload.aiuxu.com` | `https://docs.aiuxu.com` |
|
|
34
|
+
| `aishuch.com` | 中国大陆可用 | `https://api.aishuch.com` | `https://upload.aishuch.com` | `https://docs.aishuch.com` |
|
|
35
|
+
|
|
36
|
+
**实测结论(2026-08-22,未登录 curl)**:四个 `api.*` 主机对 `GET /v1/models` 均返回 `401 {"error":{"message":"API key is required ...","type":"apimart_error"}}`,即**四条线路都是同一套 API,仅域名不同,路径与协议完全一致**;四个 `upload.*` 主机均返回 200。
|
|
37
|
+
|
|
38
|
+
> 适配含义:Base URL 应当**可配置或有受控备用线路**,而不是只硬编码 `api.apimart.ai`,否则大陆用户在主线路不可达时无法自救。当前代码状态见第 9 节(连通性探测 + 进程内记忆,不做地理位置判断)。
|
|
39
|
+
>
|
|
40
|
+
> 注意:生成结果 URL 与上传返回 URL 用的是**请求时那条线路的 `upload.*` 域名**,切换线路后旧结果链接是否仍可访问未验证,转存时按原域名下载。
|
|
41
|
+
|
|
42
|
+
### 1.2 API 端点一览
|
|
43
|
+
|
|
44
|
+
| 用途 | 方法与路径 | 说明 |
|
|
45
|
+
|---|---|---|
|
|
46
|
+
| 图片生成 | `POST /v1/images/generations` | 统一图片入口,模型由 body 的 `model` 决定 |
|
|
47
|
+
| 视频生成 | `POST /v1/videos/generations` | 统一视频入口 |
|
|
48
|
+
| Midjourney 专用 | `POST /v1/midjourney/{action}` | 18 个端点,见 [Midjourney_APIMart.md](../Midjourney/Midjourney_APIMart.md) |
|
|
49
|
+
| 查询任务 | `GET /v1/tasks/{task_id}?language=zh` | 统一任务查询 |
|
|
50
|
+
| MJ 风格查询 | `GET /v1/midjourney/{task_id}` | 额外返回 `buttons[].customId` |
|
|
51
|
+
| 上传图片 | `POST /v1/uploads/images` | multipart |
|
|
52
|
+
| 令牌余额 | `GET /v1/balance`(别名 `GET /balance`) | 单个 API Key 维度 |
|
|
53
|
+
| 用户余额 | `GET /v1/user/balance`(别名 `GET /user/balance`) | 主账号维度 |
|
|
54
|
+
| 模型列表 | `GET /v1/models`(带 `expand` 可返回参数 schema) | 文本模型元数据为主 |
|
|
55
|
+
| 文本模型定价 | `GET /api/pricing/model` | 只对 TokenPricingV2 文本模型有效,**图片/视频模型不走这个** |
|
|
56
|
+
|
|
57
|
+
## 2. 鉴权
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
Authorization: Bearer <API Key>
|
|
61
|
+
Content-Type: application/json
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
API Key 在 https://apimart.ai/keys 创建(**需登录**),可设置额度上限、模型权限白名单、IP 白名单。
|
|
65
|
+
|
|
66
|
+
## 3. 提交与查询
|
|
67
|
+
|
|
68
|
+
### 3.1 提交
|
|
69
|
+
|
|
70
|
+
同步返回 `task_id`,实际生成异步进行。本项目当前额外下发两个请求头(见 `providers/apimart.ts`):
|
|
71
|
+
|
|
72
|
+
- `Idempotency-Key: <requestId>`:APIMart 支持幂等键,重放不会重复计费
|
|
73
|
+
- `X-APIMart-Response-Version: 2026-07-27`:锁定响应结构版本,避免上游改结构导致解析失效
|
|
74
|
+
|
|
75
|
+
> 当前公开快速开始、开发指南和 API 参考中未找到这两个 Header 的稳定契约说明。文档将它们标记为“项目已有行为”,不把它们当作新客户端必须复制的公开协议。
|
|
76
|
+
|
|
77
|
+
### 3.2 轮询
|
|
78
|
+
|
|
79
|
+
`GET /v1/tasks/{task_id}?language=zh`
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"code": 200,
|
|
84
|
+
"data": {
|
|
85
|
+
"id": "task_01KA040M0HP1GJWBJYZMKX1XS1",
|
|
86
|
+
"status": "completed",
|
|
87
|
+
"cost": 0.15,
|
|
88
|
+
"credits_cost": 1.5,
|
|
89
|
+
"progress": 100,
|
|
90
|
+
"result": { "images": [{ "url": ["https://upload.apimart.ai/f/image/...png"], "expires_at": 1763174708 }] },
|
|
91
|
+
"created": 1763088289,
|
|
92
|
+
"completed": 1763088308,
|
|
93
|
+
"estimated_time": 60,
|
|
94
|
+
"actual_time": 19
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
| 字段 | 说明 |
|
|
100
|
+
|---|---|
|
|
101
|
+
| `status` | `pending` / `processing` / `completed` / `failed` / `cancelled` |
|
|
102
|
+
| `cost` | 本次任务扣费金额(美元) |
|
|
103
|
+
| `credits_cost` | 本次任务扣费积分 |
|
|
104
|
+
| `progress` | 0–100 |
|
|
105
|
+
| `estimated_time` / `actual_time` | 预计 / 实际耗时(秒) |
|
|
106
|
+
| `error` | 仅 `failed` 时存在,含 `code` / `message` / `type` |
|
|
107
|
+
|
|
108
|
+
**结果字段**:图片在 `data.result.images[]`,视频在 `data.result.videos[]`,音频在 `data.result.audios[]`。
|
|
109
|
+
**注意 `images[].url` 可能是数组**(一次出多张时),解析必须兼容 string 与 string[]。
|
|
110
|
+
|
|
111
|
+
Midjourney 有一套额外的 MJ 风格状态(`NOT_START` / `SUBMITTED` / `IN_PROGRESS` / `MODAL` / `SUCCESS` / `FAILURE`),其中 `MODAL` 是合法的非终态。
|
|
112
|
+
|
|
113
|
+
### 3.3 Webhook(可替代轮询)
|
|
114
|
+
|
|
115
|
+
提交时在 body 里加 `webhook` 字段(**基础地址**,服务端会自动拼 `/callback`):
|
|
116
|
+
|
|
117
|
+
| 你填的 `webhook` | 实际 POST 到 |
|
|
118
|
+
|---|---|
|
|
119
|
+
| `https://your-server.com` | `https://your-server.com/callback` |
|
|
120
|
+
| `https://your-server.com/api` | `https://your-server.com/api/callback` |
|
|
121
|
+
|
|
122
|
+
- 推送内容与 `GET /v1/tasks/{id}` 完全一致,可复用同一套解析
|
|
123
|
+
- 只在终态(`completed` / `failed`)推送,处理中不推
|
|
124
|
+
- 未在 ~10 秒内返回 `2xx` 或返回 `5xx` → 自动重试 **3 次**,间隔约 10s / 30s / 60s;返回 `4xx` 直接放弃
|
|
125
|
+
- 极端情况可能重复推送,**必须按 `id` 做幂等去重**
|
|
126
|
+
- 地址要求:公网可访问(内网地址被拒)、标准端口(80/443)、不能指向 APIMart 自己的域名
|
|
127
|
+
|
|
128
|
+
> 桌面端没有公网回调地址,本项目用轮询,不使用 Webhook。这里记录是为了说明 `webhook` 字段存在且**不应注册为用户可见参数**。
|
|
129
|
+
|
|
130
|
+
## 4. 上传文件
|
|
131
|
+
|
|
132
|
+
`POST /v1/uploads/images`,`multipart/form-data`,字段名 `file`。
|
|
133
|
+
|
|
134
|
+
| 项目 | 值 |
|
|
135
|
+
|---|---|
|
|
136
|
+
| 支持格式 | JPEG / PNG / WebP / GIF |
|
|
137
|
+
| 最大体积 | 20 MB |
|
|
138
|
+
| 有效期 | **72 小时** |
|
|
139
|
+
| 返回 | `{ "url", "filename", "content_type", "bytes", "created_at" }` |
|
|
140
|
+
| 返回 URL 形态 | `https://upload.apimart.ai/f/image/<id>-<uuid>-<name>.jpg` |
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
curl -X POST https://api.apimart.ai/v1/uploads/images \
|
|
144
|
+
-H "Authorization: Bearer $APIMART_KEY" \
|
|
145
|
+
-F 'file=@/path/to/image.jpg'
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
错误:`400` 缺文件字段 / 格式不支持,`413` 超过 20 MB,`429` 频率限制,`500` 上传失败。
|
|
149
|
+
|
|
150
|
+
**⚠️ 文档明确写了重要变更**:「为了更好的性能和成本控制,我们不再支持在生成接口中直接传入 base64 图片数据。请使用本接口上传图片,获取 URL 后再调用生成接口。」
|
|
151
|
+
|
|
152
|
+
本项目已在公共媒体预处理层接入该接口(见第 9 节):本地图片和 data URI 图片会先上传,再把公网 URL 交给生成接口。
|
|
153
|
+
|
|
154
|
+
**没有通用的视频/音频上传接口**:只有 Suno、Flow Music 等模型自带的专用上传端点。视频类输入只能传公网 URL;本项目对本地视频、音频经通用文件上传服务(KIE / Fal,按设置首选与换用)托管成公网地址后再提交(2026-11-08 起)。
|
|
155
|
+
|
|
156
|
+
## 5. 获取结果
|
|
157
|
+
|
|
158
|
+
- 结果 URL 由 `upload.<域名>` 提供,公开可访问,无需鉴权
|
|
159
|
+
- 有效期由 `result.images[].expires_at`(Unix 时间戳)给出,多数模型 24 小时,Seedream 5.0 系列 72 小时
|
|
160
|
+
- 无二次签名接口,**必须在有效期内转存**
|
|
161
|
+
|
|
162
|
+
## 6. 计价查询
|
|
163
|
+
|
|
164
|
+
| 方式 | 位置 | 说明 |
|
|
165
|
+
|---|---|---|
|
|
166
|
+
| 定价中心(权威) | https://apimart.ai/zh/pricing | 公开无需登录,图片/视频模型价格以此为准 |
|
|
167
|
+
| 任务返回值 | `data.cost`(美元)、`data.credits_cost`(积分) | **实际扣费**,最可信 |
|
|
168
|
+
| 文档正文价格 | 各模型 API 文档页 | **经常过期**,与定价中心冲突时以定价中心为准(例:Seedream 5.0 Pro 文档写 $0.045/$0.09,定价中心是 $0.02928/$0.05856) |
|
|
169
|
+
| 定价 API | `GET /api/pricing/model` | **仅文本模型**,图片/视频用不上 |
|
|
170
|
+
|
|
171
|
+
Nano Banana 2 / Lite / Pro 在同一产品模型内各有「常规 EXT」与「官方」两条渠道,路由和 body schema 相同,以 `model` 精确 ID 区分;前者按张、后者按 token。SDK 以第一顺位 `role: 'channel'` 参数表达,默认常规渠道以保持 0.1.5 兼容,估价必须随渠道同步切换。
|
|
172
|
+
|
|
173
|
+
## 7. 余额查询
|
|
174
|
+
|
|
175
|
+
两个端点,返回结构几乎一致:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
curl https://api.apimart.ai/v1/balance -H "Authorization: Bearer $KEY" # 令牌维度
|
|
179
|
+
curl https://api.apimart.ai/v1/user/balance -H "Authorization: Bearer $KEY" # 用户维度
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
```json
|
|
183
|
+
{ "success": true, "remain_balance": 10.5, "remain_credits": 105,
|
|
184
|
+
"used_balance": 2.3, "used_credits": 23, "unlimited_quota": false }
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
- 无限额度令牌:`unlimited_quota: true`,且 `remain_balance` / `remain_credits` 返回 `-1`
|
|
188
|
+
- 失败时仍返回 HTTP 200,靠 `success: false` + `message` 判断
|
|
189
|
+
- 余额单位取决于系统配置(USD 或积分)
|
|
190
|
+
|
|
191
|
+
## 8. 错误码
|
|
192
|
+
|
|
193
|
+
| HTTP | 含义 | 处理 |
|
|
194
|
+
|---|---|---|
|
|
195
|
+
| 400 | 请求参数错误 | 不重试,修参数 |
|
|
196
|
+
| 401 | 认证失败 | 不重试 |
|
|
197
|
+
| 402 | 余额不足 | 不重试,提示充值 |
|
|
198
|
+
| 403 | 无权限 | 不重试 |
|
|
199
|
+
| 429 | 频率限制 | 退避重试 |
|
|
200
|
+
| 500 | 服务器错误 | 退避重试 |
|
|
201
|
+
| 502 | 网关错误 | 退避重试 |
|
|
202
|
+
|
|
203
|
+
响应体统一为 `{"error": {"code", "message", "type"}}`,`type` 取值如 `invalid_request_error` / `authentication_error` / `payment_required` / `permission_error` / `rate_limit_error` / `server_error` / `bad_gateway`。
|
|
204
|
+
|
|
205
|
+
## 9. 本项目当前实现与差异
|
|
206
|
+
|
|
207
|
+
| 项目 | 位置 |
|
|
208
|
+
|---|---|
|
|
209
|
+
| 请求执行 | [src/providers/apimart.ts](../../../src/providers/apimart.ts) |
|
|
210
|
+
| 连接检测 / 余额 | [src/providers/connection.ts](../../../src/providers/connection.ts) → `GET /v1/balance` |
|
|
211
|
+
| 上传改写 | [src/upload/preprocess.ts](../../../src/upload/preprocess.ts) → APIMart 图片走 `uploadToApiMart` |
|
|
212
|
+
| 上传实现 | [src/upload/providers.ts](../../../src/upload/providers.ts) → `POST /v1/uploads/images` |
|
|
213
|
+
| Key / 链接配置 | [src/core/config/providers.ts](../../../../../src/core/config/providers.ts) |
|
|
214
|
+
|
|
215
|
+
已知差异:
|
|
216
|
+
|
|
217
|
+
1. Base URL 默认顺序是 `api.apimart.ai` → `api.apib.ai` → `api.aiuxu.com` → `api.aishuch.com`;仅在能证明尚未建立连接的网络故障下受控切换下一个域名,不对已建立连接的失败重放计费请求。不做地理位置判断,改用**连通性探测 + 进程内记忆**:任意一次请求成功命中某个域名后(含应用启动时的后台预热探测),该域名会被记为本次进程运行期间的优先域名,后续请求直接从它开始尝试,其余域名仍留作 fallback;缓存只在内存中,不持久化,应用重启后重新判断。实现见 [src/providers/endpoints/apimart.ts](../../../src/providers/endpoints/apimart.ts),启动预热调用见 [electron/main/index.ts](../../../../../electron/main/index.ts)(仅在已配置 APIMart Key 时触发,不阻塞启动)
|
|
218
|
+
2. 图片已经接入 `/v1/uploads/images`;APIMart 没有通用视频 / 音频上传端点,公共预处理层会明确拒绝这两类本地文件并提示改用公网 URL,具体模型有专用上传协议时再单独接入
|
|
219
|
+
3. `extractUrls` 已处理 `images[].url` 为数组的情况(`collectDeepUrls` 深挖),无需改
|
|
220
|
+
4. 未使用 Webhook(桌面端合理),不需要改
|
|
221
|
+
|
|
222
|
+
## 10. 原始链接索引
|
|
223
|
+
|
|
224
|
+
| 信息 | 链接 | 是否需登录 |
|
|
225
|
+
|---|---|---|
|
|
226
|
+
| 文档总索引(llms.txt) | https://docs.apimart.ai/llms.txt | 否 |
|
|
227
|
+
| 快速开始(Base URL、示例) | https://docs.apimart.ai/cn/quickstart | 否 |
|
|
228
|
+
| 开发指南(轮询、错误码) | https://docs.apimart.ai/cn/development | 否 |
|
|
229
|
+
| 连接与使用问题(端点地址确认) | https://docs.apimart.ai/cn/faqs/connection-usage | 否 |
|
|
230
|
+
| 上传图片 | https://docs.apimart.ai/cn/api-reference/uploads/images | 否 |
|
|
231
|
+
| 获取任务状态 | https://docs.apimart.ai/cn/api-reference/tasks/status | 否 |
|
|
232
|
+
| 任务完成回调(Webhook) | https://docs.apimart.ai/cn/api-reference/tasks/webhook | 否 |
|
|
233
|
+
| 查询令牌余额 | https://docs.apimart.ai/cn/api-reference/account/token-balance | 否 |
|
|
234
|
+
| 查询用户余额 | https://docs.apimart.ai/cn/api-reference/account/user-balance | 否 |
|
|
235
|
+
| 定价中心 | https://apimart.ai/zh/pricing | 否 |
|
|
236
|
+
| **备用访问域名面板**(`apib.ai` / `aiuxu.com` / `aishuch.com`) | https://apimart.ai/zh/login | 否(面板在登录页,但页面本身无需登录即可看到) |
|
|
237
|
+
| API Key 管理 | https://apimart.ai/keys | **是** |
|
|
238
|
+
| 控制台 | https://apimart.ai/overview | **是** |
|
|
239
|
+
|
|
240
|
+
> 文档站所有页面在 URL 末尾加 `.md` 可直接拿到原始 Markdown,例如 `https://docs.apimart.ai/cn/quickstart.md`。
|