{"repo": "arcships/aimux", "files": {"docs/internal/provider-research/_p1_thin_data.json": {"f46485fa2a15ec0677332c3a53050df18515a4ca": {"t": 1785595175.0932891, "n": 17287, "h": "4d2bcf11baef69fa", "c": "[\n {\n \"id\": \"chutes\",\n \"name\": \"Chutes\",\n \"base_url\": \"https://llm.chutes.ai/v1\",\n \"env_var\": \"CHUTES_API_KEY\",\n \"model\": \"default\",\n \"file\": \"batch-01.md\"\n },\n {\n \"id\": \"meta\",\n \"name\": \"Meta\",\n \"base_url\": \"https://api.meta.ai/v1\",\n \"env_var\": \"MODEL_API_KEY\",\n \"model\": \"meta/muse-spark-1.1\",\n \"file\": \"batch-01.md\"\n },\n {\n \"id\": \"poe\",\n \"name\": \"Poe\",\n \"base_url\": \"https://api.poe.com/v1\",\n \"env_var\": \"POE_API_KEY\",\n \"model\": \"anthropic/claude-haiku-3\",\n \"file\": \"batch-01.md\"\n },\n {\n \"id\": \"wandb\",\n \"name\": \"Weights & Biases\",\n \"base_url\": \"https://api.inference.wandb.ai/v1\",\n \"env_var\": \"WANDB_API_KEY\",\n \"model\": \"JetBrains/Mellum2-12B-A2.5B-Instruct\",\n \"file\": \"batch-01.md\"\n },\n {\n \"id\": \"ai_router\",\n \"name\": \"AI-ROUTER\",\n \"base_url\": \"https://api.ai-router.dev/v1\",\n \"env_var\": \"AI_ROUTER_API_KEY\",\n \"model\": \"/v1/models\",\n \"file\": \"batch-03.md\"\n },\n {\n \"id\": \"aki_io\",\n \"name\": \"AKI.IO\",\n \"base_url\": \"https://aki.io/openai/v1\",\n \"env_var\": \"AKI_IO_API_KEY\",\n \"model\": \"llama3-chat-70b\",\n \"file\": \"batch-03.md\"\n },\n {\n \"id\": \"alibaba_coding_plan\",\n \"name\": \"Alibaba Coding Plan\",\n \"base_url\": \"https://coding-intl.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"model\": \"sk-sp-xxxxx\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"alibaba_coding_plan_cn\",\n \"name\": \"Alibaba Coding Plan (China)\",\n \"base_url\": \"https://coding.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"model\": \"sk-sp-xxxxx\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"anyapi\",\n \"name\": \"AnyAPI\",\n \"base_url\": \"https://api.anyapi.ai/v1\",\n \"env_var\": \"ANYAPI_KEY\",\n \"model\": \"messages\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"auriko\",\n \"name\": \"Auriko\",\n \"base_url\": \"https://api.auriko.ai/v1\",\n \"env_var\": \"AURIKO_API_KEY\",\n \"model\": \"budget_exhausted\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"baidu_v2\",\n \"name\": \"BaiduV2\",\n \"base_url\": \"https://qianfan.baidubce.com/v2\",\n \"env_var\": \"QIANFAN_API_KEY\",\n \"model\": \"qianfan/\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"bailing\",\n \"name\": \"Bailing\",\n \"base_url\": \"https://api.ant-ling.com/v1\",\n \"env_var\": \"BAILING_API_TOKEN\",\n \"model\": \"enable_search\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"berget\",\n \"name\": \"Berget.AI\",\n \"base_url\": \"https://api.berget.ai/v1\",\n \"env_var\": \"BERGET_API_KEY\",\n \"model\": \"google/\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"claudinio\",\n \"name\": \"Claudinio\",\n \"base_url\": \"https://api.claudin.io\",\n \"env_var\": \"CLAUDINIO_API_KEY\",\n \"model\": \"max_tokens\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"cloudferro_sherlock\",\n \"name\": \"CloudFerro Sherlock\",\n \"base_url\": \"https://api-sherlock.cloudferro.com/openai/v1\",\n \"env_var\": \"CLOUDFERRO_SHERLOCK_API_KEY\",\n \"model\": \"MiniMaxAI/MiniMax-M2.5\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"cloudflare_workers_ai\",\n \"name\": \"Cloudflare Workers AI\",\n \"base_url\": \"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\",\n \"env_var\": \"CLOUDFLARE_API_KEY\",\n \"model\": \"@cf/meta/llama-3.1-8b-instruct\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"cortecs\",\n \"name\": \"Cortecs\",\n \"base_url\": \"https://api.cortecs.ai/v1/\",\n \"env_var\": \"CORTECS_API_KEY\",\n \"model\": \"claude-4-5-sonnet\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"crof\",\n \"name\": \"CrofAI\",\n \"base_url\": \"https://crof.ai/v1\",\n \"env_var\": \"CROF_API_KEY\",\n \"model\": \"deepseek-v3.2\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"crossmodel\",\n \"name\": \"CrossModel\",\n \"base_url\": \"https://api.crossmodel.ai/v1\",\n \"env_var\": \"CROSSMODEL_API_KEY\",\n \"model\": \"vendor/model\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"crusoe\",\n \"name\": \"Crusoe\",\n \"base_url\": \"https://api.inference.crusoecloud.com/v1\",\n \"env_var\": \"CRUSOE_API_KEY\",\n \"model\": \"deepseek-ai/DeepSeek-V3-0324\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"daoxe\",\n \"name\": \"DaoXE\",\n \"base_url\": \"https://daoxe.com/v1\",\n \"env_var\": \"DAOXE_API_KEY\",\n \"model\": \"claude-sonnet-4-20250514\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"dinference\",\n \"name\": \"DInference\",\n \"base_url\": \"https://api.dinference.com/v1\",\n \"env_var\": \"DINFERENCE_API_KEY\",\n \"model\": \"glm-5\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"drun\",\n \"name\": \"D.Run (China)\",\n \"base_url\": \"https://chat.d.run/v1\",\n \"env_var\": \"DRUN_API_KEY\",\n \"model\": \"public/deepseek-r1\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"ebcloud\",\n \"name\": \"EBCloud\",\n \"base_url\": \"https://maas-api.ebcloud.com/v1\",\n \"env_var\": \"EBCLOUD_API_KEY\",\n \"model\": \"DeepSeek-V4-Flash\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"empiriolabs\",\n \"name\": \"EmpirioLabs AI\",\n \"base_url\": \"https://api.empiriolabs.ai/v1\",\n \"env_var\": \"EMPIRIOLABS_API_KEY\",\n \"model\": \"sk-empiriolabs-\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"frogbot\",\n \"name\": \"FrogBot\",\n \"base_url\": \"https://app.frogbot.ai/api/v1\",\n \"env_var\": \"FROGBOT_API_KEY\",\n \"model\": \"claude-haiku-4-5\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"gmicloud\",\n \"name\": \"GMI Cloud\",\n \"base_url\": \"https://api.gmi-serving.com/v1\",\n \"env_var\": \"GMI_API_KEY\",\n \"model\": \"Qwen/Qwen3.7-Max\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"hpc_ai\",\n \"name\": \"HPC-AI\",\n \"base_url\": \"https://api.hpc-ai.com/inference/v1\",\n \"env_var\": \"INFERENCE_API_KEY\",\n \"model\": \"anthropic/claude-opus-4.7\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"inceptron\",\n \"name\": \"Inceptron\",\n \"base_url\": \"https://api.inceptron.io/v1\",\n \"env_var\": \"INCEPTRON_API_KEY\",\n \"model\": \"MiniMaxAI/MiniMax-M2.5\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"inferx\",\n \"name\": \"InferX\",\n \"base_url\": \"https://model.inferx.net/v1\",\n \"env_var\": \"INFERX_API_KEY\",\n \"model\": \"Qwen/Qwen3.6-35B-A3B\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"io_net\",\n \"name\": \"IO.NET\",\n \"base_url\": \"https://api.intelligence.io.solutions/api/v1\",\n \"env_var\": \"IOINTELLIGENCE_API_KEY\",\n \"model\": \"meta-llama/Llama-3.3-70B-Instruct\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"jiekou\",\n \"name\": \"Jiekou.AI\",\n \"base_url\": \"https://api.highwayapi.ai/openai\",\n \"env_var\": \"JIEKOU_API_KEY\",\n \"model\": \"deepseek/deepseek-r1\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"kenari\",\n \"name\": \"Kenari\",\n \"base_url\": \"https://kenari.id/v1\",\n \"env_var\": \"KENARI_API_KEY\",\n \"model\": \"gpt-4o-mini\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"kimi\",\n \"name\": \"Kimi\",\n \"base_url\": \"https://api.moonshot.ai/v1\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"model\": \"thinking\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"kimi_for_coding\",\n \"name\": \"Kimi For Coding\",\n \"base_url\": \"https://api.kimi.com/coding/v1\",\n \"env_var\": \"KIMI_API_KEY\",\n \"model\": \"k3\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"lilac\",\n \"name\": \"Lilac\",\n \"base_url\": \"https://api.getlilac.com/v1\",\n \"env_var\": \"LILAC_API_KEY\",\n \"model\": \"moonshotai/kimi-k2.6\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"llama\",\n \"name\": \"Llama\",\n \"base_url\": \"https://api.llama.com/compat/v1/\",\n \"env_var\": \"LLAMA_API_KEY\",\n \"model\": \"Llama-4-Scout-17B-16E-Instruct-FP8\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"llmgateway\",\n \"name\": \"LLM Gateway\",\n \"base_url\": \"https://api.llmgateway.io/v1\",\n \"env_var\": \"LLM_GATEWAY_API_KEY\",\n \"model\": \"gpt-4o\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"llmtr\",\n \"name\": \"LLMTR\",\n \"base_url\": \"https://llmtr.com/v1\",\n \"env_var\": \"LLMTR_API_KEY\",\n \"model\": \"model\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"lucidquery\",\n \"name\": \"LucidQuery\",\n \"base_url\": \"https://api.lucidquery.com/v1\",\n \"env_var\": \"LUCIDQUERY_API_KEY\",\n \"model\": \"lucidquery-agi-01-frontier\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"meganova\",\n \"name\": \"Meganova\",\n \"base_url\": \"https://api.meganova.ai/v1\",\n \"env_var\": \"MEGANOVA_API_KEY\",\n \"model\": \"Qwen/Qwen3-235B-A22B-Instruct-2507\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"merge_gateway\",\n \"name\": \"Merge Gateway\",\n \"base_url\": \"https://api-gateway.merge.dev/v1/openai\",\n \"env_var\": \"MERGE_GATEWAY_API_KEY\",\n \"model\": \"gpt-5.2\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"mimo\",\n \"name\": \"Mimo\",\n \"base_url\": \"https://api.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"model\": \"mimo-v2.5-pro\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"minimax_cn\",\n \"name\": \"MiniMax (minimaxi.com)\",\n \"base_url\": \"https://api.minimaxi.com/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"model\": \"MiniMax-M2\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"mixlayer\",\n \"name\": \"Mixlayer\",\n \"base_url\": \"https://models.mixlayer.ai/v1\",\n \"env_var\": \"MIXLAYER_API_KEY\",\n \"model\": \"qwen/\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"moark\",\n \"name\": \"Moark\",\n \"base_url\": \"https://api.moark.com/v1\",\n \"env_var\": \"MOARK_API_KEY\",\n \"model\": \"GLM-4.7\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"model_oracle_ai\",\n \"name\": \"Model Oracle AI\",\n \"base_url\": \"https://api.modeloracle.com/api/v1\",\n \"env_var\": \"MODEL_ORACLE_API_KEY\",\n \"model\": \"reasoning_effort\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"neon\",\n \"name\": \"Neon\",\n \"base_url\": \"https:///v1\",\n \"env_var\": \"NEON_AI_GATEWAY_TOKEN\",\n \"model\": \"nt_live_...\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"neuralwatt\",\n \"name\": \"Neuralwatt\",\n \"base_url\": \"https://api.neuralwatt.com/v1\",\n \"env_var\": \"NEURALWATT_API_KEY\",\n \"model\": \"meta-llama/\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"ofox\",\n \"name\": \"OfoxAI\",\n \"base_url\": \"https://api.ofox.ai/v1\",\n \"env_var\": \"OFOX_API_KEY\",\n \"model\": \"Three Protocols, One Gateway\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"perplexity_agent\",\n \"name\": \"Perplexity Agent\",\n \"base_url\": \"https://api.perplexity.ai/v1\",\n \"env_var\": \"PERPLEXITY_API_KEY\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"poolside\",\n \"name\": \"Poolside\",\n \"base_url\": \"https://inference.poolside.ai/v1\",\n \"env_var\": \"POOLSIDE_API_KEY\",\n \"model\": \"poolside/laguna-s-2.1\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"ppinfra\",\n \"name\": \"PPInfra(PPIO 派欧云)\",\n \"base_url\": \"https://api.ppio.com/openai\",\n \"env_var\": \"PPIO_API_KEY\",\n \"model\": \"deepseek/deepseek-v3-0324\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"qihang_ai\",\n \"name\": \"QiHang(启航 AI)\",\n \"base_url\": \"https://api.qhaigc.net/v1\",\n \"env_var\": \"QIHANG_API_KEY\",\n \"model\": \"gpt-4o\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"routing_run\",\n \"name\": \"routing.run\",\n \"base_url\": \"https://api.routing.run/v1\",\n \"env_var\": \"ROUTING_RUN_API_KEY\",\n \"model\": \"routing-run/claude-opus-4-8\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"snowflake_cortex\",\n \"name\": \"Snowflake Cortex\",\n \"base_url\": \"https://.snowflakecomputing.com/api/v2/cortex/v1\",\n \"env_var\": \"SNOWFLAKE_CORTEX_PAT\",\n \"model\": \"claude-sonnet-4-5\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"stackit\",\n \"name\": \"STACKIT\",\n \"base_url\": \"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\",\n \"env_var\": \"STACKIT_API_KEY\",\n \"model\": \"Qwen/Qwen3-VL-235B-A22B-Instruct-FP8\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"stepfun_ai_step_plan\",\n \"name\": \"StepFun Step Plan (Global)\",\n \"base_url\": \"https://api.stepfun.ai/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"model\": \"step-3.7-flash\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"stepfun_step_plan\",\n \"name\": \"StepFun Step Plan (China)\",\n \"base_url\": \"https://api.stepfun.com/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"model\": \"step-3.7-flash\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"subconscious\",\n \"name\": \"Subconscious\",\n \"base_url\": \"https://api.subconscious.dev/v1\",\n \"env_var\": \"SUBCONSCIOUS_API_KEY\",\n \"model\": \"subconscious/tim-qwen3.6-27b\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"tencent_tokenhub\",\n \"name\": \"Tencent TokenHub\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/v1\",\n \"env_var\": \"TENCENT_TOKENHUB_API_KEY\",\n \"model\": \"chat.completion\",\n \"file\": \"batch-11.md\"\n },\n {\n \"id\": \"the_grid_ai\",\n \"name\": \"The Grid AI\",\n \"base_url\": \"https://thegrid.ai/docs\",\n \"env_var\": \"THEGRIDAI_API_KEY\",\n \"model\": \"text-prime\",\n \"file\": \"batch-11.md\"\n },\n {\n \"id\": \"tokenflux\",\n \"name\": \"Tokenflux\",\n \"base_url\": \"https://tokenflux.ai/v1\",\n \"env_var\": \"TOKENFLUX_API_KEY\",\n \"model\": \"chat.completion\",\n \"file\": \"batch-11.md\"\n },\n {\n \"id\": \"trustedrouter\",\n \"name\": \"TrustedRouter\",\n \"base_url\": \"https://api.trustedrouter.com/v1\",\n \"env_var\": \"TRUSTEDROUTER_API_KEY\",\n \"model\": \"trustedrouter/auto\",\n \"file\": \"batch-11.md\"\n },\n {\n \"id\": \"unorouter\",\n \"name\": \"UnoRouter\",\n \"base_url\": \"https://unorouter.com/en\",\n \"env_var\": \"UNOROUTER_API_KEY\",\n \"model\": \"claude-haiku-4-5-20251001\",\n \"file\": \"batch-12.md\"\n },\n {\n \"id\": \"vivgrid\",\n \"name\": \"Vivgrid\",\n \"base_url\": \"https://api.vivgrid.com/v1\",\n \"env_var\": \"VIVGRID_API_KEY\",\n \"model\": \"messages\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"volc_engine\",\n \"name\": \"VolcEngine\",\n \"base_url\": \"https://ark.cn-beijing.volces.com\",\n \"env_var\": \"ARK_API_KEY\",\n \"model\": \"ep-20240xxxxxxxx\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"vultr\",\n \"name\": \"Vultr\",\n \"base_url\": \"https://api.vultrinference.com/v1\",\n \"env_var\": \"VULTR_API_KEY\",\n \"model\": \"messages\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"xunfei\",\n \"name\": \"Xunfei\",\n \"base_url\": \"https://spark-api-open.xf-yun.com/v1\",\n \"env_var\": \"XUNFEI_API_PASSWORD\",\n \"model\": \"messages\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"zai_coding_plan\",\n \"name\": \"Z.AI Coding Plan\",\n \"base_url\": \"https://api.z.ai/api/anthropic\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"model\": \"glm-4.5-air\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"zhipu_v4\",\n \"name\": \"ZhipuV4\",\n \"base_url\": \"https://open.bigmodel.cn\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"model\": \"/api/paas/v4\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"alibaba_token_plan\",\n \"name\": \"Alibaba Token Plan\",\n \"base_url\": \"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"model\": \"MiniMax-M2.5\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"alibaba_token_plan_cn\",\n \"name\": \"Alibaba Token Plan (China)\",\n \"base_url\": \"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"model\": \"MiniMax-M2.5\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"bedrock_mantle\",\n \"name\": \"Bedrock Mantle\",\n \"base_url\": \"https://bedrock-mantle.{region}.api.aws/v1\",\n \"env_var\": \"BEDROCK_MANTLE_API_KEY\",\n \"model\": \"us-east-1\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"cherryin\",\n \"name\": \"cherryin\",\n \"base_url\": \"https://open.cherryin.net\",\n \"env_var\": \"CHERRYIN_API_KEY\",\n \"model\": \"BAAI/bge-reranker-v2-m3(free)\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"digitalocean\",\n \"name\": \"DigitalOcean\",\n \"base_url\": \"https://inference.do-ai.run\",\n \"env_var\": \"DIGITALOCEAN_ACCESS_TOKEN\",\n \"model\": \"anthropic-claude-3.5-sonnet\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"doubao\",\n \"name\": \"Doubao\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"model\": \"deepseek-v3-2-251201\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"evroc\",\n \"name\": \"evroc\",\n \"base_url\": \"https://models.think.evroc.com/v1\",\n \"env_var\": \"EVROC_API_KEY\",\n \"model\": \"KBLab/kb-whisper-large\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"llamagate\",\n \"name\": \"Llamagate\",\n \"base_url\": \"https://api.llamagate.dev/v1\",\n \"env_var\": \"LLAMAGATE_API_KEY\",\n \"model\": \"llamagate/codellama-7b\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"zhipuai_coding_plan\",\n \"name\": \"Zhipu AI Coding Plan\",\n \"base_url\": \"https://docs.bigmodel.cn/cn/coding-plan/quick-start\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"model\": \"glm-4.5-air\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"nearai\",\n \"name\": \"NEAR AI Cloud\",\n \"base_url\": \"https://cloud-api.near.ai/v1\",\n \"env_var\": \"NEARAI_API_KEY\",\n \"model\": \"Qwen/Qwen3-30B-A3B-Instruct-2507\",\n \"file\": \"batch-15.md\"\n },\n {\n \"id\": \"oci\",\n \"name\": \"OCI\",\n \"base_url\": \"https://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1\",\n \"env_var\": \"OCI_API_KEY\",\n \"model\": \"oci/cohere.command-a-03-2025\",\n \"file\": \"batch-15.md\"\n },\n {\n \"id\": \"regolo_ai\",\n \"name\": \"Regolo AI\",\n \"base_url\": \"https://api.regolo.ai/v1\",\n \"env_var\": \"REGOLO_API_KEY\",\n \"model\": \"llama-3.3-70b-instruct\",\n \"file\": \"batch-15.md\"\n },\n {\n \"id\": \"zenmux\",\n \"name\": \"ZenMux\",\n \"base_url\": \"https://zenmux.ai/api/v1\",\n \"env_var\": \"ZENMUX_API_KEY\",\n \"model\": \"anthropic/claude-opus-4\",\n \"file\": \"batch-15.md\"\n }\n]"}, "d4bfcae94f036812a833dbb6ddb703136eed4760": {"t": 1785809851.5523002, "n": 17287, "h": "4d2bcf11baef69fa", "c": "[\n {\n \"id\": \"chutes\",\n \"name\": \"Chutes\",\n \"base_url\": \"https://llm.chutes.ai/v1\",\n \"env_var\": \"CHUTES_API_KEY\",\n \"model\": \"default\",\n \"file\": \"batch-01.md\"\n },\n {\n \"id\": \"meta\",\n \"name\": \"Meta\",\n \"base_url\": \"https://api.meta.ai/v1\",\n \"env_var\": \"MODEL_API_KEY\",\n \"model\": \"meta/muse-spark-1.1\",\n \"file\": \"batch-01.md\"\n },\n {\n \"id\": \"poe\",\n \"name\": \"Poe\",\n \"base_url\": \"https://api.poe.com/v1\",\n \"env_var\": \"POE_API_KEY\",\n \"model\": \"anthropic/claude-haiku-3\",\n \"file\": \"batch-01.md\"\n },\n {\n \"id\": \"wandb\",\n \"name\": \"Weights & Biases\",\n \"base_url\": \"https://api.inference.wandb.ai/v1\",\n \"env_var\": \"WANDB_API_KEY\",\n \"model\": \"JetBrains/Mellum2-12B-A2.5B-Instruct\",\n \"file\": \"batch-01.md\"\n },\n {\n \"id\": \"ai_router\",\n \"name\": \"AI-ROUTER\",\n \"base_url\": \"https://api.ai-router.dev/v1\",\n \"env_var\": \"AI_ROUTER_API_KEY\",\n \"model\": \"/v1/models\",\n \"file\": \"batch-03.md\"\n },\n {\n \"id\": \"aki_io\",\n \"name\": \"AKI.IO\",\n \"base_url\": \"https://aki.io/openai/v1\",\n \"env_var\": \"AKI_IO_API_KEY\",\n \"model\": \"llama3-chat-70b\",\n \"file\": \"batch-03.md\"\n },\n {\n \"id\": \"alibaba_coding_plan\",\n \"name\": \"Alibaba Coding Plan\",\n \"base_url\": \"https://coding-intl.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"model\": \"sk-sp-xxxxx\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"alibaba_coding_plan_cn\",\n \"name\": \"Alibaba Coding Plan (China)\",\n \"base_url\": \"https://coding.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"model\": \"sk-sp-xxxxx\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"anyapi\",\n \"name\": \"AnyAPI\",\n \"base_url\": \"https://api.anyapi.ai/v1\",\n \"env_var\": \"ANYAPI_KEY\",\n \"model\": \"messages\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"auriko\",\n \"name\": \"Auriko\",\n \"base_url\": \"https://api.auriko.ai/v1\",\n \"env_var\": \"AURIKO_API_KEY\",\n \"model\": \"budget_exhausted\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"baidu_v2\",\n \"name\": \"BaiduV2\",\n \"base_url\": \"https://qianfan.baidubce.com/v2\",\n \"env_var\": \"QIANFAN_API_KEY\",\n \"model\": \"qianfan/\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"bailing\",\n \"name\": \"Bailing\",\n \"base_url\": \"https://api.ant-ling.com/v1\",\n \"env_var\": \"BAILING_API_TOKEN\",\n \"model\": \"enable_search\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"berget\",\n \"name\": \"Berget.AI\",\n \"base_url\": \"https://api.berget.ai/v1\",\n \"env_var\": \"BERGET_API_KEY\",\n \"model\": \"google/\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"claudinio\",\n \"name\": \"Claudinio\",\n \"base_url\": \"https://api.claudin.io\",\n \"env_var\": \"CLAUDINIO_API_KEY\",\n \"model\": \"max_tokens\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"cloudferro_sherlock\",\n \"name\": \"CloudFerro Sherlock\",\n \"base_url\": \"https://api-sherlock.cloudferro.com/openai/v1\",\n \"env_var\": \"CLOUDFERRO_SHERLOCK_API_KEY\",\n \"model\": \"MiniMaxAI/MiniMax-M2.5\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"cloudflare_workers_ai\",\n \"name\": \"Cloudflare Workers AI\",\n \"base_url\": \"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\",\n \"env_var\": \"CLOUDFLARE_API_KEY\",\n \"model\": \"@cf/meta/llama-3.1-8b-instruct\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"cortecs\",\n \"name\": \"Cortecs\",\n \"base_url\": \"https://api.cortecs.ai/v1/\",\n \"env_var\": \"CORTECS_API_KEY\",\n \"model\": \"claude-4-5-sonnet\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"crof\",\n \"name\": \"CrofAI\",\n \"base_url\": \"https://crof.ai/v1\",\n \"env_var\": \"CROF_API_KEY\",\n \"model\": \"deepseek-v3.2\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"crossmodel\",\n \"name\": \"CrossModel\",\n \"base_url\": \"https://api.crossmodel.ai/v1\",\n \"env_var\": \"CROSSMODEL_API_KEY\",\n \"model\": \"vendor/model\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"crusoe\",\n \"name\": \"Crusoe\",\n \"base_url\": \"https://api.inference.crusoecloud.com/v1\",\n \"env_var\": \"CRUSOE_API_KEY\",\n \"model\": \"deepseek-ai/DeepSeek-V3-0324\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"daoxe\",\n \"name\": \"DaoXE\",\n \"base_url\": \"https://daoxe.com/v1\",\n \"env_var\": \"DAOXE_API_KEY\",\n \"model\": \"claude-sonnet-4-20250514\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"dinference\",\n \"name\": \"DInference\",\n \"base_url\": \"https://api.dinference.com/v1\",\n \"env_var\": \"DINFERENCE_API_KEY\",\n \"model\": \"glm-5\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"drun\",\n \"name\": \"D.Run (China)\",\n \"base_url\": \"https://chat.d.run/v1\",\n \"env_var\": \"DRUN_API_KEY\",\n \"model\": \"public/deepseek-r1\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"ebcloud\",\n \"name\": \"EBCloud\",\n \"base_url\": \"https://maas-api.ebcloud.com/v1\",\n \"env_var\": \"EBCLOUD_API_KEY\",\n \"model\": \"DeepSeek-V4-Flash\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"empiriolabs\",\n \"name\": \"EmpirioLabs AI\",\n \"base_url\": \"https://api.empiriolabs.ai/v1\",\n \"env_var\": \"EMPIRIOLABS_API_KEY\",\n \"model\": \"sk-empiriolabs-\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"frogbot\",\n \"name\": \"FrogBot\",\n \"base_url\": \"https://app.frogbot.ai/api/v1\",\n \"env_var\": \"FROGBOT_API_KEY\",\n \"model\": \"claude-haiku-4-5\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"gmicloud\",\n \"name\": \"GMI Cloud\",\n \"base_url\": \"https://api.gmi-serving.com/v1\",\n \"env_var\": \"GMI_API_KEY\",\n \"model\": \"Qwen/Qwen3.7-Max\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"hpc_ai\",\n \"name\": \"HPC-AI\",\n \"base_url\": \"https://api.hpc-ai.com/inference/v1\",\n \"env_var\": \"INFERENCE_API_KEY\",\n \"model\": \"anthropic/claude-opus-4.7\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"inceptron\",\n \"name\": \"Inceptron\",\n \"base_url\": \"https://api.inceptron.io/v1\",\n \"env_var\": \"INCEPTRON_API_KEY\",\n \"model\": \"MiniMaxAI/MiniMax-M2.5\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"inferx\",\n \"name\": \"InferX\",\n \"base_url\": \"https://model.inferx.net/v1\",\n \"env_var\": \"INFERX_API_KEY\",\n \"model\": \"Qwen/Qwen3.6-35B-A3B\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"io_net\",\n \"name\": \"IO.NET\",\n \"base_url\": \"https://api.intelligence.io.solutions/api/v1\",\n \"env_var\": \"IOINTELLIGENCE_API_KEY\",\n \"model\": \"meta-llama/Llama-3.3-70B-Instruct\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"jiekou\",\n \"name\": \"Jiekou.AI\",\n \"base_url\": \"https://api.highwayapi.ai/openai\",\n \"env_var\": \"JIEKOU_API_KEY\",\n \"model\": \"deepseek/deepseek-r1\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"kenari\",\n \"name\": \"Kenari\",\n \"base_url\": \"https://kenari.id/v1\",\n \"env_var\": \"KENARI_API_KEY\",\n \"model\": \"gpt-4o-mini\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"kimi\",\n \"name\": \"Kimi\",\n \"base_url\": \"https://api.moonshot.ai/v1\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"model\": \"thinking\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"kimi_for_coding\",\n \"name\": \"Kimi For Coding\",\n \"base_url\": \"https://api.kimi.com/coding/v1\",\n \"env_var\": \"KIMI_API_KEY\",\n \"model\": \"k3\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"lilac\",\n \"name\": \"Lilac\",\n \"base_url\": \"https://api.getlilac.com/v1\",\n \"env_var\": \"LILAC_API_KEY\",\n \"model\": \"moonshotai/kimi-k2.6\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"llama\",\n \"name\": \"Llama\",\n \"base_url\": \"https://api.llama.com/compat/v1/\",\n \"env_var\": \"LLAMA_API_KEY\",\n \"model\": \"Llama-4-Scout-17B-16E-Instruct-FP8\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"llmgateway\",\n \"name\": \"LLM Gateway\",\n \"base_url\": \"https://api.llmgateway.io/v1\",\n \"env_var\": \"LLM_GATEWAY_API_KEY\",\n \"model\": \"gpt-4o\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"llmtr\",\n \"name\": \"LLMTR\",\n \"base_url\": \"https://llmtr.com/v1\",\n \"env_var\": \"LLMTR_API_KEY\",\n \"model\": \"model\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"lucidquery\",\n \"name\": \"LucidQuery\",\n \"base_url\": \"https://api.lucidquery.com/v1\",\n \"env_var\": \"LUCIDQUERY_API_KEY\",\n \"model\": \"lucidquery-agi-01-frontier\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"meganova\",\n \"name\": \"Meganova\",\n \"base_url\": \"https://api.meganova.ai/v1\",\n \"env_var\": \"MEGANOVA_API_KEY\",\n \"model\": \"Qwen/Qwen3-235B-A22B-Instruct-2507\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"merge_gateway\",\n \"name\": \"Merge Gateway\",\n \"base_url\": \"https://api-gateway.merge.dev/v1/openai\",\n \"env_var\": \"MERGE_GATEWAY_API_KEY\",\n \"model\": \"gpt-5.2\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"mimo\",\n \"name\": \"Mimo\",\n \"base_url\": \"https://api.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"model\": \"mimo-v2.5-pro\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"minimax_cn\",\n \"name\": \"MiniMax (minimaxi.com)\",\n \"base_url\": \"https://api.minimaxi.com/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"model\": \"MiniMax-M2\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"mixlayer\",\n \"name\": \"Mixlayer\",\n \"base_url\": \"https://models.mixlayer.ai/v1\",\n \"env_var\": \"MIXLAYER_API_KEY\",\n \"model\": \"qwen/\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"moark\",\n \"name\": \"Moark\",\n \"base_url\": \"https://api.moark.com/v1\",\n \"env_var\": \"MOARK_API_KEY\",\n \"model\": \"GLM-4.7\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"model_oracle_ai\",\n \"name\": \"Model Oracle AI\",\n \"base_url\": \"https://api.modeloracle.com/api/v1\",\n \"env_var\": \"MODEL_ORACLE_API_KEY\",\n \"model\": \"reasoning_effort\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"neon\",\n \"name\": \"Neon\",\n \"base_url\": \"https:///v1\",\n \"env_var\": \"NEON_AI_GATEWAY_TOKEN\",\n \"model\": \"nt_live_...\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"neuralwatt\",\n \"name\": \"Neuralwatt\",\n \"base_url\": \"https://api.neuralwatt.com/v1\",\n \"env_var\": \"NEURALWATT_API_KEY\",\n \"model\": \"meta-llama/\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"ofox\",\n \"name\": \"OfoxAI\",\n \"base_url\": \"https://api.ofox.ai/v1\",\n \"env_var\": \"OFOX_API_KEY\",\n \"model\": \"Three Protocols, One Gateway\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"perplexity_agent\",\n \"name\": \"Perplexity Agent\",\n \"base_url\": \"https://api.perplexity.ai/v1\",\n \"env_var\": \"PERPLEXITY_API_KEY\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"poolside\",\n \"name\": \"Poolside\",\n \"base_url\": \"https://inference.poolside.ai/v1\",\n \"env_var\": \"POOLSIDE_API_KEY\",\n \"model\": \"poolside/laguna-s-2.1\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"ppinfra\",\n \"name\": \"PPInfra(PPIO 派欧云)\",\n \"base_url\": \"https://api.ppio.com/openai\",\n \"env_var\": \"PPIO_API_KEY\",\n \"model\": \"deepseek/deepseek-v3-0324\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"qihang_ai\",\n \"name\": \"QiHang(启航 AI)\",\n \"base_url\": \"https://api.qhaigc.net/v1\",\n \"env_var\": \"QIHANG_API_KEY\",\n \"model\": \"gpt-4o\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"routing_run\",\n \"name\": \"routing.run\",\n \"base_url\": \"https://api.routing.run/v1\",\n \"env_var\": \"ROUTING_RUN_API_KEY\",\n \"model\": \"routing-run/claude-opus-4-8\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"snowflake_cortex\",\n \"name\": \"Snowflake Cortex\",\n \"base_url\": \"https://.snowflakecomputing.com/api/v2/cortex/v1\",\n \"env_var\": \"SNOWFLAKE_CORTEX_PAT\",\n \"model\": \"claude-sonnet-4-5\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"stackit\",\n \"name\": \"STACKIT\",\n \"base_url\": \"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\",\n \"env_var\": \"STACKIT_API_KEY\",\n \"model\": \"Qwen/Qwen3-VL-235B-A22B-Instruct-FP8\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"stepfun_ai_step_plan\",\n \"name\": \"StepFun Step Plan (Global)\",\n \"base_url\": \"https://api.stepfun.ai/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"model\": \"step-3.7-flash\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"stepfun_step_plan\",\n \"name\": \"StepFun Step Plan (China)\",\n \"base_url\": \"https://api.stepfun.com/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"model\": \"step-3.7-flash\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"subconscious\",\n \"name\": \"Subconscious\",\n \"base_url\": \"https://api.subconscious.dev/v1\",\n \"env_var\": \"SUBCONSCIOUS_API_KEY\",\n \"model\": \"subconscious/tim-qwen3.6-27b\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"tencent_tokenhub\",\n \"name\": \"Tencent TokenHub\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/v1\",\n \"env_var\": \"TENCENT_TOKENHUB_API_KEY\",\n \"model\": \"chat.completion\",\n \"file\": \"batch-11.md\"\n },\n {\n \"id\": \"the_grid_ai\",\n \"name\": \"The Grid AI\",\n \"base_url\": \"https://thegrid.ai/docs\",\n \"env_var\": \"THEGRIDAI_API_KEY\",\n \"model\": \"text-prime\",\n \"file\": \"batch-11.md\"\n },\n {\n \"id\": \"tokenflux\",\n \"name\": \"Tokenflux\",\n \"base_url\": \"https://tokenflux.ai/v1\",\n \"env_var\": \"TOKENFLUX_API_KEY\",\n \"model\": \"chat.completion\",\n \"file\": \"batch-11.md\"\n },\n {\n \"id\": \"trustedrouter\",\n \"name\": \"TrustedRouter\",\n \"base_url\": \"https://api.trustedrouter.com/v1\",\n \"env_var\": \"TRUSTEDROUTER_API_KEY\",\n \"model\": \"trustedrouter/auto\",\n \"file\": \"batch-11.md\"\n },\n {\n \"id\": \"unorouter\",\n \"name\": \"UnoRouter\",\n \"base_url\": \"https://unorouter.com/en\",\n \"env_var\": \"UNOROUTER_API_KEY\",\n \"model\": \"claude-haiku-4-5-20251001\",\n \"file\": \"batch-12.md\"\n },\n {\n \"id\": \"vivgrid\",\n \"name\": \"Vivgrid\",\n \"base_url\": \"https://api.vivgrid.com/v1\",\n \"env_var\": \"VIVGRID_API_KEY\",\n \"model\": \"messages\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"volc_engine\",\n \"name\": \"VolcEngine\",\n \"base_url\": \"https://ark.cn-beijing.volces.com\",\n \"env_var\": \"ARK_API_KEY\",\n \"model\": \"ep-20240xxxxxxxx\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"vultr\",\n \"name\": \"Vultr\",\n \"base_url\": \"https://api.vultrinference.com/v1\",\n \"env_var\": \"VULTR_API_KEY\",\n \"model\": \"messages\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"xunfei\",\n \"name\": \"Xunfei\",\n \"base_url\": \"https://spark-api-open.xf-yun.com/v1\",\n \"env_var\": \"XUNFEI_API_PASSWORD\",\n \"model\": \"messages\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"zai_coding_plan\",\n \"name\": \"Z.AI Coding Plan\",\n \"base_url\": \"https://api.z.ai/api/anthropic\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"model\": \"glm-4.5-air\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"zhipu_v4\",\n \"name\": \"ZhipuV4\",\n \"base_url\": \"https://open.bigmodel.cn\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"model\": \"/api/paas/v4\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"alibaba_token_plan\",\n \"name\": \"Alibaba Token Plan\",\n \"base_url\": \"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"model\": \"MiniMax-M2.5\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"alibaba_token_plan_cn\",\n \"name\": \"Alibaba Token Plan (China)\",\n \"base_url\": \"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"model\": \"MiniMax-M2.5\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"bedrock_mantle\",\n \"name\": \"Bedrock Mantle\",\n \"base_url\": \"https://bedrock-mantle.{region}.api.aws/v1\",\n \"env_var\": \"BEDROCK_MANTLE_API_KEY\",\n \"model\": \"us-east-1\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"cherryin\",\n \"name\": \"cherryin\",\n \"base_url\": \"https://open.cherryin.net\",\n \"env_var\": \"CHERRYIN_API_KEY\",\n \"model\": \"BAAI/bge-reranker-v2-m3(free)\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"digitalocean\",\n \"name\": \"DigitalOcean\",\n \"base_url\": \"https://inference.do-ai.run\",\n \"env_var\": \"DIGITALOCEAN_ACCESS_TOKEN\",\n \"model\": \"anthropic-claude-3.5-sonnet\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"doubao\",\n \"name\": \"Doubao\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"model\": \"deepseek-v3-2-251201\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"evroc\",\n \"name\": \"evroc\",\n \"base_url\": \"https://models.think.evroc.com/v1\",\n \"env_var\": \"EVROC_API_KEY\",\n \"model\": \"KBLab/kb-whisper-large\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"llamagate\",\n \"name\": \"Llamagate\",\n \"base_url\": \"https://api.llamagate.dev/v1\",\n \"env_var\": \"LLAMAGATE_API_KEY\",\n \"model\": \"llamagate/codellama-7b\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"zhipuai_coding_plan\",\n \"name\": \"Zhipu AI Coding Plan\",\n \"base_url\": \"https://docs.bigmodel.cn/cn/coding-plan/quick-start\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"model\": \"glm-4.5-air\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"nearai\",\n \"name\": \"NEAR AI Cloud\",\n \"base_url\": \"https://cloud-api.near.ai/v1\",\n \"env_var\": \"NEARAI_API_KEY\",\n \"model\": \"Qwen/Qwen3-30B-A3B-Instruct-2507\",\n \"file\": \"batch-15.md\"\n },\n {\n \"id\": \"oci\",\n \"name\": \"OCI\",\n \"base_url\": \"https://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1\",\n \"env_var\": \"OCI_API_KEY\",\n \"model\": \"oci/cohere.command-a-03-2025\",\n \"file\": \"batch-15.md\"\n },\n {\n \"id\": \"regolo_ai\",\n \"name\": \"Regolo AI\",\n \"base_url\": \"https://api.regolo.ai/v1\",\n \"env_var\": \"REGOLO_API_KEY\",\n \"model\": \"llama-3.3-70b-instruct\",\n \"file\": \"batch-15.md\"\n },\n {\n \"id\": \"zenmux\",\n \"name\": \"ZenMux\",\n \"base_url\": \"https://zenmux.ai/api/v1\",\n \"env_var\": \"ZENMUX_API_KEY\",\n \"model\": \"anthropic/claude-opus-4\",\n \"file\": \"batch-15.md\"\n }\n]"}, "1b3e3618ec8c3c7d617087474f15f50e0cba4e0d": {"t": 1785846838.3681726, "n": 17287, "h": "4d2bcf11baef69fa", "c": "[\n {\n \"id\": \"chutes\",\n \"name\": \"Chutes\",\n \"base_url\": \"https://llm.chutes.ai/v1\",\n \"env_var\": \"CHUTES_API_KEY\",\n \"model\": \"default\",\n \"file\": \"batch-01.md\"\n },\n {\n \"id\": \"meta\",\n \"name\": \"Meta\",\n \"base_url\": \"https://api.meta.ai/v1\",\n \"env_var\": \"MODEL_API_KEY\",\n \"model\": \"meta/muse-spark-1.1\",\n \"file\": \"batch-01.md\"\n },\n {\n \"id\": \"poe\",\n \"name\": \"Poe\",\n \"base_url\": \"https://api.poe.com/v1\",\n \"env_var\": \"POE_API_KEY\",\n \"model\": \"anthropic/claude-haiku-3\",\n \"file\": \"batch-01.md\"\n },\n {\n \"id\": \"wandb\",\n \"name\": \"Weights & Biases\",\n \"base_url\": \"https://api.inference.wandb.ai/v1\",\n \"env_var\": \"WANDB_API_KEY\",\n \"model\": \"JetBrains/Mellum2-12B-A2.5B-Instruct\",\n \"file\": \"batch-01.md\"\n },\n {\n \"id\": \"ai_router\",\n \"name\": \"AI-ROUTER\",\n \"base_url\": \"https://api.ai-router.dev/v1\",\n \"env_var\": \"AI_ROUTER_API_KEY\",\n \"model\": \"/v1/models\",\n \"file\": \"batch-03.md\"\n },\n {\n \"id\": \"aki_io\",\n \"name\": \"AKI.IO\",\n \"base_url\": \"https://aki.io/openai/v1\",\n \"env_var\": \"AKI_IO_API_KEY\",\n \"model\": \"llama3-chat-70b\",\n \"file\": \"batch-03.md\"\n },\n {\n \"id\": \"alibaba_coding_plan\",\n \"name\": \"Alibaba Coding Plan\",\n \"base_url\": \"https://coding-intl.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"model\": \"sk-sp-xxxxx\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"alibaba_coding_plan_cn\",\n \"name\": \"Alibaba Coding Plan (China)\",\n \"base_url\": \"https://coding.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"model\": \"sk-sp-xxxxx\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"anyapi\",\n \"name\": \"AnyAPI\",\n \"base_url\": \"https://api.anyapi.ai/v1\",\n \"env_var\": \"ANYAPI_KEY\",\n \"model\": \"messages\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"auriko\",\n \"name\": \"Auriko\",\n \"base_url\": \"https://api.auriko.ai/v1\",\n \"env_var\": \"AURIKO_API_KEY\",\n \"model\": \"budget_exhausted\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"baidu_v2\",\n \"name\": \"BaiduV2\",\n \"base_url\": \"https://qianfan.baidubce.com/v2\",\n \"env_var\": \"QIANFAN_API_KEY\",\n \"model\": \"qianfan/\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"bailing\",\n \"name\": \"Bailing\",\n \"base_url\": \"https://api.ant-ling.com/v1\",\n \"env_var\": \"BAILING_API_TOKEN\",\n \"model\": \"enable_search\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"berget\",\n \"name\": \"Berget.AI\",\n \"base_url\": \"https://api.berget.ai/v1\",\n \"env_var\": \"BERGET_API_KEY\",\n \"model\": \"google/\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"claudinio\",\n \"name\": \"Claudinio\",\n \"base_url\": \"https://api.claudin.io\",\n \"env_var\": \"CLAUDINIO_API_KEY\",\n \"model\": \"max_tokens\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"cloudferro_sherlock\",\n \"name\": \"CloudFerro Sherlock\",\n \"base_url\": \"https://api-sherlock.cloudferro.com/openai/v1\",\n \"env_var\": \"CLOUDFERRO_SHERLOCK_API_KEY\",\n \"model\": \"MiniMaxAI/MiniMax-M2.5\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"cloudflare_workers_ai\",\n \"name\": \"Cloudflare Workers AI\",\n \"base_url\": \"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\",\n \"env_var\": \"CLOUDFLARE_API_KEY\",\n \"model\": \"@cf/meta/llama-3.1-8b-instruct\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"cortecs\",\n \"name\": \"Cortecs\",\n \"base_url\": \"https://api.cortecs.ai/v1/\",\n \"env_var\": \"CORTECS_API_KEY\",\n \"model\": \"claude-4-5-sonnet\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"crof\",\n \"name\": \"CrofAI\",\n \"base_url\": \"https://crof.ai/v1\",\n \"env_var\": \"CROF_API_KEY\",\n \"model\": \"deepseek-v3.2\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"crossmodel\",\n \"name\": \"CrossModel\",\n \"base_url\": \"https://api.crossmodel.ai/v1\",\n \"env_var\": \"CROSSMODEL_API_KEY\",\n \"model\": \"vendor/model\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"crusoe\",\n \"name\": \"Crusoe\",\n \"base_url\": \"https://api.inference.crusoecloud.com/v1\",\n \"env_var\": \"CRUSOE_API_KEY\",\n \"model\": \"deepseek-ai/DeepSeek-V3-0324\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"daoxe\",\n \"name\": \"DaoXE\",\n \"base_url\": \"https://daoxe.com/v1\",\n \"env_var\": \"DAOXE_API_KEY\",\n \"model\": \"claude-sonnet-4-20250514\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"dinference\",\n \"name\": \"DInference\",\n \"base_url\": \"https://api.dinference.com/v1\",\n \"env_var\": \"DINFERENCE_API_KEY\",\n \"model\": \"glm-5\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"drun\",\n \"name\": \"D.Run (China)\",\n \"base_url\": \"https://chat.d.run/v1\",\n \"env_var\": \"DRUN_API_KEY\",\n \"model\": \"public/deepseek-r1\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"ebcloud\",\n \"name\": \"EBCloud\",\n \"base_url\": \"https://maas-api.ebcloud.com/v1\",\n \"env_var\": \"EBCLOUD_API_KEY\",\n \"model\": \"DeepSeek-V4-Flash\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"empiriolabs\",\n \"name\": \"EmpirioLabs AI\",\n \"base_url\": \"https://api.empiriolabs.ai/v1\",\n \"env_var\": \"EMPIRIOLABS_API_KEY\",\n \"model\": \"sk-empiriolabs-\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"frogbot\",\n \"name\": \"FrogBot\",\n \"base_url\": \"https://app.frogbot.ai/api/v1\",\n \"env_var\": \"FROGBOT_API_KEY\",\n \"model\": \"claude-haiku-4-5\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"gmicloud\",\n \"name\": \"GMI Cloud\",\n \"base_url\": \"https://api.gmi-serving.com/v1\",\n \"env_var\": \"GMI_API_KEY\",\n \"model\": \"Qwen/Qwen3.7-Max\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"hpc_ai\",\n \"name\": \"HPC-AI\",\n \"base_url\": \"https://api.hpc-ai.com/inference/v1\",\n \"env_var\": \"INFERENCE_API_KEY\",\n \"model\": \"anthropic/claude-opus-4.7\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"inceptron\",\n \"name\": \"Inceptron\",\n \"base_url\": \"https://api.inceptron.io/v1\",\n \"env_var\": \"INCEPTRON_API_KEY\",\n \"model\": \"MiniMaxAI/MiniMax-M2.5\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"inferx\",\n \"name\": \"InferX\",\n \"base_url\": \"https://model.inferx.net/v1\",\n \"env_var\": \"INFERX_API_KEY\",\n \"model\": \"Qwen/Qwen3.6-35B-A3B\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"io_net\",\n \"name\": \"IO.NET\",\n \"base_url\": \"https://api.intelligence.io.solutions/api/v1\",\n \"env_var\": \"IOINTELLIGENCE_API_KEY\",\n \"model\": \"meta-llama/Llama-3.3-70B-Instruct\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"jiekou\",\n \"name\": \"Jiekou.AI\",\n \"base_url\": \"https://api.highwayapi.ai/openai\",\n \"env_var\": \"JIEKOU_API_KEY\",\n \"model\": \"deepseek/deepseek-r1\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"kenari\",\n \"name\": \"Kenari\",\n \"base_url\": \"https://kenari.id/v1\",\n \"env_var\": \"KENARI_API_KEY\",\n \"model\": \"gpt-4o-mini\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"kimi\",\n \"name\": \"Kimi\",\n \"base_url\": \"https://api.moonshot.ai/v1\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"model\": \"thinking\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"kimi_for_coding\",\n \"name\": \"Kimi For Coding\",\n \"base_url\": \"https://api.kimi.com/coding/v1\",\n \"env_var\": \"KIMI_API_KEY\",\n \"model\": \"k3\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"lilac\",\n \"name\": \"Lilac\",\n \"base_url\": \"https://api.getlilac.com/v1\",\n \"env_var\": \"LILAC_API_KEY\",\n \"model\": \"moonshotai/kimi-k2.6\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"llama\",\n \"name\": \"Llama\",\n \"base_url\": \"https://api.llama.com/compat/v1/\",\n \"env_var\": \"LLAMA_API_KEY\",\n \"model\": \"Llama-4-Scout-17B-16E-Instruct-FP8\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"llmgateway\",\n \"name\": \"LLM Gateway\",\n \"base_url\": \"https://api.llmgateway.io/v1\",\n \"env_var\": \"LLM_GATEWAY_API_KEY\",\n \"model\": \"gpt-4o\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"llmtr\",\n \"name\": \"LLMTR\",\n \"base_url\": \"https://llmtr.com/v1\",\n \"env_var\": \"LLMTR_API_KEY\",\n \"model\": \"model\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"lucidquery\",\n \"name\": \"LucidQuery\",\n \"base_url\": \"https://api.lucidquery.com/v1\",\n \"env_var\": \"LUCIDQUERY_API_KEY\",\n \"model\": \"lucidquery-agi-01-frontier\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"meganova\",\n \"name\": \"Meganova\",\n \"base_url\": \"https://api.meganova.ai/v1\",\n \"env_var\": \"MEGANOVA_API_KEY\",\n \"model\": \"Qwen/Qwen3-235B-A22B-Instruct-2507\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"merge_gateway\",\n \"name\": \"Merge Gateway\",\n \"base_url\": \"https://api-gateway.merge.dev/v1/openai\",\n \"env_var\": \"MERGE_GATEWAY_API_KEY\",\n \"model\": \"gpt-5.2\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"mimo\",\n \"name\": \"Mimo\",\n \"base_url\": \"https://api.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"model\": \"mimo-v2.5-pro\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"minimax_cn\",\n \"name\": \"MiniMax (minimaxi.com)\",\n \"base_url\": \"https://api.minimaxi.com/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"model\": \"MiniMax-M2\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"mixlayer\",\n \"name\": \"Mixlayer\",\n \"base_url\": \"https://models.mixlayer.ai/v1\",\n \"env_var\": \"MIXLAYER_API_KEY\",\n \"model\": \"qwen/\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"moark\",\n \"name\": \"Moark\",\n \"base_url\": \"https://api.moark.com/v1\",\n \"env_var\": \"MOARK_API_KEY\",\n \"model\": \"GLM-4.7\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"model_oracle_ai\",\n \"name\": \"Model Oracle AI\",\n \"base_url\": \"https://api.modeloracle.com/api/v1\",\n \"env_var\": \"MODEL_ORACLE_API_KEY\",\n \"model\": \"reasoning_effort\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"neon\",\n \"name\": \"Neon\",\n \"base_url\": \"https:///v1\",\n \"env_var\": \"NEON_AI_GATEWAY_TOKEN\",\n \"model\": \"nt_live_...\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"neuralwatt\",\n \"name\": \"Neuralwatt\",\n \"base_url\": \"https://api.neuralwatt.com/v1\",\n \"env_var\": \"NEURALWATT_API_KEY\",\n \"model\": \"meta-llama/\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"ofox\",\n \"name\": \"OfoxAI\",\n \"base_url\": \"https://api.ofox.ai/v1\",\n \"env_var\": \"OFOX_API_KEY\",\n \"model\": \"Three Protocols, One Gateway\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"perplexity_agent\",\n \"name\": \"Perplexity Agent\",\n \"base_url\": \"https://api.perplexity.ai/v1\",\n \"env_var\": \"PERPLEXITY_API_KEY\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"poolside\",\n \"name\": \"Poolside\",\n \"base_url\": \"https://inference.poolside.ai/v1\",\n \"env_var\": \"POOLSIDE_API_KEY\",\n \"model\": \"poolside/laguna-s-2.1\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"ppinfra\",\n \"name\": \"PPInfra(PPIO 派欧云)\",\n \"base_url\": \"https://api.ppio.com/openai\",\n \"env_var\": \"PPIO_API_KEY\",\n \"model\": \"deepseek/deepseek-v3-0324\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"qihang_ai\",\n \"name\": \"QiHang(启航 AI)\",\n \"base_url\": \"https://api.qhaigc.net/v1\",\n \"env_var\": \"QIHANG_API_KEY\",\n \"model\": \"gpt-4o\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"routing_run\",\n \"name\": \"routing.run\",\n \"base_url\": \"https://api.routing.run/v1\",\n \"env_var\": \"ROUTING_RUN_API_KEY\",\n \"model\": \"routing-run/claude-opus-4-8\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"snowflake_cortex\",\n \"name\": \"Snowflake Cortex\",\n \"base_url\": \"https://.snowflakecomputing.com/api/v2/cortex/v1\",\n \"env_var\": \"SNOWFLAKE_CORTEX_PAT\",\n \"model\": \"claude-sonnet-4-5\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"stackit\",\n \"name\": \"STACKIT\",\n \"base_url\": \"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\",\n \"env_var\": \"STACKIT_API_KEY\",\n \"model\": \"Qwen/Qwen3-VL-235B-A22B-Instruct-FP8\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"stepfun_ai_step_plan\",\n \"name\": \"StepFun Step Plan (Global)\",\n \"base_url\": \"https://api.stepfun.ai/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"model\": \"step-3.7-flash\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"stepfun_step_plan\",\n \"name\": \"StepFun Step Plan (China)\",\n \"base_url\": \"https://api.stepfun.com/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"model\": \"step-3.7-flash\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"subconscious\",\n \"name\": \"Subconscious\",\n \"base_url\": \"https://api.subconscious.dev/v1\",\n \"env_var\": \"SUBCONSCIOUS_API_KEY\",\n \"model\": \"subconscious/tim-qwen3.6-27b\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"tencent_tokenhub\",\n \"name\": \"Tencent TokenHub\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/v1\",\n \"env_var\": \"TENCENT_TOKENHUB_API_KEY\",\n \"model\": \"chat.completion\",\n \"file\": \"batch-11.md\"\n },\n {\n \"id\": \"the_grid_ai\",\n \"name\": \"The Grid AI\",\n \"base_url\": \"https://thegrid.ai/docs\",\n \"env_var\": \"THEGRIDAI_API_KEY\",\n \"model\": \"text-prime\",\n \"file\": \"batch-11.md\"\n },\n {\n \"id\": \"tokenflux\",\n \"name\": \"Tokenflux\",\n \"base_url\": \"https://tokenflux.ai/v1\",\n \"env_var\": \"TOKENFLUX_API_KEY\",\n \"model\": \"chat.completion\",\n \"file\": \"batch-11.md\"\n },\n {\n \"id\": \"trustedrouter\",\n \"name\": \"TrustedRouter\",\n \"base_url\": \"https://api.trustedrouter.com/v1\",\n \"env_var\": \"TRUSTEDROUTER_API_KEY\",\n \"model\": \"trustedrouter/auto\",\n \"file\": \"batch-11.md\"\n },\n {\n \"id\": \"unorouter\",\n \"name\": \"UnoRouter\",\n \"base_url\": \"https://unorouter.com/en\",\n \"env_var\": \"UNOROUTER_API_KEY\",\n \"model\": \"claude-haiku-4-5-20251001\",\n \"file\": \"batch-12.md\"\n },\n {\n \"id\": \"vivgrid\",\n \"name\": \"Vivgrid\",\n \"base_url\": \"https://api.vivgrid.com/v1\",\n \"env_var\": \"VIVGRID_API_KEY\",\n \"model\": \"messages\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"volc_engine\",\n \"name\": \"VolcEngine\",\n \"base_url\": \"https://ark.cn-beijing.volces.com\",\n \"env_var\": \"ARK_API_KEY\",\n \"model\": \"ep-20240xxxxxxxx\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"vultr\",\n \"name\": \"Vultr\",\n \"base_url\": \"https://api.vultrinference.com/v1\",\n \"env_var\": \"VULTR_API_KEY\",\n \"model\": \"messages\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"xunfei\",\n \"name\": \"Xunfei\",\n \"base_url\": \"https://spark-api-open.xf-yun.com/v1\",\n \"env_var\": \"XUNFEI_API_PASSWORD\",\n \"model\": \"messages\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"zai_coding_plan\",\n \"name\": \"Z.AI Coding Plan\",\n \"base_url\": \"https://api.z.ai/api/anthropic\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"model\": \"glm-4.5-air\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"zhipu_v4\",\n \"name\": \"ZhipuV4\",\n \"base_url\": \"https://open.bigmodel.cn\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"model\": \"/api/paas/v4\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"alibaba_token_plan\",\n \"name\": \"Alibaba Token Plan\",\n \"base_url\": \"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"model\": \"MiniMax-M2.5\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"alibaba_token_plan_cn\",\n \"name\": \"Alibaba Token Plan (China)\",\n \"base_url\": \"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"model\": \"MiniMax-M2.5\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"bedrock_mantle\",\n \"name\": \"Bedrock Mantle\",\n \"base_url\": \"https://bedrock-mantle.{region}.api.aws/v1\",\n \"env_var\": \"BEDROCK_MANTLE_API_KEY\",\n \"model\": \"us-east-1\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"cherryin\",\n \"name\": \"cherryin\",\n \"base_url\": \"https://open.cherryin.net\",\n \"env_var\": \"CHERRYIN_API_KEY\",\n \"model\": \"BAAI/bge-reranker-v2-m3(free)\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"digitalocean\",\n \"name\": \"DigitalOcean\",\n \"base_url\": \"https://inference.do-ai.run\",\n \"env_var\": \"DIGITALOCEAN_ACCESS_TOKEN\",\n \"model\": \"anthropic-claude-3.5-sonnet\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"doubao\",\n \"name\": \"Doubao\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"model\": \"deepseek-v3-2-251201\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"evroc\",\n \"name\": \"evroc\",\n \"base_url\": \"https://models.think.evroc.com/v1\",\n \"env_var\": \"EVROC_API_KEY\",\n \"model\": \"KBLab/kb-whisper-large\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"llamagate\",\n \"name\": \"Llamagate\",\n \"base_url\": \"https://api.llamagate.dev/v1\",\n \"env_var\": \"LLAMAGATE_API_KEY\",\n \"model\": \"llamagate/codellama-7b\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"zhipuai_coding_plan\",\n \"name\": \"Zhipu AI Coding Plan\",\n \"base_url\": \"https://docs.bigmodel.cn/cn/coding-plan/quick-start\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"model\": \"glm-4.5-air\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"nearai\",\n \"name\": \"NEAR AI Cloud\",\n \"base_url\": \"https://cloud-api.near.ai/v1\",\n \"env_var\": \"NEARAI_API_KEY\",\n \"model\": \"Qwen/Qwen3-30B-A3B-Instruct-2507\",\n \"file\": \"batch-15.md\"\n },\n {\n \"id\": \"oci\",\n \"name\": \"OCI\",\n \"base_url\": \"https://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1\",\n \"env_var\": \"OCI_API_KEY\",\n \"model\": \"oci/cohere.command-a-03-2025\",\n \"file\": \"batch-15.md\"\n },\n {\n \"id\": \"regolo_ai\",\n \"name\": \"Regolo AI\",\n \"base_url\": \"https://api.regolo.ai/v1\",\n \"env_var\": \"REGOLO_API_KEY\",\n \"model\": \"llama-3.3-70b-instruct\",\n \"file\": \"batch-15.md\"\n },\n {\n \"id\": \"zenmux\",\n \"name\": \"ZenMux\",\n \"base_url\": \"https://zenmux.ai/api/v1\",\n \"env_var\": \"ZENMUX_API_KEY\",\n \"model\": \"anthropic/claude-opus-4\",\n \"file\": \"batch-15.md\"\n }\n]"}, "7c6283c8ba6e91e6ce380cb9e8a13b99e27431ed": {"t": 1785846969.8374302, "n": 17287, "h": "4d2bcf11baef69fa", "c": "[\n {\n \"id\": \"chutes\",\n \"name\": \"Chutes\",\n \"base_url\": \"https://llm.chutes.ai/v1\",\n \"env_var\": \"CHUTES_API_KEY\",\n \"model\": \"default\",\n \"file\": \"batch-01.md\"\n },\n {\n \"id\": \"meta\",\n \"name\": \"Meta\",\n \"base_url\": \"https://api.meta.ai/v1\",\n \"env_var\": \"MODEL_API_KEY\",\n \"model\": \"meta/muse-spark-1.1\",\n \"file\": \"batch-01.md\"\n },\n {\n \"id\": \"poe\",\n \"name\": \"Poe\",\n \"base_url\": \"https://api.poe.com/v1\",\n \"env_var\": \"POE_API_KEY\",\n \"model\": \"anthropic/claude-haiku-3\",\n \"file\": \"batch-01.md\"\n },\n {\n \"id\": \"wandb\",\n \"name\": \"Weights & Biases\",\n \"base_url\": \"https://api.inference.wandb.ai/v1\",\n \"env_var\": \"WANDB_API_KEY\",\n \"model\": \"JetBrains/Mellum2-12B-A2.5B-Instruct\",\n \"file\": \"batch-01.md\"\n },\n {\n \"id\": \"ai_router\",\n \"name\": \"AI-ROUTER\",\n \"base_url\": \"https://api.ai-router.dev/v1\",\n \"env_var\": \"AI_ROUTER_API_KEY\",\n \"model\": \"/v1/models\",\n \"file\": \"batch-03.md\"\n },\n {\n \"id\": \"aki_io\",\n \"name\": \"AKI.IO\",\n \"base_url\": \"https://aki.io/openai/v1\",\n \"env_var\": \"AKI_IO_API_KEY\",\n \"model\": \"llama3-chat-70b\",\n \"file\": \"batch-03.md\"\n },\n {\n \"id\": \"alibaba_coding_plan\",\n \"name\": \"Alibaba Coding Plan\",\n \"base_url\": \"https://coding-intl.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"model\": \"sk-sp-xxxxx\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"alibaba_coding_plan_cn\",\n \"name\": \"Alibaba Coding Plan (China)\",\n \"base_url\": \"https://coding.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"model\": \"sk-sp-xxxxx\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"anyapi\",\n \"name\": \"AnyAPI\",\n \"base_url\": \"https://api.anyapi.ai/v1\",\n \"env_var\": \"ANYAPI_KEY\",\n \"model\": \"messages\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"auriko\",\n \"name\": \"Auriko\",\n \"base_url\": \"https://api.auriko.ai/v1\",\n \"env_var\": \"AURIKO_API_KEY\",\n \"model\": \"budget_exhausted\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"baidu_v2\",\n \"name\": \"BaiduV2\",\n \"base_url\": \"https://qianfan.baidubce.com/v2\",\n \"env_var\": \"QIANFAN_API_KEY\",\n \"model\": \"qianfan/\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"bailing\",\n \"name\": \"Bailing\",\n \"base_url\": \"https://api.ant-ling.com/v1\",\n \"env_var\": \"BAILING_API_TOKEN\",\n \"model\": \"enable_search\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"berget\",\n \"name\": \"Berget.AI\",\n \"base_url\": \"https://api.berget.ai/v1\",\n \"env_var\": \"BERGET_API_KEY\",\n \"model\": \"google/\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"claudinio\",\n \"name\": \"Claudinio\",\n \"base_url\": \"https://api.claudin.io\",\n \"env_var\": \"CLAUDINIO_API_KEY\",\n \"model\": \"max_tokens\",\n \"file\": \"batch-04.md\"\n },\n {\n \"id\": \"cloudferro_sherlock\",\n \"name\": \"CloudFerro Sherlock\",\n \"base_url\": \"https://api-sherlock.cloudferro.com/openai/v1\",\n \"env_var\": \"CLOUDFERRO_SHERLOCK_API_KEY\",\n \"model\": \"MiniMaxAI/MiniMax-M2.5\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"cloudflare_workers_ai\",\n \"name\": \"Cloudflare Workers AI\",\n \"base_url\": \"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\",\n \"env_var\": \"CLOUDFLARE_API_KEY\",\n \"model\": \"@cf/meta/llama-3.1-8b-instruct\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"cortecs\",\n \"name\": \"Cortecs\",\n \"base_url\": \"https://api.cortecs.ai/v1/\",\n \"env_var\": \"CORTECS_API_KEY\",\n \"model\": \"claude-4-5-sonnet\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"crof\",\n \"name\": \"CrofAI\",\n \"base_url\": \"https://crof.ai/v1\",\n \"env_var\": \"CROF_API_KEY\",\n \"model\": \"deepseek-v3.2\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"crossmodel\",\n \"name\": \"CrossModel\",\n \"base_url\": \"https://api.crossmodel.ai/v1\",\n \"env_var\": \"CROSSMODEL_API_KEY\",\n \"model\": \"vendor/model\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"crusoe\",\n \"name\": \"Crusoe\",\n \"base_url\": \"https://api.inference.crusoecloud.com/v1\",\n \"env_var\": \"CRUSOE_API_KEY\",\n \"model\": \"deepseek-ai/DeepSeek-V3-0324\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"daoxe\",\n \"name\": \"DaoXE\",\n \"base_url\": \"https://daoxe.com/v1\",\n \"env_var\": \"DAOXE_API_KEY\",\n \"model\": \"claude-sonnet-4-20250514\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"dinference\",\n \"name\": \"DInference\",\n \"base_url\": \"https://api.dinference.com/v1\",\n \"env_var\": \"DINFERENCE_API_KEY\",\n \"model\": \"glm-5\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"drun\",\n \"name\": \"D.Run (China)\",\n \"base_url\": \"https://chat.d.run/v1\",\n \"env_var\": \"DRUN_API_KEY\",\n \"model\": \"public/deepseek-r1\",\n \"file\": \"batch-05.md\"\n },\n {\n \"id\": \"ebcloud\",\n \"name\": \"EBCloud\",\n \"base_url\": \"https://maas-api.ebcloud.com/v1\",\n \"env_var\": \"EBCLOUD_API_KEY\",\n \"model\": \"DeepSeek-V4-Flash\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"empiriolabs\",\n \"name\": \"EmpirioLabs AI\",\n \"base_url\": \"https://api.empiriolabs.ai/v1\",\n \"env_var\": \"EMPIRIOLABS_API_KEY\",\n \"model\": \"sk-empiriolabs-\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"frogbot\",\n \"name\": \"FrogBot\",\n \"base_url\": \"https://app.frogbot.ai/api/v1\",\n \"env_var\": \"FROGBOT_API_KEY\",\n \"model\": \"claude-haiku-4-5\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"gmicloud\",\n \"name\": \"GMI Cloud\",\n \"base_url\": \"https://api.gmi-serving.com/v1\",\n \"env_var\": \"GMI_API_KEY\",\n \"model\": \"Qwen/Qwen3.7-Max\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"hpc_ai\",\n \"name\": \"HPC-AI\",\n \"base_url\": \"https://api.hpc-ai.com/inference/v1\",\n \"env_var\": \"INFERENCE_API_KEY\",\n \"model\": \"anthropic/claude-opus-4.7\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"inceptron\",\n \"name\": \"Inceptron\",\n \"base_url\": \"https://api.inceptron.io/v1\",\n \"env_var\": \"INCEPTRON_API_KEY\",\n \"model\": \"MiniMaxAI/MiniMax-M2.5\",\n \"file\": \"batch-06.md\"\n },\n {\n \"id\": \"inferx\",\n \"name\": \"InferX\",\n \"base_url\": \"https://model.inferx.net/v1\",\n \"env_var\": \"INFERX_API_KEY\",\n \"model\": \"Qwen/Qwen3.6-35B-A3B\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"io_net\",\n \"name\": \"IO.NET\",\n \"base_url\": \"https://api.intelligence.io.solutions/api/v1\",\n \"env_var\": \"IOINTELLIGENCE_API_KEY\",\n \"model\": \"meta-llama/Llama-3.3-70B-Instruct\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"jiekou\",\n \"name\": \"Jiekou.AI\",\n \"base_url\": \"https://api.highwayapi.ai/openai\",\n \"env_var\": \"JIEKOU_API_KEY\",\n \"model\": \"deepseek/deepseek-r1\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"kenari\",\n \"name\": \"Kenari\",\n \"base_url\": \"https://kenari.id/v1\",\n \"env_var\": \"KENARI_API_KEY\",\n \"model\": \"gpt-4o-mini\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"kimi\",\n \"name\": \"Kimi\",\n \"base_url\": \"https://api.moonshot.ai/v1\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"model\": \"thinking\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"kimi_for_coding\",\n \"name\": \"Kimi For Coding\",\n \"base_url\": \"https://api.kimi.com/coding/v1\",\n \"env_var\": \"KIMI_API_KEY\",\n \"model\": \"k3\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"lilac\",\n \"name\": \"Lilac\",\n \"base_url\": \"https://api.getlilac.com/v1\",\n \"env_var\": \"LILAC_API_KEY\",\n \"model\": \"moonshotai/kimi-k2.6\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"llama\",\n \"name\": \"Llama\",\n \"base_url\": \"https://api.llama.com/compat/v1/\",\n \"env_var\": \"LLAMA_API_KEY\",\n \"model\": \"Llama-4-Scout-17B-16E-Instruct-FP8\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"llmgateway\",\n \"name\": \"LLM Gateway\",\n \"base_url\": \"https://api.llmgateway.io/v1\",\n \"env_var\": \"LLM_GATEWAY_API_KEY\",\n \"model\": \"gpt-4o\",\n \"file\": \"batch-07.md\"\n },\n {\n \"id\": \"llmtr\",\n \"name\": \"LLMTR\",\n \"base_url\": \"https://llmtr.com/v1\",\n \"env_var\": \"LLMTR_API_KEY\",\n \"model\": \"model\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"lucidquery\",\n \"name\": \"LucidQuery\",\n \"base_url\": \"https://api.lucidquery.com/v1\",\n \"env_var\": \"LUCIDQUERY_API_KEY\",\n \"model\": \"lucidquery-agi-01-frontier\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"meganova\",\n \"name\": \"Meganova\",\n \"base_url\": \"https://api.meganova.ai/v1\",\n \"env_var\": \"MEGANOVA_API_KEY\",\n \"model\": \"Qwen/Qwen3-235B-A22B-Instruct-2507\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"merge_gateway\",\n \"name\": \"Merge Gateway\",\n \"base_url\": \"https://api-gateway.merge.dev/v1/openai\",\n \"env_var\": \"MERGE_GATEWAY_API_KEY\",\n \"model\": \"gpt-5.2\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"mimo\",\n \"name\": \"Mimo\",\n \"base_url\": \"https://api.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"model\": \"mimo-v2.5-pro\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"minimax_cn\",\n \"name\": \"MiniMax (minimaxi.com)\",\n \"base_url\": \"https://api.minimaxi.com/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"model\": \"MiniMax-M2\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"mixlayer\",\n \"name\": \"Mixlayer\",\n \"base_url\": \"https://models.mixlayer.ai/v1\",\n \"env_var\": \"MIXLAYER_API_KEY\",\n \"model\": \"qwen/\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"moark\",\n \"name\": \"Moark\",\n \"base_url\": \"https://api.moark.com/v1\",\n \"env_var\": \"MOARK_API_KEY\",\n \"model\": \"GLM-4.7\",\n \"file\": \"batch-08.md\"\n },\n {\n \"id\": \"model_oracle_ai\",\n \"name\": \"Model Oracle AI\",\n \"base_url\": \"https://api.modeloracle.com/api/v1\",\n \"env_var\": \"MODEL_ORACLE_API_KEY\",\n \"model\": \"reasoning_effort\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"neon\",\n \"name\": \"Neon\",\n \"base_url\": \"https:///v1\",\n \"env_var\": \"NEON_AI_GATEWAY_TOKEN\",\n \"model\": \"nt_live_...\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"neuralwatt\",\n \"name\": \"Neuralwatt\",\n \"base_url\": \"https://api.neuralwatt.com/v1\",\n \"env_var\": \"NEURALWATT_API_KEY\",\n \"model\": \"meta-llama/\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"ofox\",\n \"name\": \"OfoxAI\",\n \"base_url\": \"https://api.ofox.ai/v1\",\n \"env_var\": \"OFOX_API_KEY\",\n \"model\": \"Three Protocols, One Gateway\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"perplexity_agent\",\n \"name\": \"Perplexity Agent\",\n \"base_url\": \"https://api.perplexity.ai/v1\",\n \"env_var\": \"PERPLEXITY_API_KEY\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"file\": \"batch-09.md\"\n },\n {\n \"id\": \"poolside\",\n \"name\": \"Poolside\",\n \"base_url\": \"https://inference.poolside.ai/v1\",\n \"env_var\": \"POOLSIDE_API_KEY\",\n \"model\": \"poolside/laguna-s-2.1\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"ppinfra\",\n \"name\": \"PPInfra(PPIO 派欧云)\",\n \"base_url\": \"https://api.ppio.com/openai\",\n \"env_var\": \"PPIO_API_KEY\",\n \"model\": \"deepseek/deepseek-v3-0324\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"qihang_ai\",\n \"name\": \"QiHang(启航 AI)\",\n \"base_url\": \"https://api.qhaigc.net/v1\",\n \"env_var\": \"QIHANG_API_KEY\",\n \"model\": \"gpt-4o\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"routing_run\",\n \"name\": \"routing.run\",\n \"base_url\": \"https://api.routing.run/v1\",\n \"env_var\": \"ROUTING_RUN_API_KEY\",\n \"model\": \"routing-run/claude-opus-4-8\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"snowflake_cortex\",\n \"name\": \"Snowflake Cortex\",\n \"base_url\": \"https://.snowflakecomputing.com/api/v2/cortex/v1\",\n \"env_var\": \"SNOWFLAKE_CORTEX_PAT\",\n \"model\": \"claude-sonnet-4-5\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"stackit\",\n \"name\": \"STACKIT\",\n \"base_url\": \"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\",\n \"env_var\": \"STACKIT_API_KEY\",\n \"model\": \"Qwen/Qwen3-VL-235B-A22B-Instruct-FP8\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"stepfun_ai_step_plan\",\n \"name\": \"StepFun Step Plan (Global)\",\n \"base_url\": \"https://api.stepfun.ai/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"model\": \"step-3.7-flash\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"stepfun_step_plan\",\n \"name\": \"StepFun Step Plan (China)\",\n \"base_url\": \"https://api.stepfun.com/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"model\": \"step-3.7-flash\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"subconscious\",\n \"name\": \"Subconscious\",\n \"base_url\": \"https://api.subconscious.dev/v1\",\n \"env_var\": \"SUBCONSCIOUS_API_KEY\",\n \"model\": \"subconscious/tim-qwen3.6-27b\",\n \"file\": \"batch-10.md\"\n },\n {\n \"id\": \"tencent_tokenhub\",\n \"name\": \"Tencent TokenHub\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/v1\",\n \"env_var\": \"TENCENT_TOKENHUB_API_KEY\",\n \"model\": \"chat.completion\",\n \"file\": \"batch-11.md\"\n },\n {\n \"id\": \"the_grid_ai\",\n \"name\": \"The Grid AI\",\n \"base_url\": \"https://thegrid.ai/docs\",\n \"env_var\": \"THEGRIDAI_API_KEY\",\n \"model\": \"text-prime\",\n \"file\": \"batch-11.md\"\n },\n {\n \"id\": \"tokenflux\",\n \"name\": \"Tokenflux\",\n \"base_url\": \"https://tokenflux.ai/v1\",\n \"env_var\": \"TOKENFLUX_API_KEY\",\n \"model\": \"chat.completion\",\n \"file\": \"batch-11.md\"\n },\n {\n \"id\": \"trustedrouter\",\n \"name\": \"TrustedRouter\",\n \"base_url\": \"https://api.trustedrouter.com/v1\",\n \"env_var\": \"TRUSTEDROUTER_API_KEY\",\n \"model\": \"trustedrouter/auto\",\n \"file\": \"batch-11.md\"\n },\n {\n \"id\": \"unorouter\",\n \"name\": \"UnoRouter\",\n \"base_url\": \"https://unorouter.com/en\",\n \"env_var\": \"UNOROUTER_API_KEY\",\n \"model\": \"claude-haiku-4-5-20251001\",\n \"file\": \"batch-12.md\"\n },\n {\n \"id\": \"vivgrid\",\n \"name\": \"Vivgrid\",\n \"base_url\": \"https://api.vivgrid.com/v1\",\n \"env_var\": \"VIVGRID_API_KEY\",\n \"model\": \"messages\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"volc_engine\",\n \"name\": \"VolcEngine\",\n \"base_url\": \"https://ark.cn-beijing.volces.com\",\n \"env_var\": \"ARK_API_KEY\",\n \"model\": \"ep-20240xxxxxxxx\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"vultr\",\n \"name\": \"Vultr\",\n \"base_url\": \"https://api.vultrinference.com/v1\",\n \"env_var\": \"VULTR_API_KEY\",\n \"model\": \"messages\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"xunfei\",\n \"name\": \"Xunfei\",\n \"base_url\": \"https://spark-api-open.xf-yun.com/v1\",\n \"env_var\": \"XUNFEI_API_PASSWORD\",\n \"model\": \"messages\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"zai_coding_plan\",\n \"name\": \"Z.AI Coding Plan\",\n \"base_url\": \"https://api.z.ai/api/anthropic\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"model\": \"glm-4.5-air\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"zhipu_v4\",\n \"name\": \"ZhipuV4\",\n \"base_url\": \"https://open.bigmodel.cn\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"model\": \"/api/paas/v4\",\n \"file\": \"batch-13.md\"\n },\n {\n \"id\": \"alibaba_token_plan\",\n \"name\": \"Alibaba Token Plan\",\n \"base_url\": \"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"model\": \"MiniMax-M2.5\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"alibaba_token_plan_cn\",\n \"name\": \"Alibaba Token Plan (China)\",\n \"base_url\": \"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"model\": \"MiniMax-M2.5\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"bedrock_mantle\",\n \"name\": \"Bedrock Mantle\",\n \"base_url\": \"https://bedrock-mantle.{region}.api.aws/v1\",\n \"env_var\": \"BEDROCK_MANTLE_API_KEY\",\n \"model\": \"us-east-1\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"cherryin\",\n \"name\": \"cherryin\",\n \"base_url\": \"https://open.cherryin.net\",\n \"env_var\": \"CHERRYIN_API_KEY\",\n \"model\": \"BAAI/bge-reranker-v2-m3(free)\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"digitalocean\",\n \"name\": \"DigitalOcean\",\n \"base_url\": \"https://inference.do-ai.run\",\n \"env_var\": \"DIGITALOCEAN_ACCESS_TOKEN\",\n \"model\": \"anthropic-claude-3.5-sonnet\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"doubao\",\n \"name\": \"Doubao\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"model\": \"deepseek-v3-2-251201\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"evroc\",\n \"name\": \"evroc\",\n \"base_url\": \"https://models.think.evroc.com/v1\",\n \"env_var\": \"EVROC_API_KEY\",\n \"model\": \"KBLab/kb-whisper-large\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"llamagate\",\n \"name\": \"Llamagate\",\n \"base_url\": \"https://api.llamagate.dev/v1\",\n \"env_var\": \"LLAMAGATE_API_KEY\",\n \"model\": \"llamagate/codellama-7b\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"zhipuai_coding_plan\",\n \"name\": \"Zhipu AI Coding Plan\",\n \"base_url\": \"https://docs.bigmodel.cn/cn/coding-plan/quick-start\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"model\": \"glm-4.5-air\",\n \"file\": \"batch-14.md\"\n },\n {\n \"id\": \"nearai\",\n \"name\": \"NEAR AI Cloud\",\n \"base_url\": \"https://cloud-api.near.ai/v1\",\n \"env_var\": \"NEARAI_API_KEY\",\n \"model\": \"Qwen/Qwen3-30B-A3B-Instruct-2507\",\n \"file\": \"batch-15.md\"\n },\n {\n \"id\": \"oci\",\n \"name\": \"OCI\",\n \"base_url\": \"https://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1\",\n \"env_var\": \"OCI_API_KEY\",\n \"model\": \"oci/cohere.command-a-03-2025\",\n \"file\": \"batch-15.md\"\n },\n {\n \"id\": \"regolo_ai\",\n \"name\": \"Regolo AI\",\n \"base_url\": \"https://api.regolo.ai/v1\",\n \"env_var\": \"REGOLO_API_KEY\",\n \"model\": \"llama-3.3-70b-instruct\",\n \"file\": \"batch-15.md\"\n },\n {\n \"id\": \"zenmux\",\n \"name\": \"ZenMux\",\n \"base_url\": \"https://zenmux.ai/api/v1\",\n \"env_var\": \"ZENMUX_API_KEY\",\n \"model\": \"anthropic/claude-opus-4\",\n \"file\": \"batch-15.md\"\n }\n]"}}, "scripts/generate_all_providers.py": {"f46485fa2a15ec0677332c3a53050df18515a4ca": {"t": 1785595923.819608, "n": 27397, "h": "bcb0c3e6f084434d", "c": "#!/usr/bin/env python3\n\"\"\"Generate thin-wrapper provider .rs files for ALL missing OpenAI-compatible providers.\n\nThis is a one-shot bulk generation script. It creates a .rs file per provider,\nupdates lib.rs, and prints a summary.\n\nUsage:\n uv run python scripts/generate_all_providers.py\n\"\"\"\n\nimport os\nfrom pathlib import Path\n\nREPO = Path(__file__).resolve().parent.parent\nSRC = REPO / \"aimux-providers\" / \"src\"\n\n# ── Already implemented (don't regenerate) ──\nALREADY_DONE = {\n \"anthropic\", \"anthropic_aws\", \"azure\", \"bedrock\", \"google\", \"vertex\",\n \"mistral\", \"cohere\", \"xai\", \"deepseek\", \"openai\", \"open_responses\",\n # OpenAI-compatible thin wrappers (batch 1)\n \"groq\", \"fireworks\", \"togetherai\", \"perplexity\", \"moonshotai\", \"cerebras\",\n \"alibaba\", \"baseten\", \"bytedance\", \"deepinfra\", \"huggingface\", \"vercel\",\n \"openrouter\", \"copilot\", \"llamafile\", \"mistralrs\", \"doubleword\",\n # Non-text\n \"voyage\", \"cartesia\", \"elevenlabs\", \"hume\", \"lmnt\",\n \"assemblyai\", \"deepgram\", \"fal\", \"gladia\", \"revai\",\n \"black_forest_labs\", \"luma\", \"prodia\", \"replicate\", \"klingai\",\n # Batch 2 (just added)\n \"ollama\", \"zai\", \"github\", \"siliconflow\", \"lmstudio\", \"sambanova\",\n}\n\n# ── Provider definitions ──\n# (module_name, struct_prefix, base_url, env_var, is_local, display_name, doc_url)\n# is_local=True: no API key needed, uses ENV_VAR for base URL\n# is_local=False: uses ENV_VAR for API key\nPROVIDERS = [\n # ── Cloud LLM providers (OpenAI-compatible) ──\n (\"novita\", \"Novita\", \"https://api.novita.ai/v1\", \"NOVITA_API_KEY\", False, \"Novita AI\", \"novita.ai\"),\n (\"nebius\", \"Nebius\", \"https://api.studio.nebius.ai/v1\", \"NEBIUS_API_KEY\", False, \"Nebius AI\", \"nebius.ai\"),\n (\"hyperbolic\", \"Hyperbolic\", \"https://api.hyperbolic.xyz/v1\", \"HYPERBOLIC_API_KEY\", False, \"Hyperbolic\", \"hyperbolic.xyz\"),\n (\"ovhcloud\", \"Ovhcloud\", \"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1\", \"OVHCLOUD_API_KEY\", False, \"OVHcloud AI\", \"ovhcloud.com\"),\n (\"ai21\", \"Ai21\", \"https://api.ai21.ai/v1\", \"AI21_API_KEY\", False, \"AI21 Labs\", \"ai21.com\"),\n (\"anyscale\", \"Anyscale\", \"https://api.endpoints.anyscale.com/v1\", \"ANYSCALE_API_KEY\", False, \"Anyscale\", \"anyscale.com\"),\n (\"predibase\", \"Predibase\", \"https://serving.app.predibase.com/v1\", \"PREDIBASE_API_KEY\", False, \"Predibase\", \"predibase.com\"),\n (\"databricks\", \"Databricks\", \"https://databricks.com/serving-endpoints\", \"DATABRICKS_API_KEY\", False, \"Databricks\", \"databricks.com\"),\n (\"scaleway\", \"Scaleway\", \"https://api.scaleway.ai/v1\", \"SCALEWAY_API_KEY\", False, \"Scaleway AI\", \"scaleway.com\"),\n (\"nlp_cloud\", \"NlpCloud\", \"https://api.nlpcloud.io/v1\", \"NLPCLOUD_API_KEY\", False, \"NLP Cloud\", \"nlpcloud.com\"),\n (\"friendliai\", \"FriendliAI\", \"https://inference.friendli.ai/v1\", \"FRIENDLIAI_API_KEY\", False, \"FriendliAI\", \"friendli.ai\"),\n (\"clarifai\", \"Clarifai\", \"https://api.clarifai.com/v2/ext/openai/v1\", \"CLARIFAI_API_KEY\", False, \"Clarifai\", \"clarifai.com\"),\n (\"gigachat\", \"GigaChat\", \"https://gigachat.devices.sberbank.ru/api/v1\", \"GIGACHAT_API_KEY\", False, \"GigaChat (Sberbank)\", \"sberbank.ru\"),\n (\"codestral\", \"Codestral\", \"https://api.mistral.ai/v1\", \"CODESTRAL_API_KEY\", False, \"Codestral (Mistral)\", \"mistral.ai\"),\n (\"morph\", \"Morph\", \"https://api.morphllm.com/v1\", \"MORPH_API_KEY\", False, \"Morph LLM\", \"morphllm.com\"),\n (\"aiml\", \"Aiml\", \"https://api.aimlapi.com/v1\", \"AIML_API_KEY\", False, \"AI/ML API\", \"aimlapi.com\"),\n (\"heroku\", \"Heroku\", \"https://api.heroku.com/inference/v1\", \"HEROKU_API_KEY\", False, \"Heroku AI\", \"heroku.com\"),\n (\"nvidia_nim\", \"NvidiaNim\", \"https://integrate.api.nvidia.com/v1\", \"NVIDIA_API_KEY\", False, \"NVIDIA NIM\", \"nvidia.com\"),\n (\"nscale\", \"Nscale\", \"https://inference.api.nscale.com/v1\", \"NSCALE_API_KEY\", False, \"Nscale\", \"nscale.com\"),\n (\"lambda_ai\", \"LambdaAi\", \"https://api.lambda.ai/v1\", \"LAMBDA_API_KEY\", False, \"Lambda AI\", \"lambda.ai\"),\n (\"inception\", \"Inception\", \"https://api.inceptionlabs.ai/v1\", \"INCEPTION_API_KEY\", False, \"Inception Labs\", \"inceptionlabs.ai\"),\n (\"galadriel\", \"Galadriel\", \"https://api.galadriel.com/v1\", \"GALADRIEL_API_KEY\", False, \"Galadriel\", \"galadriel.com\"),\n (\"datarobot\", \"Datarobot\", \"https://app.datarobot.com/api/v2\", \"DATAROBOT_API_TOKEN\", False, \"DataRobot\", \"datarobot.com\"),\n (\"featherless_ai\", \"FeatherlessAi\", \"https://api.featherless.ai/v1\", \"FEATHERLESS_API_KEY\", False, \"Featherless AI\", \"featherless.ai\"),\n (\"cometapi\", \"Cometapi\", \"https://api.cometapi.com/v1\", \"COMETAPI_API_KEY\", False, \"CometAPI\", \"cometapi.com\"),\n (\"reka_ai\", \"RekaAi\", \"https://api.reka.ai/v1\", \"REKA_API_KEY\", False, \"Reka AI\", \"reka.ai\"),\n (\"sarvam\", \"Sarvam\", \"https://api.sarvam.ai/v1\", \"SARVAM_API_KEY\", False, \"Sarvam AI\", \"sarvam.ai\"),\n (\"meta_llama\", \"MetaLlama\", \"https://api.llama.com/compat/v1\", \"LLAMA_API_KEY\", False, \"Meta Llama API\", \"llama.com\"),\n (\"apiserpent\", \"Apiserpent\", \"https://api.apiserpent.com/v1\", \"APISERPENT_API_KEY\", False, \"API Serpent\", \"apiserpent.com\"),\n (\"modelscope\", \"Modelscope\", \"https://api-inference.modelscope.cn/v1\", \"MODELSCOPE_API_KEY\", False, \"ModelScope\", \"modelscope.cn\"),\n (\"litellm_proxy\", \"LitellmProxy\", \"http://127.0.0.1:4000/v1\", \"LITELLM_PROXY_API_KEY\", True, \"LiteLLM Proxy\", \"litellm.ai\"),\n (\"compactifai\", \"Compactifai\", \"https://api.compactif.ai/v1\", \"COMPACTIFAI_API_KEY\", False, \"CompactifAI\", \"compactif.ai\"),\n (\"gradient_ai\", \"GradientAi\", \"https://inference.do-ai.run/v1\", \"GRADIENT_API_KEY\", False, \"Gradient AI\", \"do-ai.run\"),\n (\"azure_ai\", \"AzureAi\", \"https://models.inference.ai.azure.com\", \"AZURE_AI_API_KEY\", False, \"Azure AI\", \"azure.com\"),\n (\"doubaoaudio\", \"DoubaoAudio\", \"https://ark.cn-beijing.volces.com/api/v3\", \"ARK_API_KEY\", False, \"Doubao Audio\", \"volces.com\"),\n\n # ── 国产厂商 (OpenAI-compatible) ──\n (\"baidu\", \"Baidu\", \"https://qianfan.baidubce.com/v2\", \"BAIDU_API_KEY\", False, \"Baidu (文心/ERNIE)\", \"baidubce.com\"),\n (\"tencent\", \"Tencent\", \"https://api.hunyuan.cloud.tencent.com/v1\", \"TENCENT_API_KEY\", False, \"Tencent (混元/Hunyuan)\", \"tencent.com\"),\n (\"baichuan\", \"Baichuan\", \"https://api.baichuan-ai.com/v1\", \"BAICHUAN_API_KEY\", False, \"Baichuan AI\", \"baichuan-ai.com\"),\n (\"stepfun\", \"Stepfun\", \"https://api.stepfun.com/v1\", \"STEPFUN_API_KEY\", False, \"StepFun (阶跃星辰)\", \"stepfun.com\"),\n (\"minimax\", \"Minimax\", \"https://api.minimax.io/v1\", \"MINIMAX_API_KEY\", False, \"MiniMax\", \"minimax.io\"),\n (\"lingyiwanwu\", \"Lingyiwanwu\", \"https://api.lingyiwanwu.com/v1\", \"LINGYIWANWU_API_KEY\", False, \"Lingyiwanwu (零一万物)\", \"lingyiwanwu.com\"),\n (\"qihoo360\", \"Qihoo360\", \"https://api.360.cn/v1\", \"AI360_API_KEY\", False, \"360 AI\", \"360.cn\"),\n (\"coze\", \"Coze\", \"https://api.coze.cn/v1\", \"COZE_API_KEY\", False, \"Coze (扣子)\", \"coze.cn\"),\n (\"qiniu_ai\", \"QiniuAi\", \"https://api.qiniu.com/v1\", \"QINIU_API_KEY\", False, \"Qiniu AI\", \"qiniu.com\"),\n (\"longcat\", \"Longcat\", \"https://api.longcat.chat/v1\", \"LONGCAT_API_KEY\", False, \"LongCat\", \"longcat.chat\"),\n (\"bigmodel\", \"Bigmodel\", \"https://open.bigmodel.cn/api/paas/v4\", \"BIGMODEL_API_KEY\", False, \"BigModel (智谱)\", \"bigmodel.cn\"),\n (\"aihubmix\", \"Aihubmix\", \"https://aihubmix.com/v1\", \"AIHUBMIX_API_KEY\", False, \"AIHubMix\", \"aihubmix.com\"),\n (\"mira\", \"Mira\", \"https://api.mira.so/v1\", \"MIRA_API_KEY\", False, \"Mira\", \"mira.so\"),\n (\"xiaomimimo\", \"Xiaomimimo\", \"https://mimo.xiaomi.com/v1\", \"XIAOMI_API_KEY\", False, \"Xiaomi MiMo\", \"xiaomi.com\"),\n (\"byteplus\", \"Byteplus\", \"https://ark.bytepluses.com/api/v3\", \"BYTEPLUS_API_KEY\", False, \"BytePlus (Volcano)\", \"bytepluses.com\"),\n (\"perfxcloud\", \"Perfxcloud\", \"https://api.perfxcloud.com/v1\", \"PERFXCLOUD_API_KEY\", False, \"PerfXCloud\", \"perfxcloud.com\"),\n\n # ── 本地推理 (OpenAI-compatible endpoints) ──\n (\"llamacpp\", \"Llamacpp\", \"http://127.0.0.1:8080/v1\", \"LLAMACPP_BASE_URL\", True, \"llama.cpp\", \"github.com/ggerganov/llama.cpp\"),\n (\"vllm\", \"Vllm\", \"http://127.0.0.1:8000/v1\", \"VLLM_BASE_URL\", True, \"vLLM\", \"vllm.ai\"),\n (\"sglang\", \"Sglang\", \"http://127.0.0.1:30000/v1\", \"SGLANG_BASE_URL\", True, \"SGLang\", \"github.com/sgl-project/sglang\"),\n (\"xinference\", \"Xinference\", \"http://127.0.0.1:9997/v1\", \"XINFERENCE_BASE_URL\", True, \"Xinference\", \"inference.ai\"),\n (\"localai\", \"Localai\", \"http://127.0.0.1:8080/v1\", \"LOCALAI_BASE_URL\", True, \"LocalAI\", \"localai.io\"),\n (\"jlama\", \"Jlama\", \"http://127.0.0.1:8080/v1\", \"JLAMA_BASE_URL\", True, \"Jlama\", \"github.com/tjake/Jlama\"),\n (\"ollama_cloud\", \"OllamaCloud\", \"https://api.ollama.com/v1\", \"OLLAMA_CLOUD_API_KEY\", False, \"Ollama Cloud\", \"ollama.com\"),\n (\"docker_model_runner\", \"DockerModelRunner\", \"http://model-runner.docker.internal/engines/llama.cpp/v1\", \"DOCKER_MODEL_RUNNER_BASE_URL\", True, \"Docker Model Runner\", \"docker.com\"),\n\n # ── 网关/聚合 ──\n (\"portkey\", \"Portkey\", \"https://api.portkey.ai/v1\", \"PORTKEY_API_KEY\", False, \"Portkey Gateway\", \"portkey.ai\"),\n (\"helicone\", \"Helicone\", \"https://api.helicone.ai/v1\", \"HELICONE_API_KEY\", False, \"Helicone\", \"helicone.ai\"),\n (\"requesty\", \"Requesty\", \"https://api.requesty.ai/v1\", \"REQUESTY_API_KEY\", False, \"Requesty\", \"requesty.ai\"),\n (\"ai302\", \"Ai302\", \"https://api.302.ai/v1\", \"AI302_API_KEY\", False, \"302.AI\", \"302.ai\"),\n (\"api2d\", \"Api2d\", \"https://oa.api2d.net/v1\", \"API2D_API_KEY\", False, \"API2D\", \"api2d.net\"),\n (\"ohmygpt\", \"Ohmygpt\", \"https://api.ohmygpt.com/v1\", \"OHMYGPT_API_KEY\", False, \"OhMyGPT\", \"ohmygpt.com\"),\n (\"closeai\", \"Closeai\", \"https://api.closeai-proxy.xyz/v1\", \"CLOSEAI_API_KEY\", False, \"CloseAI\", \"closeai-proxy.xyz\"),\n (\"openaisb\", \"Openaisb\", \"https://api.openaisb.com/v1\", \"OPENAISB_API_KEY\", False, \"OpenAI-SB\", \"openaisb.com\"),\n (\"openaimax\", \"Openaimax\", \"https://api.openaimax.com/v1\", \"OPENAIMAX_API_KEY\", False, \"OpenAIMax\", \"openaimax.com\"),\n (\"ails\", \"Ails\", \"https://api.caipacity.com/v1\", \"AILS_API_KEY\", False, \"AILS\", \"caipacity.com\"),\n (\"api2gpt\", \"Api2gpt\", \"https://api.api2gpt.com/v1\", \"API2GPT_API_KEY\", False, \"API2GPT\", \"api2gpt.com\"),\n (\"aigc2d\", \"Aigc2d\", \"https://api.aigc2d.com/v1\", \"AIGC2D_API_KEY\", False, \"AIGC2D\", \"aigc2d.com\"),\n (\"fastgpt\", \"Fastgpt\", \"https://api.fastgpt.in/v1\", \"FASTGPT_API_KEY\", False, \"FastGPT\", \"fastgpt.in\"),\n (\"tokenpony\", \"Tokenpony\", \"https://api.tokenpony.com/v1\", \"TOKENPONY_API_KEY\", False, \"TokenPony\", \"tokenpony.com\"),\n (\"fastrouter\", \"Fastrouter\", \"https://api.fastrouter.ai/v1\", \"FASTROUTER_API_KEY\", False, \"FastRouter\", \"fastrouter.ai\"),\n (\"orcarouter\", \"Orcarouter\", \"https://api.orcarouter.com/v1\", \"ORCAROUTER_API_KEY\", False, \"OrcaRouter\", \"orcarouter.com\"),\n (\"submodel\", \"Submodel\", \"https://api.submodel.com/v1\", \"SUBMODEL_API_KEY\", False, \"SubModel\", \"submodel.com\"),\n\n # ── 其他云厂商 ──\n (\"kluster_ai\", \"KlusterAi\", \"https://api.kluster.ai/v1\", \"KLUSTER_API_KEY\", False, \"Kluster AI\", \"kluster.ai\"),\n (\"krutrim\", \"Krutrim\", \"https://api.krutrim.ai/v1\", \"KRUTRIM_API_KEY\", False, \"Krutrim\", \"krutrim.ai\"),\n (\"bytez\", \"Bytez\", \"https://api.bytez.com/v2\", \"BYTEZ_API_KEY\", False, \"Bytez\", \"bytez.com\"),\n (\"upstage\", \"Upstage\", \"https://api.upstage.ai/v1\", \"UPSTAGE_API_KEY\", False, \"Upstage\", \"upstage.ai\"),\n (\"deepbricks\", \"Deepbricks\", \"https://api.deepbricks.ai/v1\", \"DEEPBRICKS_API_KEY\", False, \"DeepBricks\", \"deepbricks.ai\"),\n (\"lemonfox_ai\", \"LemonfoxAi\", \"https://api.lemonfox.ai/v1\", \"LEMONFOX_API_KEY\", False, \"Lemonfox AI\", \"lemonfox.ai\"),\n (\"modal\", \"Modal\", \"https://modal.com/v1\", \"MODAL_API_KEY\", False, \"Modal\", \"modal.com\"),\n (\"sakana\", \"Sakana\", \"https://api.sakana.ai/v1\", \"SAKANA_API_KEY\", False, \"Sakana AI\", \"sakana.ai\"),\n (\"nous_research\", \"NousResearch\", \"https://api.nousresearch.com/v1\", \"NOUS_API_KEY\", False, \"Nous Research\", \"nousresearch.com\"),\n (\"bedrock_mantle\", \"BedrockMantle\", \"https://bedrock-runtime.us-east-1.amazonaws.com\", \"AWS_BEDROCK_API_KEY\", False, \"Bedrock Mantle\", \"aws.amazon.com\"),\n (\"watsonx\", \"Watsonx\", \"https://us-south.ml.cloud.ibm.com/v1\", \"WATSONX_API_KEY\", False, \"IBM watsonx\", \"ibm.com\"),\n (\"sagemaker\", \"Sagemaker\", \"https://runtime.sagemaker.us-east-1.amazonaws.com\", \"SAGEMAKER_API_KEY\", False, \"AWS SageMaker\", \"aws.amazon.com\"),\n (\"sap\", \"Sap\", \"https://api.ai.sap.eu10.hana.ondemand.com/v2\", \"SAP_AI_API_KEY\", False, \"SAP AI Core\", \"sap.com\"),\n (\"oci\", \"Oci\", \"https://inference.generativeai.us-chicago-1.oci.oraclecloud.com\", \"OCI_API_KEY\", False, \"Oracle OCI AI\", \"oracle.com\"),\n (\"snowflake\", \"Snowflake\", \"https://xxx.snowflakecomputing.com/api/v2/cortex\", \"SNOWFLAKE_API_KEY\", False, \"Snowflake Cortex\", \"snowflake.com\"),\n (\"infinity\", \"Infinity\", \"https://infinity.ai/api/v1\", \"INFINITY_API_KEY\", False, \"Infinity AI\", \"infinity.ai\"),\n (\"hosted_vllm\", \"HostedVllm\", \"https://hosted-vllm-api.com/v1\", \"HOSTED_VLLM_API_KEY\", False, \"Hosted vLLM\", \"vllm.ai\"),\n (\"petals\", \"Petals\", \"https://api.petals.dev/v1\", \"PETALS_API_KEY\", False, \"Petals\", \"petals.dev\"),\n (\"oobabooba\", \"Oobabooba\", \"http://127.0.0.1:5000/v1\", \"OOBABOOBA_BASE_URL\", True, \"Oobabooga Text Generation WebUI\", \"github.com/oobabooga\"),\n (\"gdc\", \"Gdc\", \"https://api.gdc.ai/v1\", \"GDC_API_KEY\", False, \"GDC\", \"gdc.ai\"),\n (\"fastcrw\", \"Fastcrw\", \"https://fastcrw.com/api/v1\", \"FASTCRW_API_KEY\", False, \"FastCRW\", \"fastcrw.com\"),\n (\"dify\", \"Dify\", \"https://api.dify.ai/v1\", \"DIFY_API_KEY\", False, \"Dify\", \"dify.ai\"),\n (\"clip\", \"Clip\", \"http://127.0.0.1:8080/v1\", \"CLIP_BASE_URL\", True, \"CLIP (local)\", \"openai.com/clip\"),\n (\"fastembed\", \"Fastembed\", \"http://127.0.0.1:8080/v1\", \"FASTEMBED_BASE_URL\", True, \"FastEmbed (local)\", \"github.com/Anush008/fastembed-rs\"),\n (\"tei\", \"Tei\", \"http://127.0.0.1:8080/v1\", \"TEI_BASE_URL\", True, \"Text Embeddings Inference (local)\", \"github.com/huggingface/text-embeddings-inference\"),\n (\"nomic\", \"Nomic\", \"https://api.nomic.ai/v1\", \"NOMIC_API_KEY\", False, \"Nomic\", \"nomic.ai\"),\n (\"jina\", \"Jina\", \"https://api.jina.ai/v1\", \"JINA_API_KEY\", False, \"Jina AI\", \"jina.ai\"),\n (\"mixedbread\", \"Mixedbread\", \"https://api.mixedbread.ai/v1\", \"MIXEDBREAD_API_KEY\", False, \"Mixedbread\", \"mixedbread.ai\"),\n (\"recraft\", \"Recraft\", \"https://external.api.recraft.ai/v1\", \"RECRAFT_API_KEY\", False, \"Recraft\", \"recraft.ai\"),\n (\"ideogram\", \"Ideogram\", \"https://api.ideogram.ai/v1\", \"IDEOGRAM_API_KEY\", False, \"Ideogram\", \"ideogram.ai\"),\n (\"stability_ai\", \"StabilityAi\", \"https://api.stability.ai/v1\", \"STABILITY_API_KEY\", False, \"Stability AI\", \"stability.ai\"),\n (\"segmind\", \"Segmind\", \"https://api.segmind.com/v1\", \"SEGMIND_API_KEY\", False, \"Segmind\", \"segmind.com\"),\n (\"runware\", \"Runware\", \"https://api.runware.ai/v1\", \"RUNWARE_API_KEY\", False, \"Runware\", \"runware.ai\"),\n (\"meshy\", \"Meshy\", \"https://api.meshy.ai/v1\", \"MESHY_API_KEY\", False, \"Meshy (3D)\", \"meshy.ai\"),\n (\"tripo3d\", \"Tripo3d\", \"https://api.tripo3d.ai/v1\", \"TRIPO3D_API_KEY\", False, \"Tripo3D\", \"tripo3d.ai\"),\n (\"runwayml\", \"Runwayml\", \"https://api.dev.runwayml.com/v1\", \"RUNWAYML_API_KEY\", False, \"Runway ML\", \"runwayml.com\"),\n (\"sora\", \"Sora\", \"https://api.openai.com/v1\", \"OPENAI_API_KEY\", False, \"OpenAI Sora\", \"openai.com\"),\n (\"vidu\", \"Vidu\", \"https://api.vidu.com/v1\", \"VIDU_API_KEY\", False, \"Vidu\", \"vidu.com\"),\n (\"jimeng\", \"Jimeng\", \"https://api.jimeng.jianying.com/v1\", \"JIMENG_API_KEY\", False, \"Jimeng (即梦)\", \"jianying.com\"),\n (\"midjourney\", \"Midjourney\", \"https://api.midjourney.com/v1\", \"MIDJOURNEY_API_KEY\", False, \"Midjourney\", \"midjourney.com\"),\n (\"flux\", \"Flux\", \"https://api.fal.ai/v1\", \"FLUX_API_KEY\", False, \"FLUX (via fal)\", \"fal.ai\"),\n (\"suno\", \"Suno\", \"https://api.suno.com/v1\", \"SUNO_API_KEY\", False, \"Suno (音乐)\", \"suno.com\"),\n (\"doubaoaudio\", \"DoubaoAudio\", \"https://ark.cn-beijing.volces.com/api/v3\", \"ARK_API_KEY\", False, \"Doubao Audio\", \"volces.com\"),\n (\"murf\", \"Murf\", \"https://api.murf.ai/v1\", \"MURF_API_KEY\", False, \"Murf (TTS)\", \"murf.ai\"),\n (\"playai\", \"Playai\", \"https://api.play.ai/v1\", \"PLAYAI_API_KEY\", False, \"PlayAI (TTS)\", \"play.ai\"),\n (\"speechify\", \"Speechify\", \"https://api.sws.speechify.com/v1\", \"SPEECHIFY_API_KEY\", False, \"Speechify (TTS)\", \"speechify.com\"),\n (\"inworld\", \"Inworld\", \"https://api.inworld.ai/v1\", \"INWORLD_API_KEY\", False, \"Inworld (TTS)\", \"inworld.ai\"),\n (\"aws_polly\", \"AwsPolly\", \"https://polly.us-east-1.amazonaws.com\", \"AWS_POLLY_API_KEY\", False, \"AWS Polly (TTS)\", \"aws.amazon.com\"),\n (\"nvidia_riva\", \"NvidiaRiva\", \"https://api.nvidia.com/v1\", \"NVIDIA_RIVA_API_KEY\", False, \"NVIDIA Riva (TTS)\", \"nvidia.com\"),\n (\"soniox\", \"Soniox\", \"https://api.soniox.com/v1\", \"SONIOX_API_KEY\", False, \"Soniox (STT)\", \"soniox.com\"),\n (\"mokaai\", \"Mokaai\", \"https://api.mokaai.com/v1\", \"MOKAAI_API_KEY\", False, \"MokaAI\", \"mokaai.com\"),\n (\"skylark\", \"Skylark\", \"https://api.skylark.com/v1\", \"SKYLARK_API_KEY\", False, \"Skylark (云雀)\", \"skylark.com\"),\n (\"deepl\", \"Deepl\", \"https://api.deepl.com/v2\", \"DEEPL_API_KEY\", False, \"DeepL\", \"deepl.com\"),\n (\"bing\", \"Bing\", \"https://api.bing.microsoft.com/v1\", \"BING_API_KEY\", False, \"Bing\", \"microsoft.com\"),\n (\"slack\", \"Slack\", \"https://slack.com/api/chat.postMessage\", \"SLACK_API_KEY\", False, \"Slack (Claude proxy)\", \"slack.com\"),\n (\"doubaoaudio\", \"DoubaoAudio\", \"https://ark.cn-beijing.volces.com/api/v3\", \"ARK_API_KEY\", False, \"Doubao Audio\", \"volces.com\"),\n (\"ncompass\", \"Ncompass\", \"https://api.ncompass.tech/v1\", \"NCOMPASS_API_KEY\", False, \"Ncompass\", \"ncompass.tech\"),\n (\"parasail\", \"Parasail\", \"https://api.parasail.io/v1\", \"PARASAIL_API_KEY\", False, \"Parasail\", \"parasail.io\"),\n (\"wafer\", \"Wafer\", \"https://api.wafer.ai/v1\", \"WAFER_API_KEY\", False, \"Wafer\", \"wafer.ai\"),\n (\"matterai\", \"Matterai\", \"https://api.matterai.com/v1\", \"MATTERAI_API_KEY\", False, \"Matter AI\", \"matterai.com\"),\n (\"nextbit\", \"Nextbit\", \"https://api.nextbit.ai/v1\", \"NEXTBIT_API_KEY\", False, \"NextBit\", \"nextbit.ai\"),\n (\"aibadgr\", \"Aibadgr\", \"https://api.aibadgr.com/v1\", \"AIBADGR_API_KEY\", False, \"AI Badgr\", \"aibadgr.com\"),\n (\"inference_net\", \"InferenceNet\", \"https://api.inference.net/v1\", \"INFERENCE_NET_API_KEY\", False, \"Inference.net\", \"inference.net\"),\n (\"lemonfox_ai\", \"LemonfoxAi\", \"https://api.lemonfox.ai/v1\", \"LEMONFOX_API_KEY\", False, \"Lemonfox AI\", \"lemonfox.ai\"),\n (\"opencode_go\", \"OpencodeGo\", \"https://api.opencode.dev/v1\", \"OPENCODE_GO_API_KEY\", False, \"OpenCode Go\", \"opencode.dev\"),\n (\"opencode_zen\", \"OpencodeZen\", \"https://api.opencode.zen/v1\", \"OPENCODE_ZEN_API_KEY\", False, \"OpenCode Zen\", \"opencode.zen\"),\n (\"kiro\", \"Kiro\", \"https://api.kiro.dev/v1\", \"KIRO_API_KEY\", False, \"Kiro\", \"kiro.dev\"),\n (\"pioneer\", \"Pioneer\", \"https://api.pioneer.ai/v1\", \"PIONEER_API_KEY\", False, \"Pioneer\", \"pioneer.ai\"),\n (\"kilo\", \"Kilo\", \"https://api.kilo.ai/v1\", \"KILO_API_KEY\", False, \"Kilo\", \"kilo.ai\"),\n (\"commandcode\", \"Commandcode\", \"https://api.commandcode.com/v1\", \"COMMANDCODE_API_KEY\", False, \"CommandCode\", \"commandcode.com\"),\n (\"cline_pass\", \"ClinePass\", \"https://api.cline.bot/v1\", \"CLINE_API_KEY\", False, \"Cline\", \"cline.bot\"),\n (\"albert\", \"Albert\", \"https://api.albert.ai/v1\", \"ALBERT_API_KEY\", False, \"Albert\", \"albert.ai\"),\n (\"scx_ai\", \"ScxAi\", \"https://api.scx.ai/v1\", \"SCX_AI_API_KEY\", False, \"SCX AI\", \"scx.ai\"),\n (\"atlascloud\", \"Atlascloud\", \"https://api.atlascloud.com/v1\", \"ATLASCLOUD_API_KEY\", False, \"AtlasCloud\", \"atlascloud.com\"),\n (\"canopywave\", \"Canopywave\", \"https://api.canopywave.com/v1\", \"CANOPYWAVE_API_KEY\", False, \"Canopywave\", \"canopywave.com\"),\n (\"embercloud\", \"Embercloud\", \"https://api.embercloud.com/v1\", \"EMBERCLOUD_API_KEY\", False, \"Embercloud\", \"embercloud.com\"),\n (\"tundra\", \"Tundra\", \"https://api.tundra.ai/v1\", \"TUNDRA_API_KEY\", False, \"Tundra\", \"tundra.ai\"),\n (\"reve\", \"Reve\", \"https://api.reve.ai/v1\", \"REVE_API_KEY\", False, \"Reve\", \"reve.ai\"),\n (\"gonka24\", \"Gonka24\", \"https://api.gonka24.com/v1\", \"GONKA24_API_KEY\", False, \"Gonka24\", \"gonka24.com\"),\n (\"streamlake\", \"Streamlake\", \"https://api.streamlake.com/v1\", \"STREAMLAKE_API_KEY\", False, \"StreamLake\", \"streamlake.com\"),\n (\"antling\", \"Antling\", \"https://api.antling.com/v1\", \"ANTLING_API_KEY\", False, \"Antling\", \"antling.com\"),\n (\"sangforaicp\", \"Sangforaicp\", \"https://aicp.sangfor.com/v1\", \"SANGFOR_AICP_API_KEY\", False, \"Sangfor AICP\", \"sangfor.com\"),\n (\"doc2x\", \"Doc2x\", \"https://api.doc2x.com/v1\", \"DOC2X_API_KEY\", False, \"Doc2X\", \"doc2x.com\"),\n (\"v0\", \"V0\", \"https://api.v0.dev/v1\", \"V0_API_KEY\", False, \"v0 (Vercel)\", \"v0.dev\"),\n (\"text_embeddings_inference\", \"TextEmbeddingsInference\", \"http://127.0.0.1:8080\", \"TEI_BASE_URL\", True, \"Text Embeddings Inference\", \"github.com/huggingface/text-embeddings-inference\"),\n (\"pg_vector\", \"PgVector\", \"http://127.0.0.1:5432\", \"PG_VECTOR_URL\", True, \"PostgreSQL pgvector\", \"github.com/pgvector/pgvector\"),\n (\"s3_vectors\", \"S3Vectors\", \"https://s3.amazonaws.com\", \"S3_VECTORS_API_KEY\", False, \"S3 Vectors\", \"aws.amazon.com\"),\n (\"milvus\", \"Milvus\", \"http://127.0.0.1:19530\", \"MILVUS_URL\", True, \"Milvus (向量库)\", \"milvus.io\"),\n (\"qdrant\", \"Qdrant\", \"http://127.0.0.1:6333\", \"QDRANT_URL\", True, \"Qdrant (向量库)\", \"qdrant.tech\"),\n (\"chatgpt\", \"Chatgpt\", \"https://chatgpt.com/backend-api/codex\", \"CHATGPT_API_KEY\", False, \"ChatGPT (订阅)\", \"openai.com\"),\n (\"nanogpt\", \"Nanogpt\", \"https://api.nanogpt.com/v1\", \"NANOGPT_API_KEY\", False, \"NanoGPT\", \"nanogpt.com\"),\n (\"local\", \"Local\", \"http://127.0.0.1:8080/v1\", \"LOCAL_LLM_BASE_URL\", True, \"Local LLM\", \"localhost\"),\n (\"cybertron\", \"Cybertron\", \"http://127.0.0.1:8080/v1\", \"CYBERTRON_BASE_URL\", True, \"Cybertron (Rust)\", \"github.com/dottorblaster/cybertron\"),\n (\"mlx\", \"Mlx\", \"http://127.0.0.1:8080/v1\", \"MLX_BASE_URL\", True, \"MLX (Apple Silicon)\", \"github.com/ml-explore/mlx\"),\n (\"openvino\", \"Openvino\", \"http://127.0.0.1:8080/v1\", \"OPENVINO_BASE_URL\", True, \"OpenVINO\", \"intel.com/openvino\"),\n (\"gaudi\", \"Gaudi\", \"http://127.0.0.1:8080/v1\", \"GAUDI_BASE_URL\", True, \"Intel Gaudi\", \"intel.com\"),\n (\"onnx\", \"Onnx\", \"http://127.0.0.1:8080/v1\", \"ONNX_BASE_URL\", True, \"ONNX Runtime\", \"onnxruntime.ai\"),\n (\"omlx\", \"Omlx\", \"http://127.0.0.1:8080/v1\", \"OMLX_BASE_URL\", True, \"OMLX / MLX LM\", \"github.com/ml-explore/mlx-lm\"),\n (\"doubaoaudio\", \"DoubaoAudio\", \"https://ark.cn-beijing.volces.com/api/v3\", \"ARK_API_KEY\", False, \"Doubao Audio\", \"volces.com\"),\n]\n\ndef gen_local_template(mod, prefix, base_url, env_var, display, doc_url):\n return f'''//! {display} provider — a thin OpenAI-compatible wrapper.\n//!\n//! See <{doc_url}> for API documentation. Exposes an OpenAI-compatible\n//! Chat Completions API at `{base_url}`. The `{env_var}` environment\n//! variable holds a *base URL* (not an API key); when unset, the default\n//! endpoint is used. A placeholder API key is sent in the `Authorization`\n//! header — the shared `OpenAIProvider` requires a non-empty key string.\n\nuse aimux_core::error::AiMuxError;\nuse aimux_core::language_model::LanguageModel;\nuse aimux_core::provider::Provider;\n\nuse crate::openai::{{OpenAIConfig, OpenAIModel, OpenAIProvider}};\n\nconst DEFAULT_BASE_URL: &str = \"{base_url}\";\nconst ENV_VAR: &str = \"{env_var}\";\nconst PROVIDER_NAME: &str = \"{mod}\";\nconst PLACEHOLDER_API_KEY: &str = \"{mod}\";\n\npub struct {prefix}Config(OpenAIConfig);\n\nimpl {prefix}Config {{\n pub fn new(api_key: impl Into) -> Self {{\n Self(\n OpenAIConfig::new(api_key)\n .with_base_url(DEFAULT_BASE_URL)\n .with_provider(PROVIDER_NAME),\n )\n }}\n\n pub fn from_env() -> Result {{\n let config = Self::new(PLACEHOLDER_API_KEY);\n match std::env::var(ENV_VAR) {{\n Ok(url) if !url.trim().is_empty() => Ok(config.with_base_url(url)),\n _ => Ok(config),\n }}\n }}\n\n pub fn with_base_url(mut self, url: impl Into) -> Self {{\n self.0 = self.0.with_base_url(url);\n self\n }}\n}}\n\npub struct {prefix}Provider(OpenAIProvider);\n\nimpl {prefix}Provider {{\n pub fn new(config: {prefix}Config) -> Self {{\n Self(OpenAIProvider::new(config.0))\n }}\n\n pub fn model(&self, model_id: &str) -> OpenAIModel {{\n self.0.model(model_id)\n }}\n}}\n\nimpl Provider for {prefix}Provider {{\n fn name(&self) -> &str {{\n PROVIDER_NAME\n }}\n\n fn language_model(&self, model_id: &str) -> Result, AiMuxError> {{\n Ok(Box::new(self.model(model_id)))\n }}\n}}\n'''\n\ndef gen_cloud_template(mod, prefix, base_url, env_var, display, doc_url):\n return f'''//! {display} provider — a thin OpenAI-compatible wrapper.\n//!\n//! See <{doc_url}> for API documentation. Exposes an OpenAI-compatible\n//! Chat Completions API at `{base_url}`. Provider-specific details are the\n//! base URL and the `{env_var}` environment variable; everything else is\n//! delegated to the shared `OpenAIProvider`.\n\nuse aimux_core::error::AiMuxError;\nuse aimux_core::language_model::LanguageModel;\nuse aimux_core::provider::Provider;\nuse aimux_provider_utils::load_api_key;\n\nuse crate::openai::{{OpenAIConfig, OpenAIModel, OpenAIProvider}};\n\nconst DEFAULT_BASE_URL: &str = \"{base_url}\";\nconst ENV_VAR: &str = \"{env_var}\";\nconst PROVIDER_NAME: &str = \"{mod}\";\n\npub struct {prefix}Config(OpenAIConfig);\n\nimpl {prefix}Config {{\n pub fn new(api_key: impl Into) -> Self {{\n Self(OpenAIConfig::new(api_key).with_base_url(DEFAULT_BASE_URL))\n }}\n\n pub fn from_env() -> Result {{\n let key = load_api_key(None, ENV_VAR, \"{display}\")?;\n Ok(Self::new(key))\n }}\n\n pub fn with_base_url(mut self, url: impl Into) -> Self {{\n self.0 = self.0.with_base_url(url);\n self\n }}\n}}\n\npub struct {prefix}Provider(OpenAIProvider);\n\nimpl {prefix}Provider {{\n pub fn new(config: {prefix}Config) -> Self {{\n Self(OpenAIProvider::new(config.0))\n }}\n\n pub fn model(&self, model_id: &str) -> OpenAIModel {{\n self.0.model(model_id)\n }}\n}}\n\nimpl Provider for {prefix}Provider {{\n fn name(&self) -> &str {{\n PROVIDER_NAME\n }}\n\n fn language_model(&self, model_id: &str) -> Result, AiMuxError> {{\n Ok(Box::new(self.model(model_id)))\n }}\n}}\n'''\n\ndef main():\n seen = set()\n generated = []\n skipped = []\n\n for mod_name, prefix, base_url, env_var, is_local, display, doc_url in PROVIDERS:\n if mod_name in ALREADY_DONE or mod_name in seen:\n skipped.append(mod_name)\n continue\n seen.add(mod_name)\n\n out_path = SRC / f\"{mod_name}.rs\"\n if out_path.exists():\n skipped.append(mod_name)\n continue\n\n if is_local:\n content = gen_local_template(mod_name, prefix, base_url, env_var, display, doc_url)\n else:\n content = gen_cloud_template(mod_name, prefix, base_url, env_var, display, doc_url)\n\n out_path.write_text(content, encoding=\"utf-8\")\n generated.append((mod_name, prefix))\n\n print(f\"Generated {len(generated)} provider files:\")\n for mod, prefix in sorted(generated):\n print(f\" {mod}.rs ({prefix}Config / {prefix}Provider)\")\n if skipped:\n print(f\"\\nSkipped {len(skipped)} (already exist): {', '.join(sorted(skipped))}\")\n\n # Print lib.rs snippet\n print(\"\\n# Add to lib.rs:\")\n for mod_name, _ in sorted(generated):\n print(f'pub mod {mod_name};')\n print()\n for mod_name, prefix in sorted(generated):\n print(f'pub use {mod_name}::{{{prefix}Config, {prefix}Provider}};')\n\nif __name__ == \"__main__\":\n main()\n"}, "5b352e19b5717ed5ba775e097bed1f6fd81c2095": {"t": 1785809831.5568585, "n": 27397, "h": "bcb0c3e6f084434d", "c": "#!/usr/bin/env python3\n\"\"\"Generate thin-wrapper provider .rs files for ALL missing OpenAI-compatible providers.\n\nThis is a one-shot bulk generation script. It creates a .rs file per provider,\nupdates lib.rs, and prints a summary.\n\nUsage:\n uv run python scripts/generate_all_providers.py\n\"\"\"\n\nimport os\nfrom pathlib import Path\n\nREPO = Path(__file__).resolve().parent.parent\nSRC = REPO / \"aimux-providers\" / \"src\"\n\n# ── Already implemented (don't regenerate) ──\nALREADY_DONE = {\n \"anthropic\", \"anthropic_aws\", \"azure\", \"bedrock\", \"google\", \"vertex\",\n \"mistral\", \"cohere\", \"xai\", \"deepseek\", \"openai\", \"open_responses\",\n # OpenAI-compatible thin wrappers (batch 1)\n \"groq\", \"fireworks\", \"togetherai\", \"perplexity\", \"moonshotai\", \"cerebras\",\n \"alibaba\", \"baseten\", \"bytedance\", \"deepinfra\", \"huggingface\", \"vercel\",\n \"openrouter\", \"copilot\", \"llamafile\", \"mistralrs\", \"doubleword\",\n # Non-text\n \"voyage\", \"cartesia\", \"elevenlabs\", \"hume\", \"lmnt\",\n \"assemblyai\", \"deepgram\", \"fal\", \"gladia\", \"revai\",\n \"black_forest_labs\", \"luma\", \"prodia\", \"replicate\", \"klingai\",\n # Batch 2 (just added)\n \"ollama\", \"zai\", \"github\", \"siliconflow\", \"lmstudio\", \"sambanova\",\n}\n\n# ── Provider definitions ──\n# (module_name, struct_prefix, base_url, env_var, is_local, display_name, doc_url)\n# is_local=True: no API key needed, uses ENV_VAR for base URL\n# is_local=False: uses ENV_VAR for API key\nPROVIDERS = [\n # ── Cloud LLM providers (OpenAI-compatible) ──\n (\"novita\", \"Novita\", \"https://api.novita.ai/v1\", \"NOVITA_API_KEY\", False, \"Novita AI\", \"novita.ai\"),\n (\"nebius\", \"Nebius\", \"https://api.studio.nebius.ai/v1\", \"NEBIUS_API_KEY\", False, \"Nebius AI\", \"nebius.ai\"),\n (\"hyperbolic\", \"Hyperbolic\", \"https://api.hyperbolic.xyz/v1\", \"HYPERBOLIC_API_KEY\", False, \"Hyperbolic\", \"hyperbolic.xyz\"),\n (\"ovhcloud\", \"Ovhcloud\", \"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1\", \"OVHCLOUD_API_KEY\", False, \"OVHcloud AI\", \"ovhcloud.com\"),\n (\"ai21\", \"Ai21\", \"https://api.ai21.ai/v1\", \"AI21_API_KEY\", False, \"AI21 Labs\", \"ai21.com\"),\n (\"anyscale\", \"Anyscale\", \"https://api.endpoints.anyscale.com/v1\", \"ANYSCALE_API_KEY\", False, \"Anyscale\", \"anyscale.com\"),\n (\"predibase\", \"Predibase\", \"https://serving.app.predibase.com/v1\", \"PREDIBASE_API_KEY\", False, \"Predibase\", \"predibase.com\"),\n (\"databricks\", \"Databricks\", \"https://databricks.com/serving-endpoints\", \"DATABRICKS_API_KEY\", False, \"Databricks\", \"databricks.com\"),\n (\"scaleway\", \"Scaleway\", \"https://api.scaleway.ai/v1\", \"SCALEWAY_API_KEY\", False, \"Scaleway AI\", \"scaleway.com\"),\n (\"nlp_cloud\", \"NlpCloud\", \"https://api.nlpcloud.io/v1\", \"NLPCLOUD_API_KEY\", False, \"NLP Cloud\", \"nlpcloud.com\"),\n (\"friendliai\", \"FriendliAI\", \"https://inference.friendli.ai/v1\", \"FRIENDLIAI_API_KEY\", False, \"FriendliAI\", \"friendli.ai\"),\n (\"clarifai\", \"Clarifai\", \"https://api.clarifai.com/v2/ext/openai/v1\", \"CLARIFAI_API_KEY\", False, \"Clarifai\", \"clarifai.com\"),\n (\"gigachat\", \"GigaChat\", \"https://gigachat.devices.sberbank.ru/api/v1\", \"GIGACHAT_API_KEY\", False, \"GigaChat (Sberbank)\", \"sberbank.ru\"),\n (\"codestral\", \"Codestral\", \"https://api.mistral.ai/v1\", \"CODESTRAL_API_KEY\", False, \"Codestral (Mistral)\", \"mistral.ai\"),\n (\"morph\", \"Morph\", \"https://api.morphllm.com/v1\", \"MORPH_API_KEY\", False, \"Morph LLM\", \"morphllm.com\"),\n (\"aiml\", \"Aiml\", \"https://api.aimlapi.com/v1\", \"AIML_API_KEY\", False, \"AI/ML API\", \"aimlapi.com\"),\n (\"heroku\", \"Heroku\", \"https://api.heroku.com/inference/v1\", \"HEROKU_API_KEY\", False, \"Heroku AI\", \"heroku.com\"),\n (\"nvidia_nim\", \"NvidiaNim\", \"https://integrate.api.nvidia.com/v1\", \"NVIDIA_API_KEY\", False, \"NVIDIA NIM\", \"nvidia.com\"),\n (\"nscale\", \"Nscale\", \"https://inference.api.nscale.com/v1\", \"NSCALE_API_KEY\", False, \"Nscale\", \"nscale.com\"),\n (\"lambda_ai\", \"LambdaAi\", \"https://api.lambda.ai/v1\", \"LAMBDA_API_KEY\", False, \"Lambda AI\", \"lambda.ai\"),\n (\"inception\", \"Inception\", \"https://api.inceptionlabs.ai/v1\", \"INCEPTION_API_KEY\", False, \"Inception Labs\", \"inceptionlabs.ai\"),\n (\"galadriel\", \"Galadriel\", \"https://api.galadriel.com/v1\", \"GALADRIEL_API_KEY\", False, \"Galadriel\", \"galadriel.com\"),\n (\"datarobot\", \"Datarobot\", \"https://app.datarobot.com/api/v2\", \"DATAROBOT_API_TOKEN\", False, \"DataRobot\", \"datarobot.com\"),\n (\"featherless_ai\", \"FeatherlessAi\", \"https://api.featherless.ai/v1\", \"FEATHERLESS_API_KEY\", False, \"Featherless AI\", \"featherless.ai\"),\n (\"cometapi\", \"Cometapi\", \"https://api.cometapi.com/v1\", \"COMETAPI_API_KEY\", False, \"CometAPI\", \"cometapi.com\"),\n (\"reka_ai\", \"RekaAi\", \"https://api.reka.ai/v1\", \"REKA_API_KEY\", False, \"Reka AI\", \"reka.ai\"),\n (\"sarvam\", \"Sarvam\", \"https://api.sarvam.ai/v1\", \"SARVAM_API_KEY\", False, \"Sarvam AI\", \"sarvam.ai\"),\n (\"meta_llama\", \"MetaLlama\", \"https://api.llama.com/compat/v1\", \"LLAMA_API_KEY\", False, \"Meta Llama API\", \"llama.com\"),\n (\"apiserpent\", \"Apiserpent\", \"https://api.apiserpent.com/v1\", \"APISERPENT_API_KEY\", False, \"API Serpent\", \"apiserpent.com\"),\n (\"modelscope\", \"Modelscope\", \"https://api-inference.modelscope.cn/v1\", \"MODELSCOPE_API_KEY\", False, \"ModelScope\", \"modelscope.cn\"),\n (\"litellm_proxy\", \"LitellmProxy\", \"http://127.0.0.1:4000/v1\", \"LITELLM_PROXY_API_KEY\", True, \"LiteLLM Proxy\", \"litellm.ai\"),\n (\"compactifai\", \"Compactifai\", \"https://api.compactif.ai/v1\", \"COMPACTIFAI_API_KEY\", False, \"CompactifAI\", \"compactif.ai\"),\n (\"gradient_ai\", \"GradientAi\", \"https://inference.do-ai.run/v1\", \"GRADIENT_API_KEY\", False, \"Gradient AI\", \"do-ai.run\"),\n (\"azure_ai\", \"AzureAi\", \"https://models.inference.ai.azure.com\", \"AZURE_AI_API_KEY\", False, \"Azure AI\", \"azure.com\"),\n (\"doubaoaudio\", \"DoubaoAudio\", \"https://ark.cn-beijing.volces.com/api/v3\", \"ARK_API_KEY\", False, \"Doubao Audio\", \"volces.com\"),\n\n # ── 国产厂商 (OpenAI-compatible) ──\n (\"baidu\", \"Baidu\", \"https://qianfan.baidubce.com/v2\", \"BAIDU_API_KEY\", False, \"Baidu (文心/ERNIE)\", \"baidubce.com\"),\n (\"tencent\", \"Tencent\", \"https://api.hunyuan.cloud.tencent.com/v1\", \"TENCENT_API_KEY\", False, \"Tencent (混元/Hunyuan)\", \"tencent.com\"),\n (\"baichuan\", \"Baichuan\", \"https://api.baichuan-ai.com/v1\", \"BAICHUAN_API_KEY\", False, \"Baichuan AI\", \"baichuan-ai.com\"),\n (\"stepfun\", \"Stepfun\", \"https://api.stepfun.com/v1\", \"STEPFUN_API_KEY\", False, \"StepFun (阶跃星辰)\", \"stepfun.com\"),\n (\"minimax\", \"Minimax\", \"https://api.minimax.io/v1\", \"MINIMAX_API_KEY\", False, \"MiniMax\", \"minimax.io\"),\n (\"lingyiwanwu\", \"Lingyiwanwu\", \"https://api.lingyiwanwu.com/v1\", \"LINGYIWANWU_API_KEY\", False, \"Lingyiwanwu (零一万物)\", \"lingyiwanwu.com\"),\n (\"qihoo360\", \"Qihoo360\", \"https://api.360.cn/v1\", \"AI360_API_KEY\", False, \"360 AI\", \"360.cn\"),\n (\"coze\", \"Coze\", \"https://api.coze.cn/v1\", \"COZE_API_KEY\", False, \"Coze (扣子)\", \"coze.cn\"),\n (\"qiniu_ai\", \"QiniuAi\", \"https://api.qiniu.com/v1\", \"QINIU_API_KEY\", False, \"Qiniu AI\", \"qiniu.com\"),\n (\"longcat\", \"Longcat\", \"https://api.longcat.chat/v1\", \"LONGCAT_API_KEY\", False, \"LongCat\", \"longcat.chat\"),\n (\"bigmodel\", \"Bigmodel\", \"https://open.bigmodel.cn/api/paas/v4\", \"BIGMODEL_API_KEY\", False, \"BigModel (智谱)\", \"bigmodel.cn\"),\n (\"aihubmix\", \"Aihubmix\", \"https://aihubmix.com/v1\", \"AIHUBMIX_API_KEY\", False, \"AIHubMix\", \"aihubmix.com\"),\n (\"mira\", \"Mira\", \"https://api.mira.so/v1\", \"MIRA_API_KEY\", False, \"Mira\", \"mira.so\"),\n (\"xiaomimimo\", \"Xiaomimimo\", \"https://mimo.xiaomi.com/v1\", \"XIAOMI_API_KEY\", False, \"Xiaomi MiMo\", \"xiaomi.com\"),\n (\"byteplus\", \"Byteplus\", \"https://ark.bytepluses.com/api/v3\", \"BYTEPLUS_API_KEY\", False, \"BytePlus (Volcano)\", \"bytepluses.com\"),\n (\"perfxcloud\", \"Perfxcloud\", \"https://api.perfxcloud.com/v1\", \"PERFXCLOUD_API_KEY\", False, \"PerfXCloud\", \"perfxcloud.com\"),\n\n # ── 本地推理 (OpenAI-compatible endpoints) ──\n (\"llamacpp\", \"Llamacpp\", \"http://127.0.0.1:8080/v1\", \"LLAMACPP_BASE_URL\", True, \"llama.cpp\", \"github.com/ggerganov/llama.cpp\"),\n (\"vllm\", \"Vllm\", \"http://127.0.0.1:8000/v1\", \"VLLM_BASE_URL\", True, \"vLLM\", \"vllm.ai\"),\n (\"sglang\", \"Sglang\", \"http://127.0.0.1:30000/v1\", \"SGLANG_BASE_URL\", True, \"SGLang\", \"github.com/sgl-project/sglang\"),\n (\"xinference\", \"Xinference\", \"http://127.0.0.1:9997/v1\", \"XINFERENCE_BASE_URL\", True, \"Xinference\", \"inference.ai\"),\n (\"localai\", \"Localai\", \"http://127.0.0.1:8080/v1\", \"LOCALAI_BASE_URL\", True, \"LocalAI\", \"localai.io\"),\n (\"jlama\", \"Jlama\", \"http://127.0.0.1:8080/v1\", \"JLAMA_BASE_URL\", True, \"Jlama\", \"github.com/tjake/Jlama\"),\n (\"ollama_cloud\", \"OllamaCloud\", \"https://api.ollama.com/v1\", \"OLLAMA_CLOUD_API_KEY\", False, \"Ollama Cloud\", \"ollama.com\"),\n (\"docker_model_runner\", \"DockerModelRunner\", \"http://model-runner.docker.internal/engines/llama.cpp/v1\", \"DOCKER_MODEL_RUNNER_BASE_URL\", True, \"Docker Model Runner\", \"docker.com\"),\n\n # ── 网关/聚合 ──\n (\"portkey\", \"Portkey\", \"https://api.portkey.ai/v1\", \"PORTKEY_API_KEY\", False, \"Portkey Gateway\", \"portkey.ai\"),\n (\"helicone\", \"Helicone\", \"https://api.helicone.ai/v1\", \"HELICONE_API_KEY\", False, \"Helicone\", \"helicone.ai\"),\n (\"requesty\", \"Requesty\", \"https://api.requesty.ai/v1\", \"REQUESTY_API_KEY\", False, \"Requesty\", \"requesty.ai\"),\n (\"ai302\", \"Ai302\", \"https://api.302.ai/v1\", \"AI302_API_KEY\", False, \"302.AI\", \"302.ai\"),\n (\"api2d\", \"Api2d\", \"https://oa.api2d.net/v1\", \"API2D_API_KEY\", False, \"API2D\", \"api2d.net\"),\n (\"ohmygpt\", \"Ohmygpt\", \"https://api.ohmygpt.com/v1\", \"OHMYGPT_API_KEY\", False, \"OhMyGPT\", \"ohmygpt.com\"),\n (\"closeai\", \"Closeai\", \"https://api.closeai-proxy.xyz/v1\", \"CLOSEAI_API_KEY\", False, \"CloseAI\", \"closeai-proxy.xyz\"),\n (\"openaisb\", \"Openaisb\", \"https://api.openaisb.com/v1\", \"OPENAISB_API_KEY\", False, \"OpenAI-SB\", \"openaisb.com\"),\n (\"openaimax\", \"Openaimax\", \"https://api.openaimax.com/v1\", \"OPENAIMAX_API_KEY\", False, \"OpenAIMax\", \"openaimax.com\"),\n (\"ails\", \"Ails\", \"https://api.caipacity.com/v1\", \"AILS_API_KEY\", False, \"AILS\", \"caipacity.com\"),\n (\"api2gpt\", \"Api2gpt\", \"https://api.api2gpt.com/v1\", \"API2GPT_API_KEY\", False, \"API2GPT\", \"api2gpt.com\"),\n (\"aigc2d\", \"Aigc2d\", \"https://api.aigc2d.com/v1\", \"AIGC2D_API_KEY\", False, \"AIGC2D\", \"aigc2d.com\"),\n (\"fastgpt\", \"Fastgpt\", \"https://api.fastgpt.in/v1\", \"FASTGPT_API_KEY\", False, \"FastGPT\", \"fastgpt.in\"),\n (\"tokenpony\", \"Tokenpony\", \"https://api.tokenpony.com/v1\", \"TOKENPONY_API_KEY\", False, \"TokenPony\", \"tokenpony.com\"),\n (\"fastrouter\", \"Fastrouter\", \"https://api.fastrouter.ai/v1\", \"FASTROUTER_API_KEY\", False, \"FastRouter\", \"fastrouter.ai\"),\n (\"orcarouter\", \"Orcarouter\", \"https://api.orcarouter.com/v1\", \"ORCAROUTER_API_KEY\", False, \"OrcaRouter\", \"orcarouter.com\"),\n (\"submodel\", \"Submodel\", \"https://api.submodel.com/v1\", \"SUBMODEL_API_KEY\", False, \"SubModel\", \"submodel.com\"),\n\n # ── 其他云厂商 ──\n (\"kluster_ai\", \"KlusterAi\", \"https://api.kluster.ai/v1\", \"KLUSTER_API_KEY\", False, \"Kluster AI\", \"kluster.ai\"),\n (\"krutrim\", \"Krutrim\", \"https://api.krutrim.ai/v1\", \"KRUTRIM_API_KEY\", False, \"Krutrim\", \"krutrim.ai\"),\n (\"bytez\", \"Bytez\", \"https://api.bytez.com/v2\", \"BYTEZ_API_KEY\", False, \"Bytez\", \"bytez.com\"),\n (\"upstage\", \"Upstage\", \"https://api.upstage.ai/v1\", \"UPSTAGE_API_KEY\", False, \"Upstage\", \"upstage.ai\"),\n (\"deepbricks\", \"Deepbricks\", \"https://api.deepbricks.ai/v1\", \"DEEPBRICKS_API_KEY\", False, \"DeepBricks\", \"deepbricks.ai\"),\n (\"lemonfox_ai\", \"LemonfoxAi\", \"https://api.lemonfox.ai/v1\", \"LEMONFOX_API_KEY\", False, \"Lemonfox AI\", \"lemonfox.ai\"),\n (\"modal\", \"Modal\", \"https://modal.com/v1\", \"MODAL_API_KEY\", False, \"Modal\", \"modal.com\"),\n (\"sakana\", \"Sakana\", \"https://api.sakana.ai/v1\", \"SAKANA_API_KEY\", False, \"Sakana AI\", \"sakana.ai\"),\n (\"nous_research\", \"NousResearch\", \"https://api.nousresearch.com/v1\", \"NOUS_API_KEY\", False, \"Nous Research\", \"nousresearch.com\"),\n (\"bedrock_mantle\", \"BedrockMantle\", \"https://bedrock-runtime.us-east-1.amazonaws.com\", \"AWS_BEDROCK_API_KEY\", False, \"Bedrock Mantle\", \"aws.amazon.com\"),\n (\"watsonx\", \"Watsonx\", \"https://us-south.ml.cloud.ibm.com/v1\", \"WATSONX_API_KEY\", False, \"IBM watsonx\", \"ibm.com\"),\n (\"sagemaker\", \"Sagemaker\", \"https://runtime.sagemaker.us-east-1.amazonaws.com\", \"SAGEMAKER_API_KEY\", False, \"AWS SageMaker\", \"aws.amazon.com\"),\n (\"sap\", \"Sap\", \"https://api.ai.sap.eu10.hana.ondemand.com/v2\", \"SAP_AI_API_KEY\", False, \"SAP AI Core\", \"sap.com\"),\n (\"oci\", \"Oci\", \"https://inference.generativeai.us-chicago-1.oci.oraclecloud.com\", \"OCI_API_KEY\", False, \"Oracle OCI AI\", \"oracle.com\"),\n (\"snowflake\", \"Snowflake\", \"https://xxx.snowflakecomputing.com/api/v2/cortex\", \"SNOWFLAKE_API_KEY\", False, \"Snowflake Cortex\", \"snowflake.com\"),\n (\"infinity\", \"Infinity\", \"https://infinity.ai/api/v1\", \"INFINITY_API_KEY\", False, \"Infinity AI\", \"infinity.ai\"),\n (\"hosted_vllm\", \"HostedVllm\", \"https://hosted-vllm-api.com/v1\", \"HOSTED_VLLM_API_KEY\", False, \"Hosted vLLM\", \"vllm.ai\"),\n (\"petals\", \"Petals\", \"https://api.petals.dev/v1\", \"PETALS_API_KEY\", False, \"Petals\", \"petals.dev\"),\n (\"oobabooba\", \"Oobabooba\", \"http://127.0.0.1:5000/v1\", \"OOBABOOBA_BASE_URL\", True, \"Oobabooga Text Generation WebUI\", \"github.com/oobabooga\"),\n (\"gdc\", \"Gdc\", \"https://api.gdc.ai/v1\", \"GDC_API_KEY\", False, \"GDC\", \"gdc.ai\"),\n (\"fastcrw\", \"Fastcrw\", \"https://fastcrw.com/api/v1\", \"FASTCRW_API_KEY\", False, \"FastCRW\", \"fastcrw.com\"),\n (\"dify\", \"Dify\", \"https://api.dify.ai/v1\", \"DIFY_API_KEY\", False, \"Dify\", \"dify.ai\"),\n (\"clip\", \"Clip\", \"http://127.0.0.1:8080/v1\", \"CLIP_BASE_URL\", True, \"CLIP (local)\", \"openai.com/clip\"),\n (\"fastembed\", \"Fastembed\", \"http://127.0.0.1:8080/v1\", \"FASTEMBED_BASE_URL\", True, \"FastEmbed (local)\", \"github.com/Anush008/fastembed-rs\"),\n (\"tei\", \"Tei\", \"http://127.0.0.1:8080/v1\", \"TEI_BASE_URL\", True, \"Text Embeddings Inference (local)\", \"github.com/huggingface/text-embeddings-inference\"),\n (\"nomic\", \"Nomic\", \"https://api.nomic.ai/v1\", \"NOMIC_API_KEY\", False, \"Nomic\", \"nomic.ai\"),\n (\"jina\", \"Jina\", \"https://api.jina.ai/v1\", \"JINA_API_KEY\", False, \"Jina AI\", \"jina.ai\"),\n (\"mixedbread\", \"Mixedbread\", \"https://api.mixedbread.ai/v1\", \"MIXEDBREAD_API_KEY\", False, \"Mixedbread\", \"mixedbread.ai\"),\n (\"recraft\", \"Recraft\", \"https://external.api.recraft.ai/v1\", \"RECRAFT_API_KEY\", False, \"Recraft\", \"recraft.ai\"),\n (\"ideogram\", \"Ideogram\", \"https://api.ideogram.ai/v1\", \"IDEOGRAM_API_KEY\", False, \"Ideogram\", \"ideogram.ai\"),\n (\"stability_ai\", \"StabilityAi\", \"https://api.stability.ai/v1\", \"STABILITY_API_KEY\", False, \"Stability AI\", \"stability.ai\"),\n (\"segmind\", \"Segmind\", \"https://api.segmind.com/v1\", \"SEGMIND_API_KEY\", False, \"Segmind\", \"segmind.com\"),\n (\"runware\", \"Runware\", \"https://api.runware.ai/v1\", \"RUNWARE_API_KEY\", False, \"Runware\", \"runware.ai\"),\n (\"meshy\", \"Meshy\", \"https://api.meshy.ai/v1\", \"MESHY_API_KEY\", False, \"Meshy (3D)\", \"meshy.ai\"),\n (\"tripo3d\", \"Tripo3d\", \"https://api.tripo3d.ai/v1\", \"TRIPO3D_API_KEY\", False, \"Tripo3D\", \"tripo3d.ai\"),\n (\"runwayml\", \"Runwayml\", \"https://api.dev.runwayml.com/v1\", \"RUNWAYML_API_KEY\", False, \"Runway ML\", \"runwayml.com\"),\n (\"sora\", \"Sora\", \"https://api.openai.com/v1\", \"OPENAI_API_KEY\", False, \"OpenAI Sora\", \"openai.com\"),\n (\"vidu\", \"Vidu\", \"https://api.vidu.com/v1\", \"VIDU_API_KEY\", False, \"Vidu\", \"vidu.com\"),\n (\"jimeng\", \"Jimeng\", \"https://api.jimeng.jianying.com/v1\", \"JIMENG_API_KEY\", False, \"Jimeng (即梦)\", \"jianying.com\"),\n (\"midjourney\", \"Midjourney\", \"https://api.midjourney.com/v1\", \"MIDJOURNEY_API_KEY\", False, \"Midjourney\", \"midjourney.com\"),\n (\"flux\", \"Flux\", \"https://api.fal.ai/v1\", \"FLUX_API_KEY\", False, \"FLUX (via fal)\", \"fal.ai\"),\n (\"suno\", \"Suno\", \"https://api.suno.com/v1\", \"SUNO_API_KEY\", False, \"Suno (音乐)\", \"suno.com\"),\n (\"doubaoaudio\", \"DoubaoAudio\", \"https://ark.cn-beijing.volces.com/api/v3\", \"ARK_API_KEY\", False, \"Doubao Audio\", \"volces.com\"),\n (\"murf\", \"Murf\", \"https://api.murf.ai/v1\", \"MURF_API_KEY\", False, \"Murf (TTS)\", \"murf.ai\"),\n (\"playai\", \"Playai\", \"https://api.play.ai/v1\", \"PLAYAI_API_KEY\", False, \"PlayAI (TTS)\", \"play.ai\"),\n (\"speechify\", \"Speechify\", \"https://api.sws.speechify.com/v1\", \"SPEECHIFY_API_KEY\", False, \"Speechify (TTS)\", \"speechify.com\"),\n (\"inworld\", \"Inworld\", \"https://api.inworld.ai/v1\", \"INWORLD_API_KEY\", False, \"Inworld (TTS)\", \"inworld.ai\"),\n (\"aws_polly\", \"AwsPolly\", \"https://polly.us-east-1.amazonaws.com\", \"AWS_POLLY_API_KEY\", False, \"AWS Polly (TTS)\", \"aws.amazon.com\"),\n (\"nvidia_riva\", \"NvidiaRiva\", \"https://api.nvidia.com/v1\", \"NVIDIA_RIVA_API_KEY\", False, \"NVIDIA Riva (TTS)\", \"nvidia.com\"),\n (\"soniox\", \"Soniox\", \"https://api.soniox.com/v1\", \"SONIOX_API_KEY\", False, \"Soniox (STT)\", \"soniox.com\"),\n (\"mokaai\", \"Mokaai\", \"https://api.mokaai.com/v1\", \"MOKAAI_API_KEY\", False, \"MokaAI\", \"mokaai.com\"),\n (\"skylark\", \"Skylark\", \"https://api.skylark.com/v1\", \"SKYLARK_API_KEY\", False, \"Skylark (云雀)\", \"skylark.com\"),\n (\"deepl\", \"Deepl\", \"https://api.deepl.com/v2\", \"DEEPL_API_KEY\", False, \"DeepL\", \"deepl.com\"),\n (\"bing\", \"Bing\", \"https://api.bing.microsoft.com/v1\", \"BING_API_KEY\", False, \"Bing\", \"microsoft.com\"),\n (\"slack\", \"Slack\", \"https://slack.com/api/chat.postMessage\", \"SLACK_API_KEY\", False, \"Slack (Claude proxy)\", \"slack.com\"),\n (\"doubaoaudio\", \"DoubaoAudio\", \"https://ark.cn-beijing.volces.com/api/v3\", \"ARK_API_KEY\", False, \"Doubao Audio\", \"volces.com\"),\n (\"ncompass\", \"Ncompass\", \"https://api.ncompass.tech/v1\", \"NCOMPASS_API_KEY\", False, \"Ncompass\", \"ncompass.tech\"),\n (\"parasail\", \"Parasail\", \"https://api.parasail.io/v1\", \"PARASAIL_API_KEY\", False, \"Parasail\", \"parasail.io\"),\n (\"wafer\", \"Wafer\", \"https://api.wafer.ai/v1\", \"WAFER_API_KEY\", False, \"Wafer\", \"wafer.ai\"),\n (\"matterai\", \"Matterai\", \"https://api.matterai.com/v1\", \"MATTERAI_API_KEY\", False, \"Matter AI\", \"matterai.com\"),\n (\"nextbit\", \"Nextbit\", \"https://api.nextbit.ai/v1\", \"NEXTBIT_API_KEY\", False, \"NextBit\", \"nextbit.ai\"),\n (\"aibadgr\", \"Aibadgr\", \"https://api.aibadgr.com/v1\", \"AIBADGR_API_KEY\", False, \"AI Badgr\", \"aibadgr.com\"),\n (\"inference_net\", \"InferenceNet\", \"https://api.inference.net/v1\", \"INFERENCE_NET_API_KEY\", False, \"Inference.net\", \"inference.net\"),\n (\"lemonfox_ai\", \"LemonfoxAi\", \"https://api.lemonfox.ai/v1\", \"LEMONFOX_API_KEY\", False, \"Lemonfox AI\", \"lemonfox.ai\"),\n (\"opencode_go\", \"OpencodeGo\", \"https://api.opencode.dev/v1\", \"OPENCODE_GO_API_KEY\", False, \"OpenCode Go\", \"opencode.dev\"),\n (\"opencode_zen\", \"OpencodeZen\", \"https://api.opencode.zen/v1\", \"OPENCODE_ZEN_API_KEY\", False, \"OpenCode Zen\", \"opencode.zen\"),\n (\"kiro\", \"Kiro\", \"https://api.kiro.dev/v1\", \"KIRO_API_KEY\", False, \"Kiro\", \"kiro.dev\"),\n (\"pioneer\", \"Pioneer\", \"https://api.pioneer.ai/v1\", \"PIONEER_API_KEY\", False, \"Pioneer\", \"pioneer.ai\"),\n (\"kilo\", \"Kilo\", \"https://api.kilo.ai/v1\", \"KILO_API_KEY\", False, \"Kilo\", \"kilo.ai\"),\n (\"commandcode\", \"Commandcode\", \"https://api.commandcode.com/v1\", \"COMMANDCODE_API_KEY\", False, \"CommandCode\", \"commandcode.com\"),\n (\"cline_pass\", \"ClinePass\", \"https://api.cline.bot/v1\", \"CLINE_API_KEY\", False, \"Cline\", \"cline.bot\"),\n (\"albert\", \"Albert\", \"https://api.albert.ai/v1\", \"ALBERT_API_KEY\", False, \"Albert\", \"albert.ai\"),\n (\"scx_ai\", \"ScxAi\", \"https://api.scx.ai/v1\", \"SCX_AI_API_KEY\", False, \"SCX AI\", \"scx.ai\"),\n (\"atlascloud\", \"Atlascloud\", \"https://api.atlascloud.com/v1\", \"ATLASCLOUD_API_KEY\", False, \"AtlasCloud\", \"atlascloud.com\"),\n (\"canopywave\", \"Canopywave\", \"https://api.canopywave.com/v1\", \"CANOPYWAVE_API_KEY\", False, \"Canopywave\", \"canopywave.com\"),\n (\"embercloud\", \"Embercloud\", \"https://api.embercloud.com/v1\", \"EMBERCLOUD_API_KEY\", False, \"Embercloud\", \"embercloud.com\"),\n (\"tundra\", \"Tundra\", \"https://api.tundra.ai/v1\", \"TUNDRA_API_KEY\", False, \"Tundra\", \"tundra.ai\"),\n (\"reve\", \"Reve\", \"https://api.reve.ai/v1\", \"REVE_API_KEY\", False, \"Reve\", \"reve.ai\"),\n (\"gonka24\", \"Gonka24\", \"https://api.gonka24.com/v1\", \"GONKA24_API_KEY\", False, \"Gonka24\", \"gonka24.com\"),\n (\"streamlake\", \"Streamlake\", \"https://api.streamlake.com/v1\", \"STREAMLAKE_API_KEY\", False, \"StreamLake\", \"streamlake.com\"),\n (\"antling\", \"Antling\", \"https://api.antling.com/v1\", \"ANTLING_API_KEY\", False, \"Antling\", \"antling.com\"),\n (\"sangforaicp\", \"Sangforaicp\", \"https://aicp.sangfor.com/v1\", \"SANGFOR_AICP_API_KEY\", False, \"Sangfor AICP\", \"sangfor.com\"),\n (\"doc2x\", \"Doc2x\", \"https://api.doc2x.com/v1\", \"DOC2X_API_KEY\", False, \"Doc2X\", \"doc2x.com\"),\n (\"v0\", \"V0\", \"https://api.v0.dev/v1\", \"V0_API_KEY\", False, \"v0 (Vercel)\", \"v0.dev\"),\n (\"text_embeddings_inference\", \"TextEmbeddingsInference\", \"http://127.0.0.1:8080\", \"TEI_BASE_URL\", True, \"Text Embeddings Inference\", \"github.com/huggingface/text-embeddings-inference\"),\n (\"pg_vector\", \"PgVector\", \"http://127.0.0.1:5432\", \"PG_VECTOR_URL\", True, \"PostgreSQL pgvector\", \"github.com/pgvector/pgvector\"),\n (\"s3_vectors\", \"S3Vectors\", \"https://s3.amazonaws.com\", \"S3_VECTORS_API_KEY\", False, \"S3 Vectors\", \"aws.amazon.com\"),\n (\"milvus\", \"Milvus\", \"http://127.0.0.1:19530\", \"MILVUS_URL\", True, \"Milvus (向量库)\", \"milvus.io\"),\n (\"qdrant\", \"Qdrant\", \"http://127.0.0.1:6333\", \"QDRANT_URL\", True, \"Qdrant (向量库)\", \"qdrant.tech\"),\n (\"chatgpt\", \"Chatgpt\", \"https://chatgpt.com/backend-api/codex\", \"CHATGPT_API_KEY\", False, \"ChatGPT (订阅)\", \"openai.com\"),\n (\"nanogpt\", \"Nanogpt\", \"https://api.nanogpt.com/v1\", \"NANOGPT_API_KEY\", False, \"NanoGPT\", \"nanogpt.com\"),\n (\"local\", \"Local\", \"http://127.0.0.1:8080/v1\", \"LOCAL_LLM_BASE_URL\", True, \"Local LLM\", \"localhost\"),\n (\"cybertron\", \"Cybertron\", \"http://127.0.0.1:8080/v1\", \"CYBERTRON_BASE_URL\", True, \"Cybertron (Rust)\", \"github.com/dottorblaster/cybertron\"),\n (\"mlx\", \"Mlx\", \"http://127.0.0.1:8080/v1\", \"MLX_BASE_URL\", True, \"MLX (Apple Silicon)\", \"github.com/ml-explore/mlx\"),\n (\"openvino\", \"Openvino\", \"http://127.0.0.1:8080/v1\", \"OPENVINO_BASE_URL\", True, \"OpenVINO\", \"intel.com/openvino\"),\n (\"gaudi\", \"Gaudi\", \"http://127.0.0.1:8080/v1\", \"GAUDI_BASE_URL\", True, \"Intel Gaudi\", \"intel.com\"),\n (\"onnx\", \"Onnx\", \"http://127.0.0.1:8080/v1\", \"ONNX_BASE_URL\", True, \"ONNX Runtime\", \"onnxruntime.ai\"),\n (\"omlx\", \"Omlx\", \"http://127.0.0.1:8080/v1\", \"OMLX_BASE_URL\", True, \"OMLX / MLX LM\", \"github.com/ml-explore/mlx-lm\"),\n (\"doubaoaudio\", \"DoubaoAudio\", \"https://ark.cn-beijing.volces.com/api/v3\", \"ARK_API_KEY\", False, \"Doubao Audio\", \"volces.com\"),\n]\n\ndef gen_local_template(mod, prefix, base_url, env_var, display, doc_url):\n return f'''//! {display} provider — a thin OpenAI-compatible wrapper.\n//!\n//! See <{doc_url}> for API documentation. Exposes an OpenAI-compatible\n//! Chat Completions API at `{base_url}`. The `{env_var}` environment\n//! variable holds a *base URL* (not an API key); when unset, the default\n//! endpoint is used. A placeholder API key is sent in the `Authorization`\n//! header — the shared `OpenAIProvider` requires a non-empty key string.\n\nuse aimux_core::error::AiMuxError;\nuse aimux_core::language_model::LanguageModel;\nuse aimux_core::provider::Provider;\n\nuse crate::openai::{{OpenAIConfig, OpenAIModel, OpenAIProvider}};\n\nconst DEFAULT_BASE_URL: &str = \"{base_url}\";\nconst ENV_VAR: &str = \"{env_var}\";\nconst PROVIDER_NAME: &str = \"{mod}\";\nconst PLACEHOLDER_API_KEY: &str = \"{mod}\";\n\npub struct {prefix}Config(OpenAIConfig);\n\nimpl {prefix}Config {{\n pub fn new(api_key: impl Into) -> Self {{\n Self(\n OpenAIConfig::new(api_key)\n .with_base_url(DEFAULT_BASE_URL)\n .with_provider(PROVIDER_NAME),\n )\n }}\n\n pub fn from_env() -> Result {{\n let config = Self::new(PLACEHOLDER_API_KEY);\n match std::env::var(ENV_VAR) {{\n Ok(url) if !url.trim().is_empty() => Ok(config.with_base_url(url)),\n _ => Ok(config),\n }}\n }}\n\n pub fn with_base_url(mut self, url: impl Into) -> Self {{\n self.0 = self.0.with_base_url(url);\n self\n }}\n}}\n\npub struct {prefix}Provider(OpenAIProvider);\n\nimpl {prefix}Provider {{\n pub fn new(config: {prefix}Config) -> Self {{\n Self(OpenAIProvider::new(config.0))\n }}\n\n pub fn model(&self, model_id: &str) -> OpenAIModel {{\n self.0.model(model_id)\n }}\n}}\n\nimpl Provider for {prefix}Provider {{\n fn name(&self) -> &str {{\n PROVIDER_NAME\n }}\n\n fn language_model(&self, model_id: &str) -> Result, AiMuxError> {{\n Ok(Box::new(self.model(model_id)))\n }}\n}}\n'''\n\ndef gen_cloud_template(mod, prefix, base_url, env_var, display, doc_url):\n return f'''//! {display} provider — a thin OpenAI-compatible wrapper.\n//!\n//! See <{doc_url}> for API documentation. Exposes an OpenAI-compatible\n//! Chat Completions API at `{base_url}`. Provider-specific details are the\n//! base URL and the `{env_var}` environment variable; everything else is\n//! delegated to the shared `OpenAIProvider`.\n\nuse aimux_core::error::AiMuxError;\nuse aimux_core::language_model::LanguageModel;\nuse aimux_core::provider::Provider;\nuse aimux_provider_utils::load_api_key;\n\nuse crate::openai::{{OpenAIConfig, OpenAIModel, OpenAIProvider}};\n\nconst DEFAULT_BASE_URL: &str = \"{base_url}\";\nconst ENV_VAR: &str = \"{env_var}\";\nconst PROVIDER_NAME: &str = \"{mod}\";\n\npub struct {prefix}Config(OpenAIConfig);\n\nimpl {prefix}Config {{\n pub fn new(api_key: impl Into) -> Self {{\n Self(OpenAIConfig::new(api_key).with_base_url(DEFAULT_BASE_URL))\n }}\n\n pub fn from_env() -> Result {{\n let key = load_api_key(None, ENV_VAR, \"{display}\")?;\n Ok(Self::new(key))\n }}\n\n pub fn with_base_url(mut self, url: impl Into) -> Self {{\n self.0 = self.0.with_base_url(url);\n self\n }}\n}}\n\npub struct {prefix}Provider(OpenAIProvider);\n\nimpl {prefix}Provider {{\n pub fn new(config: {prefix}Config) -> Self {{\n Self(OpenAIProvider::new(config.0))\n }}\n\n pub fn model(&self, model_id: &str) -> OpenAIModel {{\n self.0.model(model_id)\n }}\n}}\n\nimpl Provider for {prefix}Provider {{\n fn name(&self) -> &str {{\n PROVIDER_NAME\n }}\n\n fn language_model(&self, model_id: &str) -> Result, AiMuxError> {{\n Ok(Box::new(self.model(model_id)))\n }}\n}}\n'''\n\ndef main():\n seen = set()\n generated = []\n skipped = []\n\n for mod_name, prefix, base_url, env_var, is_local, display, doc_url in PROVIDERS:\n if mod_name in ALREADY_DONE or mod_name in seen:\n skipped.append(mod_name)\n continue\n seen.add(mod_name)\n\n out_path = SRC / f\"{mod_name}.rs\"\n if out_path.exists():\n skipped.append(mod_name)\n continue\n\n if is_local:\n content = gen_local_template(mod_name, prefix, base_url, env_var, display, doc_url)\n else:\n content = gen_cloud_template(mod_name, prefix, base_url, env_var, display, doc_url)\n\n out_path.write_text(content, encoding=\"utf-8\")\n generated.append((mod_name, prefix))\n\n print(f\"Generated {len(generated)} provider files:\")\n for mod, prefix in sorted(generated):\n print(f\" {mod}.rs ({prefix}Config / {prefix}Provider)\")\n if skipped:\n print(f\"\\nSkipped {len(skipped)} (already exist): {', '.join(sorted(skipped))}\")\n\n # Print lib.rs snippet\n print(\"\\n# Add to lib.rs:\")\n for mod_name, _ in sorted(generated):\n print(f'pub mod {mod_name};')\n print()\n for mod_name, prefix in sorted(generated):\n print(f'pub use {mod_name}::{{{prefix}Config, {prefix}Provider}};')\n\nif __name__ == \"__main__\":\n main()\n"}, "1b3e3618ec8c3c7d617087474f15f50e0cba4e0d": {"t": 1785846958.7521904, "n": 27397, "h": "bcb0c3e6f084434d", "c": "#!/usr/bin/env python3\n\"\"\"Generate thin-wrapper provider .rs files for ALL missing OpenAI-compatible providers.\n\nThis is a one-shot bulk generation script. It creates a .rs file per provider,\nupdates lib.rs, and prints a summary.\n\nUsage:\n uv run python scripts/generate_all_providers.py\n\"\"\"\n\nimport os\nfrom pathlib import Path\n\nREPO = Path(__file__).resolve().parent.parent\nSRC = REPO / \"aimux-providers\" / \"src\"\n\n# ── Already implemented (don't regenerate) ──\nALREADY_DONE = {\n \"anthropic\", \"anthropic_aws\", \"azure\", \"bedrock\", \"google\", \"vertex\",\n \"mistral\", \"cohere\", \"xai\", \"deepseek\", \"openai\", \"open_responses\",\n # OpenAI-compatible thin wrappers (batch 1)\n \"groq\", \"fireworks\", \"togetherai\", \"perplexity\", \"moonshotai\", \"cerebras\",\n \"alibaba\", \"baseten\", \"bytedance\", \"deepinfra\", \"huggingface\", \"vercel\",\n \"openrouter\", \"copilot\", \"llamafile\", \"mistralrs\", \"doubleword\",\n # Non-text\n \"voyage\", \"cartesia\", \"elevenlabs\", \"hume\", \"lmnt\",\n \"assemblyai\", \"deepgram\", \"fal\", \"gladia\", \"revai\",\n \"black_forest_labs\", \"luma\", \"prodia\", \"replicate\", \"klingai\",\n # Batch 2 (just added)\n \"ollama\", \"zai\", \"github\", \"siliconflow\", \"lmstudio\", \"sambanova\",\n}\n\n# ── Provider definitions ──\n# (module_name, struct_prefix, base_url, env_var, is_local, display_name, doc_url)\n# is_local=True: no API key needed, uses ENV_VAR for base URL\n# is_local=False: uses ENV_VAR for API key\nPROVIDERS = [\n # ── Cloud LLM providers (OpenAI-compatible) ──\n (\"novita\", \"Novita\", \"https://api.novita.ai/v1\", \"NOVITA_API_KEY\", False, \"Novita AI\", \"novita.ai\"),\n (\"nebius\", \"Nebius\", \"https://api.studio.nebius.ai/v1\", \"NEBIUS_API_KEY\", False, \"Nebius AI\", \"nebius.ai\"),\n (\"hyperbolic\", \"Hyperbolic\", \"https://api.hyperbolic.xyz/v1\", \"HYPERBOLIC_API_KEY\", False, \"Hyperbolic\", \"hyperbolic.xyz\"),\n (\"ovhcloud\", \"Ovhcloud\", \"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1\", \"OVHCLOUD_API_KEY\", False, \"OVHcloud AI\", \"ovhcloud.com\"),\n (\"ai21\", \"Ai21\", \"https://api.ai21.ai/v1\", \"AI21_API_KEY\", False, \"AI21 Labs\", \"ai21.com\"),\n (\"anyscale\", \"Anyscale\", \"https://api.endpoints.anyscale.com/v1\", \"ANYSCALE_API_KEY\", False, \"Anyscale\", \"anyscale.com\"),\n (\"predibase\", \"Predibase\", \"https://serving.app.predibase.com/v1\", \"PREDIBASE_API_KEY\", False, \"Predibase\", \"predibase.com\"),\n (\"databricks\", \"Databricks\", \"https://databricks.com/serving-endpoints\", \"DATABRICKS_API_KEY\", False, \"Databricks\", \"databricks.com\"),\n (\"scaleway\", \"Scaleway\", \"https://api.scaleway.ai/v1\", \"SCALEWAY_API_KEY\", False, \"Scaleway AI\", \"scaleway.com\"),\n (\"nlp_cloud\", \"NlpCloud\", \"https://api.nlpcloud.io/v1\", \"NLPCLOUD_API_KEY\", False, \"NLP Cloud\", \"nlpcloud.com\"),\n (\"friendliai\", \"FriendliAI\", \"https://inference.friendli.ai/v1\", \"FRIENDLIAI_API_KEY\", False, \"FriendliAI\", \"friendli.ai\"),\n (\"clarifai\", \"Clarifai\", \"https://api.clarifai.com/v2/ext/openai/v1\", \"CLARIFAI_API_KEY\", False, \"Clarifai\", \"clarifai.com\"),\n (\"gigachat\", \"GigaChat\", \"https://gigachat.devices.sberbank.ru/api/v1\", \"GIGACHAT_API_KEY\", False, \"GigaChat (Sberbank)\", \"sberbank.ru\"),\n (\"codestral\", \"Codestral\", \"https://api.mistral.ai/v1\", \"CODESTRAL_API_KEY\", False, \"Codestral (Mistral)\", \"mistral.ai\"),\n (\"morph\", \"Morph\", \"https://api.morphllm.com/v1\", \"MORPH_API_KEY\", False, \"Morph LLM\", \"morphllm.com\"),\n (\"aiml\", \"Aiml\", \"https://api.aimlapi.com/v1\", \"AIML_API_KEY\", False, \"AI/ML API\", \"aimlapi.com\"),\n (\"heroku\", \"Heroku\", \"https://api.heroku.com/inference/v1\", \"HEROKU_API_KEY\", False, \"Heroku AI\", \"heroku.com\"),\n (\"nvidia_nim\", \"NvidiaNim\", \"https://integrate.api.nvidia.com/v1\", \"NVIDIA_API_KEY\", False, \"NVIDIA NIM\", \"nvidia.com\"),\n (\"nscale\", \"Nscale\", \"https://inference.api.nscale.com/v1\", \"NSCALE_API_KEY\", False, \"Nscale\", \"nscale.com\"),\n (\"lambda_ai\", \"LambdaAi\", \"https://api.lambda.ai/v1\", \"LAMBDA_API_KEY\", False, \"Lambda AI\", \"lambda.ai\"),\n (\"inception\", \"Inception\", \"https://api.inceptionlabs.ai/v1\", \"INCEPTION_API_KEY\", False, \"Inception Labs\", \"inceptionlabs.ai\"),\n (\"galadriel\", \"Galadriel\", \"https://api.galadriel.com/v1\", \"GALADRIEL_API_KEY\", False, \"Galadriel\", \"galadriel.com\"),\n (\"datarobot\", \"Datarobot\", \"https://app.datarobot.com/api/v2\", \"DATAROBOT_API_TOKEN\", False, \"DataRobot\", \"datarobot.com\"),\n (\"featherless_ai\", \"FeatherlessAi\", \"https://api.featherless.ai/v1\", \"FEATHERLESS_API_KEY\", False, \"Featherless AI\", \"featherless.ai\"),\n (\"cometapi\", \"Cometapi\", \"https://api.cometapi.com/v1\", \"COMETAPI_API_KEY\", False, \"CometAPI\", \"cometapi.com\"),\n (\"reka_ai\", \"RekaAi\", \"https://api.reka.ai/v1\", \"REKA_API_KEY\", False, \"Reka AI\", \"reka.ai\"),\n (\"sarvam\", \"Sarvam\", \"https://api.sarvam.ai/v1\", \"SARVAM_API_KEY\", False, \"Sarvam AI\", \"sarvam.ai\"),\n (\"meta_llama\", \"MetaLlama\", \"https://api.llama.com/compat/v1\", \"LLAMA_API_KEY\", False, \"Meta Llama API\", \"llama.com\"),\n (\"apiserpent\", \"Apiserpent\", \"https://api.apiserpent.com/v1\", \"APISERPENT_API_KEY\", False, \"API Serpent\", \"apiserpent.com\"),\n (\"modelscope\", \"Modelscope\", \"https://api-inference.modelscope.cn/v1\", \"MODELSCOPE_API_KEY\", False, \"ModelScope\", \"modelscope.cn\"),\n (\"litellm_proxy\", \"LitellmProxy\", \"http://127.0.0.1:4000/v1\", \"LITELLM_PROXY_API_KEY\", True, \"LiteLLM Proxy\", \"litellm.ai\"),\n (\"compactifai\", \"Compactifai\", \"https://api.compactif.ai/v1\", \"COMPACTIFAI_API_KEY\", False, \"CompactifAI\", \"compactif.ai\"),\n (\"gradient_ai\", \"GradientAi\", \"https://inference.do-ai.run/v1\", \"GRADIENT_API_KEY\", False, \"Gradient AI\", \"do-ai.run\"),\n (\"azure_ai\", \"AzureAi\", \"https://models.inference.ai.azure.com\", \"AZURE_AI_API_KEY\", False, \"Azure AI\", \"azure.com\"),\n (\"doubaoaudio\", \"DoubaoAudio\", \"https://ark.cn-beijing.volces.com/api/v3\", \"ARK_API_KEY\", False, \"Doubao Audio\", \"volces.com\"),\n\n # ── 国产厂商 (OpenAI-compatible) ──\n (\"baidu\", \"Baidu\", \"https://qianfan.baidubce.com/v2\", \"BAIDU_API_KEY\", False, \"Baidu (文心/ERNIE)\", \"baidubce.com\"),\n (\"tencent\", \"Tencent\", \"https://api.hunyuan.cloud.tencent.com/v1\", \"TENCENT_API_KEY\", False, \"Tencent (混元/Hunyuan)\", \"tencent.com\"),\n (\"baichuan\", \"Baichuan\", \"https://api.baichuan-ai.com/v1\", \"BAICHUAN_API_KEY\", False, \"Baichuan AI\", \"baichuan-ai.com\"),\n (\"stepfun\", \"Stepfun\", \"https://api.stepfun.com/v1\", \"STEPFUN_API_KEY\", False, \"StepFun (阶跃星辰)\", \"stepfun.com\"),\n (\"minimax\", \"Minimax\", \"https://api.minimax.io/v1\", \"MINIMAX_API_KEY\", False, \"MiniMax\", \"minimax.io\"),\n (\"lingyiwanwu\", \"Lingyiwanwu\", \"https://api.lingyiwanwu.com/v1\", \"LINGYIWANWU_API_KEY\", False, \"Lingyiwanwu (零一万物)\", \"lingyiwanwu.com\"),\n (\"qihoo360\", \"Qihoo360\", \"https://api.360.cn/v1\", \"AI360_API_KEY\", False, \"360 AI\", \"360.cn\"),\n (\"coze\", \"Coze\", \"https://api.coze.cn/v1\", \"COZE_API_KEY\", False, \"Coze (扣子)\", \"coze.cn\"),\n (\"qiniu_ai\", \"QiniuAi\", \"https://api.qiniu.com/v1\", \"QINIU_API_KEY\", False, \"Qiniu AI\", \"qiniu.com\"),\n (\"longcat\", \"Longcat\", \"https://api.longcat.chat/v1\", \"LONGCAT_API_KEY\", False, \"LongCat\", \"longcat.chat\"),\n (\"bigmodel\", \"Bigmodel\", \"https://open.bigmodel.cn/api/paas/v4\", \"BIGMODEL_API_KEY\", False, \"BigModel (智谱)\", \"bigmodel.cn\"),\n (\"aihubmix\", \"Aihubmix\", \"https://aihubmix.com/v1\", \"AIHUBMIX_API_KEY\", False, \"AIHubMix\", \"aihubmix.com\"),\n (\"mira\", \"Mira\", \"https://api.mira.so/v1\", \"MIRA_API_KEY\", False, \"Mira\", \"mira.so\"),\n (\"xiaomimimo\", \"Xiaomimimo\", \"https://mimo.xiaomi.com/v1\", \"XIAOMI_API_KEY\", False, \"Xiaomi MiMo\", \"xiaomi.com\"),\n (\"byteplus\", \"Byteplus\", \"https://ark.bytepluses.com/api/v3\", \"BYTEPLUS_API_KEY\", False, \"BytePlus (Volcano)\", \"bytepluses.com\"),\n (\"perfxcloud\", \"Perfxcloud\", \"https://api.perfxcloud.com/v1\", \"PERFXCLOUD_API_KEY\", False, \"PerfXCloud\", \"perfxcloud.com\"),\n\n # ── 本地推理 (OpenAI-compatible endpoints) ──\n (\"llamacpp\", \"Llamacpp\", \"http://127.0.0.1:8080/v1\", \"LLAMACPP_BASE_URL\", True, \"llama.cpp\", \"github.com/ggerganov/llama.cpp\"),\n (\"vllm\", \"Vllm\", \"http://127.0.0.1:8000/v1\", \"VLLM_BASE_URL\", True, \"vLLM\", \"vllm.ai\"),\n (\"sglang\", \"Sglang\", \"http://127.0.0.1:30000/v1\", \"SGLANG_BASE_URL\", True, \"SGLang\", \"github.com/sgl-project/sglang\"),\n (\"xinference\", \"Xinference\", \"http://127.0.0.1:9997/v1\", \"XINFERENCE_BASE_URL\", True, \"Xinference\", \"inference.ai\"),\n (\"localai\", \"Localai\", \"http://127.0.0.1:8080/v1\", \"LOCALAI_BASE_URL\", True, \"LocalAI\", \"localai.io\"),\n (\"jlama\", \"Jlama\", \"http://127.0.0.1:8080/v1\", \"JLAMA_BASE_URL\", True, \"Jlama\", \"github.com/tjake/Jlama\"),\n (\"ollama_cloud\", \"OllamaCloud\", \"https://api.ollama.com/v1\", \"OLLAMA_CLOUD_API_KEY\", False, \"Ollama Cloud\", \"ollama.com\"),\n (\"docker_model_runner\", \"DockerModelRunner\", \"http://model-runner.docker.internal/engines/llama.cpp/v1\", \"DOCKER_MODEL_RUNNER_BASE_URL\", True, \"Docker Model Runner\", \"docker.com\"),\n\n # ── 网关/聚合 ──\n (\"portkey\", \"Portkey\", \"https://api.portkey.ai/v1\", \"PORTKEY_API_KEY\", False, \"Portkey Gateway\", \"portkey.ai\"),\n (\"helicone\", \"Helicone\", \"https://api.helicone.ai/v1\", \"HELICONE_API_KEY\", False, \"Helicone\", \"helicone.ai\"),\n (\"requesty\", \"Requesty\", \"https://api.requesty.ai/v1\", \"REQUESTY_API_KEY\", False, \"Requesty\", \"requesty.ai\"),\n (\"ai302\", \"Ai302\", \"https://api.302.ai/v1\", \"AI302_API_KEY\", False, \"302.AI\", \"302.ai\"),\n (\"api2d\", \"Api2d\", \"https://oa.api2d.net/v1\", \"API2D_API_KEY\", False, \"API2D\", \"api2d.net\"),\n (\"ohmygpt\", \"Ohmygpt\", \"https://api.ohmygpt.com/v1\", \"OHMYGPT_API_KEY\", False, \"OhMyGPT\", \"ohmygpt.com\"),\n (\"closeai\", \"Closeai\", \"https://api.closeai-proxy.xyz/v1\", \"CLOSEAI_API_KEY\", False, \"CloseAI\", \"closeai-proxy.xyz\"),\n (\"openaisb\", \"Openaisb\", \"https://api.openaisb.com/v1\", \"OPENAISB_API_KEY\", False, \"OpenAI-SB\", \"openaisb.com\"),\n (\"openaimax\", \"Openaimax\", \"https://api.openaimax.com/v1\", \"OPENAIMAX_API_KEY\", False, \"OpenAIMax\", \"openaimax.com\"),\n (\"ails\", \"Ails\", \"https://api.caipacity.com/v1\", \"AILS_API_KEY\", False, \"AILS\", \"caipacity.com\"),\n (\"api2gpt\", \"Api2gpt\", \"https://api.api2gpt.com/v1\", \"API2GPT_API_KEY\", False, \"API2GPT\", \"api2gpt.com\"),\n (\"aigc2d\", \"Aigc2d\", \"https://api.aigc2d.com/v1\", \"AIGC2D_API_KEY\", False, \"AIGC2D\", \"aigc2d.com\"),\n (\"fastgpt\", \"Fastgpt\", \"https://api.fastgpt.in/v1\", \"FASTGPT_API_KEY\", False, \"FastGPT\", \"fastgpt.in\"),\n (\"tokenpony\", \"Tokenpony\", \"https://api.tokenpony.com/v1\", \"TOKENPONY_API_KEY\", False, \"TokenPony\", \"tokenpony.com\"),\n (\"fastrouter\", \"Fastrouter\", \"https://api.fastrouter.ai/v1\", \"FASTROUTER_API_KEY\", False, \"FastRouter\", \"fastrouter.ai\"),\n (\"orcarouter\", \"Orcarouter\", \"https://api.orcarouter.com/v1\", \"ORCAROUTER_API_KEY\", False, \"OrcaRouter\", \"orcarouter.com\"),\n (\"submodel\", \"Submodel\", \"https://api.submodel.com/v1\", \"SUBMODEL_API_KEY\", False, \"SubModel\", \"submodel.com\"),\n\n # ── 其他云厂商 ──\n (\"kluster_ai\", \"KlusterAi\", \"https://api.kluster.ai/v1\", \"KLUSTER_API_KEY\", False, \"Kluster AI\", \"kluster.ai\"),\n (\"krutrim\", \"Krutrim\", \"https://api.krutrim.ai/v1\", \"KRUTRIM_API_KEY\", False, \"Krutrim\", \"krutrim.ai\"),\n (\"bytez\", \"Bytez\", \"https://api.bytez.com/v2\", \"BYTEZ_API_KEY\", False, \"Bytez\", \"bytez.com\"),\n (\"upstage\", \"Upstage\", \"https://api.upstage.ai/v1\", \"UPSTAGE_API_KEY\", False, \"Upstage\", \"upstage.ai\"),\n (\"deepbricks\", \"Deepbricks\", \"https://api.deepbricks.ai/v1\", \"DEEPBRICKS_API_KEY\", False, \"DeepBricks\", \"deepbricks.ai\"),\n (\"lemonfox_ai\", \"LemonfoxAi\", \"https://api.lemonfox.ai/v1\", \"LEMONFOX_API_KEY\", False, \"Lemonfox AI\", \"lemonfox.ai\"),\n (\"modal\", \"Modal\", \"https://modal.com/v1\", \"MODAL_API_KEY\", False, \"Modal\", \"modal.com\"),\n (\"sakana\", \"Sakana\", \"https://api.sakana.ai/v1\", \"SAKANA_API_KEY\", False, \"Sakana AI\", \"sakana.ai\"),\n (\"nous_research\", \"NousResearch\", \"https://api.nousresearch.com/v1\", \"NOUS_API_KEY\", False, \"Nous Research\", \"nousresearch.com\"),\n (\"bedrock_mantle\", \"BedrockMantle\", \"https://bedrock-runtime.us-east-1.amazonaws.com\", \"AWS_BEDROCK_API_KEY\", False, \"Bedrock Mantle\", \"aws.amazon.com\"),\n (\"watsonx\", \"Watsonx\", \"https://us-south.ml.cloud.ibm.com/v1\", \"WATSONX_API_KEY\", False, \"IBM watsonx\", \"ibm.com\"),\n (\"sagemaker\", \"Sagemaker\", \"https://runtime.sagemaker.us-east-1.amazonaws.com\", \"SAGEMAKER_API_KEY\", False, \"AWS SageMaker\", \"aws.amazon.com\"),\n (\"sap\", \"Sap\", \"https://api.ai.sap.eu10.hana.ondemand.com/v2\", \"SAP_AI_API_KEY\", False, \"SAP AI Core\", \"sap.com\"),\n (\"oci\", \"Oci\", \"https://inference.generativeai.us-chicago-1.oci.oraclecloud.com\", \"OCI_API_KEY\", False, \"Oracle OCI AI\", \"oracle.com\"),\n (\"snowflake\", \"Snowflake\", \"https://xxx.snowflakecomputing.com/api/v2/cortex\", \"SNOWFLAKE_API_KEY\", False, \"Snowflake Cortex\", \"snowflake.com\"),\n (\"infinity\", \"Infinity\", \"https://infinity.ai/api/v1\", \"INFINITY_API_KEY\", False, \"Infinity AI\", \"infinity.ai\"),\n (\"hosted_vllm\", \"HostedVllm\", \"https://hosted-vllm-api.com/v1\", \"HOSTED_VLLM_API_KEY\", False, \"Hosted vLLM\", \"vllm.ai\"),\n (\"petals\", \"Petals\", \"https://api.petals.dev/v1\", \"PETALS_API_KEY\", False, \"Petals\", \"petals.dev\"),\n (\"oobabooba\", \"Oobabooba\", \"http://127.0.0.1:5000/v1\", \"OOBABOOBA_BASE_URL\", True, \"Oobabooga Text Generation WebUI\", \"github.com/oobabooga\"),\n (\"gdc\", \"Gdc\", \"https://api.gdc.ai/v1\", \"GDC_API_KEY\", False, \"GDC\", \"gdc.ai\"),\n (\"fastcrw\", \"Fastcrw\", \"https://fastcrw.com/api/v1\", \"FASTCRW_API_KEY\", False, \"FastCRW\", \"fastcrw.com\"),\n (\"dify\", \"Dify\", \"https://api.dify.ai/v1\", \"DIFY_API_KEY\", False, \"Dify\", \"dify.ai\"),\n (\"clip\", \"Clip\", \"http://127.0.0.1:8080/v1\", \"CLIP_BASE_URL\", True, \"CLIP (local)\", \"openai.com/clip\"),\n (\"fastembed\", \"Fastembed\", \"http://127.0.0.1:8080/v1\", \"FASTEMBED_BASE_URL\", True, \"FastEmbed (local)\", \"github.com/Anush008/fastembed-rs\"),\n (\"tei\", \"Tei\", \"http://127.0.0.1:8080/v1\", \"TEI_BASE_URL\", True, \"Text Embeddings Inference (local)\", \"github.com/huggingface/text-embeddings-inference\"),\n (\"nomic\", \"Nomic\", \"https://api.nomic.ai/v1\", \"NOMIC_API_KEY\", False, \"Nomic\", \"nomic.ai\"),\n (\"jina\", \"Jina\", \"https://api.jina.ai/v1\", \"JINA_API_KEY\", False, \"Jina AI\", \"jina.ai\"),\n (\"mixedbread\", \"Mixedbread\", \"https://api.mixedbread.ai/v1\", \"MIXEDBREAD_API_KEY\", False, \"Mixedbread\", \"mixedbread.ai\"),\n (\"recraft\", \"Recraft\", \"https://external.api.recraft.ai/v1\", \"RECRAFT_API_KEY\", False, \"Recraft\", \"recraft.ai\"),\n (\"ideogram\", \"Ideogram\", \"https://api.ideogram.ai/v1\", \"IDEOGRAM_API_KEY\", False, \"Ideogram\", \"ideogram.ai\"),\n (\"stability_ai\", \"StabilityAi\", \"https://api.stability.ai/v1\", \"STABILITY_API_KEY\", False, \"Stability AI\", \"stability.ai\"),\n (\"segmind\", \"Segmind\", \"https://api.segmind.com/v1\", \"SEGMIND_API_KEY\", False, \"Segmind\", \"segmind.com\"),\n (\"runware\", \"Runware\", \"https://api.runware.ai/v1\", \"RUNWARE_API_KEY\", False, \"Runware\", \"runware.ai\"),\n (\"meshy\", \"Meshy\", \"https://api.meshy.ai/v1\", \"MESHY_API_KEY\", False, \"Meshy (3D)\", \"meshy.ai\"),\n (\"tripo3d\", \"Tripo3d\", \"https://api.tripo3d.ai/v1\", \"TRIPO3D_API_KEY\", False, \"Tripo3D\", \"tripo3d.ai\"),\n (\"runwayml\", \"Runwayml\", \"https://api.dev.runwayml.com/v1\", \"RUNWAYML_API_KEY\", False, \"Runway ML\", \"runwayml.com\"),\n (\"sora\", \"Sora\", \"https://api.openai.com/v1\", \"OPENAI_API_KEY\", False, \"OpenAI Sora\", \"openai.com\"),\n (\"vidu\", \"Vidu\", \"https://api.vidu.com/v1\", \"VIDU_API_KEY\", False, \"Vidu\", \"vidu.com\"),\n (\"jimeng\", \"Jimeng\", \"https://api.jimeng.jianying.com/v1\", \"JIMENG_API_KEY\", False, \"Jimeng (即梦)\", \"jianying.com\"),\n (\"midjourney\", \"Midjourney\", \"https://api.midjourney.com/v1\", \"MIDJOURNEY_API_KEY\", False, \"Midjourney\", \"midjourney.com\"),\n (\"flux\", \"Flux\", \"https://api.fal.ai/v1\", \"FLUX_API_KEY\", False, \"FLUX (via fal)\", \"fal.ai\"),\n (\"suno\", \"Suno\", \"https://api.suno.com/v1\", \"SUNO_API_KEY\", False, \"Suno (音乐)\", \"suno.com\"),\n (\"doubaoaudio\", \"DoubaoAudio\", \"https://ark.cn-beijing.volces.com/api/v3\", \"ARK_API_KEY\", False, \"Doubao Audio\", \"volces.com\"),\n (\"murf\", \"Murf\", \"https://api.murf.ai/v1\", \"MURF_API_KEY\", False, \"Murf (TTS)\", \"murf.ai\"),\n (\"playai\", \"Playai\", \"https://api.play.ai/v1\", \"PLAYAI_API_KEY\", False, \"PlayAI (TTS)\", \"play.ai\"),\n (\"speechify\", \"Speechify\", \"https://api.sws.speechify.com/v1\", \"SPEECHIFY_API_KEY\", False, \"Speechify (TTS)\", \"speechify.com\"),\n (\"inworld\", \"Inworld\", \"https://api.inworld.ai/v1\", \"INWORLD_API_KEY\", False, \"Inworld (TTS)\", \"inworld.ai\"),\n (\"aws_polly\", \"AwsPolly\", \"https://polly.us-east-1.amazonaws.com\", \"AWS_POLLY_API_KEY\", False, \"AWS Polly (TTS)\", \"aws.amazon.com\"),\n (\"nvidia_riva\", \"NvidiaRiva\", \"https://api.nvidia.com/v1\", \"NVIDIA_RIVA_API_KEY\", False, \"NVIDIA Riva (TTS)\", \"nvidia.com\"),\n (\"soniox\", \"Soniox\", \"https://api.soniox.com/v1\", \"SONIOX_API_KEY\", False, \"Soniox (STT)\", \"soniox.com\"),\n (\"mokaai\", \"Mokaai\", \"https://api.mokaai.com/v1\", \"MOKAAI_API_KEY\", False, \"MokaAI\", \"mokaai.com\"),\n (\"skylark\", \"Skylark\", \"https://api.skylark.com/v1\", \"SKYLARK_API_KEY\", False, \"Skylark (云雀)\", \"skylark.com\"),\n (\"deepl\", \"Deepl\", \"https://api.deepl.com/v2\", \"DEEPL_API_KEY\", False, \"DeepL\", \"deepl.com\"),\n (\"bing\", \"Bing\", \"https://api.bing.microsoft.com/v1\", \"BING_API_KEY\", False, \"Bing\", \"microsoft.com\"),\n (\"slack\", \"Slack\", \"https://slack.com/api/chat.postMessage\", \"SLACK_API_KEY\", False, \"Slack (Claude proxy)\", \"slack.com\"),\n (\"doubaoaudio\", \"DoubaoAudio\", \"https://ark.cn-beijing.volces.com/api/v3\", \"ARK_API_KEY\", False, \"Doubao Audio\", \"volces.com\"),\n (\"ncompass\", \"Ncompass\", \"https://api.ncompass.tech/v1\", \"NCOMPASS_API_KEY\", False, \"Ncompass\", \"ncompass.tech\"),\n (\"parasail\", \"Parasail\", \"https://api.parasail.io/v1\", \"PARASAIL_API_KEY\", False, \"Parasail\", \"parasail.io\"),\n (\"wafer\", \"Wafer\", \"https://api.wafer.ai/v1\", \"WAFER_API_KEY\", False, \"Wafer\", \"wafer.ai\"),\n (\"matterai\", \"Matterai\", \"https://api.matterai.com/v1\", \"MATTERAI_API_KEY\", False, \"Matter AI\", \"matterai.com\"),\n (\"nextbit\", \"Nextbit\", \"https://api.nextbit.ai/v1\", \"NEXTBIT_API_KEY\", False, \"NextBit\", \"nextbit.ai\"),\n (\"aibadgr\", \"Aibadgr\", \"https://api.aibadgr.com/v1\", \"AIBADGR_API_KEY\", False, \"AI Badgr\", \"aibadgr.com\"),\n (\"inference_net\", \"InferenceNet\", \"https://api.inference.net/v1\", \"INFERENCE_NET_API_KEY\", False, \"Inference.net\", \"inference.net\"),\n (\"lemonfox_ai\", \"LemonfoxAi\", \"https://api.lemonfox.ai/v1\", \"LEMONFOX_API_KEY\", False, \"Lemonfox AI\", \"lemonfox.ai\"),\n (\"opencode_go\", \"OpencodeGo\", \"https://api.opencode.dev/v1\", \"OPENCODE_GO_API_KEY\", False, \"OpenCode Go\", \"opencode.dev\"),\n (\"opencode_zen\", \"OpencodeZen\", \"https://api.opencode.zen/v1\", \"OPENCODE_ZEN_API_KEY\", False, \"OpenCode Zen\", \"opencode.zen\"),\n (\"kiro\", \"Kiro\", \"https://api.kiro.dev/v1\", \"KIRO_API_KEY\", False, \"Kiro\", \"kiro.dev\"),\n (\"pioneer\", \"Pioneer\", \"https://api.pioneer.ai/v1\", \"PIONEER_API_KEY\", False, \"Pioneer\", \"pioneer.ai\"),\n (\"kilo\", \"Kilo\", \"https://api.kilo.ai/v1\", \"KILO_API_KEY\", False, \"Kilo\", \"kilo.ai\"),\n (\"commandcode\", \"Commandcode\", \"https://api.commandcode.com/v1\", \"COMMANDCODE_API_KEY\", False, \"CommandCode\", \"commandcode.com\"),\n (\"cline_pass\", \"ClinePass\", \"https://api.cline.bot/v1\", \"CLINE_API_KEY\", False, \"Cline\", \"cline.bot\"),\n (\"albert\", \"Albert\", \"https://api.albert.ai/v1\", \"ALBERT_API_KEY\", False, \"Albert\", \"albert.ai\"),\n (\"scx_ai\", \"ScxAi\", \"https://api.scx.ai/v1\", \"SCX_AI_API_KEY\", False, \"SCX AI\", \"scx.ai\"),\n (\"atlascloud\", \"Atlascloud\", \"https://api.atlascloud.com/v1\", \"ATLASCLOUD_API_KEY\", False, \"AtlasCloud\", \"atlascloud.com\"),\n (\"canopywave\", \"Canopywave\", \"https://api.canopywave.com/v1\", \"CANOPYWAVE_API_KEY\", False, \"Canopywave\", \"canopywave.com\"),\n (\"embercloud\", \"Embercloud\", \"https://api.embercloud.com/v1\", \"EMBERCLOUD_API_KEY\", False, \"Embercloud\", \"embercloud.com\"),\n (\"tundra\", \"Tundra\", \"https://api.tundra.ai/v1\", \"TUNDRA_API_KEY\", False, \"Tundra\", \"tundra.ai\"),\n (\"reve\", \"Reve\", \"https://api.reve.ai/v1\", \"REVE_API_KEY\", False, \"Reve\", \"reve.ai\"),\n (\"gonka24\", \"Gonka24\", \"https://api.gonka24.com/v1\", \"GONKA24_API_KEY\", False, \"Gonka24\", \"gonka24.com\"),\n (\"streamlake\", \"Streamlake\", \"https://api.streamlake.com/v1\", \"STREAMLAKE_API_KEY\", False, \"StreamLake\", \"streamlake.com\"),\n (\"antling\", \"Antling\", \"https://api.antling.com/v1\", \"ANTLING_API_KEY\", False, \"Antling\", \"antling.com\"),\n (\"sangforaicp\", \"Sangforaicp\", \"https://aicp.sangfor.com/v1\", \"SANGFOR_AICP_API_KEY\", False, \"Sangfor AICP\", \"sangfor.com\"),\n (\"doc2x\", \"Doc2x\", \"https://api.doc2x.com/v1\", \"DOC2X_API_KEY\", False, \"Doc2X\", \"doc2x.com\"),\n (\"v0\", \"V0\", \"https://api.v0.dev/v1\", \"V0_API_KEY\", False, \"v0 (Vercel)\", \"v0.dev\"),\n (\"text_embeddings_inference\", \"TextEmbeddingsInference\", \"http://127.0.0.1:8080\", \"TEI_BASE_URL\", True, \"Text Embeddings Inference\", \"github.com/huggingface/text-embeddings-inference\"),\n (\"pg_vector\", \"PgVector\", \"http://127.0.0.1:5432\", \"PG_VECTOR_URL\", True, \"PostgreSQL pgvector\", \"github.com/pgvector/pgvector\"),\n (\"s3_vectors\", \"S3Vectors\", \"https://s3.amazonaws.com\", \"S3_VECTORS_API_KEY\", False, \"S3 Vectors\", \"aws.amazon.com\"),\n (\"milvus\", \"Milvus\", \"http://127.0.0.1:19530\", \"MILVUS_URL\", True, \"Milvus (向量库)\", \"milvus.io\"),\n (\"qdrant\", \"Qdrant\", \"http://127.0.0.1:6333\", \"QDRANT_URL\", True, \"Qdrant (向量库)\", \"qdrant.tech\"),\n (\"chatgpt\", \"Chatgpt\", \"https://chatgpt.com/backend-api/codex\", \"CHATGPT_API_KEY\", False, \"ChatGPT (订阅)\", \"openai.com\"),\n (\"nanogpt\", \"Nanogpt\", \"https://api.nanogpt.com/v1\", \"NANOGPT_API_KEY\", False, \"NanoGPT\", \"nanogpt.com\"),\n (\"local\", \"Local\", \"http://127.0.0.1:8080/v1\", \"LOCAL_LLM_BASE_URL\", True, \"Local LLM\", \"localhost\"),\n (\"cybertron\", \"Cybertron\", \"http://127.0.0.1:8080/v1\", \"CYBERTRON_BASE_URL\", True, \"Cybertron (Rust)\", \"github.com/dottorblaster/cybertron\"),\n (\"mlx\", \"Mlx\", \"http://127.0.0.1:8080/v1\", \"MLX_BASE_URL\", True, \"MLX (Apple Silicon)\", \"github.com/ml-explore/mlx\"),\n (\"openvino\", \"Openvino\", \"http://127.0.0.1:8080/v1\", \"OPENVINO_BASE_URL\", True, \"OpenVINO\", \"intel.com/openvino\"),\n (\"gaudi\", \"Gaudi\", \"http://127.0.0.1:8080/v1\", \"GAUDI_BASE_URL\", True, \"Intel Gaudi\", \"intel.com\"),\n (\"onnx\", \"Onnx\", \"http://127.0.0.1:8080/v1\", \"ONNX_BASE_URL\", True, \"ONNX Runtime\", \"onnxruntime.ai\"),\n (\"omlx\", \"Omlx\", \"http://127.0.0.1:8080/v1\", \"OMLX_BASE_URL\", True, \"OMLX / MLX LM\", \"github.com/ml-explore/mlx-lm\"),\n (\"doubaoaudio\", \"DoubaoAudio\", \"https://ark.cn-beijing.volces.com/api/v3\", \"ARK_API_KEY\", False, \"Doubao Audio\", \"volces.com\"),\n]\n\ndef gen_local_template(mod, prefix, base_url, env_var, display, doc_url):\n return f'''//! {display} provider — a thin OpenAI-compatible wrapper.\n//!\n//! See <{doc_url}> for API documentation. Exposes an OpenAI-compatible\n//! Chat Completions API at `{base_url}`. The `{env_var}` environment\n//! variable holds a *base URL* (not an API key); when unset, the default\n//! endpoint is used. A placeholder API key is sent in the `Authorization`\n//! header — the shared `OpenAIProvider` requires a non-empty key string.\n\nuse aimux_core::error::AiMuxError;\nuse aimux_core::language_model::LanguageModel;\nuse aimux_core::provider::Provider;\n\nuse crate::openai::{{OpenAIConfig, OpenAIModel, OpenAIProvider}};\n\nconst DEFAULT_BASE_URL: &str = \"{base_url}\";\nconst ENV_VAR: &str = \"{env_var}\";\nconst PROVIDER_NAME: &str = \"{mod}\";\nconst PLACEHOLDER_API_KEY: &str = \"{mod}\";\n\npub struct {prefix}Config(OpenAIConfig);\n\nimpl {prefix}Config {{\n pub fn new(api_key: impl Into) -> Self {{\n Self(\n OpenAIConfig::new(api_key)\n .with_base_url(DEFAULT_BASE_URL)\n .with_provider(PROVIDER_NAME),\n )\n }}\n\n pub fn from_env() -> Result {{\n let config = Self::new(PLACEHOLDER_API_KEY);\n match std::env::var(ENV_VAR) {{\n Ok(url) if !url.trim().is_empty() => Ok(config.with_base_url(url)),\n _ => Ok(config),\n }}\n }}\n\n pub fn with_base_url(mut self, url: impl Into) -> Self {{\n self.0 = self.0.with_base_url(url);\n self\n }}\n}}\n\npub struct {prefix}Provider(OpenAIProvider);\n\nimpl {prefix}Provider {{\n pub fn new(config: {prefix}Config) -> Self {{\n Self(OpenAIProvider::new(config.0))\n }}\n\n pub fn model(&self, model_id: &str) -> OpenAIModel {{\n self.0.model(model_id)\n }}\n}}\n\nimpl Provider for {prefix}Provider {{\n fn name(&self) -> &str {{\n PROVIDER_NAME\n }}\n\n fn language_model(&self, model_id: &str) -> Result, AiMuxError> {{\n Ok(Box::new(self.model(model_id)))\n }}\n}}\n'''\n\ndef gen_cloud_template(mod, prefix, base_url, env_var, display, doc_url):\n return f'''//! {display} provider — a thin OpenAI-compatible wrapper.\n//!\n//! See <{doc_url}> for API documentation. Exposes an OpenAI-compatible\n//! Chat Completions API at `{base_url}`. Provider-specific details are the\n//! base URL and the `{env_var}` environment variable; everything else is\n//! delegated to the shared `OpenAIProvider`.\n\nuse aimux_core::error::AiMuxError;\nuse aimux_core::language_model::LanguageModel;\nuse aimux_core::provider::Provider;\nuse aimux_provider_utils::load_api_key;\n\nuse crate::openai::{{OpenAIConfig, OpenAIModel, OpenAIProvider}};\n\nconst DEFAULT_BASE_URL: &str = \"{base_url}\";\nconst ENV_VAR: &str = \"{env_var}\";\nconst PROVIDER_NAME: &str = \"{mod}\";\n\npub struct {prefix}Config(OpenAIConfig);\n\nimpl {prefix}Config {{\n pub fn new(api_key: impl Into) -> Self {{\n Self(OpenAIConfig::new(api_key).with_base_url(DEFAULT_BASE_URL))\n }}\n\n pub fn from_env() -> Result {{\n let key = load_api_key(None, ENV_VAR, \"{display}\")?;\n Ok(Self::new(key))\n }}\n\n pub fn with_base_url(mut self, url: impl Into) -> Self {{\n self.0 = self.0.with_base_url(url);\n self\n }}\n}}\n\npub struct {prefix}Provider(OpenAIProvider);\n\nimpl {prefix}Provider {{\n pub fn new(config: {prefix}Config) -> Self {{\n Self(OpenAIProvider::new(config.0))\n }}\n\n pub fn model(&self, model_id: &str) -> OpenAIModel {{\n self.0.model(model_id)\n }}\n}}\n\nimpl Provider for {prefix}Provider {{\n fn name(&self) -> &str {{\n PROVIDER_NAME\n }}\n\n fn language_model(&self, model_id: &str) -> Result, AiMuxError> {{\n Ok(Box::new(self.model(model_id)))\n }}\n}}\n'''\n\ndef main():\n seen = set()\n generated = []\n skipped = []\n\n for mod_name, prefix, base_url, env_var, is_local, display, doc_url in PROVIDERS:\n if mod_name in ALREADY_DONE or mod_name in seen:\n skipped.append(mod_name)\n continue\n seen.add(mod_name)\n\n out_path = SRC / f\"{mod_name}.rs\"\n if out_path.exists():\n skipped.append(mod_name)\n continue\n\n if is_local:\n content = gen_local_template(mod_name, prefix, base_url, env_var, display, doc_url)\n else:\n content = gen_cloud_template(mod_name, prefix, base_url, env_var, display, doc_url)\n\n out_path.write_text(content, encoding=\"utf-8\")\n generated.append((mod_name, prefix))\n\n print(f\"Generated {len(generated)} provider files:\")\n for mod, prefix in sorted(generated):\n print(f\" {mod}.rs ({prefix}Config / {prefix}Provider)\")\n if skipped:\n print(f\"\\nSkipped {len(skipped)} (already exist): {', '.join(sorted(skipped))}\")\n\n # Print lib.rs snippet\n print(\"\\n# Add to lib.rs:\")\n for mod_name, _ in sorted(generated):\n print(f'pub mod {mod_name};')\n print()\n for mod_name, prefix in sorted(generated):\n print(f'pub use {mod_name}::{{{prefix}Config, {prefix}Provider}};')\n\nif __name__ == \"__main__\":\n main()\n"}}, "rfc/0004-provider-inventory.md": {"f46485fa2a15ec0677332c3a53050df18515a4ca": {"t": 1785595981.4494925, "n": 44160, "h": "a7c74d7756678080", "c": "# Provider Inventory and Implementation Status\n\n## 1. Providers Currently Implemented in aimux\n\n**A total of 172 provider modules** (as of 2026-07-28).\n\n### Native Protocol Implementations (with independent model/convert, handling provider-specific differences)\n\n| Provider | Capabilities | Notes |\n|------|------|------|\n| openai | text, streaming, tools, embedding, image, speech, transcription, file | Reference implementation, 655 lines model + 1223 lines convert, includes Responses API |\n| anthropic | text, streaming, tools, file, cache control | 1438 lines convert, includes prompt caching, schema sanitization |\n| anthropic_aws | text, streaming | Anthropic via the AWS Bedrock side channel |\n| google | text, streaming, embedding, image, video, file | 995 lines convert, Gemini native protocol |\n| bedrock | text, streaming, embedding, image, reranking | 625 lines convert, Converse API + SigV4 signing + event stream |\n| vertex | text, streaming, embedding, image, transcription, video | Google Vertex AI, GCP authentication |\n| azure | text, streaming, Responses API | Azure OpenAI, multiple authentication methods |\n| cohere | text, streaming, embedding, reranking | Cohere native protocol |\n| mistral | text, streaming, embedding | Mistral native protocol |\n| xai | text, streaming, tools, Responses API | 636 lines convert, handles reasoning content, citations, search parameters |\n| deepseek | text, streaming, reasoning | 600 lines, independently handles reasoning_content and thinking fields |\n\n### OpenAI-Compatible Thin Wrappers (only change the URL and environment variables, no customization points)\n\nAbout 195. Includes early hand-written ones and batch-generated ones:\n\ngroq, fireworks, togetherai, perplexity, moonshotai, cerebras, openrouter (including Responses API), ollama, copilot, llamafile, mistralrs, doubleword, zai, github, siliconflow, lmstudio, sambanova, alibaba, baseten, bytedance, deepinfra, huggingface, vercel, ai21, ai302, aibadgr, aigc2d, aihubmix, ails, aiml, albert, antling, anyscale, api2d, api2gpt, apiserpent, atlascloud, baichuan, baidu, bedrock_mantle, bigmodel, bing, byteplus, bytez, canopywave, chatgpt, clarifai, cline_pass, closeai, codestral, cometapi, commandcode, compactifai, coze, cybertron, databricks, datarobot, deepbricks, deepl, dify, doc2x, docker_model_runner, doubaoaudio, embercloud, fastcrw, fastembed, fastgpt, fastrouter, featherless_ai, flux, friendliai, galadriel, gaudi, gdc, gigachat, gonka24, gradient_ai, helicone, heroku, hosted_vllm, hyperbolic, ideogram, inception, inference_net, infinity, inworld, jimeng, jina, jlama, kilo, kiro, kluster_ai, krutrim, lambda_ai, lemonfox_ai, lingyiwanwu, litellm_proxy, llamacpp, local, localai, longcat, matterai, meshy, meta_llama, midjourney, milvus, minimax, mira, mixedbread, mlx, modal, modelscope, mokaai, morph, murf, nanogpt, ncompass, nebius, nextbit, nlp_cloud, nomic, nous_research, novita, nscale, nvidia_nim, nvidia_riva, oci, ohmygpt, ollama_cloud, omlx, onnx, oobabooba, openaimax, openaisb, opencode_go, opencode_zen, openvino, orcarouter, ovhcloud, parasail, perfxcloud, petals, pg_vector, pioneer, playai, portkey, predibase, qdrant, qihoo360, qiniu_ai, recraft, reka_ai, requesty, reve, runware, runwayml, s3_vectors, sagemaker, sakana, sangforaicp, sap, sarvam, scaleway, scx_ai, segmind, sglang, skylark, slack, snowflake, soniox, sora, speechify, stability_ai, stepfun, streamlake, submodel, suno, tei, tencent, text_embeddings_inference, tokenpony, tripo3d, tundra, upstage, v0, vidu, vllm, wafer, watsonx, xiaomimimo, xinference, etc.\n\n### Providers Dedicated to Non-Text Capabilities\n\n| Provider | Capabilities |\n|------|------|\n| voyage | embedding, reranking |\n| cartesia | speech, transcription |\n| elevenlabs | speech, transcription |\n| hume | speech |\n| lmnt | speech |\n| assemblyai | transcription |\n| deepgram | transcription |\n| fal | image, transcription, video |\n| gladia | transcription |\n| revai | transcription |\n| black_forest_labs | image |\n| luma | image |\n| prodia | image, video |\n| replicate | image, video |\n| klingai | video |\n\n### General Wrapper\n\n| Module | Notes |\n|------|------|\n| open_responses | General Responses API wrapper, 1238 lines |\n\n### Known Issues\n\nThin wrappers still lack a configuration descriptor structure (recorded in RFC-0002). Differences such as DeepSeek's reasoning field, Alibaba Tongyi's reasoning_content, and Groq's top_k limit are still being lost. This is the next step.\n\n**Total: 161 provider modules.**\n\n> Of these, 11 native protocol implementations + 1 general wrapper + 15 dedicated to non-text capabilities + 134 OpenAI-compatible thin wrappers.\n> Note: vector databases (milvus/qdrant/pg_vector/s3_vectors), embedding-dedicated (jina/nomic/mixedbread/clip/fastembed/tei),\n> image/video/music generation (recraft/ideogram/stability_ai/meshy/tripo3d/runwayml/sora/vidu/jimeng/midjourney/flux/suno),\n> speech/transcription (murf/playai/speechify/inworld/aws_polly/nvidia_riva/soniox/doubaoaudio/mokaai),\n> non-LLM services (bing/deepl/dify/slack/doc2x/streamlake/antling/sangforaicp/skylark),\n> special authentication (watsonx/sagemaker/sap/oci/snowflake/bedrock_mantle), a total of 49 are not integrated —\n> they are not OpenAI Chat Completions compatible and require their own traits or authentication methods.\n\n---\n\n## 2. Complete Provider Inventory of All Reference Projects\n\n> Merged and de-duplicated all providers that appeared in the four scan results (Rust competitors / Python ecosystem / other languages / gateways).\n> The \"Gateway coverage\" column marks gateway projects that support the provider (not exhaustive; representative ones are listed).\n\n### Mainstream Large Model Providers\n\n| Provider | aimux | rig | litellm | Gateway coverage | Other major projects |\n|------|:---:|:---:|:---:|:---:|------|\n| openai | ✅ native | ✅ | ✅ | all | almost all projects |\n| anthropic | ✅ native | ✅ | ✅ | all | almost all projects |\n| google (gemini) | ✅ native | ✅ | ✅ | all | almost all projects |\n| azure (openai) | ✅ native | ✅ | ✅ | all | almost all projects |\n| bedrock (aws) | ✅ native | ✅ | ✅ | all | almost all projects |\n| vertex (gcp) | ✅ native | ✅ | ✅ | all | langchain4j, spring-ai |\n| mistral | ✅ native | ✅ | ✅ | all | almost all projects |\n| cohere | ✅ native | ✅ | ✅ | all | almost all projects |\n| xai (grok) | ✅ native | ✅ | ✅ | all | genai, pydantic-ai, instructor |\n| deepseek | ✅ native | ✅ | ✅ | all | almost all projects |\n\n### OpenAI-Compatible Cloud Providers\n\n| Provider | aimux | rig | litellm | Gateway coverage | Other |\n|------|:---:|:---:|:---:|:---:|------|\n| groq | ✅ thin | ✅ | ✅ | portkey, bifrost, higress, one-hub, axonhub, ferro | pydantic-ai, instructor, aisuite, llama_index |\n| fireworks | ✅ thin | — | ✅ | portkey, one-hub, higress, APIPark, ferro | langchain, llama_index, langchain4j |\n| together | ✅ thin | ✅ | ✅ | portkey, higress, ferro | langchain, llama_index, langchain4j, aisuite |\n| perplexity | ✅ thin | ✅ | ✅ | portkey, ferro | langchain, llama_index, langchainjs |\n| moonshot (kimi) | ✅ thin | ✅ | ✅ | all domestic gateways | llama_index, genai |\n| cerebras | ✅ thin | — | ✅ | portkey, bifrost, axonhub, ferro | pydantic-ai, instructor, aisuite, llama_index |\n| openrouter | ✅ thin | ✅ | ✅ | almost all gateways | langchain, llama_index, genai, aisuite |\n| huggingface | ✅ thin | ✅ | ✅ | portkey, one-hub, bifrost, APIPark, ferro | langchain, llama_index, langchain4j, semantic-kernel |\n| deepinfra | ✅ thin | — | ✅ | portkey, llmgateway | llama_index, langchain |\n| ovhcloud | ✅ thin | — | ✅ | portkey, llmgateway | llama_index, langchain4j |\n| replicate | ✅ image | — | ✅ | one-hub, TokenHub, ferro | langchain, llama_index |\n| novita | ✅ thin | — | ✅ | portkey, one-api, TokenHub, APIPark, ferro, llmgateway | llama_index |\n| nebius | ✅ thin | — | ✅ | portkey, bifrost, ferro, llmgateway | genai, aisuite, llama_index |\n| hyperbolic | ✅ thin | ✅ | ✅ | portkey | — |\n| minimax | ✅ thin | ✅ | ✅ | all domestic gateways, portkey, claude-code-router, llmgateway | genai, llama_index |\n| mistralrs | ✅ thin | ✅ local | — | — | — |\n| llamafile | ✅ thin | ✅ local | ✅ | — | langchaingo |\n| doubleword | ✅ thin | ✅ | — | — | — |\n| mira | ✅ thin | ✅ | — | — | — |\n| xiaomimimo (Xiaomi) | ✅ thin | ✅ | — | manifest, llmgateway, chats, TokenHub | — |\n| zai (Zhipu/z.ai) | ✅ thin | ✅ | ✅ | all domestic gateways, portkey, claude-code-router, llmgateway | genai |\n| github (models) | ✅ thin | — | ✅ | higress, one-hub, chats, TokenHub | langchain4j, llama_index |\n| github_copilot | ✅ thin | ✅ | ✅ | axonhub, manifest, TokenHub, bifrost | genai |\n| chatgpt (subscription) | ✅ thin | ✅ | ✅ | — | — |\n| ai21 | ✅ thin | — | ✅ | portkey, ferro | langchain, llama_index |\n| anyscale | ✅ thin | — | ✅ | portkey | langchain |\n| sambanova | ✅ thin | — | ✅ | portkey, ferro | llama_index |\n| predibase | ✅ thin | — | ✅ | portkey | — |\n| triton (nvidia) | ✅ thin | — | ✅ | portkey, higress | — |\n| databricks | ✅ thin | — | ✅ | portkey, ferro, TokenHub | langchain, llama_index |\n| sagemaker (aws) | ❌ | — | ✅ | portkey | langchain, llm-chain |\n| watsonx (ibm) | ❌ | — | ✅ | — | langchain, langchain4j, langchaingo |\n| scaleway | ✅ thin | — | ✅ | TokenHub | — |\n| snowflake | ❌ | — | ✅ | TokenHub | — |\n| sap | ❌ | — | ✅ | — | — |\n| oci (oracle) | ❌ | — | ✅ | TokenHub, portkey(oracle) | llama_index |\n| nlp_cloud | ✅ thin | — | ✅ | — | langchain |\n| friendliai | ✅ thin | — | ✅ | — | llama_index |\n| clarifai | ✅ thin | — | ✅ | — | langchain, llama_index |\n| gigachat (Samsung) | ✅ thin | — | ✅ | — | — |\n| codestral | ✅ thin | — | ✅ | — | — |\n| morph | ✅ thin | — | ✅ | TokenHub | — |\n| v0 | ✅ thin | — | ✅ | — | — |\n| aiml | ✅ thin | — | ✅ | TokenHub | — |\n| heroku | ✅ thin | — | ✅ | — | — |\n| hosted_vllm | ✅ thin | — | ✅ | — | — |\n| nvidia_nim | ✅ thin | — | ✅ | manifest, ferro, APIPark, TokenHub | — |\n| nscale | ✅ thin | — | ✅ | portkey, llmgateway | — |\n| lambda_ai | ✅ thin | — | ✅ | portkey | — |\n| databricks | ✅ thin | — | ✅ | portkey, ferro | langchain |\n| petals | ✅ thin | — | ✅ | — | — |\n| oobabooba | ✅ thin | — | ✅ | — | — |\n| inception | ✅ thin | — | ✅ | TokenHub | — |\n| galadriel | ✅ thin | — | ✅ | — | — |\n| gdc | ✅ thin | — | ✅ | — | — |\n| datarobot | ✅ thin | — | ✅ | — | — |\n| infinity | ✅ thin | — | ✅ | — | — |\n| kluster-ai | ✅ thin | — | — | portkey | — |\n| featherless-ai | ✅ thin | — | ✅ | portkey | llama_index |\n| krutrim | ✅ thin | — | — | portkey | — |\n| bytez | ✅ thin | — | — | portkey | — |\n| upstage | ✅ thin | — | — | portkey, APIPark, langchain4j | — |\n| deepbricks | ✅ thin | — | — | portkey | — |\n| lemonfox-ai | ✅ thin | — | — | portkey | — |\n| inference-net | ✅ thin | — | — | portkey, llmgateway | — |\n| 302ai | ✅ thin | — | — | portkey, TokenHub | — |\n| cometapi | ✅ thin | — | ✅ | portkey, TokenHub | — |\n| matterai | ✅ thin | — | — | portkey | — |\n| meshy | ❌ | — | — | portkey | — |\n| nextbit | ✅ thin | — | — | portkey | — |\n| tripo3d | ❌ | — | — | portkey | — |\n| modal | ✅ thin | — | — | portkey | — |\n| aibadgr | ✅ thin | — | — | portkey, TokenHub, chats | — |\n| ncompass | ✅ thin | — | — | portkey | — |\n| reka-ai | ✅ thin | — | ✅ | portkey | llama_index |\n| stability-ai | ❌ | — | ✅ | portkey, one-hub, spring-ai | — |\n| segmind | ❌ | — | — | portkey | — |\n| monsterapi | ✅ thin | — | — | portkey | llama_index |\n| sgl (sglang) | ✅ thin | — | ✅ | bifrost | guidance, outlines, llama_index |\n| parasail | ✅ thin | — | — | bifrost | — |\n| wafer | ✅ thin | — | — | bifrost, axonhub | — |\n| runway | ❌ | — | ✅(runwayml) | bifrost | — |\n| runware | ❌ | — | — | bifrost | — |\n| sarvam | ✅ thin | — | ✅ | bifrost, claude-code-router, TokenHub | — |\n| opencode-go | ✅ thin | — | — | bifrost, manifest, axonhub | genai |\n| opencode-zen | ✅ thin | — | — | bifrost, manifest | — |\n| bedrock_mantle | ❌ | — | ✅ | bifrost, llmgateway | — |\n| vllm | ✅ thin | — | ✅ | bifrost, higress | guidance, outlines, llama_index |\n| nous (nousresearch) | ✅ thin | — | — | manifest | — |\n| byteplus | ✅ thin | — | — | manifest | — |\n| kiro | ✅ thin | — | — | manifest | — |\n| pioneer | ✅ thin | — | — | manifest | — |\n| kilo | ✅ thin | — | — | manifest, TokenHub | — |\n| cline-pass | ✅ thin | — | — | manifest | — |\n| commandcode | ✅ thin | — | — | manifest | — |\n| copilot (github) | ✅ thin | ✅ | ✅ | manifest | genai |\n| longcat | ✅ thin | — | — | higress, axonhub | — |\n| yi (01.AI) | ✅ thin | — | — | higress, one-api, APIPark, TokenHub, chats | llama_index |\n| deepl | ❌ | — | — | higress, one-api | — |\n| dify | ❌ | — | — | higress, new-api, aiproxy | — |\n| stepfun (StepFun) | ✅ thin | — | — | higress, one-api, APIPark, TokenHub | llama_index |\n| baichuan | ✅ thin | — | — | higress, one-api, APIPark, TokenHub, coai | — |\n| kling (Kling) | ✅ video | — | — | higress, new-api, one-hub, TokenHub | — |\n| triton | ✅ thin | — | ✅ | higress | — |\n| perfxcloud | ✅ thin | — | — | APIPark | — |\n| doc2x | ❌ | — | — | aiproxy | — |\n| sangforaicp | ❌ | — | — | aiproxy | — |\n| streamlake | ❌ | — | — | aiproxy | — |\n| antling | ❌ | — | — | aiproxy | — |\n| text_embeddings_inference | ❌ | — | — | aiproxy | — |\n| skylark (Skylark) | ❌ | — | — | coai | — |\n| bing (new bing) | ❌ | — | — | coai | — |\n| slack (slack claude) | ❌ | — | — | coai | — |\n| ideogram | ❌ | — | — | one-hub | — |\n| flux | ❌ | — | — | one-hub | — |\n| suno (music) | ❌ | — | — | new-api, one-hub | — |\n| midjourney | ❌ | — | — | new-api, one-hub, coai | — |\n| sora | ❌ | — | — | new-api | — |\n| vidu (video) | ❌ | — | — | new-api | — |\n| jimeng (Jimeng) | ❌ | — | — | new-api | — |\n| doubaoaudio | ❌ | — | — | aiproxy | — |\n| mokaai | ❌ | — | — | new-api | — |\n| recraft | ❌ | — | ✅ | one-hub, portkey, TokenHub | — |\n| sakana | ✅ thin | — | — | llmgateway | — |\n| meta | ✅ thin | — | ✅(meta_llama) | manifest, llmgateway, TokenHub | — |\n| scx-ai | ✅ thin | — | — | llmgateway | — |\n| atlascloud | ✅ thin | — | — | llmgateway, genai | — |\n| canopywave | ✅ thin | — | — | llmgateway | — |\n| embercloud | ✅ thin | — | — | llmgateway | — |\n| tundra | ✅ thin | — | — | llmgateway | — |\n| reve | ✅ thin | — | — | llmgateway | — |\n| gonka24 | ✅ thin | — | — | llmgateway | — |\n| albert | ✅ thin | — | — | OpenGateLLM | — |\n| tei (text embeddings inference) | ❌ | — | — | OpenGateLLM, aiproxy | — |\n| fastcrw | ✅ thin | — | ✅ | — | — |\n| apiserpent | ✅ thin | — | ✅ | — | — |\n| modelscope (ModelScope) | ✅ thin | — | ✅ | axonhub, TokenHub | llama_index |\n| docker_model_runner | ✅ thin | — | ✅ | — | — |\n| ollama_cloud | ✅ thin | — | — | bifrost, ferro, manifest | genai |\n| aihubmix | ✅ thin | — | — | — | genai |\n| bigmodel (Zhipu) | ✅ thin | — | — | — | genai |\n| litellm_proxy | ✅ thin | — | ✅ | — | — |\n| compactifai | ✅ thin | — | ✅ | — | — |\n| fastembed | ❌ | — | — | — | swiftide (local) |\n| docker_model_runner | ✅ thin | — | ✅ | — | — |\n\n### Domestic Providers (separate summary)\n\n| Provider | aimux | rig | litellm | Gateway coverage | Other |\n|------|:---:|:---:|:---:|:---:|------|\n| alibaba (Tongyi/DashScope/Bailian) | ✅ thin | — | ✅(dashscope) | new-api, one-api, simple-one-api, portkey, higress, ferro, APIPark, claude-code-router, llmgateway | genai, swiftide, llm-connector, llama_index |\n| baidu (Wenxin/ernie) | ✅ thin | — | — | new-api, one-api, simple-one-api, APIPark, TokenHub, chats | genai, langchaingo, langchain-swift |\n| zhipu (Zhipu/glm) | ✅ thin | ✅(zai) | — | new-api, one-api, simple-one-api, portkey, higress, APIPark, axonhub, claude-code-router, llmgateway, aiproxy | llm-connector, langchain-swift, llama_index, genai |\n| tencent (Hunyuan/hunyuan) | ✅ thin | — | ✅ | new-api, one-api, simple-one-api, coai, APIPark, chats, TokenHub | llm-connector |\n| xunfei (Xunfei/spark) | ✅ thin | — | — | new-api, one-api, simple-one-api, higress, APIPark, chats | — |\n| bytedance (Volcano/Doubao/volcengine) | ✅ thin | — | ✅(volcengine) | new-api, one-api, simple-one-api, axonhub, APIPark, llmgateway | — |\n| baichuan | ✅ thin | — | — | one-api, higress, APIPark, TokenHub, coai | — |\n| stepfun (StepFun) | ✅ thin | — | — | one-api, higress, APIPark, TokenHub | llama_index |\n| minimax | ✅ thin | ✅ | ✅ | new-api, one-api, simple-one-api, portkey, claude-code-router, llmgateway, chats, TokenHub | genai, llama_index |\n| moonshot (Moonshot AI/kimi) | ✅ thin | ✅ | ✅ | new-api, one-api, portkey, higress, ferro, claude-code-router, llmgateway, APIPark | genai |\n| lingyiwanwu (01.AI/yi) | ✅ thin | — | — | new-api, one-api, higress, APIPark, TokenHub, chats | llama_index |\n| 360 (ai360/zhinao) | ✅ thin | — | — | new-api, one-api, coai, APIPark, chats | — |\n| coze (Coze) | ✅ thin | — | — | new-api, one-api, aiproxy | — |\n| siliconflow (SiliconFlow) | ✅ thin | — | — | new-api, one-api, APIPark, chats, claude-code-router | llama_index |\n| gigachat (Samsung) | ✅ thin | — | ✅ | — | — |\n| qiniu-ai (Qiniu) | ✅ thin | — | — | claude-code-router | — |\n| modelscope (ModelScope) | ✅ thin | — | ✅ | axonhub, TokenHub | llama_index |\n| longcat | ✅ thin | — | — | higress, axonhub | — |\n\n### Local Inference\n\n| Provider | aimux | rig | litellm | Gateway coverage | Other |\n|------|:---:|:---:|:---:|:---:|------|\n| ollama | ✅ thin | ✅ | ✅ | new-api, one-api, portkey, bifrost, one-hub, higress, ferro, APIPark, chats, TokenHub | almost all SDKs |\n| llama.cpp | ✅ thin | ✅ local | — | — | guidance, outlines, llm-chain, langchain |\n| lmstudio | ✅ thin | — | ✅ | APIPark | aisuite, langchain-swift, edgequake |\n| vllm | ✅ thin | — | ✅ | bifrost, higress | guidance, outlines, llama_index, edgequake |\n| sglang | ✅ thin | — | — | bifrost | guidance, outlines, llama_index |\n| xinference | ✅ thin | — | ✅ | new-api, APIPark | llm-connector |\n| mistralrs | ✅ thin | ✅ local | — | — | — |\n| omlx / mlx_lm | ✅ thin | — | — | — | genai, edgequake |\n| triton | ✅ thin | — | ✅ | higress, portkey | — |\n| local (general local) | ✅ thin | — | — | — | langchaingo, langchain-swift, llm-chain |\n| cybertron | ✅ thin | — | — | — | langchaingo |\n| jlama | ✅ thin | — | — | — | langchain4j |\n| localai | ✅ thin | — | — | — | langchain4j, llama_index |\n| onnx | ✅ thin | — | — | — | semantic-kernel, langchain4j |\n| openvino | ✅ thin | — | — | — | llama_index |\n| mlx | ✅ thin | — | — | — | outlines, llama_index |\n| gaudi | ✅ thin | — | — | — | llama_index |\n\n### Embedding/Reranking Dedicated\n\n| Provider | aimux | rig | litellm | Gateway coverage | Other |\n|------|:---:|:---:|:---:|:---:|------|\n| voyage | ✅ | ✅ | ✅ | portkey, ferro | langchainjs, langchain4j, llama_index |\n| jina | ❌ | — | ✅(jina_ai) | portkey, one-api, axonhub, higress, langchain4j, llama_index | edgequake, langchaingo |\n| nomic | ❌ | — | — | portkey | langchainjs, langchain4j |\n| cohere embedding/rerank | ✅ | ✅ | ✅ | all | most projects |\n| fastembed | ❌ | — | — | — | swiftide (local) |\n| mixedbread | ❌ | — | — | — | LlamaIndexTS |\n| clip | ❌ | — | — | — | LlamaIndexTS |\n| pg_vector | ❌ | — | ✅ | — | — |\n| s3_vectors | ❌ | — | ✅ | — | — |\n| milvus (vector database) | ❌ | — | ✅ | portkey | — |\n| qdrant (vector database) | ❌ | — | — | portkey | — |\n\n### Speech/Transcription/Image/Video Dedicated\n\n| Provider | aimux | Type | litellm | Gateway coverage | Other |\n|------|:---:|------|:---:|:---:|------|\n| elevenlabs | ✅ | speech | ✅ | bifrost, llmgateway | spring-ai |\n| deepgram | ✅ | transcription | ✅ | — | aisuite, mastra |\n| assemblyai | ✅ | transcription | — | — | llama_index |\n| cartesia | ✅ | speech | — | — | — |\n| fal | ✅ | image/video | ✅(fal_ai) | — | — |\n| replicate | ✅ | image/video | ✅ | one-hub, TokenHub, ferro | langchain, llama_index |\n| black_forest_labs | ✅ | image | ✅ | — | — |\n| luma | ✅ | image | ✅(runwayml?) | — | — |\n| prodia | ✅ | image/video | — | — | — |\n| klingai | ✅ | video | — | new-api, higress, one-hub, TokenHub | — |\n| stability | ❌ | image | ✅(stability) | portkey, one-hub, spring-ai | — |\n| recraft | ❌ | image | ✅ | one-hub, portkey, TokenHub | — |\n| runwayml | ❌ | video | ✅(runwayml) | bifrost | — |\n| hume | ✅ | speech | — | — | — |\n| lmnt | ✅ | speech | — | — | — |\n| gladia | ✅ | transcription | — | — | — |\n| revai | ✅ | transcription | — | — | — |\n| aws_polly | ❌ | speech | ✅ | — | — |\n| nvidia_riva | ❌ | speech | ✅ | — | — |\n| soniox | ❌ | transcription | ✅ | — | — |\n| midjourney | ❌ | image | — | new-api, one-hub, coai | — |\n| sora | ❌ | video | — | new-api | — |\n| vidu | ❌ | video | — | new-api | — |\n| jimeng (Jimeng) | ❌ | image | — | new-api | — |\n| ideogram | ❌ | image | — | one-hub | — |\n| flux | ❌ | image | — | one-hub | — |\n| suno | ❌ | music | — | new-api, one-hub | — |\n| meshy | ❌ | 3D | — | portkey | — |\n| tripo3d | ❌ | 3D | — | portkey | — |\n| segmind | ❌ | image | — | portkey | — |\n| runware | ❌ | image | — | bifrost | — |\n| sarvam | ✅ thin | speech | ✅ | bifrost, claude-code-router, TokenHub | — |\n| murf | ❌ | speech | — | mastra | — |\n| playai | ❌ | speech | — | mastra | — |\n| speechify | ❌ | speech | — | mastra | — |\n| inworld | ❌ | speech | — | mastra | — |\n\n### Programming Subscription to API (coding plan)\n\nA category that emerged in 2026, converting programming tool subscription quotas into APIs. OAuth authentication, account pools, specific endpoints, with account-ban risk.\n\n| Provider/Type | rig | new-api | axonhub | claude-code-router | Other gateways |\n|------|:---:|:---:|:---:|:---:|:---:|\n| chatgpt subscription (codex) | ✅ | ✅ | ✅ | — | — |\n| github copilot | ✅ | — | ✅ | — | portkey, bifrost, manifest, TokenHub |\n| claude code subscription | — | — | ✅ | ✅ | — |\n| cline | — | — | ✅ | — | manifest(cline-pass) |\n| nanogpt | — | — | ✅ | — | llmgateway, TokenHub |\n| kimi code | — | — | ✅ | — | — |\n| opencode_go | — | — | ✅ | — | bifrost, manifest |\n| antigravity | — | — | ✅ | — | — |\n| aimux (axonhub built-in) | — | — | ✅ | — | — |\n| synthetic | — | — | ✅ | — | TokenHub |\n| neuralwatt | — | — | ✅ | — | — |\n| apertis | — | — | ✅ | — | — |\n| wafer | — | — | ✅ | — | bifrost |\n| zhipu coding | — | — | — | ✅(zhipu-cn-coding) | aiproxy(ZhipuCoding) |\n| zai coding | — | — | — | ✅(zai-global-coding) | — |\n| fenno | — | — | — | ✅ | — |\n| runapi | — | — | — | ✅ | — |\n| teamorouter | — | — | — | ✅ | — |\n| unity2 | — | — | — | ✅ | — |\n| code0 | — | — | — | ✅ | — |\n| claudeapi | — | — | — | ✅ | — |\n| qiniu-ai | — | — | — | ✅ | — |\n| kiro | — | — | — | — | manifest |\n| pioneer | — | — | — | — | manifest |\n| kilo | — | — | — | — | manifest, TokenHub |\n| commandcode | — | — | — | — | manifest |\n| TokenHub 100+ proxies | — | — | — | — | TokenHub(requesty, helicone, poe, submodel, morph, nearai, neon, poolside, wandb, clarifai, etc.) |\n\naimux currently does not support any coding plan integration.\n\n### Gateway/Aggregation/Proxy Type\n\n| Provider | aimux | rig | litellm | Gateway coverage |\n|------|:---:|:---:|:---:|:---:|\n| openrouter | ✅ thin | ✅ | ✅ | almost all gateways |\n| vercel (ai gateway) | ✅ thin | — | ✅(vercel_ai_gateway) | — |\n| portkey | ✅ thin | — | — | ✅portkey-gateway |\n| helicone | ✅ thin | — | — | TokenHub |\n| requesty | ✅ thin | — | — | TokenHub |\n| 302ai | ✅ thin | — | — | portkey, TokenHub |\n| cometapi | ✅ thin | — | ✅ | portkey, TokenHub |\n| novita | ✅ thin | — | ✅ | portkey, one-api, TokenHub, APIPark |\n| siliconflow | ✅ thin | — | — | new-api, one-api, APIPark, chats, claude-code-router |\n| submodel | ✅ thin | — | — | new-api, TokenHub |\n| api2d | ✅ thin | — | — | new-api, one-api |\n| ohmygpt | ✅ thin | — | — | new-api, one-api |\n| closeai | ✅ thin | — | — | one-api |\n| openaisb | ✅ thin | — | — | one-api |\n| openaimax | ✅ thin | — | — | new-api, one-api |\n| ails | ✅ thin | — | — | new-api, one-api |\n| api2gpt | ✅ thin | — | — | new-api, one-api |\n| aigc2d | ✅ thin | — | — | new-api, one-api |\n| fastgpt | ✅ thin | — | — | new-api, one-api |\n| tokenpony | ✅ thin | — | — | chats |\n| fastrouter | ✅ thin | — | — | TokenHub |\n| orcarouter | ✅ thin | — | — | TokenHub |\n\n### General/Custom Channels\n\nAlmost all gateway projects have a \"custom/OpenAI-compatible/general\" channel that allows filling in an arbitrary endpoint. aimux's `OpenAIProvider::with_base_url` is equivalent to this capability.\n\n---\n\n## 3. Providers Missing from aimux\n\n> Update (2026-07-28): OpenAI-compatible LLM chat providers have all been integrated as thin wrappers. The following providers are not integrated, for various reasons:\n\n### Non-OpenAI Chat Completions Protocol (requires its own trait or API format)\n\n| Provider | Type | Reason for not integrating |\n|------|------|---------|\n| milvus / qdrant / pg_vector / s3_vectors | vector database | Not an LLM API; it is vector storage/retrieval |\n| clip / fastembed / tei / text_embeddings_inference | embedding inference | Not a chat API; requires an EmbeddingModel trait implementation |\n| jina / nomic / mixedbread | embedding/reranking | Not a chat API; requires an EmbeddingModel/RerankingModel implementation |\n| recraft / ideogram / stability_ai / segmind / runware | image generation | Not a chat API; requires an ImageModel trait implementation |\n| meshy / tripo3d | 3D generation | Not a chat API |\n| runwayml / sora / vidu / jimeng / midjourney | video generation | Not a chat API; requires a VideoModel trait implementation |\n| flux | image generation | Not a chat API |\n| suno | music generation | Not a chat API; no corresponding trait |\n| murf / playai / speechify / inworld | speech synthesis | Not a chat API; requires a SpeechModel trait implementation |\n| aws_polly | speech synthesis | AWS SigV4 authentication; requires SpeechModel |\n| nvidia_riva | speech | Not OpenAI-compatible |\n| soniox | speech transcription | WebSocket protocol; requires TranscriptionModel |\n| doubaoaudio / mokaai | audio | Not a chat API |\n| bing / deepl / dify / slack / doc2x | non-LLM service | Search/translation/platform/messaging; not an LLM API |\n| streamlake / antling / sangforaicp / skylark | non-LLM service | Video streaming/unknown/enterprise platform/unknown |\n\n### Special Authentication (cannot simply use API key + Bearer)\n\n| Provider | Authentication method | Reason for not integrating |\n|------|---------|---------|\n| watsonx (ibm) | IBM IAM token | Requires an independent authentication implementation |\n| sagemaker (aws) | AWS SigV4 | Requires an independent authentication implementation |\n| sap | SAP auth | Requires an independent authentication implementation |\n| oci (oracle) | Oracle auth | Requires an independent authentication implementation |\n| snowflake | Snowflake auth | Requires an independent authentication implementation |\n| bedrock_mantle | AWS auth | Requires an independent authentication implementation |\n\n### Need to Upgrade to Native Protocol Implementation (current thin wrapper may not handle provider-specific fields)\n\n| Provider | Current status | What needs to be done |\n|------|---------|---------|\n| baidu (Wenxin) | ✅ thin (OpenAI-compatible endpoint) | Wenxin has a custom protocol (ERNIE-Bot); requires a native implementation to cover full capabilities |\n| tencent (Hunyuan) | ✅ thin | Hunyuan has its own signing mechanism; requires a native implementation |\n| xunfei (Xunfei) | ✅ thin | Xunfei uses the WebSocket protocol; requires an independent implementation |\n| alibaba | ✅ thin | The reasoning_content field is dropped; reasoning fields need to be handled |\n| groq | ✅ thin | top_k is bypassed by coincidence; needs a configuration descriptor to mark it as unsupported |\n| all thin wrappers | ✅ thin | Add a configuration descriptor structure per RFC-0002 to handle the differences of each provider |\n\n### Whether to Include Programming Subscriptions (pending)\n\nThe coding plan category (chatgpt subscription, copilot, claude code subscription, etc.) is very popular in 2026, but carries ToS risks and unstable protocols. As a unified service integration layer, whether aimux should include this kind of integration requires a decision. If it is to be included, refer to the implementations of axonhub and claude-code-router.\n\n---\n\n## 4. Points to Update or Handle During Implementation\n\n### 1. Thin Wrapper Refactoring (recorded in RFC-0002)\n\n13 OpenAI-compatible thin wrappers need a configuration descriptor structure added so that each provider's differences (reasoning fields, capability flags, usage statistics methods) can be expressed. This is a prerequisite for rolling out providers at scale.\n\n### 2. Special Protocols of Domestic Providers\n\nBaidu, Xunfei, and Zhipu do not fully follow the OpenAI-compatible protocol and require native implementations:\n- Baidu Wenxin: custom protocol, has the ERNIE-Bot series\n- Xunfei Spark: WebSocket protocol, special signing authentication\n- Zhipu GLM: has its own protocol and also an OpenAI-compatible endpoint\n\n### 3. Different Integration Methods for Local Inference Providers\n\nollama, llama.cpp, and lmstudio are local services without HTTPS or keys, and their integration method differs from cloud providers:\n- ollama: HTTP localhost, no authentication\n- llama.cpp: local process, uses GGUF files\n- lmstudio: local HTTP, OpenAI-compatible\n\nThis affects the authentication and URL construction logic of the Provider trait.\n\n### 4. Routing Semantics of Gateway-Type Providers\n\nopenrouter and vercel gateway are not ordinary providers — they internally route to other providers. Users may want to specify \"route to anthropic/claude via openrouter\". This affects how model_id is parsed (it may contain a slash-separated provider prefix).\n\n### 5. Test Coverage\n\nPer the cassette scheme of RFC-0003, each time a provider is added:\n- Find the corresponding provider's cassette from rig's recordings (rig covers 16 providers)\n- For those not covered by rig, record them yourself with llmtape\n- Add them to the unified contract tests\n\n### 6. Verification of Existing Implementations\n\nThe existing 11 native implementations need to be verified for correctness with cassette tests:\n- openai, anthropic, google, bedrock, vertex, azure, cohere, mistral, xai, deepseek, anthropic_aws\n- These implementations have a large amount of code (500-1500 lines per provider) and may contain undiscovered parsing bugs\n- Cassette replay can uncover \"the return format changed but the code did not keep up\" issues\n\n### 7. Specifics of coding plan Integration (if included)\n\nOAuth authentication flows, account pool management, token refresh, and account-ban risk handling — these all differ from ordinary API key authentication. If it is decided to include them, a separate authentication abstraction layer needs to be designed.\n\n---\n\n## 5. High-User-Volume Coding Agents and Forwarding Services\n\n> Previously only SDKs and gateways were scanned, missing the higher-volume coding agent tools and their accompanying forwarding/switching services.\n> These projects are massive in scale (several with 100k+ stars) and are the actual source of coding plan integrations.\n\n### coding agent (terminal/IDE type)\n\n| Project | ★ | Language | Positioning |\n|------|:---:|:---:|------|\n| openai/codex | 101k | Rust | OpenAI's official coding agent, runs in the terminal |\n| anthropics/claude-code | 139k | — | Anthropic's official coding agent, runs in the terminal |\n| anomalyco/opencode | 190k | TypeScript | Open-source coding agent (unofficial)|\n| earendil-works/pi | 79k | TypeScript | AI agent toolkit: unified LLM API + agent loop + TUI + coding CLI |\n| google-gemini/gemini-cli | 106k | TypeScript | Google's official Gemini terminal agent |\n| cline/cline | 65k | TypeScript | Autonomous coding agent, SDK/IDE/CLI |\n| Aider-AI/aider | 48k | Python | Terminal AI pair programming |\n| continuedev/continue | 35k | TypeScript | Open-source coding agent (IDE)|\n| RooCodeInc/Roo-Code | 24k | TypeScript | Multi-agent team inside the editor |\n| opencode-ai/opencode | 14k | Go | Terminal coding agent (another opencode)|\n\n### Forwarding/Switching/Proxy Services (letting coding agents integrate any provider)\n\n| Project | ★ | Language | Positioning |\n|------|:---:|:---:|------|\n| farion1231/cc-switch | 122k | Rust+TS | Cross-platform desktop assistant: unified management + provider switching for Claude Code/Codex/OpenCode/OpenClaw/Grok Build/Hermes Agent |\n| musistudio/claude-code-router | 36k | TypeScript | Routes Claude Code to any model/provider |\n| lidge-jun/opencodex | 5.2k | TypeScript | General provider proxy for Codex CLI + Claude Code |\n| XueshiQiao/CCSwitcher | 160 | — | One-click Claude Code account switching |\n| liuzhengming/ccswitch-deepseek | 296 | — | ccswitch forwarding to DeepSeek |\n| nicremo/ccs | 11 | — | Switch Claude Code to MiniMax/Kimi/GLM/DeepSeek/Qwen |\n| glidea/claude-worker-proxy | 274 | — | Claude Code proxy on Cloudflare Worker |\n\n### coding agent Ecosystem Periphery\n\n| Project | ★ | Positioning |\n|------|:---:|------|\n| awesome-opencode | 9.2k | opencode plugin/theme/agent resource collection |\n| alvinunreal/oh-my-opencode-slim | 7.4k | opencode multi-agent suite, mixing any models |\n| pinchbench/skill | 1.3k | LLM benchmark for the OpenClaw coding agent |\n| kenryu42/cc-safety-net | 1.5k | coding agent CLI safety net (intercepts dangerous commands)|\n| agent-of-empires/agent-of-empires | 2.9k | Unified management TUI+Web for multiple agents (Claude Code/OpenCode/Codex/Gemini/Pi/Copilot/Factory Droid) |\n\n### Detailed Provider Inventory of coding agents and Forwarding Services\n\n**codex** (OpenAI official, Rust): 4 built-in — OpenAI, Amazon Bedrock, Ollama, LM Studio. Only uses the OpenAI Responses API, with no cross-protocol conversion. Supports ChatGPT subscription OAuth.\n\n**opencode** (190k stars, TS): Delegates to Vercel AI SDK, ~20 built-in — anthropic, openai, google, google-vertex, github-copilot, amazon-bedrock, azure, openrouter, mistral, gitlab, xai, groq, deepinfra, cerebras, cohere, togetherai, perplexity, vercel, alibaba, venice, bedrock/mantle. Supports GitHub Copilot OAuth.\n\n**pi** (79k stars, TS): Self-implements 10 API adapters, 37 built-in providers — amazon-bedrock, ant-ling, anthropic, azure-openai-responses, cerebras, cloudflare-ai-gateway, cloudflare-workers-ai, deepseek, fireworks, github-copilot, google, google-vertex, groq, huggingface, kimi-coding, minimax, minimax-cn, mistral, moonshotai, moonshotai-cn, nvidia, openai, openai-codex, opencode, opencode-go, openrouter, qwen-token-plan, qwen-token-plan-cn, radius, together, vercel-ai-gateway, xai, xiaomi, xiaomi-token-plan(ams/cn/sgp), zai, zai-coding-cn. Supports three OAuth types: Codex subscription/GitHub Copilot/radius.\n\n**cline** (65k stars, TS): ~55+ providers — anthropic, claude-code, cline, cline-pass, openai-compatible, openai-native, openai-codex, openai-codex-cli, opencode, bedrock, vertex, gemini, ollama, lmstudio, deepseek, xai, together, fireworks, groq, poolside, cerebras, sambanova, nebius, baseten, requesty, litellm, huggingface, vercel-ai-gateway, v0, aihubmix, hicap, nousResearch, huawei-cloud-maas, wandb, xiaomi, tencent-tokenhub, kilo, zai, zai-coding-plan, qwen, qwen-code, doubao, mistral, moonshot, asksage, minimax, dify, oca, sapaicore, openrouter. Supports four OAuth types: Claude Code/Cline/Codex/opencode.\n\n**continue** (35k stars, TS): 66 provider classes — including Anthropic, OpenAI, Gemini, Bedrock, Azure, VertexAI, Cohere, Mistral, Deepseek, xAI, MiniMax, Groq, OpenRouter, Together, Fireworks, Cerebras, Cloudflare, DeepInfra, HuggingFace, LlamaCpp, LlamaStack, Llamafile, LMStudio, Ollama, Nvidia, Novita, Msty, Mimo, Moonshot, Nebius, NCompass, Nous, OVHcloud, Replicate, Relace, SambaNova, SageMaker, Scaleway, SiliconFlow, TARS, Tensorix, TextGenWebUI, Venice, Vllm, WatsonX, zAI, CometAPI, ClawRouter, Docker, Flowise, FunctionNetwork, Inception, Jina, Kindo, Lemonade, AskSage, etc.\n\n**Roo-Code** (24k stars, TS): 30+ handlers — Anthropic, AwsBedrock, DeepSeek, Moonshot, Gemini, LiteLLM, LmStudio, Mistral, OpenAiCodex, OpenAiNative, OpenAi, OpenAICompatible, OpenRouter, Poe, QwenCode, Requesty, SambaNova, Unbound, Vertex, AnthropicVertex, VsCodeLm, XAI, ZAi, Fireworks, VercelAiGateway, MiniMax, Baseten, NativeOllama, FakeAI. Internal canonical format = Anthropic Messages. Supports Codex subscription OAuth.\n\n**opencode-ai** (14k stars, Go): 11 — Copilot, Anthropic, OpenAI, Gemini, Bedrock, GROQ, Azure, VertexAI, OpenRouter, XAI, Local. Each provider has an independent Go SDK client. Supports GitHub Copilot token exchange.\n\n**aider** (48k stars, Python): Delegates to litellm, supports all 134 of litellm's providers. No OAuth.\n\n**opencodex** (5.2k stars, TS, forwarding service): 60 provider entries — including OpenAI (Codex subscription pool), Anthropic (Claude subscription), xAI/Grok, Kimi, Kiro, Google Antigravity, Cursor, GitHub Copilot, DeepSeek, Moonshot, Z.AI, Zhipu, Qwen, Alibaba, Tencent, Baidu, MiniMax, SiliconFlow, Groq, Cerebras, Together, Fireworks, FirePass, HuggingFace, NVIDIA NIM, Venice, NanoGPT, Synthetic, Mistral, OpenRouter, OrcaRouter, BizRouter, Parallel, ZenMux, Vercel AI Gateway, Cloudflare AI Gateway/Workers AI, GitLab Duo, Kilo, Umans, Neuralwatt, opencode-go/zen/free, Ollama, vLLM, LM Studio, LiteLLM, etc. Most complete protocol conversion (internal intermediate representation + bidirectional adapters).\n\n**cc-switch** (122k stars, Rust+Tauri): 80+ presets — including AiHubMix, OpenRouter, TheRouter, Novita AI, DMXAPI, CrazyRouter, NewAPI, APIKEY.FUN, SubRouter, DeepSeek, Zhipu GLM, Bailian, Baidu Qianfan, StepFun, ModelScope, Longcat, MiniMax, BaiLing, Xiaomi MiMo, DouBaoSeed/BytePlus, Tencent, Kimi/Kimi For Coding, PackyCode, ZetaAPI, APINebula, AICodeMirror, PatewayAI, FennoAI, RunAPI, Unity2.ai, Shengsuanyun, AIGoCode, AICoding, Code0, TeamoRouter, ClaudeCN, ClaudeAPI, CCSub, SSSAiCode, Micu, RightCode, ETok.ai, Cubence, SudoCode, Amux, CherryIN, RelaxyCode, E-FlowCode, PIPELLM, NekoCode, AtlasCloud, Compshare, KAT-Coder, Nvidia, Together AI, Nous Research, Claude Official, OpenAI Official, Google Official, Grok Official, Codex, GitHub Copilot, AWS Bedrock, Azure OpenAI, Gemini Native, OpenCode Go, custom gateway. No protocol conversion, only configuration switching + model name mapping.\n\n**claude-code-router** (36k stars, TS): 20+ presets — anthropic, openai, deepseek, gemini, bailian, claudeapi, code0, fenno, kimi-coding, minimax, mistral, moonshot, nvidia, openrouter, qiniu-ai, runapi, siliconflow, teamorouter, unity2, zai-global-coding, zai-global-general, zhipu-cn-coding, zhipu-cn-general. The core does not perform protocol conversion, relying on route scripts.\n\n### Newly Discovered Providers (previously omitted from the inventory)\n\nThe following providers appear in coding agents/forwarding services and were not previously recorded in the inventory:\n\n| Provider | Source | Type |\n|------|------|------|\n| ant-ling | pi | LLM |\n| radius | pi | LLM (OAuth) |\n| kimi-coding | pi/opencodex | coding plan |\n| qwen-token-plan / qwen-code | pi/cline | coding plan |\n| zai-coding-cn / zai-coding-plan | pi/cline | coding plan |\n| poolside | cline | LLM |\n| hicap | cline | LLM |\n| asksage | cline/continue | LLM |\n| dify | cline | platform |\n| oca | cline | LLM |\n| sapaicore | cline | LLM |\n| huawei-cloud-maas | cline | LLM |\n| msty | continue | local |\n| tars | continue | LLM |\n| tensorix | continue | LLM |\n| relace | continue | LLM |\n| llamastack | continue | local |\n| kindo | continue | LLM |\n| lemonade | continue | LLM |\n| flowise | continue | platform |\n| functionnetwork | continue | LLM |\n| poe | Roo-Code | aggregation |\n| unbound | Roo-Code | LLM |\n| firepass | opencodex | LLM |\n| orcarouter | opencodex | proxy |\n| bizrouter | opencodex | proxy |\n| parallel | opencodex | proxy |\n| zenmux | opencodex | proxy |\n| umans | opencodex | LLM |\n| neuralwatt | opencodex/axonhub | LLM |\n| opencode-free | opencodex | free |\n| kiro | opencodex/manifest | coding plan |\n| google antigravity | opencodex/axonhub | coding plan |\n| cursor | opencodex | coding plan |\n| packycode | cc-switch | proxy |\n| zetaapi | cc-switch | proxy |\n| apinebula | cc-switch | proxy |\n| aicodemirror | cc-switch | proxy |\n| patewayai | cc-switch | proxy |\n| fennoai | cc-switch | proxy |\n| runapi | cc-switch/claude-code-router | proxy |\n| unity2.ai | cc-switch/claude-code-router | proxy |\n| shengsuanyun | cc-switch | proxy |\n| aigocode | cc-switch | proxy |\n| aicoding | cc-switch | proxy |\n| code0 | cc-switch/claude-code-router | proxy |\n| teamorouter | cc-switch/claude-code-router | proxy |\n| claudecn | cc-switch | proxy |\n| ccsub | cc-switch | proxy |\n| sssaicode | cc-switch | proxy |\n| micu | cc-switch | proxy |\n| rightcode | cc-switch | proxy |\n| etok.ai | cc-switch | proxy |\n| cubence | cc-switch | proxy |\n| sudocode | cc-switch | proxy |\n| amux | cc-switch | proxy |\n| cherryin | cc-switch | proxy |\n| relaxycode | cc-switch | proxy |\n| e-flowcode | cc-switch | proxy |\n| pipllm | cc-switch | proxy |\n| nekocode | cc-switch | proxy |\n| compshare | cc-switch | proxy |\n| kat-coder | cc-switch | proxy |\n| dmxapi | cc-switch | proxy |\n| crazyrouter | cc-switch | proxy |\n| subrouter | cc-switch | proxy |\n| apikey.fun | cc-switch | proxy |\n| therouter | cc-switch | proxy |\n| clawrouter | continue | proxy |\n\n> The vast majority of the newly added providers above are domestic coding agent proxy/relay services, which emerged in large numbers in 2026. For protocol conversion logic, see [0005-protocol-conversion.md](0005-protocol-conversion.md).\n\n### Implications for aimux\n\n1. **cc-switch is written in Rust** (a Tauri desktop application) — it needs to uniformly manage the authentication and switching of multiple providers, which is exactly what aimux's provider abstraction can provide.\n2. **Both opencode and pi come with a \"unified LLM API\" layer** — pi explicitly states \"unified LLM API\", which directly overlaps with aimux's positioning.\n3. **Forwarding services (claude-code-router/opencodex) are essentially micro-gateways** — forwarding coding agent requests to any provider, of the same kind as the gateway projects scanned earlier.\n4. **These projects have far more users than SDK projects** (opencode 190k vs rig 8k) — if aimux wants to be widely used, the coding agent ecosystem is a larger market than the SDK ecosystem.\n\naimux currently does not support any coding agent integration. Whether to provide support for such scenarios (OAuth authentication, subscription quota management, provider switching) requires a decision.\n\n---\n\n## 6. Data Source Notes\n\nThe provider inventory in this document comes from the following scans (2026-07-27):\n\n- **Rust competitors**: rig(28), rust-genai(31), langchain-rust(5), kalosm, swiftide(9), graniet-llm(15), rllm(7), edgequake-llm, llm-connector(8), ai.rs, litellm-rust, unia(14), multi-llm, llmrust, rust_ai_sdk, llm-chain\n- **Python ecosystem**: litellm(134), langchain, llama_index(99), dspy, haystack, guidance, pydantic-ai(14), outlines, instructor(14), aisuite(28), textgrad, AutoGPT, OpenHands, autogen, crewAI, mirascope\n- **Other languages**: mastra, langchainjs, LlamaIndexTS, eino (interfaces only), langchaingo, langchain4j, spring-ai, semantic-kernel, semantic-kernel-java, dotnet-extensions, LangChain-csharp, langchain-swift\n- **Gateways**: new-api(54 channels), one-api(38 adapters), portkey-gateway(72), bifrost(29), coai(18), manifest(33), higress(36), one-hub(41), simple-one-api(18), uni-api(12 adapters), axonhub(20), TokenHub(35+ direct/100+ proxies), aiproxy(37), chats(22), otari (configuration-driven), ferro-ai-gateway(29), OpenGateLLM(5), llmgateway(33), APIPark(35), envoy-ai-gateway(7), claude-code-router(20)\n- **coding agents and forwarding services**: openai/codex(4 built-in), anthropics/claude-code (docs only), anomalyco/opencode(20), earendil-works/pi(37), google-gemini/gemini-cli (Google only), cline(55+), Aider-AI/aider (litellm passthrough), continuedev/continue(66), RooCodeInc/Roo-Code(30+), opencode-ai/opencode(11), farion1231/cc-switch(80+), musistudio/claude-code-router(20+), lidge-jun/opencodex(60), XueshiQiao/CCSwitcher (Claude account pool), glidea/claude-worker-proxy (arbitrary OpenAI/Gemini), liuzhengming/ccswitch-deepseek (DeepSeek), nicremo/ccs (5 domestic), agent-of-empires(2.9k), oh-my-opencode-slim(7.4k), pinchbench(1.3k), cc-safety-net(1.5k)\n- **Protocol conversion logic**: see [0005-protocol-conversion.md](0005-protocol-conversion.md), covering SDK adapter layer design, gateway cross-protocol mutual conversion, and coding agent/forwarding service protocol conversion\n"}}, "docs/internal/model-config-research/batch-05.md": {"5b352e19b5717ed5ba775e097bed1f6fd81c2095": {"t": 1785809829.8173456, "n": 65793, "h": "3a067ec71803aac1", "c": "# Batch 05 — Model Request Config 调研\n\n> 状态: ✅ 已完成 · 厂商数: 42 · 2026-08-01\n> 模板见 [_template.md](_template.md) · 方法论见 [README.md](README.md)\n> 证据硬性要求: 每条目必须有例子或证明(A/B/C 级),禁止编造来源。\n\n## 厂商清单\n\n| # | id | display | base_url | env_var | profile |\n|---|---|---|---|---|---|\n| 1 | opencode | OpenCode Zen | opencode_zen.rs | OPENCODE_API_KEY | OpenAICompatProfile::full() |\n| 2 | opencode_go | OpenCode Go | https://api.opencode.dev/v1 | OPENCODE_GO_API_KEY | OpenAICompatProfile::full() |\n| 3 | opencode_zen | OpenCode Zen | https://api.opencode.zen/v1 | OPENCODE_ZEN_API_KEY | OpenAICompatProfile::full() |\n| 4 | orcarouter | OrcaRouter | https://api.orcarouter.com/v1 | ORCAROUTER_API_KEY | OpenAICompatProfile::full() |\n| 5 | ovhcloud | OVHcloud AI | https://oai.endpoints.kepler.ai.cloud.ovh.net/v1 | OVHCLOUD_API_KEY | OpenAICompatProfile::full() |\n| 6 | parasail | Parasail | https://api.parasail.io/v1 | PARASAIL_API_KEY | OpenAICompatProfile::full() |\n| 7 | perfxcloud | PerfXCloud | https://api.perfxcloud.com/v1 | PERFXCLOUD_API_KEY | OpenAICompatProfile::full() |\n| 8 | perplexity | Perplexity | https://api.perplexity.ai | PERPLEXITY_API_KEY | OpenAICompatProfile::full() |\n| 9 | perplexity_agent | Perplexity Agent | https://api.perplexity.ai/v1 | PERPLEXITY_API_KEY | OpenAICompatProfile::full() |\n| 10 | petals | Petals | https://api.petals.dev/v1 | PETALS_API_KEY | OpenAICompatProfile::full() |\n| 11 | pinstripes | Pinstripes | https://api.pinstripes.io/v1 | PINSTRIPES_API_KEY | OpenAICompatProfile::full() |\n| 12 | pioneer | Pioneer | https://api.pioneer.ai/v1 | PIONEER_API_KEY | OpenAICompatProfile::full() |\n| 13 | poe | Poe | https://api.poe.com/v1 | POE_API_KEY | OpenAICompatProfile::full() |\n| 14 | poolside | Poolside | https://inference.poolside.ai/v1 | POOLSIDE_API_KEY | OpenAICompatProfile::full() |\n| 15 | portkey | Portkey Gateway | https://api.portkey.ai/v1 | PORTKEY_API_KEY | OpenAICompatProfile::full() |\n| 16 | ppinfra | PPInfra(PPIO 派欧云) | https://api.ppio.com/openai | PPIO_API_KEY | OpenAICompatProfile::full() |\n| 17 | predibase | Predibase | https://serving.app.predibase.com/v1 | PREDIBASE_API_KEY | OpenAICompatProfile::full() |\n| 18 | privatemode_ai | Privatemode AI | http://localhost:8080/v1 | PRIVATEMODE_API_KEY | OpenAICompatProfile::full() |\n| 19 | publicai | Publicai | https://platform.publicai.co/v1 | PUBLICAI_API_KEY | OpenAICompatProfile::full() |\n| 20 | qihang_ai | QiHang(启航 AI) | https://api.qhaigc.net/v1 | QIHANG_API_KEY | OpenAICompatProfile::full() |\n| 21 | qihoo360 | 360 AI | https://api.360.cn/v1 | AI360_API_KEY | OpenAICompatProfile::full() |\n| 22 | qiniu_ai | Qiniu AI | https://api.qiniu.com/v1 | QINIU_API_KEY | OpenAICompatProfile::full() |\n| 23 | regolo_ai | Regolo AI | https://api.regolo.ai/v1 | REGOLO_API_KEY | OpenAICompatProfile::full() |\n| 24 | reka_ai | Reka AI | https://api.reka.ai/v1 | REKA_API_KEY | OpenAICompatProfile::full() |\n| 25 | requesty | Requesty | https://api.requesty.ai/v1 | REQUESTY_API_KEY | OpenAICompatProfile::full() |\n| 26 | reve | Reve | https://api.reve.ai/v1 | REVE_API_KEY | OpenAICompatProfile::full() |\n| 27 | routing_run | routing.run | https://api.routing.run/v1 | ROUTING_RUN_API_KEY | OpenAICompatProfile::full() |\n| 28 | sakana | Sakana AI | https://api.sakana.ai/v1 | SAKANA_API_KEY | OpenAICompatProfile::full() |\n| 29 | sambanova | SambaNova | https://api.sambanova.ai/v1 | SAMBANOVA_API_KEY | OpenAICompatProfile::full() |\n| 30 | sarvam | Sarvam AI | https://api.sarvam.ai/v1 | SARVAM_API_KEY | OpenAICompatProfile::full() |\n| 31 | scaleway | Scaleway AI | https://api.scaleway.ai/v1 | SCALEWAY_API_KEY | OpenAICompatProfile::full() |\n| 32 | scx_ai | SCX AI | https://api.scx.ai/v1 | SCX_AI_API_KEY | OpenAICompatProfile::full() |\n| 33 | siliconflow | SiliconFlow | https://api.siliconflow.cn/v1 | SILICONFLOW_API_KEY | OpenAICompatProfile::full() |\n| 34 | snowflake | Snowflake | https://.snowflakecomputing.com/api/v2/cortex/v1 | SNOWFLAKE_PAT | OpenAICompatProfile::full() |\n| 35 | snowflake_cortex | Snowflake Cortex | https://.snowflakecomputing.com/api/v2/cortex/v1 | SNOWFLAKE_CORTEX_PAT | OpenAICompatProfile::full() |\n| 36 | stackit | STACKIT | https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1 | STACKIT_API_KEY | OpenAICompatProfile::full() |\n| 37 | stepfun | StepFun (阶跃星辰) | https://api.stepfun.com/v1 | STEPFUN_API_KEY | OpenAICompatProfile::full() |\n| 38 | stepfun_ai_step_plan | StepFun Step Plan (Global) | https://api.stepfun.ai/step_plan/v1 | STEPFUN_API_KEY | OpenAICompatProfile::full() |\n| 39 | stepfun_step_plan | StepFun Step Plan (China) | https://api.stepfun.com/step_plan/v1 | STEPFUN_API_KEY | OpenAICompatProfile::full() |\n| 40 | subconscious | Subconscious | https://api.subconscious.dev/v1 | SUBCONSCIOUS_API_KEY | OpenAICompatProfile::full() |\n| 41 | submodel | SubModel | https://api.submodel.com/v1 | SUBMODEL_API_KEY | OpenAICompatProfile::full() |\n| 42 | synthetic | Synthetic | https://api.synthetic.new/openai/v1 | SYNTHETIC_API_KEY | OpenAICompatProfile::full() |\n\n## 调研条目\n\n### opencode — OpenCode Zen\n\n- **registry 现状**:profile=`full()` · base_url=`\"opencode_zen.rs\"`(⚠️ 字面量是个文件名,不是 URL)· env=`OPENCODE_API_KEY`\n- **变体**:opencode_zen(api.opencode.zen/v1)、opencode_go(api.opencode.dev/v1)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 兼容网关,走标准 chat completions) | - | B | `reference/opencode/packages/web/src/content/docs/providers.mdx:87` |\n| 能力支持 | 无差异 | - | B | 同上 |\n| 思考机制 | 无差异(透传上游模型能力) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer API key,`/connect` 存到 `auth.json`) | - | B | `reference/opencode/packages/web/src/content/docs/providers.mdx:20-21` |\n| URL/端点 | ⚠️ registry 的 base_url 是 `\"opencode_zen.rs\"`(应为 https://api.opencode.zen/v1 之类的合法 URL),请求必然失败 | `base_url = \"opencode_zen.rs\"` → POST `opencode_zen.rs/chat/completions` 非法 | A(registry) | `openai_compat_registry.rs:1533` |\n| 模型 ID | 官方文档格式 `provider/model-id`,如 `opencode/gpt-5.1-codex` | `\"model\": \"opencode/gpt-5.1-codex\"` | B | `reference/opencode/packages/web/src/content/docs/ar/agents.mdx:369` |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(registry 声明错误)\n- **aimux 代码位置**:`openai_compat_registry.rs:1533`\n- **差距说明**:`opencode` 条目 base_url 被写成 `\"opencode_zen.rs\"`,不是合法 URL,任何调用都会失败;与 `opencode_zen` 条目(1547-1554,合法 URL)重复了 display 名 \"OpenCode Zen\"。\n- **建议动作**:把 `openai_compat_registry.rs:1533` 的 base_url 修正为合法 URL(如 `https://api.opencode.zen/v1`),或删除该条目(与 opencode_zen 重复)。\n\n#### 3. 证据与验证\n\n- **证据等级**:B\n- **验证状态**:🔲 未验证(registry 字面量可直接核对,属确定性事实)\n- **存疑标记**:无(registry bug 为确定性事实)\n\n### opencode_go — OpenCode Go\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.opencode.dev/v1` · env=`OPENCODE_GO_API_KEY`\n- **变体**:-(与 opencode/opencode_zen 同族,独立订阅)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(API key,OpenAI 兼容) | - | B | `reference/opencode/packages/web/src/content/docs/ar/go.mdx:42` |\n| URL/端点 | 无差异(base `https://api.opencode.dev/v1` 与官方一致) | - | B | 同上 |\n| 模型 ID | 无差异(标准模型 ID) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1537-1545`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:B\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### opencode_zen — OpenCode Zen\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.opencode.zen/v1` · env=`OPENCODE_ZEN_API_KEY`\n- **变体**:opencode、opencode_go\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer API key) | - | B | `reference/opencode/packages/web/src/content/docs/zen.mdx:44-45` |\n| URL/端点 | 无差异(base `https://api.opencode.zen/v1`) | - | B | 同上 |\n| 模型 ID | 无差异(`opencode/...` 前缀是 OpenCode 客户端侧写法,API 侧为裸模型名) | - | B | `reference/opencode/packages/web/src/content/docs/providers.mdx:96-119` |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1546-1554`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作;建议顺手处理 opencode 条目的坏 base_url。\n\n#### 3. 证据与验证\n\n- **证据等级**:B\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### orcarouter — OrcaRouter\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.orcarouter.com/v1` · env=`ORCAROUTER_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 兼容网关) | - | C | https://www.orcarouter.ai/ |\n| 能力支持 | 无差异(透传上游模型能力,支持 tool calling) | - | C | https://www.promptfoo.dev/docs/providers/orcarouter/ |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer API key) | - | C | https://github.com/danny-avila/LibreChat/discussions/13316 |\n| URL/端点 | ⚠️ 官方主域是 `orcarouter.ai`(www.orcarouter.ai、docs.orcarouter.ai);registry 用 `api.orcarouter.com`,未见公开文档使用该域名 | `base_url=https://api.orcarouter.com/v1`(registry)vs 官方 `https://api.orcarouter.ai/v1` | C | https://www.orcarouter.ai/ |\n| 模型 ID | 无差异(透传) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(端点域名存疑)\n- **aimux 代码位置**:`openai_compat_registry.rs:1556-1563`\n- **差距说明**:无法确认 `api.orcarouter.com` 是否仍有效(官方文档未见该域名);网关类厂商本身无 request 体差异。\n- **建议动作**:核实 `api.orcarouter.com` 与 `api.orcarouter.ai` 的对应关系;若旧域名失效则更新 registry。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:⚠️ 域名存疑\n\n### ovhcloud — OVHcloud AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://oai.endpoints.kepler.ai.cloud.ovh.net/v1` · env=`OVHCLOUD_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(\"compatible with the OpenAI API… just changing the base URL and the API key\") | - | B | `reference/langchain4j/docs/docs/integrations/embedding-models/ovh-ai.md:12` |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer` + AI Endpoints API key) | - | C | https://help.ovhcloud.com/csm/en-ca-public-cloud-ai-endpoints-responses-api?id=kb_article_view&sysparm_article=KB0075055 |\n| URL/端点 | 无差异(base `https://oai.endpoints.kepler.ai.cloud.ovh.net/v1` 与官方一致;另有 `/doc/{model}/openapi.json` 生成式文档) | - | C | https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/ |\n| 模型 ID | 无差异(模型目录 ID,如 `gpt-oss-120b`) | `\"model\": \"gpt-oss-120b\"` | C | https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1565-1573`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:B/C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### parasail — Parasail\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.parasail.io/v1` · env=`PARASAIL_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(\"fully OpenAI-compatible… use the OpenAI SDK against https://api.parasail.io/v1\") | - | C | https://docs.parasail.io/ |\n| 能力支持 | 无差异(含 OpenAI Batch API 兼容) | - | C | https://docs.parasail.io/parasail-docs/api-reference/chat-completions |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer `PARASAIL_API_KEY`) | - | C | https://docs.parasail.io/ |\n| URL/端点 | 无差异(base 与 registry 一致) | - | - | - |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1574-1582`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### perfxcloud — PerfXCloud\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.perfxcloud.com/v1` · env=`PERFXCLOUD_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(兼容 OpenAI ChatGPT 接口,\"可直接使用 OpenAI SDK\") | - | C | https://zhuanlan.zhihu.com/p/706587985 |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | ⚠️ 未找到官方文档;推理类模型(DeepSeek-R1 系)大概率返回 `reasoning_content`,无证据 | - | ⚠️ | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://zhuanlan.zhihu.com/p/706587985 |\n| URL/端点 | 无差异 | - | - | - |\n| 模型 ID | 无差异(模型 ID 按平台模型广场) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(无证据显示差异)\n- **aimux 代码位置**:`openai_compat_registry.rs:1583-1591`\n- **差距说明**:公开资料仅社区文章,无官方 API 文档可核对。\n- **建议动作**:无需动作;后续有官方文档再补。\n\n#### 3. 证据与验证\n\n- **证据等级**:C(弱,社区来源)\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 证据不足(无官方文档,思考机制未确认)\n\n### perplexity — Perplexity\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.perplexity.ai`(无 /v1)· env=`PERPLEXITY_API_KEY`\n- **变体**:perplexity_agent\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | `max_tokens`(无 max_completion_tokens) | `{\"model\":\"sonar-pro\",\"messages\":[...],\"max_tokens\":1024}` | C | https://docs.perplexity.ai/api-reference/sonar-post |\n| 能力支持 | `response_format` 支持 `json_schema`(structured output);官方参考未列出 `tools`/`top_k`(⚠️ 工具调用与 top_k 官方文档无证据,langchain 集成声称 topK 1-2048) | `{\"response_format\":{\"type\":\"json_schema\",\"json_schema\":{...}}}` | C | https://docs.perplexity.ai/api-reference/sonar-post;https://docs.perplexity.ai/docs/sonar/quickstart |\n| 思考机制 | `reasoning_effort`(minimal/low/medium/high)+ `stream_mode`(full 抑制 reasoning 事件 / concise 单独发 reasoning 事件);推理 token 不可强制关闭(社区确认);usage 含 `reasoning_tokens` | `{\"model\":\"sonar-reasoning-pro\",\"stream_mode\":\"concise\",\"reasoning_effort\":\"high\"}` | C | https://docs.perplexity.ai/api-reference/sonar-post;https://community.perplexity.ai/t/not-having-internal-cot-think-in-output-of-reasoning-models/2421 |\n| 流式/usage | 官方支持 `stream_options:{\"include_usage\":true}`,usage 在最终 chunk 到达;usage 含 cost/search_context_size/citation_tokens/num_search_queries 等扩展字段 | `{\"stream\":true,\"stream_options\":{\"include_usage\":true}}` → 末尾 chunk 带 `\"usage\":{\"reasoning_tokens\":123,...}` | C | https://docs.perplexity.ai/docs/gateway/quickstart |\n| 消息格式 | 无差异(标准 chat messages) | - | - | - |\n| 特殊字段 | 搜索类字段:`web_search_options`、`search_mode`(web/academic/sec)、`disable_search`、`enable_search_classifier`、`search_domain_filter`、`search_recency_filter`、`return_images`、`return_related_questions`、`language_preference` 等 | `{\"web_search_options\":{\"search_context_size\":\"high\"},\"search_mode\":\"academic\",\"search_recency_filter\":\"week\",\"return_related_questions\":true}` | C | https://docs.perplexity.ai/api-reference/sonar-post |\n| headers/认证 | 无差异(`Authorization: Bearer `) | - | C | https://docs.perplexity.ai/api-reference/sonar-post |\n| URL/端点 | ⚠️ 新规范端点 `POST /v1/sonar`(官方文档当前主页),legacy 为 `POST /chat/completions`(base 无 /v1);registry base=`https://api.perplexity.ai`(无 /v1)+ `/chat/completions` 命中 legacy 路径,仍可用但与新规范不一致 | `POST https://api.perplexity.ai/v1/sonar`(新)vs `POST https://api.perplexity.ai/chat/completions`(legacy) | C | https://docs.perplexity.ai/api-reference/sonar-post |\n| 模型 ID | `sonar`、`sonar-pro`、`sonar-deep-research`、`sonar-reasoning-pro`(官方枚举) | `\"model\":\"sonar-reasoning-pro\"` | C | https://docs.perplexity.ai/api-reference/sonar-post |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1592-1600`;`convert.rs:1103-1109`(stream_options 已发)、`convert.rs:1326-1329`(reasoning_effort 透传)、`convert.rs:1216-1282`(response_format)\n- **差距说明**:① `reasoning_effort` 语义:Perplexity 是 minimal/low/medium/high,aimux 透传不校验,需调用方对齐;② `stream_mode`/`disable_search`/`web_search_options` 等搜索字段无 profile 支持,只能 bodyOverrides 兜底;③ 端点:registry base 无 `/v1`,与新规范 `/v1/sonar` 路径不一致;④ 推理模型下 aimux 发 `max_completion_tokens`(convert.rs:1122-1130),Perplexity 只认 `max_tokens`。\n- **建议动作**:bodyOverrides 兜底搜索字段;考虑把 base 更新为 `https://api.perplexity.ai/v1`(与 perplexity_agent 一致)并核对 legacy `/chat/completions` 兼容性;推理模型 `max_tokens` 命名可纳入 profile 新字段(如 `max_tokens_key`)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方文档引用;sonar-post 参考为 2026 版)\n- **存疑标记**:⚠️ tools/top_k 支持情况无官方证据\n\n### perplexity_agent — Perplexity Agent\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.perplexity.ai/v1` · env=`PERPLEXITY_API_KEY`\n- **变体**:perplexity\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(Responses API 风格 `input`/`instructions`/`max_output_tokens`) | `{\"model\":\"openai/gpt-5.1\",\"input\":\"...\",\"instructions\":\"...\"}` | C | https://docs.perplexity.ai/docs/agent-api/openai-compatibility |\n| 能力支持 | Agent API 完全兼容 OpenAI Responses API(`/v1/responses` 别名);Sonar Chat Completions 已迁移到 Agent API | - | C | https://docs.perplexity.ai/api-reference/sonar-post(迁移说明) |\n| 思考机制 | 无差异(同 Perplexity 主条目:`reasoning_effort`/`stream_mode`) | - | C | https://docs.perplexity.ai/api-reference/sonar-post |\n| 流式/usage | 无差异(SSE 事件流,Responses 格式) | - | C | https://docs.perplexity.ai/docs/agent-api/openai-compatibility |\n| 消息格式 | 无差异(Responses API `input` 数组) | - | - | - |\n| 特殊字段 | 同 Perplexity 搜索类字段 | - | C | https://docs.perplexity.ai/api-reference/sonar-post |\n| headers/认证 | 无差异(Bearer,同 PERPLEXITY_API_KEY) | - | C | https://docs.perplexity.ai/docs/agent-api/openai-compatibility |\n| URL/端点 | canonical 端点为 `POST /v1/agent`;`/v1/responses` 为 OpenAI SDK 兼容别名;`/v1/sonar` 兼容 Chat Completions | `POST https://api.perplexity.ai/v1/agent` | C | https://docs.perplexity.ai/docs/agent-api/openai-compatibility |\n| 模型 ID | 支持 `provider/model` 形式(`openai/gpt-5.6-sol`、`openai/gpt-5-mini` 等),即第三方模型前缀路由 | `\"model\":\"openai/gpt-5.6-sol\"` | C | https://docs.perplexity.ai/docs/agent-api/openai-compatibility |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1601-1609`;`openai/responses.rs`(Responses API 模块存在)\n- **差距说明**:aimux 的 OpenAI 兼容薄封装走 `/chat/completions` 路径;Agent API 的完整能力(`/v1/agent`、Responses 别名、`openai/...` 模型前缀)未在薄封装 profile 层表达。若走 chat completions 路径则基本可用(Sonar Chat Completions 仍兼容),但官方已建议迁移。\n- **建议动作**:无需立即动作;若要完整支持需在封装层支持 `/v1/responses`(或 `/v1/agent`)路径与 `input` 消息格式。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### petals — Petals\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.petals.dev/v1` · env=`PETALS_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | ⚠️ 无证据 | - | ⚠️ | - |\n| 能力支持 | ⚠️ 无证据 | - | ⚠️ | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | ⚠️ 无证据(Petals 项目本体是去中心化本地推理,非托管 HTTP API) | - | ⚠️ | https://petals.dev/ |\n| URL/端点 | ⚠️ 未找到 `api.petals.dev` 的官方托管服务文档 | - | ⚠️ | https://github.com/bigscience-workshop/petals |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(端点真实性无法确认)\n- **aimux 代码位置**:`openai_compat_registry.rs:1610-1618`\n- **差距说明**:Petals 官方项目(bigscience-workshop/petals)提供的是本地/去中心化推理,无 `api.petals.dev` 托管 OpenAI 兼容服务的公开文档;该 registry 条目指向的托管服务是否存在存疑。\n- **建议动作**:核实 `api.petals.dev` 是否仍提供服务;无服务则删除或挂靠本地 Petals OpenAI 兼容 server。\n\n#### 3. 证据与验证\n\n- **证据等级**:⚠️(仅官网项目页,无 API 文档)\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 证据不足,端点真实性存疑\n\n### pinstripes — Pinstripes\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.pinstripes.io/v1` · env=`PINSTRIPES_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(标准 OpenAI SDK 直连) | - | C | https://pinstripes.io/blog/langchain/ |\n| 能力支持 | 无差异(LangChain 全功能兼容,含 agent/tool calling) | - | C | https://pinstripes.io/blog/langchain/ |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异(自动前缀缓存,`usage` 计费含缓存 token) | - | C | https://pinstripes.io/blog/langchain/ |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`api_key=\"sk-ps-...\"`,Bearer) | - | C | https://pinstripes.io/blog/langchain/ |\n| URL/端点 | ⚠️ 官方示例 base 为 `https://api.pinstripes.ai/v1`;registry 用 `api.pinstripes.io/v1`,两者关系未确认 | `base_url=\"https://api.pinstripes.ai/v1\"`(官方示例)vs `https://api.pinstripes.io/v1`(registry) | C | https://pinstripes.io/blog/langchain/ |\n| 模型 ID | 模型 ID 带 `ps/` 前缀约定 | `\"model\":\"ps/qwen3.6-a3b\"`、`\"model\":\"ps/deepseek-v4-flash\"` | C | https://pinstripes.io/blog/langchain/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1619-1627`\n- **差距说明**:① 域名 `api.pinstripes.io` vs 官方 `api.pinstripes.ai` 存疑;② `ps/` 模型前缀为透传约定,aimux 无校验逻辑(透传即用,不影响请求)。\n- **建议动作**:核实域名;`ps/` 前缀无需动作(透传)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅官方博客示例)\n- **存疑标记**:⚠️ 域名存疑\n\n### pioneer — Pioneer\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.pioneer.ai/v1` · env=`PIONEER_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(\"Drop-in OpenAI replacement… all SDK methods including streaming work unchanged\") | - | C | https://docs.pioneer.ai/concepts/inference |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer,Pioneer key) | - | C | https://docs.pioneer.ai/api-reference/inference/openai-compatible |\n| URL/端点 | 无差异(base 与 registry 一致;另有原生 `POST /inference` 与 Anthropic 兼容端点,属可选) | - | C | https://agent.pioneer.ai/credits |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1628-1636`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### poe — Poe\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.poe.com/v1` · env=`POE_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI Chat Completions 参数) | - | C | https://creator.poe.com/docs/external-applications/openai-compatible-api |\n| 能力支持 | 同时支持 Chat Completions(`/v1/chat/completions`)与 Responses(`/v1/responses`) | - | C | https://creator.poe.com/docs/external-applications/openai-compatible-api |\n| 思考机制 | 无差异(按上游模型能力) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer YOUR_API_KEY`) | - | C | https://creator.poe.com/api-reference/overview |\n| URL/端点 | 无差异(base `https://api.poe.com/v1` 与 registry 一致) | - | C | https://poe.com/api |\n| 模型 ID | ⚠️ 模型名是 Poe 侧枚举(驼峰风格,如 `Claude-Sonnet-4.6`、`GPT-5.1-Codex`),不是上游裸模型名 | `{\"model\":\"Claude-Sonnet-4.6\",\"messages\":[...]}` | C | https://creator.poe.com/api-reference/overview |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1637-1645`\n- **差距说明**:模型 ID 需用 Poe 平台枚举名(驼峰),aimux 透传模型名无映射问题(调用方填对即可);无 request 体差异。\n- **建议动作**:无需动作;文档标注 Poe 模型 ID 风格即可。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:⚠️ 模型 ID 枚举随 Poe 平台更新,未逐一核对\n\n### poolside — Poolside\n\n- **registry 现状**:profile=`full()` · base_url=`https://inference.poolside.ai/v1` · env=`POOLSIDE_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI-compatible) | - | C | https://huggingface.co/poolside/Laguna-M.1 |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`api_key` Bearer) | - | C | https://huggingface.co/poolside/Laguna-M.1 |\n| URL/端点 | 无差异(base `https://inference.poolside.ai/v1` 与 registry 一致) | `OpenAI(base_url=\"https://inference.poolside.ai/v1\", api_key=\"...\")` | C | https://huggingface.co/poolside/Laguna-M.1 |\n| 模型 ID | 无差异(如 `poolside/laguna-...`) | - | C | https://huggingface.co/poolside/Laguna-M.1 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1646-1654`\n- **差距说明**:无 request 级特殊配置(证据较薄,仅 HF 模型卡示例)。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C(弱)\n- **验证状态**:🔲 未验证\n- **存疑标记**:无(若后续有官方 API 文档可补强)\n\n### portkey — Portkey Gateway\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.portkey.ai/v1` · env=`PORTKEY_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(透传上游 OpenAI 参数) | - | C | https://docs.portkey.ai/docs/api-reference/inference-api/gateway-for-other-apis |\n| 能力支持 | 无差异(250+ 模型路由) | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异(透传) | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异(配置/路由经 header 而非 body) | - | - | - |\n| headers/认证 | **gateway 认证走 `x-portkey-api-key` header(值=$PORTKEY_API_KEY),并需 `x-portkey-provider` 指定上游 provider(如 `openai`、`@provider-slug`、`passthrough`),自定义端点加 `x-portkey-custom-host`,路由策略加 `x-portkey-config`;`Authorization` 传的是上游 provider 的 key,不是 Portkey key** | `curl https://api.portkey.ai/v1/chat/completions -H \"x-portkey-api-key: $PORTKEY_API_KEY\" -H \"x-portkey-provider: openai\" -H \"Authorization: Bearer $OPENAI_API_KEY\"` | C | https://docs.portkey.ai/docs/api-reference/inference-api/gateway-for-other-apis;https://docs.portkey.ai/docs/product/ai-gateway/universal-api |\n| URL/端点 | base `https://api.portkey.ai/v1` 与 registry 一致;内置路由 `chat/completions` 走网关逻辑,`/v1/proxy/chat/completions` 前缀强制裸透传 | `POST https://api.portkey.ai/v1/proxy/chat/completions` | C | https://docs.portkey.ai/docs/api-reference/inference-api/gateway-for-other-apis |\n| 模型 ID | 无差异(透传上游模型 ID) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1655-1663`;`openai/mod.rs:96-119`(`OpenAIConfig.headers` 自定义 header)\n- **差距说明**:aimux 默认把 API key 放 `Authorization: Bearer`;Portkey 需要 `x-portkey-api-key`(网关认证)+ `x-portkey-provider`/`x-portkey-custom-host`(路由)。可通过 `OpenAIConfig.headers` 手工补 header,但 profile 层无内置支持,且 `PORTKEY_API_KEY` 不会自动落到 `x-portkey-api-key`。\n- **建议动作**:文档标注需在 headers 配置中追加 `x-portkey-api-key`/`x-portkey-provider`;如用户量大可加 profile 字段(如 `auth_header_name`)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方文档引用)\n- **存疑标记**:无\n\n### ppinfra — PPInfra(PPIO 派欧云)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.ppio.com/openai` · env=`PPIO_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 兼容,SDK base_url 配\"域名 + /openai\") | `OpenAI(base_url=\"https://api.ppio.com/openai\")` | C | https://ppio.com/docs/llms-full.txt |\n| 能力支持 | 无差异(LLM/图像/视频/音频多模态) | - | C | https://ppio.com/docs/third-party/fastgpt-use |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer API 密钥) | - | C | https://ppio.com/docs/third-party/fastgpt-use |\n| URL/端点 | 无差异:完整端点固定为 `https://api.ppio.com/openai/v1/chat/completions`,与 registry base(`/openai`)+ `/v1/chat/completions` 拼接一致 | `POST https://api.ppio.com/openai/v1/chat/completions` | C | https://ppio.com/docs/third-party/fastgpt-use |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1664-1672`\n- **差距说明**:base_url 无尾随 `/v1` 的设计与官方 SDK 用法(\"域名 + /openai\")一致。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### predibase — Predibase\n\n- **registry 现状**:profile=`full()` · base_url=`https://serving.app.predibase.com/v1` · env=`PREDIBASE_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI Chat Completions v1 兼容) | - | C | https://apis.io/apis/predibase/predibase-adapters-api/ |\n| 能力支持 | LoRA adapter:`adapter_id`(Predibase ID 或 HF ID)+ `adapter_source`(pbase/hub/s3)+ `adapter_version` | `{\"model\":\"mistral-7b\",\"adapter_id\":\"my-adapter-id\",\"adapter_version\":3}` | C | https://apis.io/apis/predibase/predibase-adapters-api/;https://developers.llamaindex.ai/python/framework-api-reference/llms/predibase/ |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | `adapter_id`/`adapter_source`/`adapter_version` 为 LoRA 微调适配字段 | 见上 | C | https://developers.llamaindex.ai/python/framework-api-reference/llms/predibase/ |\n| headers/认证 | 无差异(`Authorization: Bearer `) | - | C | https://apis.io/apis/predibase/predibase-adapters-api/ |\n| URL/端点 | ⚠️ 官方 OpenAPI 的 inference base 为 `https://serving.app.predibase.com/{tenant}/deployments/v2/llms/{model}`,OpenAI 兼容路由在其 `/v1` 后缀下(tenant=租户 ID,model=部署名);registry 的 `https://serving.app.predibase.com/v1` 缺 tenant/deployment 路径段,能否直接用存疑 | `https://serving.app.predibase.com/{tenant}/deployments/v2/llms/{model}/v1/chat/completions` | C | https://apis.io/apis/predibase/predibase-adapters-api/ |\n| 模型 ID | `model` = 部署名/serverless base model ID(如 `mistral-7b`) | - | C | https://developers.llamaindex.ai/python/framework-api-reference/llms/predibase/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1673-1681`\n- **差距说明**:① LoRA 字段(adapter_id 等)无 profile 支持 → bodyOverrides 兜底;② 端点路径(tenant/deployment)与 registry base 不一致,存疑。\n- **建议动作**:核实 base_url(可能需要 `{tenant}` 路径变量支持,这是 registry 宏当前不支持的形态);adapter 字段走 bodyOverrides。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(OpenAPI 镜像 + LlamaIndex 集成文档)\n- **存疑标记**:⚠️ base_url 路径形态存疑\n\n### privatemode_ai — Privatemode AI\n\n- **registry 现状**:profile=`full()` · base_url=`http://localhost:8080/v1` · env=`PRIVATEMODE_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | ⚠️ 本地代理(localhost:8080),认证取决于本地代理配置,无公开规范 | - | ⚠️ | - |\n| URL/端点 | 无差异(本地代理,非托管服务) | - | ⚠️ | - |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(无证据显示差异)\n- **aimux 代码位置**:`openai_compat_registry.rs:1682-1690`\n- **差距说明**:本地代理类端点,无公开文档;行为取决于用户本地部署。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:⚠️\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 证据不足(本地端点无公开规范)\n\n### publicai — Publicai\n\n- **registry 现状**:profile=`full()` · base_url=`https://platform.publicai.co/v1` · env=`PUBLICAI_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | **PublicAI 不接受 `max_completion_tokens`,需映射为 `max_tokens`**(litellm 将其作为首个 JSON 配置 provider 的 `param_mappings` 示例) | `\"param_mappings\": {\"max_completion_tokens\": \"max_tokens\"}`(litellm 配置原文) | B | `reference/litellm/litellm/llms/openai_like/README.md:68-87` |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | **要求 content 列表转字符串**(litellm `special_handling.convert_content_list_to_string: true`) | `\"special_handling\": {\"convert_content_list_to_string\": true}`(litellm 配置原文) | B | `reference/litellm/litellm/llms/openai_like/README.md:68-87` |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer,`PUBLICAI_API_KEY`) | - | B | 同上 |\n| URL/端点 | 无差异(base 与 registry 一致:`https://api.publicai.co/v1`) | - | B | 同上 |\n| 模型 ID | litellm 模型写法带 provider 前缀:`publicai/swiss-ai/apertus-8b-instruct`(API 侧模型 ID 为后段) | `model=\"publicai/swiss-ai/apertus-8b-instruct\"` | B | 同上 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1691-1699`;`convert.rs:1118-1138`(max_tokens/max_completion_tokens 分支)\n- **差距说明**:① 推理模型分支 aimux 发 `max_completion_tokens`(convert.rs:1122-1130),PublicAI 只认 `max_tokens` → 推理模型调用会失败;② content 列表转字符串:aimux 标准消息格式默认就是字符串,多模态 content 数组需人工处理。\n- **建议动作**:若 PublicAI 上跑推理模型,纳入 `max_tokens_key` 类 profile 字段候选;其余 bodyOverrides 兜底。\n\n#### 3. 证据与验证\n\n- **证据等级**:B\n- **验证状态**:🔲 未验证(litellm reference 文档)\n- **存疑标记**:无\n\n### qihang_ai — QiHang(启航 AI)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.qhaigc.net/v1` · env=`QIHANG_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(兼容 OpenAI SDK) | - | C | https://www.qhaigc.net/docs/api-reference/introduction |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer sk-...`) | - | C | https://www.qhaigc.net/docs/models |\n| URL/端点 | 无差异(base `https://api.qhaigc.net/v1` 与 registry 一致;官方教程提示\"是否带 /v1 取决于平台\") | `POST https://api.qhaigc.net/v1/chat/completions` | C | https://www.qhaigc.net/docs/tutorials |\n| 模型 ID | 无差异(统一 API,模型 ID 见官方模型列表) | - | C | https://www.qhaigc.net/docs/models |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1700-1708`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### qihoo360 — 360 AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.360.cn/v1` · env=`AI360_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(宣称 OpenAI 兼容,base_url=https://api.360.cn/v1 可一行迁移) | - | C(弱) | https://tools321.com/ai/ai-model-free-list/ |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | ⚠️ 未找到官方文档(模型家族含 360gpt2-pro/360gpt-turbo/360gpt-flash;推理/思考字段无证据) | - | ⚠️ | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | ⚠️ 无官方文档(推测 Bearer) | - | ⚠️ | - |\n| URL/端点 | 无差异(base 与社区描述一致:https://api.360.cn/v1) | - | C(弱) | https://tools321.com/ai/ai-model-free-list/ |\n| 模型 ID | 无差异(360gpt2-pro/360gpt-turbo/360gpt-flash/360zhinao-embedding) | `\"model\":\"360gpt2-pro\"` | C(弱) | https://tools321.com/ai/ai-model-free-list/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(无证据显示差异)\n- **aimux 代码位置**:`openai_compat_registry.rs:1709-1717`\n- **差距说明**:未能访问 360 官方 API 文档(未索引到);现有证据仅第三方汇总页。\n- **建议动作**:无需动作;后续拿到官方文档再核对 thinking/认证细节。\n\n#### 3. 证据与验证\n\n- **证据等级**:C(弱,第三方汇总)\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 证据不足(官方文档未获取)\n\n### qiniu_ai — Qiniu AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.qiniu.com/v1` · env=`QINIU_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(\"接口兼容 OpenAI 风格,参数完全兼容 OpenAI 的 sdk\") | - | C | https://developer.qiniu.com/aitokenapi/kb/13462/aitoken-use-faq?category=kb |\n| 能力支持 | 兼容 OpenAI(/v1/chat/completions)与 Anthropic(/v1/messages)两套协议 | - | C | https://developer.qiniu.com/aitokenapi/kb/13462/aitoken-use-faq?category=kb |\n| 思考机制 | DeepSeek-R1 默认带思考过程(回答开头有 think 标签);grok-4-fast 无参数可关闭推理(只能提示词引导)⚠️ 此为七牛聚合平台侧行为 | - | C | https://developer.qiniu.com/aitokenapi/kb/13462/aitoken-use-faq?category=kb |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization` header,FAQ 明示常见错误是 \"authorization header missing\") | - | C | https://developer.qiniu.com/aitokenapi/kb/13462/aitoken-use-faq?category=kb |\n| URL/端点 | ⚠️ 官方 FAQ 示例 base 为 `https://api.qnaigc.com/v1`(\"域名 + /v1\",易错点示例),registry 用 `api.qiniu.com/v1`;两域名关系未确认(qnaigc 疑为七牛 AI Token API 分发域名) | `base_url=https://api.qnaigc.com/v1`(FAQ 示例)vs `https://api.qiniu.com/v1`(registry) | C | https://developer.qiniu.com/aitokenapi/kb/13462/aitoken-use-faq?category=kb |\n| 模型 ID | `model` 必须与 AI 大模型广场的 \"API model 参数\" 严格一致,否则 503 quota_exceeded_error | `\"model\":\"deepseek-r1:671b\"`(FAQ 报错示例) | C | https://developer.qiniu.com/aitokenapi/kb/13462/aitoken-use-faq?category=kb |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1718-1726`\n- **差距说明**:① base 域名(api.qiniu.com vs api.qnaigc.com)存疑;② 模型 ID 严格匹配要求靠调用方保证;③ 推理思考字段(think 标签/reasoning_content)为平台行为,aimux 已解析 `reasoning_content`(model.rs:558-563)。\n- **建议动作**:核实域名后修正 registry;模型 ID 校验不做(透传)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方 FAQ 引用)\n- **存疑标记**:⚠️ 域名存疑\n\n### regolo_ai — Regolo AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.regolo.ai/v1` · env=`REGOLO_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(\"built on the OpenAI API standard\") | - | C | https://regolo.ai/ |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Authorization) | - | C | https://regolo.ai/ |\n| URL/端点 | 无差异(base `https://api.regolo.ai/v1`,官方强调无尾随斜杠无多余路径) | - | C | https://regolo.ai/using-regolo-models-with-opencode/ |\n| 模型 ID | 无差异 | - | C | https://models.dev/providers/regolo-ai |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1727-1735`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### reka_ai — Reka AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.reka.ai/v1` · env=`REKA_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | `max_tokens`(官方示例;未见 max_completion_tokens) | `client.chat.completions.create(model=\"reka-flash\", messages=[...], max_tokens=2048, stream=True)` | C | https://docs.reka.ai/chat/overview |\n| 能力支持 | 无差异(fully OpenAI-compatible,OpenAI Python SDK 直连) | - | C | https://docs.reka.ai/chat/overview |\n| 思考机制 | 无差异(Reka 模型不以思维链输出) | - | - | - |\n| 流式/usage | 无差异(`stream=True` 标准 SSE) | - | C | https://docs.reka.ai/chat/overview |\n| 消息格式 | 无差异(多模态:图片/短视频/音频内容类型;assistant-completion 技巧=最后一条 assistant 消息续写) | - | C | https://docs.reka.ai/chat/overview |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 认证同时接受 `X-Api-Key` header 或 `Authorization: Bearer`(API reference 两种都列) | `X-Api-Key: YOUR_API_KEY` 或 `Authorization: Bearer ` | C | https://docs.reka.ai/vision/api-reference/inference/create-chat-completion |\n| URL/端点 | 无差异(base `https://api.reka.ai/v1` 与 registry 一致;另有 vision 专用 `https://vision-agent.api.reka.ai`) | - | C | https://docs.reka.ai/chat/overview |\n| 模型 ID | 无差异(`reka-flash`、`reka-core` 等,见 models 页) | - | C | https://docs.reka.ai/chat/models |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1736-1744`\n- **差距说明**:aimux 用 `Authorization: Bearer`(Reka 明确支持);推理模型分支的 `max_completion_tokens` 理论上 Reka 不认,但 Reka 非思维链模型,`is_reasoning_model` 分支不触发时走 `max_tokens`,无实际问题。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### requesty — Requesty\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.requesty.ai/v1` · env=`REQUESTY_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI SDK 直连) | - | C | https://docs.requesty.ai/quickstart |\n| 能力支持 | 无差异(300+ 模型统一端点) | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异(流式需 `stream_options:{\"include_usage\":true}` 收 usage;响应 `usage` 默认带 `cost` 字段;额外响应 header `x-requesty-provider/cache/latency-ms/request-id`) | `\"usage\":{\"prompt_tokens\":13,\"completion_tokens\":17,\"total_tokens\":30,\"cost\":0.0000935}` | C | https://docs.requesty.ai/quickstart |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | body 可带 `requesty` 元数据对象(tags/user_id/trace_id/extra);可选 header `HTTP-Referer`/`X-Title`(分析打标) | `{\"model\":\"openai/gpt-4o\",\"messages\":[...],\"requesty\":{\"tags\":[\"quickstart\"],\"user_id\":\"user_1234\",\"trace_id\":\"session_abc123\"}}` | C | https://docs.requesty.ai/quickstart |\n| headers/认证 | 无差异(Bearer,`REQUESTY_API_KEY`);`HTTP-Referer`/`X-Title` 可选 | `-H \"HTTP-Referer: https://yourapp.com\" -H \"X-Title: My App\"` | C | https://docs.requesty.ai/quickstart |\n| URL/端点 | ⚠️ 官方文档 base 为 `https://router.requesty.ai/v1`(llms.txt 与 quickstart 一致);registry 用 `api.requesty.ai/v1`,关系未确认 | `base_url=\"https://router.requesty.ai/v1\"`(官方)vs `https://api.requesty.ai/v1`(registry) | C | https://docs.requesty.ai/quickstart;https://www.requesty.ai/llms.txt |\n| 模型 ID | 模型 ID 可带 provider 前缀(`openai/gpt-4o`)或 policy 名(`policy/sonnet-with-fallback`) | `\"model\":\"openai/gpt-4o\"`、`\"model\":\"policy/sonnet-with-fallback\"` | C | https://docs.requesty.ai/quickstart |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1745-1753`\n- **差距说明**:① base 域名(api.requesty.ai vs router.requesty.ai)存疑;② `requesty` body 元数据对象无 profile 支持 → bodyOverrides 兜底;③ `HTTP-Referer`/`X-Title` 需自定义 headers。\n- **建议动作**:核实域名;其余 bodyOverrides/headers 兜底即可。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方文档引用)\n- **存疑标记**:⚠️ 域名存疑\n\n### reve — Reve\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.reve.ai/v1` · env=`REVE_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | ⚠️ 无证据 | - | ⚠️ | - |\n| 能力支持 | ⚠️ 无证据 | - | ⚠️ | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | ⚠️ 无证据 | - | ⚠️ | - |\n| URL/端点 | ⚠️ 未找到 `api.reve.ai` 官方 API 文档 | - | ⚠️ | - |\n| 模型 ID | ⚠️ 无证据 | - | ⚠️ | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(无证据显示差异)\n- **aimux 代码位置**:`openai_compat_registry.rs:1754-1762`\n- **差距说明**:完全查不到公开信息(WebSearch/WebFetch 无结果)。\n- **建议动作**:无需动作;标记为需人工确认厂商。\n\n#### 3. 证据与验证\n\n- **证据等级**:⚠️\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 证据不足(查不到任何信息)\n\n### routing_run — routing.run\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.routing.run/v1` · env=`ROUTING_RUN_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI-compatible `/v1/chat/completions`) | - | C | https://github.com/monotykamary/pi-routing-run-provider |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer,`ROUTING_RUN_API_KEY`) | - | C | https://mastra.ai/models/providers/routing-run |\n| URL/端点 | 双端点:`api.routing.sh`(主,更快)与 `api.routing.run`(备) | `base_url=https://api.routing.sh/v1`(主) | C | https://github.com/monotykamary/pi-routing-run-provider |\n| 模型 ID | 无差异(透传) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1763-1771`\n- **差距说明**:无 request 级特殊配置;主域 api.routing.sh 可作备选 base。\n- **建议动作**:无需动作(可备注主端点)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(社区 provider 代码 + Mastra 文档)\n- **存疑标记**:无\n\n### sakana — Sakana AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.sakana.ai/v1` · env=`SAKANA_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI Chat Completions) | - | C | https://console.sakana.ai/get-started |\n| 能力支持 | 同时支持 Chat Completions 与 Responses API | - | C | https://console.sakana.ai/get-started |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://www.analyticsvidhya.com/blog/2026/06/sakana-fugu-multi-agent-system-as-a-model/ |\n| URL/端点 | 无差异(base `https://api.sakana.ai/v1` 与 registry 一致) | - | C | https://console.sakana.ai/get-started |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1772-1780`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### sambanova — SambaNova\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.sambanova.ai/v1` · env=`SAMBANOVA_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_tokens` 标准;官方示例用 `model`+`messages`) | - | C | https://docs.sambanova.ai/docs/en/features/openai-compatibility |\n| 能力支持 | ① `presence_penalty`/`frequency_penalty` **不支持,会被忽略**;② `n` 支持 1–8,且 **n>1 与 tools/function calling 组合返回 400**;③ `seed`/`logit_bias` 支持(文本模型);④ `top_k` 支持(OpenAI 客户端无此参数,SambaNova 有);⑤ 响应无 `system_fingerprint` | `{\"model\":\"Meta-Llama-3.3-70B-Instruct\",\"n\":2,\"tools\":[...]}` → 400;`{\"top_k\":5}` → 接受 | C | https://docs.sambanova.ai/docs/en/features/openai-compatibility |\n| 思考机制 | 推理模型(如 DeepSeek-R1 系)流式输出 `reasoning_content`(社区实证;官方 OpenAI 兼容页未列专用开关字段) | `{\"choices\":[{\"delta\":{\"reasoning_content\":\"...\",\"content\":\"\"}}]}` | C | https://docs.sambanova.ai/docs/en/features/openai-compatibility;https://github.com/karthink/gptel/issues/669 |\n| 流式/usage | `stream_options.include_usage` 用于取流式用量(LlamaIndex 集成文档明示);SSE 标准 | `SambaNovaCloud(..., stream_options={\"include_usage\": True})` | C | https://developers.llamaindex.ai/python/framework-api-reference/llms/sambanovasystems/ |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异(`top_k` 属能力字段) | - | - | - |\n| headers/认证 | 无差异(`api_key` + `base_url`,Bearer) | - | C | https://docs.sambanova.ai/docs/en/features/openai-compatibility |\n| URL/端点 | 无差异(base 与 registry 一致;另有 Responses API `POST /v1/responses`) | - | C | https://docs.sambanova.ai/docs/en/features/openai-compatibility |\n| 模型 ID | 无差异(SambaNova 目录模型名,如 `Meta-Llama-3.3-70B-Instruct`、`gpt-oss-120b`) | `\"model\":\"Meta-Llama-3.3-70B-Instruct\"` | C | https://docs.sambanova.ai/docs/en/features/openai-compatibility |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1781-1789`;`convert.rs:1202-1207`(frequency/presence_penalty 总是发送)\n- **差距说明**:① aimux 有值时会发送 `frequency_penalty`/`presence_penalty`(convert.rs:1202-1207),SambaNova 忽略而非报错 → 行为安全但语义丢失;② `n>1` + tools 的 400 组合无预防;③ 推理模型分支 `max_completion_tokens`(SambaNova 规范未见该参数,OpenAI 兼容层一般也接受);④ `reasoning_content` 解析 ✅ 已覆盖(model.rs:558-563)。\n- **建议动作**:可加 profile 标志(如 `ignore_penalty_params: true` 时静默丢弃);`n>1`+tools 组合校验可选。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方 OpenAI 兼容页 + LlamaIndex 集成文档)\n- **存疑标记**:无\n\n### sarvam — Sarvam AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.sarvam.ai/v1` · env=`SARVAM_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | `max_tokens`(默认 2048;官方参数表无 max_completion_tokens) | `{\"model\":\"sarvam-105b\",\"messages\":[...],\"max_tokens\":2048}` | C | https://docs.sarvam.ai/api-reference/chat/chat-completions |\n| 能力支持 | `tools`/`tool_choice`/`response_format`(json_schema 与 json_object)均支持;`seed`(beta)、`n` 1-128 | - | C | https://docs.sarvam.ai/api-reference/chat/chat-completions |\n| 思考机制 | `reasoning_effort`(默认 `medium`;**显式置 null 可关闭思考**) | `{\"reasoning_effort\":null}` 关闭;`{\"reasoning_effort\":\"high\"}` 加深 | C | https://docs.sarvam.ai/api-reference/chat/chat-completions |\n| 流式/usage | 无差异(标准 SSE) | - | C | 同上 |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | `wiki_grounding`(bool,默认 false,开启后回答基于 wiki 检索);可选 `api-subscription-key` header(sk_xxx 订阅 key) | `{\"wiki_grounding\":true}` | C | https://docs.sarvam.ai/api-reference/chat/chat-completions |\n| headers/认证 | 标准 `Authorization: Bearer`;另可选 `api-subscription-key` header 走订阅计费 | `api-subscription-key: sk_xxx` | C | https://docs.sarvam.ai/api-reference/chat/chat-completions;https://docs.pipecat.ai/api-reference/server/services/llm/sarvam |\n| URL/端点 | 无差异(base `https://api.sarvam.ai/v1` 与 registry 一致) | `POST https://api.sarvam.ai/v1/chat/completions` | C | https://docs.sarvam.ai/api-reference/chat/chat-completions |\n| 模型 ID | 无差异(如 `sarvam-105b`,128K 上下文) | - | C | 同上 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1790-1798`;`convert.rs:1326-1329`(reasoning_effort 透传)\n- **差距说明**:① `reasoning_effort` 的 null 关闭语义需调用方传 null(aimux 透传不校验);② `wiki_grounding` 无 profile 支持 → bodyOverrides;③ `api-subscription-key` header 需自定义 headers;④ 推理模型分支 `max_completion_tokens` vs Sarvam `max_tokens`。\n- **建议动作**:bodyOverrides 兜底 `wiki_grounding`;文档标注 subscription header 用法。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方 API 参考引用)\n- **存疑标记**:无\n\n### scaleway — Scaleway AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.scaleway.ai/v1` · env=`SCALEWAY_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI SDK 直连) | - | C | https://www.scaleway.com/en/docs/generative-apis/quickstart/ |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer ${SCW_SECRET_KEY}`,即 Scaleway IAM key) | `curl https://api.scaleway.ai/v1/chat/completions -H \"Authorization: Bearer ${SCW_SECRET_KEY}\"` | C | https://www.scaleway.com/en/docs/generative-apis/api-cli/using-generative-apis/ |\n| URL/端点 | 默认项目可省略:`https://api.scaleway.ai/v1`;非默认项目需插入 Project ID:`https://api.scaleway.ai/{project_id}/v1` | `https://api.scaleway.ai/78e655b5-feb0-417c-bb3f-8c448bd0e8da/v1` | C | https://www.scaleway.com/en/docs/generative-apis/api-cli/using-generative-apis/ |\n| 模型 ID | 无差异(模型目录 ID) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1799-1807`\n- **差距说明**:默认项目 base 与 registry 一致;非默认项目需在 base_url 中插入 project_id(用户自定义 base_url 可解决,registry 宏不支持模板化 base)。\n- **建议动作**:无需动作(文档标注 project_id 变体即可)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方文档引用)\n- **存疑标记**:无\n\n### scx_ai — SCX AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.scx.ai/v1` · env=`SCX_AI_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 与 Anthropic 兼容) | - | C | https://scx.ai/ |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer;官方示例环境变量名为 `SCX_API_KEY`,registry 用 `SCX_AI_API_KEY`,两者关系未确认) | `OpenAI(base_url=\"https://api.scx.ai/v1\", api_key=os.environ.get(\"SCX_API_KEY\"))` | C | https://scx.ai/ |\n| URL/端点 | 无差异(base 与 registry 一致) | - | C | https://scx.ai/ |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1808-1816`\n- **差距说明**:env 变量名与官方示例(SCX_API_KEY vs SCX_AI_API_KEY)不同,属注册层面命名,不影响 request 构造。\n- **建议动作**:无需动作(可备注 env 别名)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### siliconflow — SiliconFlow\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.siliconflow.cn/v1` · env=`SILICONFLOW_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | `max_tokens`(无 max_completion_tokens) | `{\"model\":\"Pro/deepseek-ai/DeepSeek-R1\",\"messages\":[...],\"max_tokens\":4096}` | C | https://docs.siliconflow.cn/cn/userguide/capabilities/reasoning |\n| 能力支持 | `response_format` json mode 支持;推理模型建议 temperature 0.5-0.7、top_p 0.95(官方 R1 建议) | - | C | https://docs.siliconflow.cn/cn/userguide/capabilities/reasoning |\n| 思考机制 | **`thinking_budget` 请求参数**(控制思维链 token 上限,Qwen3 系原生强制截断,其他模型可能继续);返回 `reasoning_content`(流式 delta 与 message 同级) | `{\"thinking_budget\":1024,\"max_tokens\":4096}` → 响应 `choices[0].message.reasoning_content` / 流式 `delta.reasoning_content` | C | https://docs.siliconflow.cn/cn/userguide/capabilities/reasoning |\n| 流式/usage | 无差异(标准 SSE;`stream_options` 可用) | - | C | 同上 |\n| 消息格式 | 无差异(`reasoning_content` 属思考机制类;多模态 image_url 支持) | - | C | 同上 |\n| 特殊字段 | `thinking_budget` 为平台特有能力字段 | `{\"thinking_budget\":1024}` | C | 同上 |\n| headers/认证 | 无差异(Bearer,`SILICONFLOW_API_KEY`) | - | C | 同上 |\n| URL/端点 | 无差异(base `https://api.siliconflow.cn/v1/` 与 registry 一致) | - | C | 同上 |\n| 模型 ID | 模型 ID 可带 `Pro/` 性能前缀(`Pro/deepseek-ai/DeepSeek-R1` vs `deepseek-ai/DeepSeek-R1`) | `\"model\":\"Pro/deepseek-ai/DeepSeek-R1\"` | C | 同上 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1817-1825`;`model.rs:558-563`(reasoning_content 流式解析 ✅);`types.rs:37-40`(message.reasoning_content ✅)\n- **差距说明**:① `thinking_budget` 无 profile 支持 → bodyOverrides 兜底;② 推理模型分支 `max_completion_tokens`(convert.rs:1122-1130)vs SiliconFlow `max_tokens`;③ `Pro/` 前缀透传即可,无需映射。\n- **建议动作**:`thinking_budget` 文档化走 bodyOverrides;`max_tokens` 命名纳入 `max_tokens_key` 候选。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方文档引用,含请求/响应示例)\n- **存疑标记**:无\n\n### snowflake — Snowflake(Cortex)\n\n- **registry 现状**:profile=`full()` · base_url=`https://.snowflakecomputing.com/api/v2/cortex/v1` · env=`SNOWFLAKE_PAT`\n- **变体**:snowflake_cortex\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(Chat Completions 遵循 OpenAI 规范,OpenAI Python SDK 直连) | `OpenAI(api_key=\"\", base_url=\"https://.snowflakecomputing.com/api/v2/cortex/v1\")` | C | https://docs.snowflake.com/fr/user-guide/snowflake-cortex/cortex-rest-api |\n| 能力支持 | 无差异(所有模型:OpenAI、Claude、Llama、Mistral、DeepSeek、Snowflake) | - | C | 同上 |\n| 思考机制 | 无差异(取决于具体模型) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异(另提供 Anthropic Messages API `/api/v2/cortex/v1/messages`,Claude 专用) | - | C | 同上 |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 标准 `Authorization: Bearer `;**可选 `X-Snowflake-Authorization-Token-Type` header 声明 token 类型**(OAUTH / PROGRAMMATIC_ACCESS_TOKEN 等) | `X-Snowflake-Authorization-Token-Type: PROGRAMMATIC_ACCESS_TOKEN` | C | https://docs.snowflake.com/fr/user-guide/snowflake-cortex/cortex-rest-api |\n| URL/端点 | 无差异(`https://.snowflakecomputing.com/api/v2/cortex/v1/chat/completions`,registry 模板化 base 一致;account-identifier 需用户替换) | `POST https://.snowflakecomputing.com/api/v2/cortex/v1/chat/completions` | C | 同上 |\n| 模型 ID | 无差异(目录模型名,如 `claude-sonnet-4-5`) | `\"model\":\"claude-sonnet-4-5\"` | C | 同上 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1826-1834`\n- **差距说明**:PAT 走 Bearer ✅;`X-Snowflake-Authorization-Token-Type` 可选 header 可经 `OpenAIConfig.headers` 配置;account-identifier 需用户替换(registry 模板 base 已表达占位符)。\n- **建议动作**:无需动作(可选 header 文档化)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方文档引用)\n- **存疑标记**:无\n\n### snowflake_cortex — Snowflake Cortex\n\n- **registry 现状**:profile=`full()` · base_url=`https://.snowflakecomputing.com/api/v2/cortex/v1` · env=`SNOWFLAKE_CORTEX_PAT`\n- **变体**:snowflake\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://docs.snowflake.com/fr/user-guide/snowflake-cortex/cortex-rest-api |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 与 snowflake 主条目相同(Bearer PAT + 可选 `X-Snowflake-Authorization-Token-Type`),仅 env 变量不同(SNOWFLAKE_CORTEX_PAT) | 同上 | C | 同上 |\n| URL/端点 | 与 snowflake 主条目相同 | - | C | 同上 |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(同 snowflake)\n- **aimux 代码位置**:`openai_compat_registry.rs:1835-1843`\n- **差距说明**:与 snowflake 条目为同一端点、不同 env(SNOWFLAKE_CORTEX_PAT),无 request 级差异。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(同 snowflake)\n- **存疑标记**:无\n\n### stackit — STACKIT\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1` · env=`STACKIT_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 兼容托管端点) | - | C | https://docs.haystack.deepset.ai/reference/integrations-stackit |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(API Key,Bearer) | - | C | https://github.com/stackitcloud/n8n-nodes-stackit-ai-model-serving |\n| URL/端点 | 无差异(base 与 registry 一致,Haystack/ models.dev 均确认) | `api_base_url=\"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\"` | C | https://models.dev/providers/stackit |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1844-1852`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(第三方集成文档 + models.dev)\n- **存疑标记**:无\n\n### stepfun — StepFun(阶跃星辰)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.stepfun.com/v1` · env=`STEPFUN_API_KEY`\n- **变体**:stepfun_ai_step_plan、stepfun_step_plan\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | **`max_tokens`**(官方参数表;无 max_completion_tokens;默认 INF 由模型决定) | `{\"model\":\"step-3.5-flash\",\"messages\":[...],\"max_tokens\":2048}` | C | https://platform.stepfun.ai/docs/en/api-reference/chat/chat-completion-create |\n| 能力支持 | `tools`/`tool_choice`/`response_format`(json_object)/`frequency_penalty`/`stop`/`n` 均支持 | - | C | 同上 |\n| 思考机制 | **`reasoning_format`**:`general`(默认,返回 `reasoning` 字段)/ `deepseek-style`(返回 `reasoning_content`,DeepSeek 兼容);**`reasoning_effort`**:low/medium/high(step-3.5-flash-2603 仅 low/high) | `{\"reasoning_format\":\"deepseek-style\",\"reasoning_effort\":\"high\"}` → 响应 `choices[0].message.reasoning_content`;默认 `general` 时 `message.reasoning` | C | https://platform.stepfun.ai/docs/en/api-reference/chat/chat-completion-create;https://platform.stepfun.ai/docs/en/guides/developer/reasoning |\n| 流式/usage | 无差异(标准 `chat.completion.chunk` SSE;`usage` 含可选 `cached_tokens`) | - | C | https://platform.stepfun.ai/docs/en/api-reference/chat/chat-completion-create |\n| 消息格式 | 思考字段名是 `reasoning`(非 reasoning_content,除非 reasoning_format=deepseek-style);多模态 content 类型含 `image_url`、`video_url`、`input_audio`(音频 base64) | 流式 `delta.reasoning`;`{\"type\":\"video_url\",\"video_url\":{\"url\":\"https://.../a.mp4\"}}` | C | https://platform.stepfun.ai/docs/en/guides/developer/reasoning;https://platform.stepfun.ai/docs/en/api-reference/chat/chat-completion-create |\n| 特殊字段 | `reasoning_format`(general/deepseek-style)为平台特有能力字段 | 见上 | C | https://platform.stepfun.ai/docs/en/api-reference/chat/chat-completion-create |\n| headers/认证 | 无差异(Bearer,`STEPFUN_API_KEY`) | - | C | https://platform.stepfun.ai/docs/en/guides/developer/reasoning |\n| URL/端点 | 无差异(China `https://api.stepfun.com/v1`、International `https://api.stepfun.ai/v1`,与 registry 一致;Step Plan 变体加 `/step_plan` 前缀) | `POST https://api.stepfun.com/v1/chat/completions` | C | https://platform.stepfun.ai/docs/en/api-reference/chat/chat-completion-create |\n| 模型 ID | 无差异(`step-3.7-flash`、`step-3.5-flash` 等) | - | C | 同上 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1853-1861`;`convert.rs:1319-1324`(`reasoning_format` 仅 provider==\"groq\" 时发送);`model.rs:558-563`(`reasoning`/`reasoning_content` 双键解析 ✅)\n- **差距说明**:① `reasoning_format` 只有 groq 分支(convert.rs:1319-1324),stepfun 无法发送 `deepseek-style` → 默认 `general` 时返回 `reasoning` 字段(aimux 已解析 ✅);② 推理模型分支 `max_completion_tokens` vs StepFun `max_tokens`(convert.rs:1122-1130);③ `video_url`/`input_audio` 内容类型无转换支持;④ `reasoning_effort` 透传 ✅(值 low/medium/high 与 aimux 通用取值兼容)。\n- **建议动作**:`reasoning_format` 发送条件从硬编码 groq 改为 profile 字段(或 bodyOverrides);`max_tokens` 命名纳入候选;多模态 video/audio 输入留待消息层扩展。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方 API 参考,含完整参数表与示例)\n- **存疑标记**:无\n\n### stepfun_ai_step_plan — StepFun Step Plan (Global)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.stepfun.ai/step_plan/v1` · env=`STEPFUN_API_KEY`\n- **变体**:stepfun、stepfun_step_plan\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 同 stepfun 主条目(`max_tokens`) | - | C | https://platform.stepfun.ai/docs/en/api-reference/chat/chat-completion-create |\n| 能力支持 | 同 stepfun | - | - | - |\n| 思考机制 | 同 stepfun(`reasoning_format`/`reasoning_effort`) | - | C | 同上 |\n| 流式/usage | 同 stepfun | - | - | - |\n| 消息格式 | 同 stepfun(`reasoning` 字段、video/audio 内容) | - | - | - |\n| 特殊字段 | 同 stepfun | - | - | - |\n| headers/认证 | 同 stepfun(Bearer) | - | - | - |\n| URL/端点 | 无差异(Step Plan 订阅端点:Global `https://api.stepfun.ai/step_plan/v1`,registry 一致;Step Plan 是计费套餐前缀而非不同协议) | `POST https://api.stepfun.ai/step_plan/v1/chat/completions` | C | https://github.com/stepfun-ai/Step-3.5-Flash(Region 表) |\n| 模型 ID | 同 stepfun | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(同 stepfun 主条目)\n- **aimux 代码位置**:`openai_compat_registry.rs:1862-1870`\n- **差距说明**:差异全部继承自 stepfun 主条目(reasoning_format / max_tokens / 多模态内容)。\n- **建议动作**:同 stepfun。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:无\n\n### stepfun_step_plan — StepFun Step Plan (China)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.stepfun.com/step_plan/v1` · env=`STEPFUN_API_KEY`\n- **变体**:stepfun、stepfun_ai_step_plan\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 同 stepfun 主条目 | - | C | https://platform.stepfun.ai/docs/en/api-reference/chat/chat-completion-create |\n| 能力支持 | 同 stepfun | - | - | - |\n| 思考机制 | 同 stepfun | - | - | - |\n| 流式/usage | 同 stepfun | - | - | - |\n| 消息格式 | 同 stepfun | - | - | - |\n| 特殊字段 | 同 stepfun | - | - | - |\n| headers/认证 | 同 stepfun | - | - | - |\n| URL/端点 | 无差异(China Step Plan:`https://api.stepfun.com/step_plan/v1`,registry 一致) | `POST https://api.stepfun.com/step_plan/v1/chat/completions` | C | https://github.com/stepfun-ai/Step-3.5-Flash(Region 表) |\n| 模型 ID | 同 stepfun | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(同 stepfun 主条目)\n- **aimux 代码位置**:`openai_compat_registry.rs:1871-1879`\n- **差距说明**:差异全部继承自 stepfun 主条目。\n- **建议动作**:同 stepfun。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:无\n\n### subconscious — Subconscious\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.subconscious.dev/v1` · env=`SUBCONSCIOUS_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI SDK 直连) | - | C | https://docs.subconscious.dev/quickstart |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`api_key` + base_url) | - | C | https://docs.subconscious.dev/quickstart |\n| URL/端点 | 无差异(base `https://api.subconscious.dev/v1` 与 registry 一致) | - | C | https://www.subconscious.dev/ |\n| 模型 ID | 无差异(如 `subconscious/tim-qwen3`,`/` 前缀为文档惯例) | `\"model\":\"subconscious/tim-qwen3\"` | C | https://github.com/subconscious-systems/TIMRUN |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1880-1888`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### submodel — SubModel\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.submodel.com/v1` · env=`SUBMODEL_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | ⚠️ 无证据 | - | ⚠️ | - |\n| 能力支持 | ⚠️ 无证据 | - | ⚠️ | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | ⚠️ 无证据 | - | ⚠️ | - |\n| URL/端点 | ⚠️ 未找到 `api.submodel.com` 官方 API 文档 | - | ⚠️ | - |\n| 模型 ID | ⚠️ 无证据 | - | ⚠️ | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(无证据显示差异)\n- **aimux 代码位置**:`openai_compat_registry.rs:1889-1897`\n- **差距说明**:查不到公开信息。\n- **建议动作**:无需动作;标记为需人工确认厂商。\n\n#### 3. 证据与验证\n\n- **证据等级**:⚠️\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 证据不足(查不到任何信息)\n\n### synthetic — Synthetic\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.synthetic.new/openai/v1` · env=`SYNTHETIC_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(支持全部标准 OpenAI 参数,litellm 确认) | - | C | https://docs.litellm.ai/docs/providers/synthetic |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://dev.synthetic.new/docs/api/getting-started |\n| URL/端点 | 无差异(base `https://api.synthetic.new/openai/v1`,路径含 `/openai` 前缀,registry 一致) | `POST https://api.synthetic.new/openai/v1/chat/completions` | C | https://dev.synthetic.new/ |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1898-1906`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方 dev 文档 + litellm provider 页)\n- **存疑标记**:无\n\n## 存疑归档\n\n> 下列条目因证据不足或域名存疑被标记 ⚠️,不计入内置差距清单(按 README 方法论)。\n\n| 厂商 | 存疑点 |\n|------|--------|\n| opencode | registry base_url 为非法字面量 `\"opencode_zen.rs\"`(确定性 bug,见 `openai_compat_registry.rs:1533`) |\n| orcarouter | 官方域 orcarouter.ai,registry 用 api.orcarouter.com,未见官方使用 |\n| petals | 查不到 api.petals.dev 托管服务的公开文档,端点真实性存疑 |\n| pinstripes | 官方示例 api.pinstripes.ai,registry 用 api.pinstripes.io |\n| predibase | 官方 OpenAPI base 为 `{tenant}/deployments/v2/llms/{model}` 形态,registry 用 serving.app.predibase.com/v1 |\n| requesty | 官方示例 router.requesty.ai,registry 用 api.requesty.ai |\n| qiniu_ai | 官方 FAQ 示例 api.qnaigc.com,registry 用 api.qiniu.com |\n| qihoo360 | 无官方文档可核对(仅第三方汇总),认证/思考字段未确认 |\n| perfxcloud | 无官方文档,思考机制未确认 |\n| reve / submodel / privatemode_ai | 查不到任何公开信息 |\n"}, "1b3e3618ec8c3c7d617087474f15f50e0cba4e0d": {"t": 1785846911.0351171, "n": 65793, "h": "3a067ec71803aac1", "c": "# Batch 05 — Model Request Config 调研\n\n> 状态: ✅ 已完成 · 厂商数: 42 · 2026-08-01\n> 模板见 [_template.md](_template.md) · 方法论见 [README.md](README.md)\n> 证据硬性要求: 每条目必须有例子或证明(A/B/C 级),禁止编造来源。\n\n## 厂商清单\n\n| # | id | display | base_url | env_var | profile |\n|---|---|---|---|---|---|\n| 1 | opencode | OpenCode Zen | opencode_zen.rs | OPENCODE_API_KEY | OpenAICompatProfile::full() |\n| 2 | opencode_go | OpenCode Go | https://api.opencode.dev/v1 | OPENCODE_GO_API_KEY | OpenAICompatProfile::full() |\n| 3 | opencode_zen | OpenCode Zen | https://api.opencode.zen/v1 | OPENCODE_ZEN_API_KEY | OpenAICompatProfile::full() |\n| 4 | orcarouter | OrcaRouter | https://api.orcarouter.com/v1 | ORCAROUTER_API_KEY | OpenAICompatProfile::full() |\n| 5 | ovhcloud | OVHcloud AI | https://oai.endpoints.kepler.ai.cloud.ovh.net/v1 | OVHCLOUD_API_KEY | OpenAICompatProfile::full() |\n| 6 | parasail | Parasail | https://api.parasail.io/v1 | PARASAIL_API_KEY | OpenAICompatProfile::full() |\n| 7 | perfxcloud | PerfXCloud | https://api.perfxcloud.com/v1 | PERFXCLOUD_API_KEY | OpenAICompatProfile::full() |\n| 8 | perplexity | Perplexity | https://api.perplexity.ai | PERPLEXITY_API_KEY | OpenAICompatProfile::full() |\n| 9 | perplexity_agent | Perplexity Agent | https://api.perplexity.ai/v1 | PERPLEXITY_API_KEY | OpenAICompatProfile::full() |\n| 10 | petals | Petals | https://api.petals.dev/v1 | PETALS_API_KEY | OpenAICompatProfile::full() |\n| 11 | pinstripes | Pinstripes | https://api.pinstripes.io/v1 | PINSTRIPES_API_KEY | OpenAICompatProfile::full() |\n| 12 | pioneer | Pioneer | https://api.pioneer.ai/v1 | PIONEER_API_KEY | OpenAICompatProfile::full() |\n| 13 | poe | Poe | https://api.poe.com/v1 | POE_API_KEY | OpenAICompatProfile::full() |\n| 14 | poolside | Poolside | https://inference.poolside.ai/v1 | POOLSIDE_API_KEY | OpenAICompatProfile::full() |\n| 15 | portkey | Portkey Gateway | https://api.portkey.ai/v1 | PORTKEY_API_KEY | OpenAICompatProfile::full() |\n| 16 | ppinfra | PPInfra(PPIO 派欧云) | https://api.ppio.com/openai | PPIO_API_KEY | OpenAICompatProfile::full() |\n| 17 | predibase | Predibase | https://serving.app.predibase.com/v1 | PREDIBASE_API_KEY | OpenAICompatProfile::full() |\n| 18 | privatemode_ai | Privatemode AI | http://localhost:8080/v1 | PRIVATEMODE_API_KEY | OpenAICompatProfile::full() |\n| 19 | publicai | Publicai | https://platform.publicai.co/v1 | PUBLICAI_API_KEY | OpenAICompatProfile::full() |\n| 20 | qihang_ai | QiHang(启航 AI) | https://api.qhaigc.net/v1 | QIHANG_API_KEY | OpenAICompatProfile::full() |\n| 21 | qihoo360 | 360 AI | https://api.360.cn/v1 | AI360_API_KEY | OpenAICompatProfile::full() |\n| 22 | qiniu_ai | Qiniu AI | https://api.qiniu.com/v1 | QINIU_API_KEY | OpenAICompatProfile::full() |\n| 23 | regolo_ai | Regolo AI | https://api.regolo.ai/v1 | REGOLO_API_KEY | OpenAICompatProfile::full() |\n| 24 | reka_ai | Reka AI | https://api.reka.ai/v1 | REKA_API_KEY | OpenAICompatProfile::full() |\n| 25 | requesty | Requesty | https://api.requesty.ai/v1 | REQUESTY_API_KEY | OpenAICompatProfile::full() |\n| 26 | reve | Reve | https://api.reve.ai/v1 | REVE_API_KEY | OpenAICompatProfile::full() |\n| 27 | routing_run | routing.run | https://api.routing.run/v1 | ROUTING_RUN_API_KEY | OpenAICompatProfile::full() |\n| 28 | sakana | Sakana AI | https://api.sakana.ai/v1 | SAKANA_API_KEY | OpenAICompatProfile::full() |\n| 29 | sambanova | SambaNova | https://api.sambanova.ai/v1 | SAMBANOVA_API_KEY | OpenAICompatProfile::full() |\n| 30 | sarvam | Sarvam AI | https://api.sarvam.ai/v1 | SARVAM_API_KEY | OpenAICompatProfile::full() |\n| 31 | scaleway | Scaleway AI | https://api.scaleway.ai/v1 | SCALEWAY_API_KEY | OpenAICompatProfile::full() |\n| 32 | scx_ai | SCX AI | https://api.scx.ai/v1 | SCX_AI_API_KEY | OpenAICompatProfile::full() |\n| 33 | siliconflow | SiliconFlow | https://api.siliconflow.cn/v1 | SILICONFLOW_API_KEY | OpenAICompatProfile::full() |\n| 34 | snowflake | Snowflake | https://.snowflakecomputing.com/api/v2/cortex/v1 | SNOWFLAKE_PAT | OpenAICompatProfile::full() |\n| 35 | snowflake_cortex | Snowflake Cortex | https://.snowflakecomputing.com/api/v2/cortex/v1 | SNOWFLAKE_CORTEX_PAT | OpenAICompatProfile::full() |\n| 36 | stackit | STACKIT | https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1 | STACKIT_API_KEY | OpenAICompatProfile::full() |\n| 37 | stepfun | StepFun (阶跃星辰) | https://api.stepfun.com/v1 | STEPFUN_API_KEY | OpenAICompatProfile::full() |\n| 38 | stepfun_ai_step_plan | StepFun Step Plan (Global) | https://api.stepfun.ai/step_plan/v1 | STEPFUN_API_KEY | OpenAICompatProfile::full() |\n| 39 | stepfun_step_plan | StepFun Step Plan (China) | https://api.stepfun.com/step_plan/v1 | STEPFUN_API_KEY | OpenAICompatProfile::full() |\n| 40 | subconscious | Subconscious | https://api.subconscious.dev/v1 | SUBCONSCIOUS_API_KEY | OpenAICompatProfile::full() |\n| 41 | submodel | SubModel | https://api.submodel.com/v1 | SUBMODEL_API_KEY | OpenAICompatProfile::full() |\n| 42 | synthetic | Synthetic | https://api.synthetic.new/openai/v1 | SYNTHETIC_API_KEY | OpenAICompatProfile::full() |\n\n## 调研条目\n\n### opencode — OpenCode Zen\n\n- **registry 现状**:profile=`full()` · base_url=`\"opencode_zen.rs\"`(⚠️ 字面量是个文件名,不是 URL)· env=`OPENCODE_API_KEY`\n- **变体**:opencode_zen(api.opencode.zen/v1)、opencode_go(api.opencode.dev/v1)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 兼容网关,走标准 chat completions) | - | B | `reference/opencode/packages/web/src/content/docs/providers.mdx:87` |\n| 能力支持 | 无差异 | - | B | 同上 |\n| 思考机制 | 无差异(透传上游模型能力) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer API key,`/connect` 存到 `auth.json`) | - | B | `reference/opencode/packages/web/src/content/docs/providers.mdx:20-21` |\n| URL/端点 | ⚠️ registry 的 base_url 是 `\"opencode_zen.rs\"`(应为 https://api.opencode.zen/v1 之类的合法 URL),请求必然失败 | `base_url = \"opencode_zen.rs\"` → POST `opencode_zen.rs/chat/completions` 非法 | A(registry) | `openai_compat_registry.rs:1533` |\n| 模型 ID | 官方文档格式 `provider/model-id`,如 `opencode/gpt-5.1-codex` | `\"model\": \"opencode/gpt-5.1-codex\"` | B | `reference/opencode/packages/web/src/content/docs/ar/agents.mdx:369` |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(registry 声明错误)\n- **aimux 代码位置**:`openai_compat_registry.rs:1533`\n- **差距说明**:`opencode` 条目 base_url 被写成 `\"opencode_zen.rs\"`,不是合法 URL,任何调用都会失败;与 `opencode_zen` 条目(1547-1554,合法 URL)重复了 display 名 \"OpenCode Zen\"。\n- **建议动作**:把 `openai_compat_registry.rs:1533` 的 base_url 修正为合法 URL(如 `https://api.opencode.zen/v1`),或删除该条目(与 opencode_zen 重复)。\n\n#### 3. 证据与验证\n\n- **证据等级**:B\n- **验证状态**:🔲 未验证(registry 字面量可直接核对,属确定性事实)\n- **存疑标记**:无(registry bug 为确定性事实)\n\n### opencode_go — OpenCode Go\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.opencode.dev/v1` · env=`OPENCODE_GO_API_KEY`\n- **变体**:-(与 opencode/opencode_zen 同族,独立订阅)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(API key,OpenAI 兼容) | - | B | `reference/opencode/packages/web/src/content/docs/ar/go.mdx:42` |\n| URL/端点 | 无差异(base `https://api.opencode.dev/v1` 与官方一致) | - | B | 同上 |\n| 模型 ID | 无差异(标准模型 ID) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1537-1545`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:B\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### opencode_zen — OpenCode Zen\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.opencode.zen/v1` · env=`OPENCODE_ZEN_API_KEY`\n- **变体**:opencode、opencode_go\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer API key) | - | B | `reference/opencode/packages/web/src/content/docs/zen.mdx:44-45` |\n| URL/端点 | 无差异(base `https://api.opencode.zen/v1`) | - | B | 同上 |\n| 模型 ID | 无差异(`opencode/...` 前缀是 OpenCode 客户端侧写法,API 侧为裸模型名) | - | B | `reference/opencode/packages/web/src/content/docs/providers.mdx:96-119` |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1546-1554`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作;建议顺手处理 opencode 条目的坏 base_url。\n\n#### 3. 证据与验证\n\n- **证据等级**:B\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### orcarouter — OrcaRouter\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.orcarouter.com/v1` · env=`ORCAROUTER_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 兼容网关) | - | C | https://www.orcarouter.ai/ |\n| 能力支持 | 无差异(透传上游模型能力,支持 tool calling) | - | C | https://www.promptfoo.dev/docs/providers/orcarouter/ |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer API key) | - | C | https://github.com/danny-avila/LibreChat/discussions/13316 |\n| URL/端点 | ⚠️ 官方主域是 `orcarouter.ai`(www.orcarouter.ai、docs.orcarouter.ai);registry 用 `api.orcarouter.com`,未见公开文档使用该域名 | `base_url=https://api.orcarouter.com/v1`(registry)vs 官方 `https://api.orcarouter.ai/v1` | C | https://www.orcarouter.ai/ |\n| 模型 ID | 无差异(透传) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(端点域名存疑)\n- **aimux 代码位置**:`openai_compat_registry.rs:1556-1563`\n- **差距说明**:无法确认 `api.orcarouter.com` 是否仍有效(官方文档未见该域名);网关类厂商本身无 request 体差异。\n- **建议动作**:核实 `api.orcarouter.com` 与 `api.orcarouter.ai` 的对应关系;若旧域名失效则更新 registry。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:⚠️ 域名存疑\n\n### ovhcloud — OVHcloud AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://oai.endpoints.kepler.ai.cloud.ovh.net/v1` · env=`OVHCLOUD_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(\"compatible with the OpenAI API… just changing the base URL and the API key\") | - | B | `reference/langchain4j/docs/docs/integrations/embedding-models/ovh-ai.md:12` |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer` + AI Endpoints API key) | - | C | https://help.ovhcloud.com/csm/en-ca-public-cloud-ai-endpoints-responses-api?id=kb_article_view&sysparm_article=KB0075055 |\n| URL/端点 | 无差异(base `https://oai.endpoints.kepler.ai.cloud.ovh.net/v1` 与官方一致;另有 `/doc/{model}/openapi.json` 生成式文档) | - | C | https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/ |\n| 模型 ID | 无差异(模型目录 ID,如 `gpt-oss-120b`) | `\"model\": \"gpt-oss-120b\"` | C | https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1565-1573`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:B/C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### parasail — Parasail\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.parasail.io/v1` · env=`PARASAIL_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(\"fully OpenAI-compatible… use the OpenAI SDK against https://api.parasail.io/v1\") | - | C | https://docs.parasail.io/ |\n| 能力支持 | 无差异(含 OpenAI Batch API 兼容) | - | C | https://docs.parasail.io/parasail-docs/api-reference/chat-completions |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer `PARASAIL_API_KEY`) | - | C | https://docs.parasail.io/ |\n| URL/端点 | 无差异(base 与 registry 一致) | - | - | - |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1574-1582`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### perfxcloud — PerfXCloud\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.perfxcloud.com/v1` · env=`PERFXCLOUD_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(兼容 OpenAI ChatGPT 接口,\"可直接使用 OpenAI SDK\") | - | C | https://zhuanlan.zhihu.com/p/706587985 |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | ⚠️ 未找到官方文档;推理类模型(DeepSeek-R1 系)大概率返回 `reasoning_content`,无证据 | - | ⚠️ | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://zhuanlan.zhihu.com/p/706587985 |\n| URL/端点 | 无差异 | - | - | - |\n| 模型 ID | 无差异(模型 ID 按平台模型广场) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(无证据显示差异)\n- **aimux 代码位置**:`openai_compat_registry.rs:1583-1591`\n- **差距说明**:公开资料仅社区文章,无官方 API 文档可核对。\n- **建议动作**:无需动作;后续有官方文档再补。\n\n#### 3. 证据与验证\n\n- **证据等级**:C(弱,社区来源)\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 证据不足(无官方文档,思考机制未确认)\n\n### perplexity — Perplexity\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.perplexity.ai`(无 /v1)· env=`PERPLEXITY_API_KEY`\n- **变体**:perplexity_agent\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | `max_tokens`(无 max_completion_tokens) | `{\"model\":\"sonar-pro\",\"messages\":[...],\"max_tokens\":1024}` | C | https://docs.perplexity.ai/api-reference/sonar-post |\n| 能力支持 | `response_format` 支持 `json_schema`(structured output);官方参考未列出 `tools`/`top_k`(⚠️ 工具调用与 top_k 官方文档无证据,langchain 集成声称 topK 1-2048) | `{\"response_format\":{\"type\":\"json_schema\",\"json_schema\":{...}}}` | C | https://docs.perplexity.ai/api-reference/sonar-post;https://docs.perplexity.ai/docs/sonar/quickstart |\n| 思考机制 | `reasoning_effort`(minimal/low/medium/high)+ `stream_mode`(full 抑制 reasoning 事件 / concise 单独发 reasoning 事件);推理 token 不可强制关闭(社区确认);usage 含 `reasoning_tokens` | `{\"model\":\"sonar-reasoning-pro\",\"stream_mode\":\"concise\",\"reasoning_effort\":\"high\"}` | C | https://docs.perplexity.ai/api-reference/sonar-post;https://community.perplexity.ai/t/not-having-internal-cot-think-in-output-of-reasoning-models/2421 |\n| 流式/usage | 官方支持 `stream_options:{\"include_usage\":true}`,usage 在最终 chunk 到达;usage 含 cost/search_context_size/citation_tokens/num_search_queries 等扩展字段 | `{\"stream\":true,\"stream_options\":{\"include_usage\":true}}` → 末尾 chunk 带 `\"usage\":{\"reasoning_tokens\":123,...}` | C | https://docs.perplexity.ai/docs/gateway/quickstart |\n| 消息格式 | 无差异(标准 chat messages) | - | - | - |\n| 特殊字段 | 搜索类字段:`web_search_options`、`search_mode`(web/academic/sec)、`disable_search`、`enable_search_classifier`、`search_domain_filter`、`search_recency_filter`、`return_images`、`return_related_questions`、`language_preference` 等 | `{\"web_search_options\":{\"search_context_size\":\"high\"},\"search_mode\":\"academic\",\"search_recency_filter\":\"week\",\"return_related_questions\":true}` | C | https://docs.perplexity.ai/api-reference/sonar-post |\n| headers/认证 | 无差异(`Authorization: Bearer `) | - | C | https://docs.perplexity.ai/api-reference/sonar-post |\n| URL/端点 | ⚠️ 新规范端点 `POST /v1/sonar`(官方文档当前主页),legacy 为 `POST /chat/completions`(base 无 /v1);registry base=`https://api.perplexity.ai`(无 /v1)+ `/chat/completions` 命中 legacy 路径,仍可用但与新规范不一致 | `POST https://api.perplexity.ai/v1/sonar`(新)vs `POST https://api.perplexity.ai/chat/completions`(legacy) | C | https://docs.perplexity.ai/api-reference/sonar-post |\n| 模型 ID | `sonar`、`sonar-pro`、`sonar-deep-research`、`sonar-reasoning-pro`(官方枚举) | `\"model\":\"sonar-reasoning-pro\"` | C | https://docs.perplexity.ai/api-reference/sonar-post |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1592-1600`;`convert.rs:1103-1109`(stream_options 已发)、`convert.rs:1326-1329`(reasoning_effort 透传)、`convert.rs:1216-1282`(response_format)\n- **差距说明**:① `reasoning_effort` 语义:Perplexity 是 minimal/low/medium/high,aimux 透传不校验,需调用方对齐;② `stream_mode`/`disable_search`/`web_search_options` 等搜索字段无 profile 支持,只能 bodyOverrides 兜底;③ 端点:registry base 无 `/v1`,与新规范 `/v1/sonar` 路径不一致;④ 推理模型下 aimux 发 `max_completion_tokens`(convert.rs:1122-1130),Perplexity 只认 `max_tokens`。\n- **建议动作**:bodyOverrides 兜底搜索字段;考虑把 base 更新为 `https://api.perplexity.ai/v1`(与 perplexity_agent 一致)并核对 legacy `/chat/completions` 兼容性;推理模型 `max_tokens` 命名可纳入 profile 新字段(如 `max_tokens_key`)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方文档引用;sonar-post 参考为 2026 版)\n- **存疑标记**:⚠️ tools/top_k 支持情况无官方证据\n\n### perplexity_agent — Perplexity Agent\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.perplexity.ai/v1` · env=`PERPLEXITY_API_KEY`\n- **变体**:perplexity\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(Responses API 风格 `input`/`instructions`/`max_output_tokens`) | `{\"model\":\"openai/gpt-5.1\",\"input\":\"...\",\"instructions\":\"...\"}` | C | https://docs.perplexity.ai/docs/agent-api/openai-compatibility |\n| 能力支持 | Agent API 完全兼容 OpenAI Responses API(`/v1/responses` 别名);Sonar Chat Completions 已迁移到 Agent API | - | C | https://docs.perplexity.ai/api-reference/sonar-post(迁移说明) |\n| 思考机制 | 无差异(同 Perplexity 主条目:`reasoning_effort`/`stream_mode`) | - | C | https://docs.perplexity.ai/api-reference/sonar-post |\n| 流式/usage | 无差异(SSE 事件流,Responses 格式) | - | C | https://docs.perplexity.ai/docs/agent-api/openai-compatibility |\n| 消息格式 | 无差异(Responses API `input` 数组) | - | - | - |\n| 特殊字段 | 同 Perplexity 搜索类字段 | - | C | https://docs.perplexity.ai/api-reference/sonar-post |\n| headers/认证 | 无差异(Bearer,同 PERPLEXITY_API_KEY) | - | C | https://docs.perplexity.ai/docs/agent-api/openai-compatibility |\n| URL/端点 | canonical 端点为 `POST /v1/agent`;`/v1/responses` 为 OpenAI SDK 兼容别名;`/v1/sonar` 兼容 Chat Completions | `POST https://api.perplexity.ai/v1/agent` | C | https://docs.perplexity.ai/docs/agent-api/openai-compatibility |\n| 模型 ID | 支持 `provider/model` 形式(`openai/gpt-5.6-sol`、`openai/gpt-5-mini` 等),即第三方模型前缀路由 | `\"model\":\"openai/gpt-5.6-sol\"` | C | https://docs.perplexity.ai/docs/agent-api/openai-compatibility |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1601-1609`;`openai/responses.rs`(Responses API 模块存在)\n- **差距说明**:aimux 的 OpenAI 兼容薄封装走 `/chat/completions` 路径;Agent API 的完整能力(`/v1/agent`、Responses 别名、`openai/...` 模型前缀)未在薄封装 profile 层表达。若走 chat completions 路径则基本可用(Sonar Chat Completions 仍兼容),但官方已建议迁移。\n- **建议动作**:无需立即动作;若要完整支持需在封装层支持 `/v1/responses`(或 `/v1/agent`)路径与 `input` 消息格式。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### petals — Petals\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.petals.dev/v1` · env=`PETALS_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | ⚠️ 无证据 | - | ⚠️ | - |\n| 能力支持 | ⚠️ 无证据 | - | ⚠️ | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | ⚠️ 无证据(Petals 项目本体是去中心化本地推理,非托管 HTTP API) | - | ⚠️ | https://petals.dev/ |\n| URL/端点 | ⚠️ 未找到 `api.petals.dev` 的官方托管服务文档 | - | ⚠️ | https://github.com/bigscience-workshop/petals |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(端点真实性无法确认)\n- **aimux 代码位置**:`openai_compat_registry.rs:1610-1618`\n- **差距说明**:Petals 官方项目(bigscience-workshop/petals)提供的是本地/去中心化推理,无 `api.petals.dev` 托管 OpenAI 兼容服务的公开文档;该 registry 条目指向的托管服务是否存在存疑。\n- **建议动作**:核实 `api.petals.dev` 是否仍提供服务;无服务则删除或挂靠本地 Petals OpenAI 兼容 server。\n\n#### 3. 证据与验证\n\n- **证据等级**:⚠️(仅官网项目页,无 API 文档)\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 证据不足,端点真实性存疑\n\n### pinstripes — Pinstripes\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.pinstripes.io/v1` · env=`PINSTRIPES_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(标准 OpenAI SDK 直连) | - | C | https://pinstripes.io/blog/langchain/ |\n| 能力支持 | 无差异(LangChain 全功能兼容,含 agent/tool calling) | - | C | https://pinstripes.io/blog/langchain/ |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异(自动前缀缓存,`usage` 计费含缓存 token) | - | C | https://pinstripes.io/blog/langchain/ |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`api_key=\"sk-ps-...\"`,Bearer) | - | C | https://pinstripes.io/blog/langchain/ |\n| URL/端点 | ⚠️ 官方示例 base 为 `https://api.pinstripes.ai/v1`;registry 用 `api.pinstripes.io/v1`,两者关系未确认 | `base_url=\"https://api.pinstripes.ai/v1\"`(官方示例)vs `https://api.pinstripes.io/v1`(registry) | C | https://pinstripes.io/blog/langchain/ |\n| 模型 ID | 模型 ID 带 `ps/` 前缀约定 | `\"model\":\"ps/qwen3.6-a3b\"`、`\"model\":\"ps/deepseek-v4-flash\"` | C | https://pinstripes.io/blog/langchain/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1619-1627`\n- **差距说明**:① 域名 `api.pinstripes.io` vs 官方 `api.pinstripes.ai` 存疑;② `ps/` 模型前缀为透传约定,aimux 无校验逻辑(透传即用,不影响请求)。\n- **建议动作**:核实域名;`ps/` 前缀无需动作(透传)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅官方博客示例)\n- **存疑标记**:⚠️ 域名存疑\n\n### pioneer — Pioneer\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.pioneer.ai/v1` · env=`PIONEER_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(\"Drop-in OpenAI replacement… all SDK methods including streaming work unchanged\") | - | C | https://docs.pioneer.ai/concepts/inference |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer,Pioneer key) | - | C | https://docs.pioneer.ai/api-reference/inference/openai-compatible |\n| URL/端点 | 无差异(base 与 registry 一致;另有原生 `POST /inference` 与 Anthropic 兼容端点,属可选) | - | C | https://agent.pioneer.ai/credits |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1628-1636`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### poe — Poe\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.poe.com/v1` · env=`POE_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI Chat Completions 参数) | - | C | https://creator.poe.com/docs/external-applications/openai-compatible-api |\n| 能力支持 | 同时支持 Chat Completions(`/v1/chat/completions`)与 Responses(`/v1/responses`) | - | C | https://creator.poe.com/docs/external-applications/openai-compatible-api |\n| 思考机制 | 无差异(按上游模型能力) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer YOUR_API_KEY`) | - | C | https://creator.poe.com/api-reference/overview |\n| URL/端点 | 无差异(base `https://api.poe.com/v1` 与 registry 一致) | - | C | https://poe.com/api |\n| 模型 ID | ⚠️ 模型名是 Poe 侧枚举(驼峰风格,如 `Claude-Sonnet-4.6`、`GPT-5.1-Codex`),不是上游裸模型名 | `{\"model\":\"Claude-Sonnet-4.6\",\"messages\":[...]}` | C | https://creator.poe.com/api-reference/overview |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1637-1645`\n- **差距说明**:模型 ID 需用 Poe 平台枚举名(驼峰),aimux 透传模型名无映射问题(调用方填对即可);无 request 体差异。\n- **建议动作**:无需动作;文档标注 Poe 模型 ID 风格即可。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:⚠️ 模型 ID 枚举随 Poe 平台更新,未逐一核对\n\n### poolside — Poolside\n\n- **registry 现状**:profile=`full()` · base_url=`https://inference.poolside.ai/v1` · env=`POOLSIDE_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI-compatible) | - | C | https://huggingface.co/poolside/Laguna-M.1 |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`api_key` Bearer) | - | C | https://huggingface.co/poolside/Laguna-M.1 |\n| URL/端点 | 无差异(base `https://inference.poolside.ai/v1` 与 registry 一致) | `OpenAI(base_url=\"https://inference.poolside.ai/v1\", api_key=\"...\")` | C | https://huggingface.co/poolside/Laguna-M.1 |\n| 模型 ID | 无差异(如 `poolside/laguna-...`) | - | C | https://huggingface.co/poolside/Laguna-M.1 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1646-1654`\n- **差距说明**:无 request 级特殊配置(证据较薄,仅 HF 模型卡示例)。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C(弱)\n- **验证状态**:🔲 未验证\n- **存疑标记**:无(若后续有官方 API 文档可补强)\n\n### portkey — Portkey Gateway\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.portkey.ai/v1` · env=`PORTKEY_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(透传上游 OpenAI 参数) | - | C | https://docs.portkey.ai/docs/api-reference/inference-api/gateway-for-other-apis |\n| 能力支持 | 无差异(250+ 模型路由) | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异(透传) | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异(配置/路由经 header 而非 body) | - | - | - |\n| headers/认证 | **gateway 认证走 `x-portkey-api-key` header(值=$PORTKEY_API_KEY),并需 `x-portkey-provider` 指定上游 provider(如 `openai`、`@provider-slug`、`passthrough`),自定义端点加 `x-portkey-custom-host`,路由策略加 `x-portkey-config`;`Authorization` 传的是上游 provider 的 key,不是 Portkey key** | `curl https://api.portkey.ai/v1/chat/completions -H \"x-portkey-api-key: $PORTKEY_API_KEY\" -H \"x-portkey-provider: openai\" -H \"Authorization: Bearer $OPENAI_API_KEY\"` | C | https://docs.portkey.ai/docs/api-reference/inference-api/gateway-for-other-apis;https://docs.portkey.ai/docs/product/ai-gateway/universal-api |\n| URL/端点 | base `https://api.portkey.ai/v1` 与 registry 一致;内置路由 `chat/completions` 走网关逻辑,`/v1/proxy/chat/completions` 前缀强制裸透传 | `POST https://api.portkey.ai/v1/proxy/chat/completions` | C | https://docs.portkey.ai/docs/api-reference/inference-api/gateway-for-other-apis |\n| 模型 ID | 无差异(透传上游模型 ID) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1655-1663`;`openai/mod.rs:96-119`(`OpenAIConfig.headers` 自定义 header)\n- **差距说明**:aimux 默认把 API key 放 `Authorization: Bearer`;Portkey 需要 `x-portkey-api-key`(网关认证)+ `x-portkey-provider`/`x-portkey-custom-host`(路由)。可通过 `OpenAIConfig.headers` 手工补 header,但 profile 层无内置支持,且 `PORTKEY_API_KEY` 不会自动落到 `x-portkey-api-key`。\n- **建议动作**:文档标注需在 headers 配置中追加 `x-portkey-api-key`/`x-portkey-provider`;如用户量大可加 profile 字段(如 `auth_header_name`)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方文档引用)\n- **存疑标记**:无\n\n### ppinfra — PPInfra(PPIO 派欧云)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.ppio.com/openai` · env=`PPIO_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 兼容,SDK base_url 配\"域名 + /openai\") | `OpenAI(base_url=\"https://api.ppio.com/openai\")` | C | https://ppio.com/docs/llms-full.txt |\n| 能力支持 | 无差异(LLM/图像/视频/音频多模态) | - | C | https://ppio.com/docs/third-party/fastgpt-use |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer API 密钥) | - | C | https://ppio.com/docs/third-party/fastgpt-use |\n| URL/端点 | 无差异:完整端点固定为 `https://api.ppio.com/openai/v1/chat/completions`,与 registry base(`/openai`)+ `/v1/chat/completions` 拼接一致 | `POST https://api.ppio.com/openai/v1/chat/completions` | C | https://ppio.com/docs/third-party/fastgpt-use |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1664-1672`\n- **差距说明**:base_url 无尾随 `/v1` 的设计与官方 SDK 用法(\"域名 + /openai\")一致。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### predibase — Predibase\n\n- **registry 现状**:profile=`full()` · base_url=`https://serving.app.predibase.com/v1` · env=`PREDIBASE_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI Chat Completions v1 兼容) | - | C | https://apis.io/apis/predibase/predibase-adapters-api/ |\n| 能力支持 | LoRA adapter:`adapter_id`(Predibase ID 或 HF ID)+ `adapter_source`(pbase/hub/s3)+ `adapter_version` | `{\"model\":\"mistral-7b\",\"adapter_id\":\"my-adapter-id\",\"adapter_version\":3}` | C | https://apis.io/apis/predibase/predibase-adapters-api/;https://developers.llamaindex.ai/python/framework-api-reference/llms/predibase/ |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | `adapter_id`/`adapter_source`/`adapter_version` 为 LoRA 微调适配字段 | 见上 | C | https://developers.llamaindex.ai/python/framework-api-reference/llms/predibase/ |\n| headers/认证 | 无差异(`Authorization: Bearer `) | - | C | https://apis.io/apis/predibase/predibase-adapters-api/ |\n| URL/端点 | ⚠️ 官方 OpenAPI 的 inference base 为 `https://serving.app.predibase.com/{tenant}/deployments/v2/llms/{model}`,OpenAI 兼容路由在其 `/v1` 后缀下(tenant=租户 ID,model=部署名);registry 的 `https://serving.app.predibase.com/v1` 缺 tenant/deployment 路径段,能否直接用存疑 | `https://serving.app.predibase.com/{tenant}/deployments/v2/llms/{model}/v1/chat/completions` | C | https://apis.io/apis/predibase/predibase-adapters-api/ |\n| 模型 ID | `model` = 部署名/serverless base model ID(如 `mistral-7b`) | - | C | https://developers.llamaindex.ai/python/framework-api-reference/llms/predibase/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1673-1681`\n- **差距说明**:① LoRA 字段(adapter_id 等)无 profile 支持 → bodyOverrides 兜底;② 端点路径(tenant/deployment)与 registry base 不一致,存疑。\n- **建议动作**:核实 base_url(可能需要 `{tenant}` 路径变量支持,这是 registry 宏当前不支持的形态);adapter 字段走 bodyOverrides。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(OpenAPI 镜像 + LlamaIndex 集成文档)\n- **存疑标记**:⚠️ base_url 路径形态存疑\n\n### privatemode_ai — Privatemode AI\n\n- **registry 现状**:profile=`full()` · base_url=`http://localhost:8080/v1` · env=`PRIVATEMODE_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | ⚠️ 本地代理(localhost:8080),认证取决于本地代理配置,无公开规范 | - | ⚠️ | - |\n| URL/端点 | 无差异(本地代理,非托管服务) | - | ⚠️ | - |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(无证据显示差异)\n- **aimux 代码位置**:`openai_compat_registry.rs:1682-1690`\n- **差距说明**:本地代理类端点,无公开文档;行为取决于用户本地部署。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:⚠️\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 证据不足(本地端点无公开规范)\n\n### publicai — Publicai\n\n- **registry 现状**:profile=`full()` · base_url=`https://platform.publicai.co/v1` · env=`PUBLICAI_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | **PublicAI 不接受 `max_completion_tokens`,需映射为 `max_tokens`**(litellm 将其作为首个 JSON 配置 provider 的 `param_mappings` 示例) | `\"param_mappings\": {\"max_completion_tokens\": \"max_tokens\"}`(litellm 配置原文) | B | `reference/litellm/litellm/llms/openai_like/README.md:68-87` |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | **要求 content 列表转字符串**(litellm `special_handling.convert_content_list_to_string: true`) | `\"special_handling\": {\"convert_content_list_to_string\": true}`(litellm 配置原文) | B | `reference/litellm/litellm/llms/openai_like/README.md:68-87` |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer,`PUBLICAI_API_KEY`) | - | B | 同上 |\n| URL/端点 | 无差异(base 与 registry 一致:`https://api.publicai.co/v1`) | - | B | 同上 |\n| 模型 ID | litellm 模型写法带 provider 前缀:`publicai/swiss-ai/apertus-8b-instruct`(API 侧模型 ID 为后段) | `model=\"publicai/swiss-ai/apertus-8b-instruct\"` | B | 同上 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1691-1699`;`convert.rs:1118-1138`(max_tokens/max_completion_tokens 分支)\n- **差距说明**:① 推理模型分支 aimux 发 `max_completion_tokens`(convert.rs:1122-1130),PublicAI 只认 `max_tokens` → 推理模型调用会失败;② content 列表转字符串:aimux 标准消息格式默认就是字符串,多模态 content 数组需人工处理。\n- **建议动作**:若 PublicAI 上跑推理模型,纳入 `max_tokens_key` 类 profile 字段候选;其余 bodyOverrides 兜底。\n\n#### 3. 证据与验证\n\n- **证据等级**:B\n- **验证状态**:🔲 未验证(litellm reference 文档)\n- **存疑标记**:无\n\n### qihang_ai — QiHang(启航 AI)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.qhaigc.net/v1` · env=`QIHANG_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(兼容 OpenAI SDK) | - | C | https://www.qhaigc.net/docs/api-reference/introduction |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer sk-...`) | - | C | https://www.qhaigc.net/docs/models |\n| URL/端点 | 无差异(base `https://api.qhaigc.net/v1` 与 registry 一致;官方教程提示\"是否带 /v1 取决于平台\") | `POST https://api.qhaigc.net/v1/chat/completions` | C | https://www.qhaigc.net/docs/tutorials |\n| 模型 ID | 无差异(统一 API,模型 ID 见官方模型列表) | - | C | https://www.qhaigc.net/docs/models |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1700-1708`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### qihoo360 — 360 AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.360.cn/v1` · env=`AI360_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(宣称 OpenAI 兼容,base_url=https://api.360.cn/v1 可一行迁移) | - | C(弱) | https://tools321.com/ai/ai-model-free-list/ |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | ⚠️ 未找到官方文档(模型家族含 360gpt2-pro/360gpt-turbo/360gpt-flash;推理/思考字段无证据) | - | ⚠️ | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | ⚠️ 无官方文档(推测 Bearer) | - | ⚠️ | - |\n| URL/端点 | 无差异(base 与社区描述一致:https://api.360.cn/v1) | - | C(弱) | https://tools321.com/ai/ai-model-free-list/ |\n| 模型 ID | 无差异(360gpt2-pro/360gpt-turbo/360gpt-flash/360zhinao-embedding) | `\"model\":\"360gpt2-pro\"` | C(弱) | https://tools321.com/ai/ai-model-free-list/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(无证据显示差异)\n- **aimux 代码位置**:`openai_compat_registry.rs:1709-1717`\n- **差距说明**:未能访问 360 官方 API 文档(未索引到);现有证据仅第三方汇总页。\n- **建议动作**:无需动作;后续拿到官方文档再核对 thinking/认证细节。\n\n#### 3. 证据与验证\n\n- **证据等级**:C(弱,第三方汇总)\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 证据不足(官方文档未获取)\n\n### qiniu_ai — Qiniu AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.qiniu.com/v1` · env=`QINIU_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(\"接口兼容 OpenAI 风格,参数完全兼容 OpenAI 的 sdk\") | - | C | https://developer.qiniu.com/aitokenapi/kb/13462/aitoken-use-faq?category=kb |\n| 能力支持 | 兼容 OpenAI(/v1/chat/completions)与 Anthropic(/v1/messages)两套协议 | - | C | https://developer.qiniu.com/aitokenapi/kb/13462/aitoken-use-faq?category=kb |\n| 思考机制 | DeepSeek-R1 默认带思考过程(回答开头有 think 标签);grok-4-fast 无参数可关闭推理(只能提示词引导)⚠️ 此为七牛聚合平台侧行为 | - | C | https://developer.qiniu.com/aitokenapi/kb/13462/aitoken-use-faq?category=kb |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization` header,FAQ 明示常见错误是 \"authorization header missing\") | - | C | https://developer.qiniu.com/aitokenapi/kb/13462/aitoken-use-faq?category=kb |\n| URL/端点 | ⚠️ 官方 FAQ 示例 base 为 `https://api.qnaigc.com/v1`(\"域名 + /v1\",易错点示例),registry 用 `api.qiniu.com/v1`;两域名关系未确认(qnaigc 疑为七牛 AI Token API 分发域名) | `base_url=https://api.qnaigc.com/v1`(FAQ 示例)vs `https://api.qiniu.com/v1`(registry) | C | https://developer.qiniu.com/aitokenapi/kb/13462/aitoken-use-faq?category=kb |\n| 模型 ID | `model` 必须与 AI 大模型广场的 \"API model 参数\" 严格一致,否则 503 quota_exceeded_error | `\"model\":\"deepseek-r1:671b\"`(FAQ 报错示例) | C | https://developer.qiniu.com/aitokenapi/kb/13462/aitoken-use-faq?category=kb |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1718-1726`\n- **差距说明**:① base 域名(api.qiniu.com vs api.qnaigc.com)存疑;② 模型 ID 严格匹配要求靠调用方保证;③ 推理思考字段(think 标签/reasoning_content)为平台行为,aimux 已解析 `reasoning_content`(model.rs:558-563)。\n- **建议动作**:核实域名后修正 registry;模型 ID 校验不做(透传)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方 FAQ 引用)\n- **存疑标记**:⚠️ 域名存疑\n\n### regolo_ai — Regolo AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.regolo.ai/v1` · env=`REGOLO_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(\"built on the OpenAI API standard\") | - | C | https://regolo.ai/ |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Authorization) | - | C | https://regolo.ai/ |\n| URL/端点 | 无差异(base `https://api.regolo.ai/v1`,官方强调无尾随斜杠无多余路径) | - | C | https://regolo.ai/using-regolo-models-with-opencode/ |\n| 模型 ID | 无差异 | - | C | https://models.dev/providers/regolo-ai |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1727-1735`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### reka_ai — Reka AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.reka.ai/v1` · env=`REKA_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | `max_tokens`(官方示例;未见 max_completion_tokens) | `client.chat.completions.create(model=\"reka-flash\", messages=[...], max_tokens=2048, stream=True)` | C | https://docs.reka.ai/chat/overview |\n| 能力支持 | 无差异(fully OpenAI-compatible,OpenAI Python SDK 直连) | - | C | https://docs.reka.ai/chat/overview |\n| 思考机制 | 无差异(Reka 模型不以思维链输出) | - | - | - |\n| 流式/usage | 无差异(`stream=True` 标准 SSE) | - | C | https://docs.reka.ai/chat/overview |\n| 消息格式 | 无差异(多模态:图片/短视频/音频内容类型;assistant-completion 技巧=最后一条 assistant 消息续写) | - | C | https://docs.reka.ai/chat/overview |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 认证同时接受 `X-Api-Key` header 或 `Authorization: Bearer`(API reference 两种都列) | `X-Api-Key: YOUR_API_KEY` 或 `Authorization: Bearer ` | C | https://docs.reka.ai/vision/api-reference/inference/create-chat-completion |\n| URL/端点 | 无差异(base `https://api.reka.ai/v1` 与 registry 一致;另有 vision 专用 `https://vision-agent.api.reka.ai`) | - | C | https://docs.reka.ai/chat/overview |\n| 模型 ID | 无差异(`reka-flash`、`reka-core` 等,见 models 页) | - | C | https://docs.reka.ai/chat/models |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1736-1744`\n- **差距说明**:aimux 用 `Authorization: Bearer`(Reka 明确支持);推理模型分支的 `max_completion_tokens` 理论上 Reka 不认,但 Reka 非思维链模型,`is_reasoning_model` 分支不触发时走 `max_tokens`,无实际问题。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### requesty — Requesty\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.requesty.ai/v1` · env=`REQUESTY_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI SDK 直连) | - | C | https://docs.requesty.ai/quickstart |\n| 能力支持 | 无差异(300+ 模型统一端点) | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异(流式需 `stream_options:{\"include_usage\":true}` 收 usage;响应 `usage` 默认带 `cost` 字段;额外响应 header `x-requesty-provider/cache/latency-ms/request-id`) | `\"usage\":{\"prompt_tokens\":13,\"completion_tokens\":17,\"total_tokens\":30,\"cost\":0.0000935}` | C | https://docs.requesty.ai/quickstart |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | body 可带 `requesty` 元数据对象(tags/user_id/trace_id/extra);可选 header `HTTP-Referer`/`X-Title`(分析打标) | `{\"model\":\"openai/gpt-4o\",\"messages\":[...],\"requesty\":{\"tags\":[\"quickstart\"],\"user_id\":\"user_1234\",\"trace_id\":\"session_abc123\"}}` | C | https://docs.requesty.ai/quickstart |\n| headers/认证 | 无差异(Bearer,`REQUESTY_API_KEY`);`HTTP-Referer`/`X-Title` 可选 | `-H \"HTTP-Referer: https://yourapp.com\" -H \"X-Title: My App\"` | C | https://docs.requesty.ai/quickstart |\n| URL/端点 | ⚠️ 官方文档 base 为 `https://router.requesty.ai/v1`(llms.txt 与 quickstart 一致);registry 用 `api.requesty.ai/v1`,关系未确认 | `base_url=\"https://router.requesty.ai/v1\"`(官方)vs `https://api.requesty.ai/v1`(registry) | C | https://docs.requesty.ai/quickstart;https://www.requesty.ai/llms.txt |\n| 模型 ID | 模型 ID 可带 provider 前缀(`openai/gpt-4o`)或 policy 名(`policy/sonnet-with-fallback`) | `\"model\":\"openai/gpt-4o\"`、`\"model\":\"policy/sonnet-with-fallback\"` | C | https://docs.requesty.ai/quickstart |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1745-1753`\n- **差距说明**:① base 域名(api.requesty.ai vs router.requesty.ai)存疑;② `requesty` body 元数据对象无 profile 支持 → bodyOverrides 兜底;③ `HTTP-Referer`/`X-Title` 需自定义 headers。\n- **建议动作**:核实域名;其余 bodyOverrides/headers 兜底即可。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方文档引用)\n- **存疑标记**:⚠️ 域名存疑\n\n### reve — Reve\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.reve.ai/v1` · env=`REVE_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | ⚠️ 无证据 | - | ⚠️ | - |\n| 能力支持 | ⚠️ 无证据 | - | ⚠️ | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | ⚠️ 无证据 | - | ⚠️ | - |\n| URL/端点 | ⚠️ 未找到 `api.reve.ai` 官方 API 文档 | - | ⚠️ | - |\n| 模型 ID | ⚠️ 无证据 | - | ⚠️ | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(无证据显示差异)\n- **aimux 代码位置**:`openai_compat_registry.rs:1754-1762`\n- **差距说明**:完全查不到公开信息(WebSearch/WebFetch 无结果)。\n- **建议动作**:无需动作;标记为需人工确认厂商。\n\n#### 3. 证据与验证\n\n- **证据等级**:⚠️\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 证据不足(查不到任何信息)\n\n### routing_run — routing.run\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.routing.run/v1` · env=`ROUTING_RUN_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI-compatible `/v1/chat/completions`) | - | C | https://github.com/monotykamary/pi-routing-run-provider |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer,`ROUTING_RUN_API_KEY`) | - | C | https://mastra.ai/models/providers/routing-run |\n| URL/端点 | 双端点:`api.routing.sh`(主,更快)与 `api.routing.run`(备) | `base_url=https://api.routing.sh/v1`(主) | C | https://github.com/monotykamary/pi-routing-run-provider |\n| 模型 ID | 无差异(透传) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1763-1771`\n- **差距说明**:无 request 级特殊配置;主域 api.routing.sh 可作备选 base。\n- **建议动作**:无需动作(可备注主端点)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(社区 provider 代码 + Mastra 文档)\n- **存疑标记**:无\n\n### sakana — Sakana AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.sakana.ai/v1` · env=`SAKANA_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI Chat Completions) | - | C | https://console.sakana.ai/get-started |\n| 能力支持 | 同时支持 Chat Completions 与 Responses API | - | C | https://console.sakana.ai/get-started |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://www.analyticsvidhya.com/blog/2026/06/sakana-fugu-multi-agent-system-as-a-model/ |\n| URL/端点 | 无差异(base `https://api.sakana.ai/v1` 与 registry 一致) | - | C | https://console.sakana.ai/get-started |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1772-1780`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### sambanova — SambaNova\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.sambanova.ai/v1` · env=`SAMBANOVA_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_tokens` 标准;官方示例用 `model`+`messages`) | - | C | https://docs.sambanova.ai/docs/en/features/openai-compatibility |\n| 能力支持 | ① `presence_penalty`/`frequency_penalty` **不支持,会被忽略**;② `n` 支持 1–8,且 **n>1 与 tools/function calling 组合返回 400**;③ `seed`/`logit_bias` 支持(文本模型);④ `top_k` 支持(OpenAI 客户端无此参数,SambaNova 有);⑤ 响应无 `system_fingerprint` | `{\"model\":\"Meta-Llama-3.3-70B-Instruct\",\"n\":2,\"tools\":[...]}` → 400;`{\"top_k\":5}` → 接受 | C | https://docs.sambanova.ai/docs/en/features/openai-compatibility |\n| 思考机制 | 推理模型(如 DeepSeek-R1 系)流式输出 `reasoning_content`(社区实证;官方 OpenAI 兼容页未列专用开关字段) | `{\"choices\":[{\"delta\":{\"reasoning_content\":\"...\",\"content\":\"\"}}]}` | C | https://docs.sambanova.ai/docs/en/features/openai-compatibility;https://github.com/karthink/gptel/issues/669 |\n| 流式/usage | `stream_options.include_usage` 用于取流式用量(LlamaIndex 集成文档明示);SSE 标准 | `SambaNovaCloud(..., stream_options={\"include_usage\": True})` | C | https://developers.llamaindex.ai/python/framework-api-reference/llms/sambanovasystems/ |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异(`top_k` 属能力字段) | - | - | - |\n| headers/认证 | 无差异(`api_key` + `base_url`,Bearer) | - | C | https://docs.sambanova.ai/docs/en/features/openai-compatibility |\n| URL/端点 | 无差异(base 与 registry 一致;另有 Responses API `POST /v1/responses`) | - | C | https://docs.sambanova.ai/docs/en/features/openai-compatibility |\n| 模型 ID | 无差异(SambaNova 目录模型名,如 `Meta-Llama-3.3-70B-Instruct`、`gpt-oss-120b`) | `\"model\":\"Meta-Llama-3.3-70B-Instruct\"` | C | https://docs.sambanova.ai/docs/en/features/openai-compatibility |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1781-1789`;`convert.rs:1202-1207`(frequency/presence_penalty 总是发送)\n- **差距说明**:① aimux 有值时会发送 `frequency_penalty`/`presence_penalty`(convert.rs:1202-1207),SambaNova 忽略而非报错 → 行为安全但语义丢失;② `n>1` + tools 的 400 组合无预防;③ 推理模型分支 `max_completion_tokens`(SambaNova 规范未见该参数,OpenAI 兼容层一般也接受);④ `reasoning_content` 解析 ✅ 已覆盖(model.rs:558-563)。\n- **建议动作**:可加 profile 标志(如 `ignore_penalty_params: true` 时静默丢弃);`n>1`+tools 组合校验可选。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方 OpenAI 兼容页 + LlamaIndex 集成文档)\n- **存疑标记**:无\n\n### sarvam — Sarvam AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.sarvam.ai/v1` · env=`SARVAM_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | `max_tokens`(默认 2048;官方参数表无 max_completion_tokens) | `{\"model\":\"sarvam-105b\",\"messages\":[...],\"max_tokens\":2048}` | C | https://docs.sarvam.ai/api-reference/chat/chat-completions |\n| 能力支持 | `tools`/`tool_choice`/`response_format`(json_schema 与 json_object)均支持;`seed`(beta)、`n` 1-128 | - | C | https://docs.sarvam.ai/api-reference/chat/chat-completions |\n| 思考机制 | `reasoning_effort`(默认 `medium`;**显式置 null 可关闭思考**) | `{\"reasoning_effort\":null}` 关闭;`{\"reasoning_effort\":\"high\"}` 加深 | C | https://docs.sarvam.ai/api-reference/chat/chat-completions |\n| 流式/usage | 无差异(标准 SSE) | - | C | 同上 |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | `wiki_grounding`(bool,默认 false,开启后回答基于 wiki 检索);可选 `api-subscription-key` header(sk_xxx 订阅 key) | `{\"wiki_grounding\":true}` | C | https://docs.sarvam.ai/api-reference/chat/chat-completions |\n| headers/认证 | 标准 `Authorization: Bearer`;另可选 `api-subscription-key` header 走订阅计费 | `api-subscription-key: sk_xxx` | C | https://docs.sarvam.ai/api-reference/chat/chat-completions;https://docs.pipecat.ai/api-reference/server/services/llm/sarvam |\n| URL/端点 | 无差异(base `https://api.sarvam.ai/v1` 与 registry 一致) | `POST https://api.sarvam.ai/v1/chat/completions` | C | https://docs.sarvam.ai/api-reference/chat/chat-completions |\n| 模型 ID | 无差异(如 `sarvam-105b`,128K 上下文) | - | C | 同上 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1790-1798`;`convert.rs:1326-1329`(reasoning_effort 透传)\n- **差距说明**:① `reasoning_effort` 的 null 关闭语义需调用方传 null(aimux 透传不校验);② `wiki_grounding` 无 profile 支持 → bodyOverrides;③ `api-subscription-key` header 需自定义 headers;④ 推理模型分支 `max_completion_tokens` vs Sarvam `max_tokens`。\n- **建议动作**:bodyOverrides 兜底 `wiki_grounding`;文档标注 subscription header 用法。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方 API 参考引用)\n- **存疑标记**:无\n\n### scaleway — Scaleway AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.scaleway.ai/v1` · env=`SCALEWAY_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI SDK 直连) | - | C | https://www.scaleway.com/en/docs/generative-apis/quickstart/ |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer ${SCW_SECRET_KEY}`,即 Scaleway IAM key) | `curl https://api.scaleway.ai/v1/chat/completions -H \"Authorization: Bearer ${SCW_SECRET_KEY}\"` | C | https://www.scaleway.com/en/docs/generative-apis/api-cli/using-generative-apis/ |\n| URL/端点 | 默认项目可省略:`https://api.scaleway.ai/v1`;非默认项目需插入 Project ID:`https://api.scaleway.ai/{project_id}/v1` | `https://api.scaleway.ai/78e655b5-feb0-417c-bb3f-8c448bd0e8da/v1` | C | https://www.scaleway.com/en/docs/generative-apis/api-cli/using-generative-apis/ |\n| 模型 ID | 无差异(模型目录 ID) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1799-1807`\n- **差距说明**:默认项目 base 与 registry 一致;非默认项目需在 base_url 中插入 project_id(用户自定义 base_url 可解决,registry 宏不支持模板化 base)。\n- **建议动作**:无需动作(文档标注 project_id 变体即可)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方文档引用)\n- **存疑标记**:无\n\n### scx_ai — SCX AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.scx.ai/v1` · env=`SCX_AI_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 与 Anthropic 兼容) | - | C | https://scx.ai/ |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer;官方示例环境变量名为 `SCX_API_KEY`,registry 用 `SCX_AI_API_KEY`,两者关系未确认) | `OpenAI(base_url=\"https://api.scx.ai/v1\", api_key=os.environ.get(\"SCX_API_KEY\"))` | C | https://scx.ai/ |\n| URL/端点 | 无差异(base 与 registry 一致) | - | C | https://scx.ai/ |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1808-1816`\n- **差距说明**:env 变量名与官方示例(SCX_API_KEY vs SCX_AI_API_KEY)不同,属注册层面命名,不影响 request 构造。\n- **建议动作**:无需动作(可备注 env 别名)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### siliconflow — SiliconFlow\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.siliconflow.cn/v1` · env=`SILICONFLOW_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | `max_tokens`(无 max_completion_tokens) | `{\"model\":\"Pro/deepseek-ai/DeepSeek-R1\",\"messages\":[...],\"max_tokens\":4096}` | C | https://docs.siliconflow.cn/cn/userguide/capabilities/reasoning |\n| 能力支持 | `response_format` json mode 支持;推理模型建议 temperature 0.5-0.7、top_p 0.95(官方 R1 建议) | - | C | https://docs.siliconflow.cn/cn/userguide/capabilities/reasoning |\n| 思考机制 | **`thinking_budget` 请求参数**(控制思维链 token 上限,Qwen3 系原生强制截断,其他模型可能继续);返回 `reasoning_content`(流式 delta 与 message 同级) | `{\"thinking_budget\":1024,\"max_tokens\":4096}` → 响应 `choices[0].message.reasoning_content` / 流式 `delta.reasoning_content` | C | https://docs.siliconflow.cn/cn/userguide/capabilities/reasoning |\n| 流式/usage | 无差异(标准 SSE;`stream_options` 可用) | - | C | 同上 |\n| 消息格式 | 无差异(`reasoning_content` 属思考机制类;多模态 image_url 支持) | - | C | 同上 |\n| 特殊字段 | `thinking_budget` 为平台特有能力字段 | `{\"thinking_budget\":1024}` | C | 同上 |\n| headers/认证 | 无差异(Bearer,`SILICONFLOW_API_KEY`) | - | C | 同上 |\n| URL/端点 | 无差异(base `https://api.siliconflow.cn/v1/` 与 registry 一致) | - | C | 同上 |\n| 模型 ID | 模型 ID 可带 `Pro/` 性能前缀(`Pro/deepseek-ai/DeepSeek-R1` vs `deepseek-ai/DeepSeek-R1`) | `\"model\":\"Pro/deepseek-ai/DeepSeek-R1\"` | C | 同上 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1817-1825`;`model.rs:558-563`(reasoning_content 流式解析 ✅);`types.rs:37-40`(message.reasoning_content ✅)\n- **差距说明**:① `thinking_budget` 无 profile 支持 → bodyOverrides 兜底;② 推理模型分支 `max_completion_tokens`(convert.rs:1122-1130)vs SiliconFlow `max_tokens`;③ `Pro/` 前缀透传即可,无需映射。\n- **建议动作**:`thinking_budget` 文档化走 bodyOverrides;`max_tokens` 命名纳入 `max_tokens_key` 候选。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方文档引用,含请求/响应示例)\n- **存疑标记**:无\n\n### snowflake — Snowflake(Cortex)\n\n- **registry 现状**:profile=`full()` · base_url=`https://.snowflakecomputing.com/api/v2/cortex/v1` · env=`SNOWFLAKE_PAT`\n- **变体**:snowflake_cortex\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(Chat Completions 遵循 OpenAI 规范,OpenAI Python SDK 直连) | `OpenAI(api_key=\"\", base_url=\"https://.snowflakecomputing.com/api/v2/cortex/v1\")` | C | https://docs.snowflake.com/fr/user-guide/snowflake-cortex/cortex-rest-api |\n| 能力支持 | 无差异(所有模型:OpenAI、Claude、Llama、Mistral、DeepSeek、Snowflake) | - | C | 同上 |\n| 思考机制 | 无差异(取决于具体模型) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异(另提供 Anthropic Messages API `/api/v2/cortex/v1/messages`,Claude 专用) | - | C | 同上 |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 标准 `Authorization: Bearer `;**可选 `X-Snowflake-Authorization-Token-Type` header 声明 token 类型**(OAUTH / PROGRAMMATIC_ACCESS_TOKEN 等) | `X-Snowflake-Authorization-Token-Type: PROGRAMMATIC_ACCESS_TOKEN` | C | https://docs.snowflake.com/fr/user-guide/snowflake-cortex/cortex-rest-api |\n| URL/端点 | 无差异(`https://.snowflakecomputing.com/api/v2/cortex/v1/chat/completions`,registry 模板化 base 一致;account-identifier 需用户替换) | `POST https://.snowflakecomputing.com/api/v2/cortex/v1/chat/completions` | C | 同上 |\n| 模型 ID | 无差异(目录模型名,如 `claude-sonnet-4-5`) | `\"model\":\"claude-sonnet-4-5\"` | C | 同上 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1826-1834`\n- **差距说明**:PAT 走 Bearer ✅;`X-Snowflake-Authorization-Token-Type` 可选 header 可经 `OpenAIConfig.headers` 配置;account-identifier 需用户替换(registry 模板 base 已表达占位符)。\n- **建议动作**:无需动作(可选 header 文档化)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方文档引用)\n- **存疑标记**:无\n\n### snowflake_cortex — Snowflake Cortex\n\n- **registry 现状**:profile=`full()` · base_url=`https://.snowflakecomputing.com/api/v2/cortex/v1` · env=`SNOWFLAKE_CORTEX_PAT`\n- **变体**:snowflake\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://docs.snowflake.com/fr/user-guide/snowflake-cortex/cortex-rest-api |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 与 snowflake 主条目相同(Bearer PAT + 可选 `X-Snowflake-Authorization-Token-Type`),仅 env 变量不同(SNOWFLAKE_CORTEX_PAT) | 同上 | C | 同上 |\n| URL/端点 | 与 snowflake 主条目相同 | - | C | 同上 |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(同 snowflake)\n- **aimux 代码位置**:`openai_compat_registry.rs:1835-1843`\n- **差距说明**:与 snowflake 条目为同一端点、不同 env(SNOWFLAKE_CORTEX_PAT),无 request 级差异。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(同 snowflake)\n- **存疑标记**:无\n\n### stackit — STACKIT\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1` · env=`STACKIT_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 兼容托管端点) | - | C | https://docs.haystack.deepset.ai/reference/integrations-stackit |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(API Key,Bearer) | - | C | https://github.com/stackitcloud/n8n-nodes-stackit-ai-model-serving |\n| URL/端点 | 无差异(base 与 registry 一致,Haystack/ models.dev 均确认) | `api_base_url=\"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\"` | C | https://models.dev/providers/stackit |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1844-1852`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(第三方集成文档 + models.dev)\n- **存疑标记**:无\n\n### stepfun — StepFun(阶跃星辰)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.stepfun.com/v1` · env=`STEPFUN_API_KEY`\n- **变体**:stepfun_ai_step_plan、stepfun_step_plan\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | **`max_tokens`**(官方参数表;无 max_completion_tokens;默认 INF 由模型决定) | `{\"model\":\"step-3.5-flash\",\"messages\":[...],\"max_tokens\":2048}` | C | https://platform.stepfun.ai/docs/en/api-reference/chat/chat-completion-create |\n| 能力支持 | `tools`/`tool_choice`/`response_format`(json_object)/`frequency_penalty`/`stop`/`n` 均支持 | - | C | 同上 |\n| 思考机制 | **`reasoning_format`**:`general`(默认,返回 `reasoning` 字段)/ `deepseek-style`(返回 `reasoning_content`,DeepSeek 兼容);**`reasoning_effort`**:low/medium/high(step-3.5-flash-2603 仅 low/high) | `{\"reasoning_format\":\"deepseek-style\",\"reasoning_effort\":\"high\"}` → 响应 `choices[0].message.reasoning_content`;默认 `general` 时 `message.reasoning` | C | https://platform.stepfun.ai/docs/en/api-reference/chat/chat-completion-create;https://platform.stepfun.ai/docs/en/guides/developer/reasoning |\n| 流式/usage | 无差异(标准 `chat.completion.chunk` SSE;`usage` 含可选 `cached_tokens`) | - | C | https://platform.stepfun.ai/docs/en/api-reference/chat/chat-completion-create |\n| 消息格式 | 思考字段名是 `reasoning`(非 reasoning_content,除非 reasoning_format=deepseek-style);多模态 content 类型含 `image_url`、`video_url`、`input_audio`(音频 base64) | 流式 `delta.reasoning`;`{\"type\":\"video_url\",\"video_url\":{\"url\":\"https://.../a.mp4\"}}` | C | https://platform.stepfun.ai/docs/en/guides/developer/reasoning;https://platform.stepfun.ai/docs/en/api-reference/chat/chat-completion-create |\n| 特殊字段 | `reasoning_format`(general/deepseek-style)为平台特有能力字段 | 见上 | C | https://platform.stepfun.ai/docs/en/api-reference/chat/chat-completion-create |\n| headers/认证 | 无差异(Bearer,`STEPFUN_API_KEY`) | - | C | https://platform.stepfun.ai/docs/en/guides/developer/reasoning |\n| URL/端点 | 无差异(China `https://api.stepfun.com/v1`、International `https://api.stepfun.ai/v1`,与 registry 一致;Step Plan 变体加 `/step_plan` 前缀) | `POST https://api.stepfun.com/v1/chat/completions` | C | https://platform.stepfun.ai/docs/en/api-reference/chat/chat-completion-create |\n| 模型 ID | 无差异(`step-3.7-flash`、`step-3.5-flash` 等) | - | C | 同上 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1853-1861`;`convert.rs:1319-1324`(`reasoning_format` 仅 provider==\"groq\" 时发送);`model.rs:558-563`(`reasoning`/`reasoning_content` 双键解析 ✅)\n- **差距说明**:① `reasoning_format` 只有 groq 分支(convert.rs:1319-1324),stepfun 无法发送 `deepseek-style` → 默认 `general` 时返回 `reasoning` 字段(aimux 已解析 ✅);② 推理模型分支 `max_completion_tokens` vs StepFun `max_tokens`(convert.rs:1122-1130);③ `video_url`/`input_audio` 内容类型无转换支持;④ `reasoning_effort` 透传 ✅(值 low/medium/high 与 aimux 通用取值兼容)。\n- **建议动作**:`reasoning_format` 发送条件从硬编码 groq 改为 profile 字段(或 bodyOverrides);`max_tokens` 命名纳入候选;多模态 video/audio 输入留待消息层扩展。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方 API 参考,含完整参数表与示例)\n- **存疑标记**:无\n\n### stepfun_ai_step_plan — StepFun Step Plan (Global)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.stepfun.ai/step_plan/v1` · env=`STEPFUN_API_KEY`\n- **变体**:stepfun、stepfun_step_plan\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 同 stepfun 主条目(`max_tokens`) | - | C | https://platform.stepfun.ai/docs/en/api-reference/chat/chat-completion-create |\n| 能力支持 | 同 stepfun | - | - | - |\n| 思考机制 | 同 stepfun(`reasoning_format`/`reasoning_effort`) | - | C | 同上 |\n| 流式/usage | 同 stepfun | - | - | - |\n| 消息格式 | 同 stepfun(`reasoning` 字段、video/audio 内容) | - | - | - |\n| 特殊字段 | 同 stepfun | - | - | - |\n| headers/认证 | 同 stepfun(Bearer) | - | - | - |\n| URL/端点 | 无差异(Step Plan 订阅端点:Global `https://api.stepfun.ai/step_plan/v1`,registry 一致;Step Plan 是计费套餐前缀而非不同协议) | `POST https://api.stepfun.ai/step_plan/v1/chat/completions` | C | https://github.com/stepfun-ai/Step-3.5-Flash(Region 表) |\n| 模型 ID | 同 stepfun | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(同 stepfun 主条目)\n- **aimux 代码位置**:`openai_compat_registry.rs:1862-1870`\n- **差距说明**:差异全部继承自 stepfun 主条目(reasoning_format / max_tokens / 多模态内容)。\n- **建议动作**:同 stepfun。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:无\n\n### stepfun_step_plan — StepFun Step Plan (China)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.stepfun.com/step_plan/v1` · env=`STEPFUN_API_KEY`\n- **变体**:stepfun、stepfun_ai_step_plan\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 同 stepfun 主条目 | - | C | https://platform.stepfun.ai/docs/en/api-reference/chat/chat-completion-create |\n| 能力支持 | 同 stepfun | - | - | - |\n| 思考机制 | 同 stepfun | - | - | - |\n| 流式/usage | 同 stepfun | - | - | - |\n| 消息格式 | 同 stepfun | - | - | - |\n| 特殊字段 | 同 stepfun | - | - | - |\n| headers/认证 | 同 stepfun | - | - | - |\n| URL/端点 | 无差异(China Step Plan:`https://api.stepfun.com/step_plan/v1`,registry 一致) | `POST https://api.stepfun.com/step_plan/v1/chat/completions` | C | https://github.com/stepfun-ai/Step-3.5-Flash(Region 表) |\n| 模型 ID | 同 stepfun | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(同 stepfun 主条目)\n- **aimux 代码位置**:`openai_compat_registry.rs:1871-1879`\n- **差距说明**:差异全部继承自 stepfun 主条目。\n- **建议动作**:同 stepfun。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:无\n\n### subconscious — Subconscious\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.subconscious.dev/v1` · env=`SUBCONSCIOUS_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI SDK 直连) | - | C | https://docs.subconscious.dev/quickstart |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`api_key` + base_url) | - | C | https://docs.subconscious.dev/quickstart |\n| URL/端点 | 无差异(base `https://api.subconscious.dev/v1` 与 registry 一致) | - | C | https://www.subconscious.dev/ |\n| 模型 ID | 无差异(如 `subconscious/tim-qwen3`,`/` 前缀为文档惯例) | `\"model\":\"subconscious/tim-qwen3\"` | C | https://github.com/subconscious-systems/TIMRUN |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1880-1888`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### submodel — SubModel\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.submodel.com/v1` · env=`SUBMODEL_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | ⚠️ 无证据 | - | ⚠️ | - |\n| 能力支持 | ⚠️ 无证据 | - | ⚠️ | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | ⚠️ 无证据 | - | ⚠️ | - |\n| URL/端点 | ⚠️ 未找到 `api.submodel.com` 官方 API 文档 | - | ⚠️ | - |\n| 模型 ID | ⚠️ 无证据 | - | ⚠️ | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(无证据显示差异)\n- **aimux 代码位置**:`openai_compat_registry.rs:1889-1897`\n- **差距说明**:查不到公开信息。\n- **建议动作**:无需动作;标记为需人工确认厂商。\n\n#### 3. 证据与验证\n\n- **证据等级**:⚠️\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 证据不足(查不到任何信息)\n\n### synthetic — Synthetic\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.synthetic.new/openai/v1` · env=`SYNTHETIC_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(支持全部标准 OpenAI 参数,litellm 确认) | - | C | https://docs.litellm.ai/docs/providers/synthetic |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://dev.synthetic.new/docs/api/getting-started |\n| URL/端点 | 无差异(base `https://api.synthetic.new/openai/v1`,路径含 `/openai` 前缀,registry 一致) | `POST https://api.synthetic.new/openai/v1/chat/completions` | C | https://dev.synthetic.new/ |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1898-1906`\n- **差距说明**:无 request 级特殊配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方 dev 文档 + litellm provider 页)\n- **存疑标记**:无\n\n## 存疑归档\n\n> 下列条目因证据不足或域名存疑被标记 ⚠️,不计入内置差距清单(按 README 方法论)。\n\n| 厂商 | 存疑点 |\n|------|--------|\n| opencode | registry base_url 为非法字面量 `\"opencode_zen.rs\"`(确定性 bug,见 `openai_compat_registry.rs:1533`) |\n| orcarouter | 官方域 orcarouter.ai,registry 用 api.orcarouter.com,未见官方使用 |\n| petals | 查不到 api.petals.dev 托管服务的公开文档,端点真实性存疑 |\n| pinstripes | 官方示例 api.pinstripes.ai,registry 用 api.pinstripes.io |\n| predibase | 官方 OpenAPI base 为 `{tenant}/deployments/v2/llms/{model}` 形态,registry 用 serving.app.predibase.com/v1 |\n| requesty | 官方示例 router.requesty.ai,registry 用 api.requesty.ai |\n| qiniu_ai | 官方 FAQ 示例 api.qnaigc.com,registry 用 api.qiniu.com |\n| qihoo360 | 无官方文档可核对(仅第三方汇总),认证/思考字段未确认 |\n| perfxcloud | 无官方文档,思考机制未确认 |\n| reve / submodel / privatemode_ai | 查不到任何公开信息 |\n"}}, "docs/api/providers.md": {"5b352e19b5717ed5ba775e097bed1f6fd81c2095": {"t": 1785809830.6830134, "n": 28684, "h": "8c3e21b0746d541d", "c": "# aimux providers\n\n> **GENERATED** by `scripts/gen_providers_doc.py` — do not edit by hand.\n> Regenerate with: `python scripts/gen_providers_doc.py`\n\n**250 registry-backed OpenAI-compatible providers** (construct via `provider(name, ...)` / `ProviderName`) + **75 non-registry providers** (construct via the typed factories listed below).\n\n## Registry-backed (OpenAI-compatible) — 250\n\n| name | display | env var | base_url |\n|------|---------|---------|----------|\n| `abacus` | Abacus | `ABACUS_API_KEY` | `https://routellm.abacus.ai/v1` |\n| `abliteration_ai` | Abliteration AI | `ABLIT_KEY` | `https://api.abliteration.ai/v1` |\n| `ai21` | AI21 Labs | `AI21_API_KEY` | `https://api.ai21.ai/v1` |\n| `ai302` | 302.AI | `AI302_API_KEY` | `https://api.302.ai/v1` |\n| `ai_router` | AI-ROUTER | `AI_ROUTER_API_KEY` | `https://api.ai-router.dev/v1` |\n| `aiand` | AIand | `AIAND_API_KEY` | `https://api.aiand.com/v1` |\n| `aibadgr` | AI Badgr | `AIBADGR_API_KEY` | `https://api.aibadgr.com/v1` |\n| `aigc2d` | AIGC2D | `AIGC2D_API_KEY` | `https://api.aigc2d.com/v1` |\n| `aihubmix` | AIHubMix | `AIHUBMIX_API_KEY` | `https://aihubmix.com/v1` |\n| `ails` | AILS | `AILS_API_KEY` | `https://api.caipacity.com/v1` |\n| `aiml` | AI/ML API | `AIML_API_KEY` | `https://api.aimlapi.com/v1` |\n| `aki_io` | AKI.IO | `AKI_IO_API_KEY` | `https://aki.io/openai/v1` |\n| `albert` | Albert | `ALBERT_API_KEY` | `https://api.albert.ai/v1` |\n| `alibaba` | Alibaba Cloud (DashScope) | `ALIBABA_API_KEY` | `https://dashscope-intl.aliyuncs.com/compatible-mode/v1` |\n| `alibaba_coding_plan` | Alibaba Coding Plan | `ALIBABA_CODING_PLAN_API_KEY` | `https://coding-intl.dashscope.aliyuncs.com/v1` |\n| `alibaba_coding_plan_cn` | Alibaba Coding Plan (China) | `ALIBABA_CODING_PLAN_API_KEY` | `https://coding.dashscope.aliyuncs.com/v1` |\n| `alibaba_token_plan` | Alibaba Token Plan | `ALIBABA_TOKEN_PLAN_API_KEY` | `https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1` |\n| `alibaba_token_plan_cn` | Alibaba Token Plan (China) | `ALIBABA_TOKEN_PLAN_API_KEY` | `https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1` |\n| `ambient` | Ambient | `AMBIENT_API_KEY` | `https://api.ambient.xyz/v1` |\n| `anyapi` | AnyAPI | `ANYAPI_KEY` | `https://api.anyapi.ai/v1` |\n| `anyscale` | Anyscale | `ANYSCALE_API_KEY` | `https://api.endpoints.anyscale.com/v1` |\n| `apertis` | Apertis | `STIMA_API_KEY` | `https://api.stima.tech/v1` |\n| `api2d` | API2D | `API2D_API_KEY` | `https://oa.api2d.net/v1` |\n| `api2gpt` | API2GPT | `API2GPT_API_KEY` | `https://api.api2gpt.com/v1` |\n| `apiserpent` | API Serpent | `APISERPENT_API_KEY` | `https://api.apiserpent.com/v1` |\n| `atlascloud` | AtlasCloud | `ATLASCLOUD_API_KEY` | `https://api.atlascloud.com/v1` |\n| `atomic_chat` | Atomic Chat | `ATOMIC_CHAT_API_KEY` | `http://127.0.0.1:1337/v1` |\n| `auriko` | Auriko | `AURIKO_API_KEY` | `https://api.auriko.ai/v1` |\n| `azure_ai` | Azure AI | `AZURE_AI_API_KEY` | `https://models.inference.ai.azure.com` |\n| `baichuan` | Baichuan AI | `BAICHUAN_API_KEY` | `https://api.baichuan-ai.com/v1` |\n| `baidu` | Baidu (文心/ERNIE) | `BAIDU_API_KEY` | `https://qianfan.baidubce.com/v2` |\n| `baidu_v2` | BaiduV2 | `QIANFAN_API_KEY` | `https://qianfan.baidubce.com/v2` |\n| `bailing` | Bailing | `BAILING_API_TOKEN` | `https://api.ant-ling.com/v1` |\n| `baseten` | Baseten | `BASETEN_API_KEY` | `https://inference.baseten.co/v1` |\n| `berget` | Berget.AI | `BERGET_API_KEY` | `https://api.berget.ai/v1` |\n| `bigmodel` | BigModel (智谱) | `BIGMODEL_API_KEY` | `https://open.bigmodel.cn/api/paas/v4` |\n| `blueclaw` | Blue Claw | `BLUECLAW_API_KEY` | `https://openai.blueclaw.network/v1` |\n| `bytedance` | ByteDance | `ARK_API_KEY` | `https://ark.cn-beijing.volces.com/api/v3` |\n| `byteplus` | BytePlus (Volcano) | `BYTEPLUS_API_KEY` | `https://ark.bytepluses.com/api/v3` |\n| `bytez` | Bytez | `BYTEZ_API_KEY` | `https://api.bytez.com/v2` |\n| `canopywave` | Canopywave | `CANOPYWAVE_API_KEY` | `https://api.canopywave.com/v1` |\n| `cerebras` | Cerebras | `CEREBRAS_API_KEY` | `https://api.cerebras.ai/v1` |\n| `chatgpt` | ChatGPT (订阅) | `CHATGPT_API_KEY` | `https://chatgpt.com/backend-api/codex` |\n| `cherryin` | cherryin | `CHERRYIN_API_KEY` | `https://open.cherryin.net` |\n| `chutes` | Chutes | `CHUTES_API_KEY` | `https://llm.chutes.ai/v1` |\n| `clarifai` | Clarifai | `CLARIFAI_API_KEY` | `https://api.clarifai.com/v2/ext/openai/v1` |\n| `claudinio` | Claudinio | `CLAUDINIO_API_KEY` | `https://api.claudin.io` |\n| `cline_pass` | Cline | `CLINE_API_KEY` | `https://api.cline.bot/v1` |\n| `closeai` | CloseAI | `CLOSEAI_API_KEY` | `https://api.closeai-proxy.xyz/v1` |\n| `cloudferro_sherlock` | CloudFerro Sherlock | `CLOUDFERRO_SHERLOCK_API_KEY` | `https://api-sherlock.cloudferro.com/openai/v1` |\n| `cloudflare` | Cloudflare | `CLOUDFLARE_API_KEY` | `https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1` |\n| `cloudflare_workers_ai` | Cloudflare Workers AI | `CLOUDFLARE_API_KEY` | `https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1` |\n| `codestral` | Codestral (Mistral) | `CODESTRAL_API_KEY` | `https://api.mistral.ai/v1` |\n| `cometapi` | CometAPI | `COMETAPI_API_KEY` | `https://api.cometapi.com/v1` |\n| `commandcode` | CommandCode | `COMMANDCODE_API_KEY` | `https://api.commandcode.com/v1` |\n| `compactifai` | CompactifAI | `COMPACTIFAI_API_KEY` | `https://api.compactif.ai/v1` |\n| `copilot` | GitHub Copilot | `COPILOT_API_KEY` | `https://api.githubcopilot.com` |\n| `cortecs` | Cortecs | `CORTECS_API_KEY` | `https://api.cortecs.ai/v1/` |\n| `coze` | Coze (扣子) | `COZE_API_KEY` | `https://api.coze.cn/v1` |\n| `crof` | CrofAI | `CROF_API_KEY` | `https://crof.ai/v1` |\n| `crossmodel` | CrossModel | `CROSSMODEL_API_KEY` | `https://api.crossmodel.ai/v1` |\n| `crusoe` | Crusoe | `CRUSOE_API_KEY` | `https://api.inference.crusoecloud.com/v1` |\n| `daoxe` | DaoXE | `DAOXE_API_KEY` | `https://daoxe.com/v1` |\n| `darkbloom` | Darkbloom | `DARKBLOOM_API_KEY` | `https://api.darkbloom.dev/v1` |\n| `databricks` | Databricks | `DATABRICKS_API_KEY` | `https://databricks.com/serving-endpoints` |\n| `datarobot` | DataRobot | `DATAROBOT_API_TOKEN` | `https://app.datarobot.com/api/v2` |\n| `deepbricks` | DeepBricks | `DEEPBRICKS_API_KEY` | `https://api.deepbricks.ai/v1` |\n| `deepinfra` | DeepInfra | `DEEPINFRA_API_KEY` | `https://api.deepinfra.com/v1/openai` |\n| `deepseek` | DeepSeek | `DEEPSEEK_API_KEY` | `https://api.deepseek.com/v1` |\n| `digitalocean` | DigitalOcean | `DIGITALOCEAN_ACCESS_TOKEN` | `https://inference.do-ai.run` |\n| `dinference` | DInference | `DINFERENCE_API_KEY` | `https://api.dinference.com/v1` |\n| `doubao` | Doubao | `ARK_API_KEY` | `https://ark.cn-beijing.volces.com/api/v3` |\n| `doubleword` | Doubleword | `DOUBLEWORD_API_KEY` | `https://api.doubleword.ai/v1` |\n| `drun` | D.Run (China) | `DRUN_API_KEY` | `https://chat.d.run/v1` |\n| `ebcloud` | EBCloud | `EBCLOUD_API_KEY` | `https://maas-api.ebcloud.com/v1` |\n| `embercloud` | Embercloud | `EMBERCLOUD_API_KEY` | `https://api.embercloud.com/v1` |\n| `empiriolabs` | EmpirioLabs AI | `EMPIRIOLABS_API_KEY` | `https://api.empiriolabs.ai/v1` |\n| `evroc` | evroc | `EVROC_API_KEY` | `https://models.think.evroc.com/v1` |\n| `fastcrw` | FastCRW | `FASTCRW_API_KEY` | `https://fastcrw.com/api/v1` |\n| `fastgpt` | FastGPT | `FASTGPT_API_KEY` | `https://api.fastgpt.in/v1` |\n| `fastrouter` | FastRouter | `FASTROUTER_API_KEY` | `https://api.fastrouter.ai/v1` |\n| `featherless_ai` | Featherless AI | `FEATHERLESS_API_KEY` | `https://api.featherless.ai/v1` |\n| `firepass` | Fireworks (Firepass) | `FIREWORKS_API_KEY` | `https://api.fireworks.ai/inference/v1` |\n| `fireworks` | Fireworks | `FIREWORKS_API_KEY` | `https://api.fireworks.ai/inference/v1` |\n| `freemodel` | FreeModel | `FREEMODEL_API_KEY` | `https://api.freemodel.dev/v1` |\n| `friendliai` | FriendliAI | `FRIENDLIAI_API_KEY` | `https://inference.friendli.ai/v1` |\n| `frogbot` | FrogBot | `FROGBOT_API_KEY` | `https://app.frogbot.ai/api/v1` |\n| `galadriel` | Galadriel | `GALADRIEL_API_KEY` | `https://api.galadriel.com/v1` |\n| `gdc` | GDC | `GDC_API_KEY` | `https://api.gdc.ai/v1` |\n| `gigachat` | GigaChat (Sberbank) | `GIGACHAT_API_KEY` | `https://gigachat.devices.sberbank.ru/api/v1` |\n| `github` | GitHub Models | `GITHUB_TOKEN` | `https://models.inference.ai.azure.com` |\n| `gmi` | GMI | `GMI_API_KEY` | `https://api.gmi-serving.com/v1` |\n| `gmicloud` | GMI Cloud | `GMI_API_KEY` | `https://api.gmi-serving.com/v1` |\n| `gonka24` | Gonka24 | `GONKA24_API_KEY` | `https://api.gonka24.com/v1` |\n| `gradient_ai` | Gradient AI | `GRADIENT_API_KEY` | `https://inference.do-ai.run/v1` |\n| `groq` | Groq | `GROQ_API_KEY` | `https://api.groq.com/openai/v1` |\n| `helicone` | Helicone | `HELICONE_API_KEY` | `https://api.helicone.ai/v1` |\n| `heroku` | Heroku AI | `HEROKU_API_KEY` | `https://api.heroku.com/inference/v1` |\n| `hetzner` | Hetzner | `HETZNER_VLLM_API_KEY` | `https://inference.hetzner.com/api/v1` |\n| `hosted_vllm` | Hosted vLLM | `HOSTED_VLLM_API_KEY` | `https://hosted-vllm-api.com/v1` |\n| `hpc_ai` | HPC-AI | `INFERENCE_API_KEY` | `https://api.hpc-ai.com/inference/v1` |\n| `hyperbolic` | Hyperbolic | `HYPERBOLIC_API_KEY` | `https://api.hyperbolic.xyz/v1` |\n| `iflowcn` | iFlow | `IFLOW_API_KEY` | `https://apis.iflow.cn/v1` |\n| `inception` | Inception Labs | `INCEPTION_API_KEY` | `https://api.inceptionlabs.ai/v1` |\n| `inceptron` | Inceptron | `INCEPTRON_API_KEY` | `https://api.inceptron.io/v1` |\n| `inference_net` | Inference.net | `INFERENCE_NET_API_KEY` | `https://api.inference.net/v1` |\n| `inferx` | InferX | `INFERX_API_KEY` | `https://model.inferx.net/v1` |\n| `infinity` | Infinity AI | `INFINITY_API_KEY` | `https://infinity.ai/api/v1` |\n| `io_net` | IO.NET | `IOINTELLIGENCE_API_KEY` | `https://api.intelligence.io.solutions/api/v1` |\n| `jiekou` | Jiekou.AI | `JIEKOU_API_KEY` | `https://api.highwayapi.ai/openai` |\n| `kenari` | Kenari | `KENARI_API_KEY` | `https://kenari.id/v1` |\n| `kilo` | Kilo | `KILO_API_KEY` | `https://api.kilo.ai/v1` |\n| `kimi` | Kimi | `MOONSHOT_API_KEY` | `https://api.moonshot.ai/v1` |\n| `kimi_for_coding` | Kimi For Coding | `KIMI_API_KEY` | `https://api.kimi.com/coding/v1` |\n| `kiro` | Kiro | `KIRO_API_KEY` | `https://api.kiro.dev/v1` |\n| `kluster_ai` | Kluster AI | `KLUSTER_API_KEY` | `https://api.kluster.ai/v1` |\n| `krutrim` | Krutrim | `KRUTRIM_API_KEY` | `https://api.krutrim.ai/v1` |\n| `kuae_cloud_coding_plan` | KUAE Cloud Coding Plan | `KUAE_API_KEY` | `https://coding-plan-endpoint.kuaecloud.net/v1` |\n| `lambda_ai` | Lambda AI | `LAMBDA_API_KEY` | `https://api.lambda.ai/v1` |\n| `lemonade` | Lemonade | `LEMONADE_API_KEY` | `http://localhost:13305/v1` |\n| `lemonfox_ai` | Lemonfox AI | `LEMONFOX_API_KEY` | `https://api.lemonfox.ai/v1` |\n| `libertai` | Libertai | `LIBERTAI_API_KEY` | `https://api.libertai.io/v1` |\n| `lilac` | Lilac | `LILAC_API_KEY` | `https://api.getlilac.com/v1` |\n| `lingyiwanwu` | Lingyiwanwu (零一万物) | `LINGYIWANWU_API_KEY` | `https://api.lingyiwanwu.com/v1` |\n| `llama` | Llama | `LLAMA_API_KEY` | `https://api.llama.com/compat/v1/` |\n| `llamagate` | Llamagate | `LLAMAGATE_API_KEY` | `https://api.llamagate.dev/v1` |\n| `llmgateway` | LLM Gateway | `LLM_GATEWAY_API_KEY` | `https://api.llmgateway.io/v1` |\n| `llmtr` | LLMTR | `LLMTR_API_KEY` | `https://llmtr.com/v1` |\n| `longcat` | LongCat | `LONGCAT_API_KEY` | `https://api.longcat.chat/v1` |\n| `lucidquery` | LucidQuery | `LUCIDQUERY_API_KEY` | `https://api.lucidquery.com/v1` |\n| `lynkr` | Lynkr | `LYNKR_API_KEY` | `http://localhost:8081/v1` |\n| `matterai` | Matter AI | `MATTERAI_API_KEY` | `https://api.matterai.com/v1` |\n| `meganova` | Meganova | `MEGANOVA_API_KEY` | `https://api.meganova.ai/v1` |\n| `merge_gateway` | Merge Gateway | `MERGE_GATEWAY_API_KEY` | `https://api-gateway.merge.dev/v1/openai` |\n| `meta` | Meta | `MODEL_API_KEY` | `https://api.meta.ai/v1` |\n| `meta_llama` | Meta Llama API | `LLAMA_API_KEY` | `https://api.llama.com/compat/v1` |\n| `mimo` | Mimo | `MIMO_API_KEY` | `https://api.xiaomimimo.com/v1` |\n| `minimax` | MiniMax | `MINIMAX_API_KEY` | `https://api.minimax.io/v1` |\n| `minimax_cn` | MiniMax (minimaxi.com) | `MINIMAX_API_KEY` | `https://api.minimaxi.com/v1` |\n| `minimax_cn_coding_plan` | MiniMax Token Plan (minimaxi.com) | `MINIMAX_API_KEY` | `https://api.minimaxi.com/v1` |\n| `minimax_coding_plan` | MiniMax Token Plan (minimax.io) | `MINIMAX_API_KEY` | `https://api.minimax.io/anthropic/v1` |\n| `mira` | Mira | `MIRA_API_KEY` | `https://api.mira.so/v1` |\n| `mixlayer` | Mixlayer | `MIXLAYER_API_KEY` | `https://models.mixlayer.ai/v1` |\n| `moark` | Moark | `MOARK_API_KEY` | `https://api.moark.com/v1` |\n| `modal` | Modal | `MODAL_API_KEY` | `https://modal.com/v1` |\n| `model_oracle_ai` | Model Oracle AI | `MODEL_ORACLE_API_KEY` | `https://api.modeloracle.com/api/v1` |\n| `modelscope` | ModelScope | `MODELSCOPE_API_KEY` | `https://api-inference.modelscope.cn/v1` |\n| `moonshotai` | Moonshot AI | `MOONSHOT_API_KEY` | `https://api.moonshot.cn/v1` |\n| `moonshotai_cn` | Moonshot AI (China) | `MOONSHOT_API_KEY` | `https://api.moonshot.cn/anthropic/v1(Anthropic` |\n| `morph` | Morph LLM | `MORPH_API_KEY` | `https://api.morphllm.com/v1` |\n| `nanogpt` | NanoGPT | `NANOGPT_API_KEY` | `https://api.nanogpt.com/v1` |\n| `ncompass` | Ncompass | `NCOMPASS_API_KEY` | `https://api.ncompass.tech/v1` |\n| `nearai` | NEAR AI Cloud | `NEARAI_API_KEY` | `https://cloud-api.near.ai/v1` |\n| `nebius` | Nebius AI | `NEBIUS_API_KEY` | `https://api.studio.nebius.ai/v1` |\n| `neon` | Neon | `NEON_AI_GATEWAY_TOKEN` | `https:///v1` |\n| `neuralwatt` | Neuralwatt | `NEURALWATT_API_KEY` | `https://api.neuralwatt.com/v1` |\n| `nextbit` | NextBit | `NEXTBIT_API_KEY` | `https://api.nextbit.ai/v1` |\n| `nlp_cloud` | NLP Cloud | `NLPCLOUD_API_KEY` | `https://api.nlpcloud.io/v1` |\n| `nous_research` | Nous Research | `NOUS_API_KEY` | `https://api.nousresearch.com/v1` |\n| `novita` | Novita AI | `NOVITA_API_KEY` | `https://api.novita.ai/v1` |\n| `nscale` | Nscale | `NSCALE_API_KEY` | `https://inference.api.nscale.com/v1` |\n| `nvidia_nim` | NVIDIA NIM | `NVIDIA_API_KEY` | `https://integrate.api.nvidia.com/v1` |\n| `oci` | OCI | `OCI_API_KEY` | `https://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1` |\n| `ofox` | OfoxAI | `OFOX_API_KEY` | `https://api.ofox.ai/v1` |\n| `ohmygpt` | OhMyGPT | `OHMYGPT_API_KEY` | `https://api.ohmygpt.com/v1` |\n| `ollama_cloud` | Ollama Cloud | `OLLAMA_CLOUD_API_KEY` | `https://api.ollama.com/v1` |\n| `openaimax` | OpenAIMax | `OPENAIMAX_API_KEY` | `https://api.openaimax.com/v1` |\n| `openaisb` | OpenAI-SB | `OPENAISB_API_KEY` | `https://api.openaisb.com/v1` |\n| `opencode` | OpenCode Zen | `OPENCODE_API_KEY` | `https://api.opencode.zen/v1` |\n| `opencode_go` | OpenCode Go | `OPENCODE_GO_API_KEY` | `https://api.opencode.dev/v1` |\n| `opencode_zen` | OpenCode Zen | `OPENCODE_ZEN_API_KEY` | `https://api.opencode.zen/v1` |\n| `orcarouter` | OrcaRouter | `ORCAROUTER_API_KEY` | `https://api.orcarouter.com/v1` |\n| `ovhcloud` | OVHcloud AI | `OVHCLOUD_API_KEY` | `https://oai.endpoints.kepler.ai.cloud.ovh.net/v1` |\n| `parasail` | Parasail | `PARASAIL_API_KEY` | `https://api.parasail.io/v1` |\n| `perfxcloud` | PerfXCloud | `PERFXCLOUD_API_KEY` | `https://api.perfxcloud.com/v1` |\n| `perplexity` | Perplexity | `PERPLEXITY_API_KEY` | `https://api.perplexity.ai` |\n| `perplexity_agent` | Perplexity Agent | `PERPLEXITY_API_KEY` | `https://api.perplexity.ai/v1` |\n| `petals` | Petals | `PETALS_API_KEY` | `https://api.petals.dev/v1` |\n| `pinstripes` | Pinstripes | `PINSTRIPES_API_KEY` | `https://api.pinstripes.io/v1` |\n| `pioneer` | Pioneer | `PIONEER_API_KEY` | `https://api.pioneer.ai/v1` |\n| `poe` | Poe | `POE_API_KEY` | `https://api.poe.com/v1` |\n| `poolside` | Poolside | `POOLSIDE_API_KEY` | `https://inference.poolside.ai/v1` |\n| `portkey` | Portkey Gateway | `PORTKEY_API_KEY` | `https://api.portkey.ai/v1` |\n| `ppinfra` | PPInfra(PPIO 派欧云) | `PPIO_API_KEY` | `https://api.ppio.com/openai` |\n| `predibase` | Predibase | `PREDIBASE_API_KEY` | `https://serving.app.predibase.com/v1` |\n| `privatemode_ai` | Privatemode AI | `PRIVATEMODE_API_KEY` | `http://localhost:8080/v1` |\n| `publicai` | Publicai | `PUBLICAI_API_KEY` | `https://platform.publicai.co/v1` |\n| `qihang_ai` | QiHang(启航 AI) | `QIHANG_API_KEY` | `https://api.qhaigc.net/v1` |\n| `qihoo360` | 360 AI | `AI360_API_KEY` | `https://api.360.cn/v1` |\n| `qiniu_ai` | Qiniu AI | `QINIU_API_KEY` | `https://api.qiniu.com/v1` |\n| `regolo_ai` | Regolo AI | `REGOLO_API_KEY` | `https://api.regolo.ai/v1` |\n| `reka_ai` | Reka AI | `REKA_API_KEY` | `https://api.reka.ai/v1` |\n| `requesty` | Requesty | `REQUESTY_API_KEY` | `https://api.requesty.ai/v1` |\n| `reve` | Reve | `REVE_API_KEY` | `https://api.reve.ai/v1` |\n| `routing_run` | routing.run | `ROUTING_RUN_API_KEY` | `https://api.routing.run/v1` |\n| `sakana` | Sakana AI | `SAKANA_API_KEY` | `https://api.sakana.ai/v1` |\n| `sambanova` | SambaNova | `SAMBANOVA_API_KEY` | `https://api.sambanova.ai/v1` |\n| `sarvam` | Sarvam AI | `SARVAM_API_KEY` | `https://api.sarvam.ai/v1` |\n| `scaleway` | Scaleway AI | `SCALEWAY_API_KEY` | `https://api.scaleway.ai/v1` |\n| `scx_ai` | SCX AI | `SCX_AI_API_KEY` | `https://api.scx.ai/v1` |\n| `siliconflow` | SiliconFlow | `SILICONFLOW_API_KEY` | `https://api.siliconflow.cn/v1` |\n| `snowflake` | Snowflake | `SNOWFLAKE_PAT` | `https://.snowflakecomputing.com/api/v2/cortex/v1` |\n| `snowflake_cortex` | Snowflake Cortex | `SNOWFLAKE_CORTEX_PAT` | `https://.snowflakecomputing.com/api/v2/cortex/v1` |\n| `stackit` | STACKIT | `STACKIT_API_KEY` | `https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1` |\n| `stepfun` | StepFun (阶跃星辰) | `STEPFUN_API_KEY` | `https://api.stepfun.com/v1` |\n| `stepfun_ai_step_plan` | StepFun Step Plan (Global) | `STEPFUN_API_KEY` | `https://api.stepfun.ai/step_plan/v1` |\n| `stepfun_step_plan` | StepFun Step Plan (China) | `STEPFUN_API_KEY` | `https://api.stepfun.com/step_plan/v1` |\n| `subconscious` | Subconscious | `SUBCONSCIOUS_API_KEY` | `https://api.subconscious.dev/v1` |\n| `submodel` | SubModel | `SUBMODEL_API_KEY` | `https://api.submodel.com/v1` |\n| `synthetic` | Synthetic | `SYNTHETIC_API_KEY` | `https://api.synthetic.new/openai/v1` |\n| `tencent` | Tencent (混元/Hunyuan) | `TENCENT_API_KEY` | `https://api.hunyuan.cloud.tencent.com/v1` |\n| `tencent_coding_plan` | Tencent Coding Plan (China) | `TENCENT_CODING_PLAN_API_KEY` | `https://api.lkeap.cloud.tencent.com/coding/v3` |\n| `tencent_token_plan` | Tencent Token Plan | `TENCENT_TOKEN_PLAN_API_KEY` | `https://api.lkeap.cloud.tencent.com/plan/v3` |\n| `tencent_token_plan_enterprise_auto` | 腾讯云 Token Plan / Token Plan 企业版轻享套餐 | `TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY` | `https://tokenhub.tencentmaas.com/plan/v3` |\n| `tencent_token_plan_enterprise_pro` | 腾讯云 Token Plan / Token Plan 企业版专业套餐 | `TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY` | `https://tokenhub.tencentmaas.com/plan/v3` |\n| `tencent_token_plan_general_personal` | 腾讯云 Token Plan / 通用 Token Plan(个人版) | `TENCENT_TOKEN_PLAN_API_KEY` | `https://api.lkeap.cloud.tencent.com/plan/v3` |\n| `tencent_token_plan_hy_personal` | 腾讯云 Token Plan / Hy Token Plan(个人版) | `TENCENT_TOKEN_PLAN_API_KEY` | `https://api.lkeap.cloud.tencent.com/plan/v3` |\n| `tencent_tokenhub` | Tencent TokenHub | `TENCENT_TOKENHUB_API_KEY` | `https://tokenhub.tencentmaas.com/v1` |\n| `tensormesh` | Tensormesh | `YOUR_API_KEY` | `https://serverless.tensormesh.ai` |\n| `the_grid_ai` | The Grid AI | `THEGRIDAI_API_KEY` | `https://thegrid.ai/docs` |\n| `thinkingmachines` | Thinking Machines | `TINKER_API_KEY` | `https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1` |\n| `tinfoil` | Tinfoil | `TINFOIL_API_KEY` | `https://inference.tinfoil.sh/v1` |\n| `togetherai` | Together AI | `TOGETHER_API_KEY` | `https://api.together.xyz/v1` |\n| `tokenflux` | Tokenflux | `TOKENFLUX_API_KEY` | `https://tokenflux.ai/v1` |\n| `tokenpony` | TokenPony | `TOKENPONY_API_KEY` | `https://api.tokenpony.com/v1` |\n| `trustedrouter` | TrustedRouter | `TRUSTEDROUTER_API_KEY` | `https://api.trustedrouter.com/v1` |\n| `tundra` | Tundra | `TUNDRA_API_KEY` | `https://api.tundra.ai/v1` |\n| `umans_ai` | Umans AI | `UMANS_AI_API_KEY` | `https://api.code.umans.ai/v1` |\n| `unorouter` | UnoRouter | `UNOROUTER_API_KEY` | `https://unorouter.com/en` |\n| `upstage` | Upstage | `UPSTAGE_API_KEY` | `https://api.upstage.ai/v1` |\n| `v0` | v0 (Vercel) | `V0_API_KEY` | `https://api.v0.dev/v1` |\n| `venice` | Venice | `VENICE_API_KEY` | `https://api.venice.ai/api/v1` |\n| `vercel` | Vercel | `VERCEL_API_KEY` | `https://api.v0.dev/v1` |\n| `vivgrid` | Vivgrid | `VIVGRID_API_KEY` | `https://api.vivgrid.com/v1` |\n| `volc_engine` | VolcEngine | `ARK_API_KEY` | `https://ark.cn-beijing.volces.com/api/v3` |\n| `vultr` | Vultr | `VULTR_API_KEY` | `https://api.vultrinference.com/v1` |\n| `wafer` | Wafer | `WAFER_API_KEY` | `https://api.wafer.ai/v1` |\n| `wandb` | Weights & Biases | `WANDB_API_KEY` | `https://api.inference.wandb.ai/v1` |\n| `xiaomi_token_plan_ams` | Xiaomi Token Plan (Europe) | `MIMO_API_KEY` | `https://token-plan-ams.xiaomimimo.com/v1` |\n| `xiaomi_token_plan_cn` | Xiaomi Token Plan (China) | `MIMO_API_KEY` | `https://token-plan-cn.xiaomimimo.com/v1` |\n| `xiaomi_token_plan_sgp` | Xiaomi Token Plan (Singapore) | `MIMO_API_KEY` | `https://token-plan-sgp.xiaomimimo.com/v1` |\n| `xiaomimimo` | Xiaomi MiMo | `XIAOMI_API_KEY` | `https://mimo.xiaomi.com/v1` |\n| `xpersona` | Xpersona | `XPERSONA_API_KEY` | `/v1` |\n| `xunfei` | Xunfei | `XUNFEI_API_PASSWORD` | `https://spark-api-open.xf-yun.com/v1` |\n| `zai` | Zai | `ZAI_API_KEY` | `https://api.z.ai/api/paas/v4` |\n| `zai_coding_plan` | Z.AI Coding Plan | `ZHIPU_API_KEY` | `https://api.z.ai/api/anthropic` |\n| `zeldoc` | Zeldoc | `ZELDOC_API_KEY` | `https://api.zeldoc.ai/v1` |\n| `zenmux` | ZenMux | `ZENMUX_API_KEY` | `https://zenmux.ai/api/v1` |\n| `zhipu_v4` | ZhipuV4 | `ZHIPU_API_KEY` | `https://open.bigmodel.cn/api/paas/v4` |\n| `zhipuai_coding_plan` | Zhipu AI Coding Plan | `ZHIPU_API_KEY` | `https://docs.bigmodel.cn/cn/coding-plan/quick-start` |\n\n## Typed factories (non-registry)\n\nThese providers are **not** name-addressable: `provider(\"anthropic\", ...)` fails with `UnknownProvider`. Use the typed entry points below (Rust type names; per-binding constructors: see [reference.md](reference.md)).\n\n### Native protocol providers\n\n| module | typed entry points |\n|--------|--------------------|\n| `anthropic` | `AnthropicConfig` / `AnthropicProvider` |\n| `anthropic_aws` | `AnthropicAwsConfig` / `AnthropicAwsProvider` |\n| `azure` | `AzureConfig` / `AzureProvider` |\n| `bedrock` | `BedrockConfig` / `BedrockProvider` |\n| `cohere` | `CohereConfig` / `CohereProvider` |\n| `google` | `GoogleConfig` / `GoogleProvider` |\n| `mistral` | `MistralConfig` / `MistralProvider` |\n| `openai` | `OpenAIConfig` / `OpenAIProvider` |\n| `vertex` | `VertexConfig` / `VertexProvider` |\n| `voyage` | `VoyageConfig` / `VoyageProvider` |\n| `openrouter` | `OpenRouterConfig` / `OpenRouterProvider` |\n| `xai` | `XAIConfig` / `XAIProvider` |\n\n### OpenAI-compatible thin wrappers (second batch)\n\n| module | typed entry points |\n|--------|--------------------|\n| `huggingface` | `HuggingFaceConfig` / `HuggingFaceProvider` |\n| `llamafile` | `LlamafileConfig` / `LlamafileProvider` |\n| `lmstudio` | `LmStudioConfig` / `LmStudioProvider` |\n| `mistralrs` | `MistralrsConfig` / `MistralrsProvider` |\n| `ollama` | `OllamaConfig` / `OllamaProvider` |\n\n### Speech-only providers (TTS)\n\n| module | typed entry points |\n|--------|--------------------|\n| `cartesia` | `CartesiaConfig` / `CartesiaProvider` |\n| `elevenlabs` | `ElevenLabsConfig` / `ElevenLabsProvider` |\n| `hume` | `HumeConfig` / `HumeProvider` |\n| `lmnt` | `LMNTConfig` / `LMNTProvider` |\n\n### Transcription-only providers (STT)\n\n| module | typed entry points |\n|--------|--------------------|\n| `assemblyai` | `AssemblyAIConfig` / `AssemblyAIProvider` |\n| `deepgram` | `DeepgramConfig` / `DeepgramProvider` |\n| `fal` | `FalConfig` / `FalProvider` |\n| `gladia` | `GladiaConfig` / `GladiaProvider` |\n| `revai` | `RevaiConfig` / `RevaiProvider` |\n\n### Image-only providers\n\n| module | typed entry points |\n|--------|--------------------|\n| `black_forest_labs` | `BlackForestLabsConfig` / `BlackForestLabsProvider` |\n| `luma` | `LumaConfig` / `LumaProvider` |\n| `prodia` | `ProdiaConfig` / `ProdiaProvider` |\n| `replicate` | `ReplicateConfig` / `ReplicateProvider` |\n\n### Video-only providers\n\n| module | typed entry points |\n|--------|--------------------|\n| `klingai` | `KlingAIConfig` / `KlingAIProvider` |\n\n### Generic Responses API wrapper\n\n| module | typed entry points |\n|--------|--------------------|\n| `open_responses` | `OpenResponsesConfig` / `OpenResponsesProvider` |\n\n### Bulk-generated thin-wrapper providers\n\n| module | typed entry points |\n|--------|--------------------|\n| `cybertron` | `CybertronConfig` / `CybertronProvider` |\n| `docker_model_runner` | `DockerModelRunnerConfig` / `DockerModelRunnerProvider` |\n| `gaudi` | `GaudiConfig` / `GaudiProvider` |\n| `jlama` | `JlamaConfig` / `JlamaProvider` |\n| `litellm_proxy` | `LitellmProxyConfig` / `LitellmProxyProvider` |\n| `llamacpp` | `LlamacppConfig` / `LlamacppProvider` |\n| `local` | `LocalConfig` / `LocalProvider` |\n| `localai` | `LocalaiConfig` / `LocalaiProvider` |\n| `mlx` | `MlxConfig` / `MlxProvider` |\n| `omlx` | `OmlxConfig` / `OmlxProvider` |\n| `onnx` | `OnnxConfig` / `OnnxProvider` |\n| `oobabooba` | `OobaboobaConfig` / `OobaboobaProvider` |\n| `openvino` | `OpenvinoConfig` / `OpenvinoProvider` |\n| `sglang` | `SglangConfig` / `SglangProvider` |\n| `vllm` | `VllmConfig` / `VllmProvider` |\n| `xinference` | `XinferenceConfig` / `XinferenceProvider` |\n\n### Modality-specific providers (non-language, e.g. rerank-only)\n\n| module | typed entry points |\n|--------|--------------------|\n| `jina_ai` | `JinaAiConfig` / `JinaAiProvider` |\n\n### AWS Polly speech (TTS) provider — SigV4 authenticated, speech modality only\n\n| module | typed entry points |\n|--------|--------------------|\n| `aws_polly` | `AwsPollyConfig` / `AwsPollyProvider` |\n\n### Recraft image provider (OpenAI Images-compatible + Recraft extension fields)\n\n| module | typed entry points |\n|--------|--------------------|\n| `recraft` | `RecraftConfig` / `RecraftProvider` |\n\n### Stability image provider (image modality only)\n\n| module | typed entry points |\n|--------|--------------------|\n| `stability` | `StabilityConfig` / `StabilityProvider` |\n\n### Video-only provider (runwayml)\n\n| module | typed entry points |\n|--------|--------------------|\n| `runwayml` | `RunwaymlConfig` / `RunwaymlProvider` |\n\n### P1 thin-wrapper providers (provider-research batch)\n\n| module | typed entry points |\n|--------|--------------------|\n| `bedrock_mantle` | `BedrockMantleConfig` / `BedrockMantleProvider` |\n\n### Vertex AI MaaS partner-model providers (OpenAI-compatible thin wrappers). Each wraps the shared OpenAIProvider against the Vertex AI MaaS OpenAPI endpoint, authenticating with a Google Cloud Bearer token\n\n| module | typed entry points |\n|--------|--------------------|\n| `vertex_ai_ai21_models` | `VertexAiAi21ModelsConfig` / `VertexAiAi21ModelsProvider` |\n| `vertex_ai_anthropic_models` | `VertexAiAnthropicModelsConfig` / `VertexAiAnthropicModelsProvider` |\n| `vertex_ai_deepseek_models` | `VertexAiDeepseekModelsConfig` / `VertexAiDeepseekModelsProvider` |\n| `vertex_ai_llama_models` | `VertexAiLlamaModelsConfig` / `VertexAiLlamaModelsProvider` |\n| `vertex_ai_minimax_models` | `VertexAiMinimaxModelsConfig` / `VertexAiMinimaxModelsProvider` |\n| `vertex_ai_mistral_models` | `VertexAiMistralModelsConfig` / `VertexAiMistralModelsProvider` |\n| `vertex_ai_moonshot_models` | `VertexAiMoonshotModelsConfig` / `VertexAiMoonshotModelsProvider` |\n| `vertex_ai_openai_models` | `VertexAiOpenaiModelsConfig` / `VertexAiOpenaiModelsProvider` |\n| `vertex_ai_qwen_models` | `VertexAiQwenModelsConfig` / `VertexAiQwenModelsProvider` |\n| `vertex_ai_zai_models` | `VertexAiZaiModelsConfig` / `VertexAiZaiModelsProvider` |\n\n### Search-only providers (web search modality)\n\n| module | typed entry points |\n|--------|--------------------|\n| `dataforseo` | `DataforseoConfig` / `DataforseoProvider` |\n| `exa_ai` | `ExaAiConfig` / `ExaAiProvider` |\n| `firecrawl` | `FirecrawlConfig` / `FirecrawlProvider` |\n| `google_pse` | `GooglePseConfig` / `GooglePseProvider` |\n| `linkup` | `LinkupConfig` / `LinkupProvider` |\n| `parallel_ai` | `ParallelAiConfig` / `ParallelAiProvider` |\n| `searxng` | `SearxngConfig` / `SearxngProvider` |\n| `serper` | `SerperConfig` / `SerperProvider` |\n| `tavily` | `TavilyConfig` / `TavilyProvider` |\n| `tinyfish` | `TinyfishConfig` / `TinyfishProvider` |\n| `you_com` | `YouComConfig` / `YouComProvider` |\n"}, "1b3e3618ec8c3c7d617087474f15f50e0cba4e0d": {"t": 1785846958.7464194, "n": 28826, "h": "2eee83709f6a505d", "c": "# aimux providers\n\n> **GENERATED** by `scripts/gen_providers_doc.py` — do not edit by hand.\n> Regenerate with: `python scripts/gen_providers_doc.py`\n\n**251 registry-backed OpenAI-compatible providers** (construct via `provider(name, ...)` / `ProviderName`) + **76 non-registry providers** (construct via the typed factories listed below).\n\n## Registry-backed (OpenAI-compatible) — 250\n\n| name | display | env var | base_url |\n|------|---------|---------|----------|\n| `abacus` | Abacus | `ABACUS_API_KEY` | `https://routellm.abacus.ai/v1` |\n| `abliteration_ai` | Abliteration AI | `ABLIT_KEY` | `https://api.abliteration.ai/v1` |\n| `ai21` | AI21 Labs | `AI21_API_KEY` | `https://api.ai21.ai/v1` |\n| `ai302` | 302.AI | `AI302_API_KEY` | `https://api.302.ai/v1` |\n| `ai_router` | AI-ROUTER | `AI_ROUTER_API_KEY` | `https://api.ai-router.dev/v1` |\n| `aiand` | AIand | `AIAND_API_KEY` | `https://api.aiand.com/v1` |\n| `aibadgr` | AI Badgr | `AIBADGR_API_KEY` | `https://api.aibadgr.com/v1` |\n| `aigc2d` | AIGC2D | `AIGC2D_API_KEY` | `https://api.aigc2d.com/v1` |\n| `aihubmix` | AIHubMix | `AIHUBMIX_API_KEY` | `https://aihubmix.com/v1` |\n| `ails` | AILS | `AILS_API_KEY` | `https://api.caipacity.com/v1` |\n| `aiml` | AI/ML API | `AIML_API_KEY` | `https://api.aimlapi.com/v1` |\n| `aki_io` | AKI.IO | `AKI_IO_API_KEY` | `https://aki.io/openai/v1` |\n| `albert` | Albert | `ALBERT_API_KEY` | `https://api.albert.ai/v1` |\n| `alibaba` | Alibaba Cloud (DashScope) | `ALIBABA_API_KEY` | `https://dashscope-intl.aliyuncs.com/compatible-mode/v1` |\n| `alibaba_coding_plan` | Alibaba Coding Plan | `ALIBABA_CODING_PLAN_API_KEY` | `https://coding-intl.dashscope.aliyuncs.com/v1` |\n| `alibaba_coding_plan_cn` | Alibaba Coding Plan (China) | `ALIBABA_CODING_PLAN_API_KEY` | `https://coding.dashscope.aliyuncs.com/v1` |\n| `alibaba_token_plan` | Alibaba Token Plan | `ALIBABA_TOKEN_PLAN_API_KEY` | `https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1` |\n| `alibaba_token_plan_cn` | Alibaba Token Plan (China) | `ALIBABA_TOKEN_PLAN_API_KEY` | `https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1` |\n| `ambient` | Ambient | `AMBIENT_API_KEY` | `https://api.ambient.xyz/v1` |\n| `anyapi` | AnyAPI | `ANYAPI_KEY` | `https://api.anyapi.ai/v1` |\n| `anyscale` | Anyscale | `ANYSCALE_API_KEY` | `https://api.endpoints.anyscale.com/v1` |\n| `apertis` | Apertis | `STIMA_API_KEY` | `https://api.stima.tech/v1` |\n| `api2d` | API2D | `API2D_API_KEY` | `https://oa.api2d.net/v1` |\n| `api2gpt` | API2GPT | `API2GPT_API_KEY` | `https://api.api2gpt.com/v1` |\n| `apiserpent` | API Serpent | `APISERPENT_API_KEY` | `https://api.apiserpent.com/v1` |\n| `atlascloud` | AtlasCloud | `ATLASCLOUD_API_KEY` | `https://api.atlascloud.com/v1` |\n| `atomic_chat` | Atomic Chat | `ATOMIC_CHAT_API_KEY` | `http://127.0.0.1:1337/v1` |\n| `auriko` | Auriko | `AURIKO_API_KEY` | `https://api.auriko.ai/v1` |\n| `azure_ai` | Azure AI | `AZURE_AI_API_KEY` | `https://models.inference.ai.azure.com` |\n| `baichuan` | Baichuan AI | `BAICHUAN_API_KEY` | `https://api.baichuan-ai.com/v1` |\n| `baidu` | Baidu (文心/ERNIE) | `BAIDU_API_KEY` | `https://qianfan.baidubce.com/v2` |\n| `baidu_v2` | BaiduV2 | `QIANFAN_API_KEY` | `https://qianfan.baidubce.com/v2` |\n| `bailing` | Bailing | `BAILING_API_TOKEN` | `https://api.ant-ling.com/v1` |\n| `baseten` | Baseten | `BASETEN_API_KEY` | `https://inference.baseten.co/v1` |\n| `berget` | Berget.AI | `BERGET_API_KEY` | `https://api.berget.ai/v1` |\n| `bigmodel` | BigModel (智谱) | `BIGMODEL_API_KEY` | `https://open.bigmodel.cn/api/paas/v4` |\n| `blueclaw` | Blue Claw | `BLUECLAW_API_KEY` | `https://openai.blueclaw.network/v1` |\n| `bytedance` | ByteDance | `ARK_API_KEY` | `https://ark.cn-beijing.volces.com/api/v3` |\n| `byteplus` | BytePlus (Volcano) | `BYTEPLUS_API_KEY` | `https://ark.bytepluses.com/api/v3` |\n| `bytez` | Bytez | `BYTEZ_API_KEY` | `https://api.bytez.com/v2` |\n| `canopywave` | Canopywave | `CANOPYWAVE_API_KEY` | `https://api.canopywave.com/v1` |\n| `cerebras` | Cerebras | `CEREBRAS_API_KEY` | `https://api.cerebras.ai/v1` |\n| `chatgpt` | ChatGPT (订阅) | `CHATGPT_API_KEY` | `https://chatgpt.com/backend-api/codex` |\n| `cherryin` | cherryin | `CHERRYIN_API_KEY` | `https://open.cherryin.net` |\n| `chutes` | Chutes | `CHUTES_API_KEY` | `https://llm.chutes.ai/v1` |\n| `clarifai` | Clarifai | `CLARIFAI_API_KEY` | `https://api.clarifai.com/v2/ext/openai/v1` |\n| `claudinio` | Claudinio | `CLAUDINIO_API_KEY` | `https://api.claudin.io` |\n| `cline_pass` | Cline | `CLINE_API_KEY` | `https://api.cline.bot/v1` |\n| `closeai` | CloseAI | `CLOSEAI_API_KEY` | `https://api.closeai-proxy.xyz/v1` |\n| `cloudferro_sherlock` | CloudFerro Sherlock | `CLOUDFERRO_SHERLOCK_API_KEY` | `https://api-sherlock.cloudferro.com/openai/v1` |\n| `cloudflare` | Cloudflare | `CLOUDFLARE_API_KEY` | `https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1` |\n| `cloudflare_workers_ai` | Cloudflare Workers AI | `CLOUDFLARE_API_KEY` | `https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1` |\n| `codestral` | Codestral (Mistral) | `CODESTRAL_API_KEY` | `https://api.mistral.ai/v1` |\n| `cometapi` | CometAPI | `COMETAPI_API_KEY` | `https://api.cometapi.com/v1` |\n| `commandcode` | CommandCode | `COMMANDCODE_API_KEY` | `https://api.commandcode.com/v1` |\n| `compactifai` | CompactifAI | `COMPACTIFAI_API_KEY` | `https://api.compactif.ai/v1` |\n| `copilot` | GitHub Copilot | `COPILOT_API_KEY` | `https://api.githubcopilot.com` |\n| `cortecs` | Cortecs | `CORTECS_API_KEY` | `https://api.cortecs.ai/v1/` |\n| `coze` | Coze (扣子) | `COZE_API_KEY` | `https://api.coze.cn/v1` |\n| `crof` | CrofAI | `CROF_API_KEY` | `https://crof.ai/v1` |\n| `crossmodel` | CrossModel | `CROSSMODEL_API_KEY` | `https://api.crossmodel.ai/v1` |\n| `crusoe` | Crusoe | `CRUSOE_API_KEY` | `https://api.inference.crusoecloud.com/v1` |\n| `daoxe` | DaoXE | `DAOXE_API_KEY` | `https://daoxe.com/v1` |\n| `darkbloom` | Darkbloom | `DARKBLOOM_API_KEY` | `https://api.darkbloom.dev/v1` |\n| `databricks` | Databricks | `DATABRICKS_API_KEY` | `https://databricks.com/serving-endpoints` |\n| `datarobot` | DataRobot | `DATAROBOT_API_TOKEN` | `https://app.datarobot.com/api/v2` |\n| `deepbricks` | DeepBricks | `DEEPBRICKS_API_KEY` | `https://api.deepbricks.ai/v1` |\n| `deepinfra` | DeepInfra | `DEEPINFRA_API_KEY` | `https://api.deepinfra.com/v1/openai` |\n| `deepseek` | DeepSeek | `DEEPSEEK_API_KEY` | `https://api.deepseek.com/v1` |\n| `digitalocean` | DigitalOcean | `DIGITALOCEAN_ACCESS_TOKEN` | `https://inference.do-ai.run` |\n| `dinference` | DInference | `DINFERENCE_API_KEY` | `https://api.dinference.com/v1` |\n| `doubao` | Doubao | `ARK_API_KEY` | `https://ark.cn-beijing.volces.com/api/v3` |\n| `doubleword` | Doubleword | `DOUBLEWORD_API_KEY` | `https://api.doubleword.ai/v1` |\n| `drun` | D.Run (China) | `DRUN_API_KEY` | `https://chat.d.run/v1` |\n| `ebcloud` | EBCloud | `EBCLOUD_API_KEY` | `https://maas-api.ebcloud.com/v1` |\n| `embercloud` | Embercloud | `EMBERCLOUD_API_KEY` | `https://api.embercloud.com/v1` |\n| `empiriolabs` | EmpirioLabs AI | `EMPIRIOLABS_API_KEY` | `https://api.empiriolabs.ai/v1` |\n| `evroc` | evroc | `EVROC_API_KEY` | `https://models.think.evroc.com/v1` |\n| `fastcrw` | FastCRW | `FASTCRW_API_KEY` | `https://fastcrw.com/api/v1` |\n| `fastgpt` | FastGPT | `FASTGPT_API_KEY` | `https://api.fastgpt.in/v1` |\n| `fastrouter` | FastRouter | `FASTROUTER_API_KEY` | `https://api.fastrouter.ai/v1` |\n| `featherless_ai` | Featherless AI | `FEATHERLESS_API_KEY` | `https://api.featherless.ai/v1` |\n| `firepass` | Fireworks (Firepass) | `FIREWORKS_API_KEY` | `https://api.fireworks.ai/inference/v1` |\n| `fireworks` | Fireworks | `FIREWORKS_API_KEY` | `https://api.fireworks.ai/inference/v1` |\n| `freemodel` | FreeModel | `FREEMODEL_API_KEY` | `https://api.freemodel.dev/v1` |\n| `friendliai` | FriendliAI | `FRIENDLIAI_API_KEY` | `https://inference.friendli.ai/v1` |\n| `frogbot` | FrogBot | `FROGBOT_API_KEY` | `https://app.frogbot.ai/api/v1` |\n| `galadriel` | Galadriel | `GALADRIEL_API_KEY` | `https://api.galadriel.com/v1` |\n| `gdc` | GDC | `GDC_API_KEY` | `https://api.gdc.ai/v1` |\n| `gigachat` | GigaChat (Sberbank) | `GIGACHAT_API_KEY` | `https://gigachat.devices.sberbank.ru/api/v1` |\n| `github` | GitHub Models | `GITHUB_TOKEN` | `https://models.inference.ai.azure.com` |\n| `gmi` | GMI | `GMI_API_KEY` | `https://api.gmi-serving.com/v1` |\n| `gmicloud` | GMI Cloud | `GMI_API_KEY` | `https://api.gmi-serving.com/v1` |\n| `gonka24` | Gonka24 | `GONKA24_API_KEY` | `https://api.gonka24.com/v1` |\n| `gradient_ai` | Gradient AI | `GRADIENT_API_KEY` | `https://inference.do-ai.run/v1` |\n| `groq` | Groq | `GROQ_API_KEY` | `https://api.groq.com/openai/v1` |\n| `helicone` | Helicone | `HELICONE_API_KEY` | `https://api.helicone.ai/v1` |\n| `heroku` | Heroku AI | `HEROKU_API_KEY` | `https://api.heroku.com/inference/v1` |\n| `hetzner` | Hetzner | `HETZNER_VLLM_API_KEY` | `https://inference.hetzner.com/api/v1` |\n| `hosted_vllm` | Hosted vLLM | `HOSTED_VLLM_API_KEY` | `https://hosted-vllm-api.com/v1` |\n| `hpc_ai` | HPC-AI | `INFERENCE_API_KEY` | `https://api.hpc-ai.com/inference/v1` |\n| `hyperbolic` | Hyperbolic | `HYPERBOLIC_API_KEY` | `https://api.hyperbolic.xyz/v1` |\n| `iflowcn` | iFlow | `IFLOW_API_KEY` | `https://apis.iflow.cn/v1` |\n| `inception` | Inception Labs | `INCEPTION_API_KEY` | `https://api.inceptionlabs.ai/v1` |\n| `inceptron` | Inceptron | `INCEPTRON_API_KEY` | `https://api.inceptron.io/v1` |\n| `inference_net` | Inference.net | `INFERENCE_NET_API_KEY` | `https://api.inference.net/v1` |\n| `inferencehub` | InferenceHub | `INFERENCEHUB_API_KEY` | `https://app.inferencehub.tech/v1` |\n| `inferx` | InferX | `INFERX_API_KEY` | `https://model.inferx.net/v1` |\n| `infinity` | Infinity AI | `INFINITY_API_KEY` | `https://infinity.ai/api/v1` |\n| `io_net` | IO.NET | `IOINTELLIGENCE_API_KEY` | `https://api.intelligence.io.solutions/api/v1` |\n| `jiekou` | Jiekou.AI | `JIEKOU_API_KEY` | `https://api.highwayapi.ai/openai` |\n| `kenari` | Kenari | `KENARI_API_KEY` | `https://kenari.id/v1` |\n| `kilo` | Kilo | `KILO_API_KEY` | `https://api.kilo.ai/v1` |\n| `kimi` | Kimi | `MOONSHOT_API_KEY` | `https://api.moonshot.ai/v1` |\n| `kimi_for_coding` | Kimi For Coding | `KIMI_API_KEY` | `https://api.kimi.com/coding/v1` |\n| `kiro` | Kiro | `KIRO_API_KEY` | `https://api.kiro.dev/v1` |\n| `kluster_ai` | Kluster AI | `KLUSTER_API_KEY` | `https://api.kluster.ai/v1` |\n| `krutrim` | Krutrim | `KRUTRIM_API_KEY` | `https://api.krutrim.ai/v1` |\n| `kuae_cloud_coding_plan` | KUAE Cloud Coding Plan | `KUAE_API_KEY` | `https://coding-plan-endpoint.kuaecloud.net/v1` |\n| `lambda_ai` | Lambda AI | `LAMBDA_API_KEY` | `https://api.lambda.ai/v1` |\n| `lemonade` | Lemonade | `LEMONADE_API_KEY` | `http://localhost:13305/v1` |\n| `lemonfox_ai` | Lemonfox AI | `LEMONFOX_API_KEY` | `https://api.lemonfox.ai/v1` |\n| `libertai` | Libertai | `LIBERTAI_API_KEY` | `https://api.libertai.io/v1` |\n| `lilac` | Lilac | `LILAC_API_KEY` | `https://api.getlilac.com/v1` |\n| `lingyiwanwu` | Lingyiwanwu (零一万物) | `LINGYIWANWU_API_KEY` | `https://api.lingyiwanwu.com/v1` |\n| `llama` | Llama | `LLAMA_API_KEY` | `https://api.llama.com/compat/v1/` |\n| `llamagate` | Llamagate | `LLAMAGATE_API_KEY` | `https://api.llamagate.dev/v1` |\n| `llmgateway` | LLM Gateway | `LLM_GATEWAY_API_KEY` | `https://api.llmgateway.io/v1` |\n| `llmtr` | LLMTR | `LLMTR_API_KEY` | `https://llmtr.com/v1` |\n| `longcat` | LongCat | `LONGCAT_API_KEY` | `https://api.longcat.chat/v1` |\n| `lucidquery` | LucidQuery | `LUCIDQUERY_API_KEY` | `https://api.lucidquery.com/v1` |\n| `lynkr` | Lynkr | `LYNKR_API_KEY` | `http://localhost:8081/v1` |\n| `matterai` | Matter AI | `MATTERAI_API_KEY` | `https://api.matterai.com/v1` |\n| `meganova` | Meganova | `MEGANOVA_API_KEY` | `https://api.meganova.ai/v1` |\n| `merge_gateway` | Merge Gateway | `MERGE_GATEWAY_API_KEY` | `https://api-gateway.merge.dev/v1/openai` |\n| `meta` | Meta | `MODEL_API_KEY` | `https://api.meta.ai/v1` |\n| `meta_llama` | Meta Llama API | `LLAMA_API_KEY` | `https://api.llama.com/compat/v1` |\n| `mimo` | Mimo | `MIMO_API_KEY` | `https://api.xiaomimimo.com/v1` |\n| `minimax` | MiniMax | `MINIMAX_API_KEY` | `https://api.minimax.io/v1` |\n| `minimax_cn` | MiniMax (minimaxi.com) | `MINIMAX_API_KEY` | `https://api.minimaxi.com/v1` |\n| `minimax_cn_coding_plan` | MiniMax Token Plan (minimaxi.com) | `MINIMAX_API_KEY` | `https://api.minimaxi.com/v1` |\n| `minimax_coding_plan` | MiniMax Token Plan (minimax.io) | `MINIMAX_API_KEY` | `https://api.minimax.io/anthropic/v1` |\n| `mira` | Mira | `MIRA_API_KEY` | `https://api.mira.so/v1` |\n| `mixlayer` | Mixlayer | `MIXLAYER_API_KEY` | `https://models.mixlayer.ai/v1` |\n| `moark` | Moark | `MOARK_API_KEY` | `https://api.moark.com/v1` |\n| `modal` | Modal | `MODAL_API_KEY` | `https://modal.com/v1` |\n| `model_oracle_ai` | Model Oracle AI | `MODEL_ORACLE_API_KEY` | `https://api.modeloracle.com/api/v1` |\n| `modelscope` | ModelScope | `MODELSCOPE_API_KEY` | `https://api-inference.modelscope.cn/v1` |\n| `moonshotai` | Moonshot AI | `MOONSHOT_API_KEY` | `https://api.moonshot.cn/v1` |\n| `moonshotai_cn` | Moonshot AI (China) | `MOONSHOT_API_KEY` | `https://api.moonshot.cn/anthropic/v1(Anthropic` |\n| `morph` | Morph LLM | `MORPH_API_KEY` | `https://api.morphllm.com/v1` |\n| `nanogpt` | NanoGPT | `NANOGPT_API_KEY` | `https://api.nanogpt.com/v1` |\n| `ncompass` | Ncompass | `NCOMPASS_API_KEY` | `https://api.ncompass.tech/v1` |\n| `nearai` | NEAR AI Cloud | `NEARAI_API_KEY` | `https://cloud-api.near.ai/v1` |\n| `nebius` | Nebius AI | `NEBIUS_API_KEY` | `https://api.studio.nebius.ai/v1` |\n| `neon` | Neon | `NEON_AI_GATEWAY_TOKEN` | `https:///v1` |\n| `neuralwatt` | Neuralwatt | `NEURALWATT_API_KEY` | `https://api.neuralwatt.com/v1` |\n| `nextbit` | NextBit | `NEXTBIT_API_KEY` | `https://api.nextbit.ai/v1` |\n| `nlp_cloud` | NLP Cloud | `NLPCLOUD_API_KEY` | `https://api.nlpcloud.io/v1` |\n| `nous_research` | Nous Research | `NOUS_API_KEY` | `https://api.nousresearch.com/v1` |\n| `novita` | Novita AI | `NOVITA_API_KEY` | `https://api.novita.ai/v1` |\n| `nscale` | Nscale | `NSCALE_API_KEY` | `https://inference.api.nscale.com/v1` |\n| `nvidia_nim` | NVIDIA NIM | `NVIDIA_API_KEY` | `https://integrate.api.nvidia.com/v1` |\n| `oci` | OCI | `OCI_API_KEY` | `https://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1` |\n| `ofox` | OfoxAI | `OFOX_API_KEY` | `https://api.ofox.ai/v1` |\n| `ohmygpt` | OhMyGPT | `OHMYGPT_API_KEY` | `https://api.ohmygpt.com/v1` |\n| `ollama_cloud` | Ollama Cloud | `OLLAMA_CLOUD_API_KEY` | `https://api.ollama.com/v1` |\n| `openaimax` | OpenAIMax | `OPENAIMAX_API_KEY` | `https://api.openaimax.com/v1` |\n| `openaisb` | OpenAI-SB | `OPENAISB_API_KEY` | `https://api.openaisb.com/v1` |\n| `opencode` | OpenCode Zen | `OPENCODE_API_KEY` | `https://api.opencode.zen/v1` |\n| `opencode_go` | OpenCode Go | `OPENCODE_GO_API_KEY` | `https://api.opencode.dev/v1` |\n| `opencode_zen` | OpenCode Zen | `OPENCODE_ZEN_API_KEY` | `https://api.opencode.zen/v1` |\n| `orcarouter` | OrcaRouter | `ORCAROUTER_API_KEY` | `https://api.orcarouter.com/v1` |\n| `ovhcloud` | OVHcloud AI | `OVHCLOUD_API_KEY` | `https://oai.endpoints.kepler.ai.cloud.ovh.net/v1` |\n| `parasail` | Parasail | `PARASAIL_API_KEY` | `https://api.parasail.io/v1` |\n| `perfxcloud` | PerfXCloud | `PERFXCLOUD_API_KEY` | `https://api.perfxcloud.com/v1` |\n| `perplexity` | Perplexity | `PERPLEXITY_API_KEY` | `https://api.perplexity.ai` |\n| `perplexity_agent` | Perplexity Agent | `PERPLEXITY_API_KEY` | `https://api.perplexity.ai/v1` |\n| `petals` | Petals | `PETALS_API_KEY` | `https://api.petals.dev/v1` |\n| `pinstripes` | Pinstripes | `PINSTRIPES_API_KEY` | `https://api.pinstripes.io/v1` |\n| `pioneer` | Pioneer | `PIONEER_API_KEY` | `https://api.pioneer.ai/v1` |\n| `poe` | Poe | `POE_API_KEY` | `https://api.poe.com/v1` |\n| `poolside` | Poolside | `POOLSIDE_API_KEY` | `https://inference.poolside.ai/v1` |\n| `portkey` | Portkey Gateway | `PORTKEY_API_KEY` | `https://api.portkey.ai/v1` |\n| `ppinfra` | PPInfra(PPIO 派欧云) | `PPIO_API_KEY` | `https://api.ppio.com/openai` |\n| `predibase` | Predibase | `PREDIBASE_API_KEY` | `https://serving.app.predibase.com/v1` |\n| `privatemode_ai` | Privatemode AI | `PRIVATEMODE_API_KEY` | `http://localhost:8080/v1` |\n| `publicai` | Publicai | `PUBLICAI_API_KEY` | `https://platform.publicai.co/v1` |\n| `qihang_ai` | QiHang(启航 AI) | `QIHANG_API_KEY` | `https://api.qhaigc.net/v1` |\n| `qihoo360` | 360 AI | `AI360_API_KEY` | `https://api.360.cn/v1` |\n| `qiniu_ai` | Qiniu AI | `QINIU_API_KEY` | `https://api.qiniu.com/v1` |\n| `regolo_ai` | Regolo AI | `REGOLO_API_KEY` | `https://api.regolo.ai/v1` |\n| `reka_ai` | Reka AI | `REKA_API_KEY` | `https://api.reka.ai/v1` |\n| `requesty` | Requesty | `REQUESTY_API_KEY` | `https://api.requesty.ai/v1` |\n| `reve` | Reve | `REVE_API_KEY` | `https://api.reve.ai/v1` |\n| `routing_run` | routing.run | `ROUTING_RUN_API_KEY` | `https://api.routing.run/v1` |\n| `sakana` | Sakana AI | `SAKANA_API_KEY` | `https://api.sakana.ai/v1` |\n| `sambanova` | SambaNova | `SAMBANOVA_API_KEY` | `https://api.sambanova.ai/v1` |\n| `sarvam` | Sarvam AI | `SARVAM_API_KEY` | `https://api.sarvam.ai/v1` |\n| `scaleway` | Scaleway AI | `SCALEWAY_API_KEY` | `https://api.scaleway.ai/v1` |\n| `scx_ai` | SCX AI | `SCX_AI_API_KEY` | `https://api.scx.ai/v1` |\n| `siliconflow` | SiliconFlow | `SILICONFLOW_API_KEY` | `https://api.siliconflow.cn/v1` |\n| `snowflake` | Snowflake | `SNOWFLAKE_PAT` | `https://.snowflakecomputing.com/api/v2/cortex/v1` |\n| `snowflake_cortex` | Snowflake Cortex | `SNOWFLAKE_CORTEX_PAT` | `https://.snowflakecomputing.com/api/v2/cortex/v1` |\n| `stackit` | STACKIT | `STACKIT_API_KEY` | `https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1` |\n| `stepfun` | StepFun (阶跃星辰) | `STEPFUN_API_KEY` | `https://api.stepfun.com/v1` |\n| `stepfun_ai_step_plan` | StepFun Step Plan (Global) | `STEPFUN_API_KEY` | `https://api.stepfun.ai/step_plan/v1` |\n| `stepfun_step_plan` | StepFun Step Plan (China) | `STEPFUN_API_KEY` | `https://api.stepfun.com/step_plan/v1` |\n| `subconscious` | Subconscious | `SUBCONSCIOUS_API_KEY` | `https://api.subconscious.dev/v1` |\n| `submodel` | SubModel | `SUBMODEL_API_KEY` | `https://api.submodel.com/v1` |\n| `synthetic` | Synthetic | `SYNTHETIC_API_KEY` | `https://api.synthetic.new/openai/v1` |\n| `tencent` | Tencent (混元/Hunyuan) | `TENCENT_API_KEY` | `https://api.hunyuan.cloud.tencent.com/v1` |\n| `tencent_coding_plan` | Tencent Coding Plan (China) | `TENCENT_CODING_PLAN_API_KEY` | `https://api.lkeap.cloud.tencent.com/coding/v3` |\n| `tencent_token_plan` | Tencent Token Plan | `TENCENT_TOKEN_PLAN_API_KEY` | `https://api.lkeap.cloud.tencent.com/plan/v3` |\n| `tencent_token_plan_enterprise_auto` | 腾讯云 Token Plan / Token Plan 企业版轻享套餐 | `TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY` | `https://tokenhub.tencentmaas.com/plan/v3` |\n| `tencent_token_plan_enterprise_pro` | 腾讯云 Token Plan / Token Plan 企业版专业套餐 | `TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY` | `https://tokenhub.tencentmaas.com/plan/v3` |\n| `tencent_token_plan_general_personal` | 腾讯云 Token Plan / 通用 Token Plan(个人版) | `TENCENT_TOKEN_PLAN_API_KEY` | `https://api.lkeap.cloud.tencent.com/plan/v3` |\n| `tencent_token_plan_hy_personal` | 腾讯云 Token Plan / Hy Token Plan(个人版) | `TENCENT_TOKEN_PLAN_API_KEY` | `https://api.lkeap.cloud.tencent.com/plan/v3` |\n| `tencent_tokenhub` | Tencent TokenHub | `TENCENT_TOKENHUB_API_KEY` | `https://tokenhub.tencentmaas.com/v1` |\n| `tensormesh` | Tensormesh | `YOUR_API_KEY` | `https://serverless.tensormesh.ai` |\n| `the_grid_ai` | The Grid AI | `THEGRIDAI_API_KEY` | `https://thegrid.ai/docs` |\n| `thinkingmachines` | Thinking Machines | `TINKER_API_KEY` | `https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1` |\n| `tinfoil` | Tinfoil | `TINFOIL_API_KEY` | `https://inference.tinfoil.sh/v1` |\n| `togetherai` | Together AI | `TOGETHER_API_KEY` | `https://api.together.xyz/v1` |\n| `tokenflux` | Tokenflux | `TOKENFLUX_API_KEY` | `https://tokenflux.ai/v1` |\n| `tokenpony` | TokenPony | `TOKENPONY_API_KEY` | `https://api.tokenpony.com/v1` |\n| `trustedrouter` | TrustedRouter | `TRUSTEDROUTER_API_KEY` | `https://api.trustedrouter.com/v1` |\n| `tundra` | Tundra | `TUNDRA_API_KEY` | `https://api.tundra.ai/v1` |\n| `umans_ai` | Umans AI | `UMANS_AI_API_KEY` | `https://api.code.umans.ai/v1` |\n| `unorouter` | UnoRouter | `UNOROUTER_API_KEY` | `https://unorouter.com/en` |\n| `upstage` | Upstage | `UPSTAGE_API_KEY` | `https://api.upstage.ai/v1` |\n| `v0` | v0 (Vercel) | `V0_API_KEY` | `https://api.v0.dev/v1` |\n| `venice` | Venice | `VENICE_API_KEY` | `https://api.venice.ai/api/v1` |\n| `vercel` | Vercel | `VERCEL_API_KEY` | `https://api.v0.dev/v1` |\n| `vivgrid` | Vivgrid | `VIVGRID_API_KEY` | `https://api.vivgrid.com/v1` |\n| `volc_engine` | VolcEngine | `ARK_API_KEY` | `https://ark.cn-beijing.volces.com/api/v3` |\n| `vultr` | Vultr | `VULTR_API_KEY` | `https://api.vultrinference.com/v1` |\n| `wafer` | Wafer | `WAFER_API_KEY` | `https://api.wafer.ai/v1` |\n| `wandb` | Weights & Biases | `WANDB_API_KEY` | `https://api.inference.wandb.ai/v1` |\n| `xiaomi_token_plan_ams` | Xiaomi Token Plan (Europe) | `MIMO_API_KEY` | `https://token-plan-ams.xiaomimimo.com/v1` |\n| `xiaomi_token_plan_cn` | Xiaomi Token Plan (China) | `MIMO_API_KEY` | `https://token-plan-cn.xiaomimimo.com/v1` |\n| `xiaomi_token_plan_sgp` | Xiaomi Token Plan (Singapore) | `MIMO_API_KEY` | `https://token-plan-sgp.xiaomimimo.com/v1` |\n| `xiaomimimo` | Xiaomi MiMo | `XIAOMI_API_KEY` | `https://mimo.xiaomi.com/v1` |\n| `xpersona` | Xpersona | `XPERSONA_API_KEY` | `/v1` |\n| `xunfei` | Xunfei | `XUNFEI_API_PASSWORD` | `https://spark-api-open.xf-yun.com/v1` |\n| `zai` | Zai | `ZAI_API_KEY` | `https://api.z.ai/api/paas/v4` |\n| `zai_coding_plan` | Z.AI Coding Plan | `ZHIPU_API_KEY` | `https://api.z.ai/api/anthropic` |\n| `zeldoc` | Zeldoc | `ZELDOC_API_KEY` | `https://api.zeldoc.ai/v1` |\n| `zenmux` | ZenMux | `ZENMUX_API_KEY` | `https://zenmux.ai/api/v1` |\n| `zhipu_v4` | ZhipuV4 | `ZHIPU_API_KEY` | `https://open.bigmodel.cn/api/paas/v4` |\n| `zhipuai_coding_plan` | Zhipu AI Coding Plan | `ZHIPU_API_KEY` | `https://docs.bigmodel.cn/cn/coding-plan/quick-start` |\n\n## Typed factories (non-registry)\n\nThese providers are **not** name-addressable: `provider(\"anthropic\", ...)` fails with `UnknownProvider`. Use the typed entry points below (Rust type names; per-binding constructors: see [reference.md](reference.md)).\n\n### Native protocol providers\n\n| module | typed entry points |\n|--------|--------------------|\n| `anthropic` | `AnthropicConfig` / `AnthropicProvider` |\n| `anthropic_aws` | `AnthropicAwsConfig` / `AnthropicAwsProvider` |\n| `azure` | `AzureConfig` / `AzureProvider` |\n| `bedrock` | `BedrockConfig` / `BedrockProvider` |\n| `cohere` | `CohereConfig` / `CohereProvider` |\n| `google` | `GoogleConfig` / `GoogleProvider` |\n| `mistral` | `MistralConfig` / `MistralProvider` |\n| `openai` | `OpenAIConfig` / `OpenAIProvider` |\n| `vertex` | `VertexConfig` / `VertexProvider` |\n| `voyage` | `VoyageConfig` / `VoyageProvider` |\n| `codex` | `CodexConfig` / `CodexProvider` |\n| `openrouter` | `OpenRouterConfig` / `OpenRouterProvider` |\n| `xai` | `XAIConfig` / `XAIProvider` |\n\n### OpenAI-compatible thin wrappers (second batch)\n\n| module | typed entry points |\n|--------|--------------------|\n| `huggingface` | `HuggingFaceConfig` / `HuggingFaceProvider` |\n| `llamafile` | `LlamafileConfig` / `LlamafileProvider` |\n| `lmstudio` | `LmStudioConfig` / `LmStudioProvider` |\n| `mistralrs` | `MistralrsConfig` / `MistralrsProvider` |\n| `ollama` | `OllamaConfig` / `OllamaProvider` |\n\n### Speech-only providers (TTS)\n\n| module | typed entry points |\n|--------|--------------------|\n| `cartesia` | `CartesiaConfig` / `CartesiaProvider` |\n| `elevenlabs` | `ElevenLabsConfig` / `ElevenLabsProvider` |\n| `hume` | `HumeConfig` / `HumeProvider` |\n| `lmnt` | `LMNTConfig` / `LMNTProvider` |\n\n### Transcription-only providers (STT)\n\n| module | typed entry points |\n|--------|--------------------|\n| `assemblyai` | `AssemblyAIConfig` / `AssemblyAIProvider` |\n| `deepgram` | `DeepgramConfig` / `DeepgramProvider` |\n| `fal` | `FalConfig` / `FalProvider` |\n| `gladia` | `GladiaConfig` / `GladiaProvider` |\n| `revai` | `RevaiConfig` / `RevaiProvider` |\n\n### Image-only providers\n\n| module | typed entry points |\n|--------|--------------------|\n| `black_forest_labs` | `BlackForestLabsConfig` / `BlackForestLabsProvider` |\n| `luma` | `LumaConfig` / `LumaProvider` |\n| `prodia` | `ProdiaConfig` / `ProdiaProvider` |\n| `replicate` | `ReplicateConfig` / `ReplicateProvider` |\n\n### Video-only providers\n\n| module | typed entry points |\n|--------|--------------------|\n| `klingai` | `KlingAIConfig` / `KlingAIProvider` |\n\n### Generic Responses API wrapper\n\n| module | typed entry points |\n|--------|--------------------|\n| `open_responses` | `OpenResponsesConfig` / `OpenResponsesProvider` |\n\n### Bulk-generated thin-wrapper providers\n\n| module | typed entry points |\n|--------|--------------------|\n| `cybertron` | `CybertronConfig` / `CybertronProvider` |\n| `docker_model_runner` | `DockerModelRunnerConfig` / `DockerModelRunnerProvider` |\n| `gaudi` | `GaudiConfig` / `GaudiProvider` |\n| `jlama` | `JlamaConfig` / `JlamaProvider` |\n| `litellm_proxy` | `LitellmProxyConfig` / `LitellmProxyProvider` |\n| `llamacpp` | `LlamacppConfig` / `LlamacppProvider` |\n| `local` | `LocalConfig` / `LocalProvider` |\n| `localai` | `LocalaiConfig` / `LocalaiProvider` |\n| `mlx` | `MlxConfig` / `MlxProvider` |\n| `omlx` | `OmlxConfig` / `OmlxProvider` |\n| `onnx` | `OnnxConfig` / `OnnxProvider` |\n| `oobabooba` | `OobaboobaConfig` / `OobaboobaProvider` |\n| `openvino` | `OpenvinoConfig` / `OpenvinoProvider` |\n| `sglang` | `SglangConfig` / `SglangProvider` |\n| `vllm` | `VllmConfig` / `VllmProvider` |\n| `xinference` | `XinferenceConfig` / `XinferenceProvider` |\n\n### Modality-specific providers (non-language, e.g. rerank-only)\n\n| module | typed entry points |\n|--------|--------------------|\n| `jina_ai` | `JinaAiConfig` / `JinaAiProvider` |\n\n### AWS Polly speech (TTS) provider — SigV4 authenticated, speech modality only\n\n| module | typed entry points |\n|--------|--------------------|\n| `aws_polly` | `AwsPollyConfig` / `AwsPollyProvider` |\n\n### Recraft image provider (OpenAI Images-compatible + Recraft extension fields)\n\n| module | typed entry points |\n|--------|--------------------|\n| `recraft` | `RecraftConfig` / `RecraftProvider` |\n\n### Stability image provider (image modality only)\n\n| module | typed entry points |\n|--------|--------------------|\n| `stability` | `StabilityConfig` / `StabilityProvider` |\n\n### Video-only provider (runwayml)\n\n| module | typed entry points |\n|--------|--------------------|\n| `runwayml` | `RunwaymlConfig` / `RunwaymlProvider` |\n\n### P1 thin-wrapper providers (provider-research batch)\n\n| module | typed entry points |\n|--------|--------------------|\n| `bedrock_mantle` | `BedrockMantleConfig` / `BedrockMantleProvider` |\n\n### Vertex AI MaaS partner-model providers (OpenAI-compatible thin wrappers). Each wraps the shared OpenAIProvider against the Vertex AI MaaS OpenAPI endpoint, authenticating with a Google Cloud Bearer token\n\n| module | typed entry points |\n|--------|--------------------|\n| `vertex_ai_ai21_models` | `VertexAiAi21ModelsConfig` / `VertexAiAi21ModelsProvider` |\n| `vertex_ai_anthropic_models` | `VertexAiAnthropicModelsConfig` / `VertexAiAnthropicModelsProvider` |\n| `vertex_ai_deepseek_models` | `VertexAiDeepseekModelsConfig` / `VertexAiDeepseekModelsProvider` |\n| `vertex_ai_llama_models` | `VertexAiLlamaModelsConfig` / `VertexAiLlamaModelsProvider` |\n| `vertex_ai_minimax_models` | `VertexAiMinimaxModelsConfig` / `VertexAiMinimaxModelsProvider` |\n| `vertex_ai_mistral_models` | `VertexAiMistralModelsConfig` / `VertexAiMistralModelsProvider` |\n| `vertex_ai_moonshot_models` | `VertexAiMoonshotModelsConfig` / `VertexAiMoonshotModelsProvider` |\n| `vertex_ai_openai_models` | `VertexAiOpenaiModelsConfig` / `VertexAiOpenaiModelsProvider` |\n| `vertex_ai_qwen_models` | `VertexAiQwenModelsConfig` / `VertexAiQwenModelsProvider` |\n| `vertex_ai_zai_models` | `VertexAiZaiModelsConfig` / `VertexAiZaiModelsProvider` |\n\n### Search-only providers (web search modality)\n\n| module | typed entry points |\n|--------|--------------------|\n| `dataforseo` | `DataforseoConfig` / `DataforseoProvider` |\n| `exa_ai` | `ExaAiConfig` / `ExaAiProvider` |\n| `firecrawl` | `FirecrawlConfig` / `FirecrawlProvider` |\n| `google_pse` | `GooglePseConfig` / `GooglePseProvider` |\n| `linkup` | `LinkupConfig` / `LinkupProvider` |\n| `parallel_ai` | `ParallelAiConfig` / `ParallelAiProvider` |\n| `searxng` | `SearxngConfig` / `SearxngProvider` |\n| `serper` | `SerperConfig` / `SerperProvider` |\n| `tavily` | `TavilyConfig` / `TavilyProvider` |\n| `tinyfish` | `TinyfishConfig` / `TinyfishProvider` |\n| `you_com` | `YouComConfig` / `YouComProvider` |\n"}}, "aimux-providers/src/provider_registry.json": {"5b352e19b5717ed5ba775e097bed1f6fd81c2095": {"t": 1785809832.6122856, "n": 42252, "h": "79ff52615a7022f3", "c": "[\n {\n \"name\": \"abacus\",\n \"display\": \"Abacus\",\n \"base_url\": \"https://routellm.abacus.ai/v1\",\n \"env_var\": \"ABACUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"abliteration_ai\",\n \"display\": \"Abliteration AI\",\n \"base_url\": \"https://api.abliteration.ai/v1\",\n \"env_var\": \"ABLIT_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ai21\",\n \"display\": \"AI21 Labs\",\n \"base_url\": \"https://api.ai21.ai/v1\",\n \"env_var\": \"AI21_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ai302\",\n \"display\": \"302.AI\",\n \"base_url\": \"https://api.302.ai/v1\",\n \"env_var\": \"AI302_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ai_router\",\n \"display\": \"AI-ROUTER\",\n \"base_url\": \"https://api.ai-router.dev/v1\",\n \"env_var\": \"AI_ROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aiand\",\n \"display\": \"AIand\",\n \"base_url\": \"https://api.aiand.com/v1\",\n \"env_var\": \"AIAND_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aibadgr\",\n \"display\": \"AI Badgr\",\n \"base_url\": \"https://api.aibadgr.com/v1\",\n \"env_var\": \"AIBADGR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aigc2d\",\n \"display\": \"AIGC2D\",\n \"base_url\": \"https://api.aigc2d.com/v1\",\n \"env_var\": \"AIGC2D_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aihubmix\",\n \"display\": \"AIHubMix\",\n \"base_url\": \"https://aihubmix.com/v1\",\n \"env_var\": \"AIHUBMIX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ails\",\n \"display\": \"AILS\",\n \"base_url\": \"https://api.caipacity.com/v1\",\n \"env_var\": \"AILS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aiml\",\n \"display\": \"AI/ML API\",\n \"base_url\": \"https://api.aimlapi.com/v1\",\n \"env_var\": \"AIML_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aki_io\",\n \"display\": \"AKI.IO\",\n \"base_url\": \"https://aki.io/openai/v1\",\n \"env_var\": \"AKI_IO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"albert\",\n \"display\": \"Albert\",\n \"base_url\": \"https://api.albert.ai/v1\",\n \"env_var\": \"ALBERT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba\",\n \"display\": \"Alibaba Cloud (DashScope)\",\n \"base_url\": \"https://dashscope-intl.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_coding_plan\",\n \"display\": \"Alibaba Coding Plan\",\n \"base_url\": \"https://coding-intl.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_coding_plan_cn\",\n \"display\": \"Alibaba Coding Plan (China)\",\n \"base_url\": \"https://coding.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_token_plan\",\n \"display\": \"Alibaba Token Plan\",\n \"base_url\": \"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_token_plan_cn\",\n \"display\": \"Alibaba Token Plan (China)\",\n \"base_url\": \"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ambient\",\n \"display\": \"Ambient\",\n \"base_url\": \"https://api.ambient.xyz/v1\",\n \"env_var\": \"AMBIENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"anyapi\",\n \"display\": \"AnyAPI\",\n \"base_url\": \"https://api.anyapi.ai/v1\",\n \"env_var\": \"ANYAPI_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"anyscale\",\n \"display\": \"Anyscale\",\n \"base_url\": \"https://api.endpoints.anyscale.com/v1\",\n \"env_var\": \"ANYSCALE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"apertis\",\n \"display\": \"Apertis\",\n \"base_url\": \"https://api.stima.tech/v1\",\n \"env_var\": \"STIMA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"api2d\",\n \"display\": \"API2D\",\n \"base_url\": \"https://oa.api2d.net/v1\",\n \"env_var\": \"API2D_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"api2gpt\",\n \"display\": \"API2GPT\",\n \"base_url\": \"https://api.api2gpt.com/v1\",\n \"env_var\": \"API2GPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"apiserpent\",\n \"display\": \"API Serpent\",\n \"base_url\": \"https://api.apiserpent.com/v1\",\n \"env_var\": \"APISERPENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"atlascloud\",\n \"display\": \"AtlasCloud\",\n \"base_url\": \"https://api.atlascloud.com/v1\",\n \"env_var\": \"ATLASCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"atomic_chat\",\n \"display\": \"Atomic Chat\",\n \"base_url\": \"http://127.0.0.1:1337/v1\",\n \"env_var\": \"ATOMIC_CHAT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"auriko\",\n \"display\": \"Auriko\",\n \"base_url\": \"https://api.auriko.ai/v1\",\n \"env_var\": \"AURIKO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"azure_ai\",\n \"display\": \"Azure AI\",\n \"base_url\": \"https://models.inference.ai.azure.com\",\n \"env_var\": \"AZURE_AI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"baichuan\",\n \"display\": \"Baichuan AI\",\n \"base_url\": \"https://api.baichuan-ai.com/v1\",\n \"env_var\": \"BAICHUAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"baidu\",\n \"display\": \"Baidu (文心/ERNIE)\",\n \"base_url\": \"https://qianfan.baidubce.com/v2\",\n \"env_var\": \"BAIDU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"baidu_v2\",\n \"display\": \"BaiduV2\",\n \"base_url\": \"https://qianfan.baidubce.com/v2\",\n \"env_var\": \"QIANFAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bailing\",\n \"display\": \"Bailing\",\n \"base_url\": \"https://api.ant-ling.com/v1\",\n \"env_var\": \"BAILING_API_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"baseten\",\n \"display\": \"Baseten\",\n \"base_url\": \"https://inference.baseten.co/v1\",\n \"env_var\": \"BASETEN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"berget\",\n \"display\": \"Berget.AI\",\n \"base_url\": \"https://api.berget.ai/v1\",\n \"env_var\": \"BERGET_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bigmodel\",\n \"display\": \"BigModel (智谱)\",\n \"base_url\": \"https://open.bigmodel.cn/api/paas/v4\",\n \"env_var\": \"BIGMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"blueclaw\",\n \"display\": \"Blue Claw\",\n \"base_url\": \"https://openai.blueclaw.network/v1\",\n \"env_var\": \"BLUECLAW_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bytedance\",\n \"display\": \"ByteDance\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"byteplus\",\n \"display\": \"BytePlus (Volcano)\",\n \"base_url\": \"https://ark.bytepluses.com/api/v3\",\n \"env_var\": \"BYTEPLUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bytez\",\n \"display\": \"Bytez\",\n \"base_url\": \"https://api.bytez.com/v2\",\n \"env_var\": \"BYTEZ_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"canopywave\",\n \"display\": \"Canopywave\",\n \"base_url\": \"https://api.canopywave.com/v1\",\n \"env_var\": \"CANOPYWAVE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cerebras\",\n \"display\": \"Cerebras\",\n \"base_url\": \"https://api.cerebras.ai/v1\",\n \"env_var\": \"CEREBRAS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"chatgpt\",\n \"display\": \"ChatGPT (订阅)\",\n \"base_url\": \"https://chatgpt.com/backend-api/codex\",\n \"env_var\": \"CHATGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cherryin\",\n \"display\": \"cherryin\",\n \"base_url\": \"https://open.cherryin.net\",\n \"env_var\": \"CHERRYIN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"chutes\",\n \"display\": \"Chutes\",\n \"base_url\": \"https://llm.chutes.ai/v1\",\n \"env_var\": \"CHUTES_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"clarifai\",\n \"display\": \"Clarifai\",\n \"base_url\": \"https://api.clarifai.com/v2/ext/openai/v1\",\n \"env_var\": \"CLARIFAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"claudinio\",\n \"display\": \"Claudinio\",\n \"base_url\": \"https://api.claudin.io\",\n \"env_var\": \"CLAUDINIO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cline_pass\",\n \"display\": \"Cline\",\n \"base_url\": \"https://api.cline.bot/v1\",\n \"env_var\": \"CLINE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"closeai\",\n \"display\": \"CloseAI\",\n \"base_url\": \"https://api.closeai-proxy.xyz/v1\",\n \"env_var\": \"CLOSEAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cloudferro_sherlock\",\n \"display\": \"CloudFerro Sherlock\",\n \"base_url\": \"https://api-sherlock.cloudferro.com/openai/v1\",\n \"env_var\": \"CLOUDFERRO_SHERLOCK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cloudflare\",\n \"display\": \"Cloudflare\",\n \"base_url\": \"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\",\n \"env_var\": \"CLOUDFLARE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cloudflare_workers_ai\",\n \"display\": \"Cloudflare Workers AI\",\n \"base_url\": \"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\",\n \"env_var\": \"CLOUDFLARE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"codestral\",\n \"display\": \"Codestral (Mistral)\",\n \"base_url\": \"https://api.mistral.ai/v1\",\n \"env_var\": \"CODESTRAL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cometapi\",\n \"display\": \"CometAPI\",\n \"base_url\": \"https://api.cometapi.com/v1\",\n \"env_var\": \"COMETAPI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"commandcode\",\n \"display\": \"CommandCode\",\n \"base_url\": \"https://api.commandcode.com/v1\",\n \"env_var\": \"COMMANDCODE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"compactifai\",\n \"display\": \"CompactifAI\",\n \"base_url\": \"https://api.compactif.ai/v1\",\n \"env_var\": \"COMPACTIFAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"copilot\",\n \"display\": \"GitHub Copilot\",\n \"base_url\": \"https://api.githubcopilot.com\",\n \"env_var\": \"COPILOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cortecs\",\n \"display\": \"Cortecs\",\n \"base_url\": \"https://api.cortecs.ai/v1/\",\n \"env_var\": \"CORTECS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"coze\",\n \"display\": \"Coze (扣子)\",\n \"base_url\": \"https://api.coze.cn/v1\",\n \"env_var\": \"COZE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"crof\",\n \"display\": \"CrofAI\",\n \"base_url\": \"https://crof.ai/v1\",\n \"env_var\": \"CROF_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"crossmodel\",\n \"display\": \"CrossModel\",\n \"base_url\": \"https://api.crossmodel.ai/v1\",\n \"env_var\": \"CROSSMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"crusoe\",\n \"display\": \"Crusoe\",\n \"base_url\": \"https://api.inference.crusoecloud.com/v1\",\n \"env_var\": \"CRUSOE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"daoxe\",\n \"display\": \"DaoXE\",\n \"base_url\": \"https://daoxe.com/v1\",\n \"env_var\": \"DAOXE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"darkbloom\",\n \"display\": \"Darkbloom\",\n \"base_url\": \"https://api.darkbloom.dev/v1\",\n \"env_var\": \"DARKBLOOM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"databricks\",\n \"display\": \"Databricks\",\n \"base_url\": \"https://databricks.com/serving-endpoints\",\n \"env_var\": \"DATABRICKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"datarobot\",\n \"display\": \"DataRobot\",\n \"base_url\": \"https://app.datarobot.com/api/v2\",\n \"env_var\": \"DATAROBOT_API_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"deepbricks\",\n \"display\": \"DeepBricks\",\n \"base_url\": \"https://api.deepbricks.ai/v1\",\n \"env_var\": \"DEEPBRICKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"deepinfra\",\n \"display\": \"DeepInfra\",\n \"base_url\": \"https://api.deepinfra.com/v1/openai\",\n \"env_var\": \"DEEPINFRA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"deepseek\",\n \"display\": \"DeepSeek\",\n \"base_url\": \"https://api.deepseek.com/v1\",\n \"env_var\": \"DEEPSEEK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"digitalocean\",\n \"display\": \"DigitalOcean\",\n \"base_url\": \"https://inference.do-ai.run\",\n \"env_var\": \"DIGITALOCEAN_ACCESS_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"dinference\",\n \"display\": \"DInference\",\n \"base_url\": \"https://api.dinference.com/v1\",\n \"env_var\": \"DINFERENCE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"doubao\",\n \"display\": \"Doubao\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"doubleword\",\n \"display\": \"Doubleword\",\n \"base_url\": \"https://api.doubleword.ai/v1\",\n \"env_var\": \"DOUBLEWORD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"drun\",\n \"display\": \"D.Run (China)\",\n \"base_url\": \"https://chat.d.run/v1\",\n \"env_var\": \"DRUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ebcloud\",\n \"display\": \"EBCloud\",\n \"base_url\": \"https://maas-api.ebcloud.com/v1\",\n \"env_var\": \"EBCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"embercloud\",\n \"display\": \"Embercloud\",\n \"base_url\": \"https://api.embercloud.com/v1\",\n \"env_var\": \"EMBERCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"empiriolabs\",\n \"display\": \"EmpirioLabs AI\",\n \"base_url\": \"https://api.empiriolabs.ai/v1\",\n \"env_var\": \"EMPIRIOLABS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"evroc\",\n \"display\": \"evroc\",\n \"base_url\": \"https://models.think.evroc.com/v1\",\n \"env_var\": \"EVROC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fastcrw\",\n \"display\": \"FastCRW\",\n \"base_url\": \"https://fastcrw.com/api/v1\",\n \"env_var\": \"FASTCRW_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fastgpt\",\n \"display\": \"FastGPT\",\n \"base_url\": \"https://api.fastgpt.in/v1\",\n \"env_var\": \"FASTGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fastrouter\",\n \"display\": \"FastRouter\",\n \"base_url\": \"https://api.fastrouter.ai/v1\",\n \"env_var\": \"FASTROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"featherless_ai\",\n \"display\": \"Featherless AI\",\n \"base_url\": \"https://api.featherless.ai/v1\",\n \"env_var\": \"FEATHERLESS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"firepass\",\n \"display\": \"Fireworks (Firepass)\",\n \"base_url\": \"https://api.fireworks.ai/inference/v1\",\n \"env_var\": \"FIREWORKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fireworks\",\n \"display\": \"Fireworks\",\n \"base_url\": \"https://api.fireworks.ai/inference/v1\",\n \"env_var\": \"FIREWORKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"freemodel\",\n \"display\": \"FreeModel\",\n \"base_url\": \"https://api.freemodel.dev/v1\",\n \"env_var\": \"FREEMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"friendliai\",\n \"display\": \"FriendliAI\",\n \"base_url\": \"https://inference.friendli.ai/v1\",\n \"env_var\": \"FRIENDLIAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"frogbot\",\n \"display\": \"FrogBot\",\n \"base_url\": \"https://app.frogbot.ai/api/v1\",\n \"env_var\": \"FROGBOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"galadriel\",\n \"display\": \"Galadriel\",\n \"base_url\": \"https://api.galadriel.com/v1\",\n \"env_var\": \"GALADRIEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gdc\",\n \"display\": \"GDC\",\n \"base_url\": \"https://api.gdc.ai/v1\",\n \"env_var\": \"GDC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gigachat\",\n \"display\": \"GigaChat (Sberbank)\",\n \"base_url\": \"https://gigachat.devices.sberbank.ru/api/v1\",\n \"env_var\": \"GIGACHAT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"github\",\n \"display\": \"GitHub Models\",\n \"base_url\": \"https://models.inference.ai.azure.com\",\n \"env_var\": \"GITHUB_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"gmi\",\n \"display\": \"GMI\",\n \"base_url\": \"https://api.gmi-serving.com/v1\",\n \"env_var\": \"GMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gmicloud\",\n \"display\": \"GMI Cloud\",\n \"base_url\": \"https://api.gmi-serving.com/v1\",\n \"env_var\": \"GMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gonka24\",\n \"display\": \"Gonka24\",\n \"base_url\": \"https://api.gonka24.com/v1\",\n \"env_var\": \"GONKA24_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gradient_ai\",\n \"display\": \"Gradient AI\",\n \"base_url\": \"https://inference.do-ai.run/v1\",\n \"env_var\": \"GRADIENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"groq\",\n \"display\": \"Groq\",\n \"base_url\": \"https://api.groq.com/openai/v1\",\n \"env_var\": \"GROQ_API_KEY\",\n \"profile\": {\n \"supports_top_k\": false,\n \"stream_usage_key\": \"x_groq\",\n \"max_tokens_key\": \"max_completion_tokens\"\n }\n },\n {\n \"name\": \"helicone\",\n \"display\": \"Helicone\",\n \"base_url\": \"https://api.helicone.ai/v1\",\n \"env_var\": \"HELICONE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"heroku\",\n \"display\": \"Heroku AI\",\n \"base_url\": \"https://api.heroku.com/inference/v1\",\n \"env_var\": \"HEROKU_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_completion_tokens\"\n }\n },\n {\n \"name\": \"hetzner\",\n \"display\": \"Hetzner\",\n \"base_url\": \"https://inference.hetzner.com/api/v1\",\n \"env_var\": \"HETZNER_VLLM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"hosted_vllm\",\n \"display\": \"Hosted vLLM\",\n \"base_url\": \"https://hosted-vllm-api.com/v1\",\n \"env_var\": \"HOSTED_VLLM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"hpc_ai\",\n \"display\": \"HPC-AI\",\n \"base_url\": \"https://api.hpc-ai.com/inference/v1\",\n \"env_var\": \"INFERENCE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"hyperbolic\",\n \"display\": \"Hyperbolic\",\n \"base_url\": \"https://api.hyperbolic.xyz/v1\",\n \"env_var\": \"HYPERBOLIC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"iflowcn\",\n \"display\": \"iFlow\",\n \"base_url\": \"https://apis.iflow.cn/v1\",\n \"env_var\": \"IFLOW_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inception\",\n \"display\": \"Inception Labs\",\n \"base_url\": \"https://api.inceptionlabs.ai/v1\",\n \"env_var\": \"INCEPTION_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inceptron\",\n \"display\": \"Inceptron\",\n \"base_url\": \"https://api.inceptron.io/v1\",\n \"env_var\": \"INCEPTRON_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inference_net\",\n \"display\": \"Inference.net\",\n \"base_url\": \"https://api.inference.net/v1\",\n \"env_var\": \"INFERENCE_NET_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inferx\",\n \"display\": \"InferX\",\n \"base_url\": \"https://model.inferx.net/v1\",\n \"env_var\": \"INFERX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"infinity\",\n \"display\": \"Infinity AI\",\n \"base_url\": \"https://infinity.ai/api/v1\",\n \"env_var\": \"INFINITY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"io_net\",\n \"display\": \"IO.NET\",\n \"base_url\": \"https://api.intelligence.io.solutions/api/v1\",\n \"env_var\": \"IOINTELLIGENCE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"jiekou\",\n \"display\": \"Jiekou.AI\",\n \"base_url\": \"https://api.highwayapi.ai/openai\",\n \"env_var\": \"JIEKOU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kenari\",\n \"display\": \"Kenari\",\n \"base_url\": \"https://kenari.id/v1\",\n \"env_var\": \"KENARI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kilo\",\n \"display\": \"Kilo\",\n \"base_url\": \"https://api.kilo.ai/v1\",\n \"env_var\": \"KILO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kimi\",\n \"display\": \"Kimi\",\n \"base_url\": \"https://api.moonshot.ai/v1\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kimi_for_coding\",\n \"display\": \"Kimi For Coding\",\n \"base_url\": \"https://api.kimi.com/coding/v1\",\n \"env_var\": \"KIMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kiro\",\n \"display\": \"Kiro\",\n \"base_url\": \"https://api.kiro.dev/v1\",\n \"env_var\": \"KIRO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kluster_ai\",\n \"display\": \"Kluster AI\",\n \"base_url\": \"https://api.kluster.ai/v1\",\n \"env_var\": \"KLUSTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"krutrim\",\n \"display\": \"Krutrim\",\n \"base_url\": \"https://api.krutrim.ai/v1\",\n \"env_var\": \"KRUTRIM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kuae_cloud_coding_plan\",\n \"display\": \"KUAE Cloud Coding Plan\",\n \"base_url\": \"https://coding-plan-endpoint.kuaecloud.net/v1\",\n \"env_var\": \"KUAE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lambda_ai\",\n \"display\": \"Lambda AI\",\n \"base_url\": \"https://api.lambda.ai/v1\",\n \"env_var\": \"LAMBDA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lemonade\",\n \"display\": \"Lemonade\",\n \"base_url\": \"http://localhost:13305/v1\",\n \"env_var\": \"LEMONADE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lemonfox_ai\",\n \"display\": \"Lemonfox AI\",\n \"base_url\": \"https://api.lemonfox.ai/v1\",\n \"env_var\": \"LEMONFOX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"libertai\",\n \"display\": \"Libertai\",\n \"base_url\": \"https://api.libertai.io/v1\",\n \"env_var\": \"LIBERTAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lilac\",\n \"display\": \"Lilac\",\n \"base_url\": \"https://api.getlilac.com/v1\",\n \"env_var\": \"LILAC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lingyiwanwu\",\n \"display\": \"Lingyiwanwu (零一万物)\",\n \"base_url\": \"https://api.lingyiwanwu.com/v1\",\n \"env_var\": \"LINGYIWANWU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llama\",\n \"display\": \"Llama\",\n \"base_url\": \"https://api.llama.com/compat/v1/\",\n \"env_var\": \"LLAMA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llamagate\",\n \"display\": \"Llamagate\",\n \"base_url\": \"https://api.llamagate.dev/v1\",\n \"env_var\": \"LLAMAGATE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llmgateway\",\n \"display\": \"LLM Gateway\",\n \"base_url\": \"https://api.llmgateway.io/v1\",\n \"env_var\": \"LLM_GATEWAY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llmtr\",\n \"display\": \"LLMTR\",\n \"base_url\": \"https://llmtr.com/v1\",\n \"env_var\": \"LLMTR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"longcat\",\n \"display\": \"LongCat\",\n \"base_url\": \"https://api.longcat.chat/v1\",\n \"env_var\": \"LONGCAT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lucidquery\",\n \"display\": \"LucidQuery\",\n \"base_url\": \"https://api.lucidquery.com/v1\",\n \"env_var\": \"LUCIDQUERY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lynkr\",\n \"display\": \"Lynkr\",\n \"base_url\": \"http://localhost:8081/v1\",\n \"env_var\": \"LYNKR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"matterai\",\n \"display\": \"Matter AI\",\n \"base_url\": \"https://api.matterai.com/v1\",\n \"env_var\": \"MATTERAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"meganova\",\n \"display\": \"Meganova\",\n \"base_url\": \"https://api.meganova.ai/v1\",\n \"env_var\": \"MEGANOVA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"merge_gateway\",\n \"display\": \"Merge Gateway\",\n \"base_url\": \"https://api-gateway.merge.dev/v1/openai\",\n \"env_var\": \"MERGE_GATEWAY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"meta\",\n \"display\": \"Meta\",\n \"base_url\": \"https://api.meta.ai/v1\",\n \"env_var\": \"MODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"meta_llama\",\n \"display\": \"Meta Llama API\",\n \"base_url\": \"https://api.llama.com/compat/v1\",\n \"env_var\": \"LLAMA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"mimo\",\n \"display\": \"Mimo\",\n \"base_url\": \"https://api.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax\",\n \"display\": \"MiniMax\",\n \"base_url\": \"https://api.minimax.io/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax_cn\",\n \"display\": \"MiniMax (minimaxi.com)\",\n \"base_url\": \"https://api.minimaxi.com/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax_cn_coding_plan\",\n \"display\": \"MiniMax Token Plan (minimaxi.com)\",\n \"base_url\": \"https://api.minimaxi.com/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax_coding_plan\",\n \"display\": \"MiniMax Token Plan (minimax.io)\",\n \"base_url\": \"https://api.minimax.io/anthropic/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"mira\",\n \"display\": \"Mira\",\n \"base_url\": \"https://api.mira.so/v1\",\n \"env_var\": \"MIRA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"mixlayer\",\n \"display\": \"Mixlayer\",\n \"base_url\": \"https://models.mixlayer.ai/v1\",\n \"env_var\": \"MIXLAYER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"moark\",\n \"display\": \"Moark\",\n \"base_url\": \"https://api.moark.com/v1\",\n \"env_var\": \"MOARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"modal\",\n \"display\": \"Modal\",\n \"base_url\": \"https://modal.com/v1\",\n \"env_var\": \"MODAL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"model_oracle_ai\",\n \"display\": \"Model Oracle AI\",\n \"base_url\": \"https://api.modeloracle.com/api/v1\",\n \"env_var\": \"MODEL_ORACLE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"modelscope\",\n \"display\": \"ModelScope\",\n \"base_url\": \"https://api-inference.modelscope.cn/v1\",\n \"env_var\": \"MODELSCOPE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"moonshotai\",\n \"display\": \"Moonshot AI\",\n \"base_url\": \"https://api.moonshot.cn/v1\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"moonshotai_cn\",\n \"display\": \"Moonshot AI (China)\",\n \"base_url\": \"https://api.moonshot.cn/anthropic/v1(Anthropic\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"morph\",\n \"display\": \"Morph LLM\",\n \"base_url\": \"https://api.morphllm.com/v1\",\n \"env_var\": \"MORPH_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nanogpt\",\n \"display\": \"NanoGPT\",\n \"base_url\": \"https://api.nanogpt.com/v1\",\n \"env_var\": \"NANOGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ncompass\",\n \"display\": \"Ncompass\",\n \"base_url\": \"https://api.ncompass.tech/v1\",\n \"env_var\": \"NCOMPASS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nearai\",\n \"display\": \"NEAR AI Cloud\",\n \"base_url\": \"https://cloud-api.near.ai/v1\",\n \"env_var\": \"NEARAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nebius\",\n \"display\": \"Nebius AI\",\n \"base_url\": \"https://api.studio.nebius.ai/v1\",\n \"env_var\": \"NEBIUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"neon\",\n \"display\": \"Neon\",\n \"base_url\": \"https:///v1\",\n \"env_var\": \"NEON_AI_GATEWAY_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"neuralwatt\",\n \"display\": \"Neuralwatt\",\n \"base_url\": \"https://api.neuralwatt.com/v1\",\n \"env_var\": \"NEURALWATT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nextbit\",\n \"display\": \"NextBit\",\n \"base_url\": \"https://api.nextbit.ai/v1\",\n \"env_var\": \"NEXTBIT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nlp_cloud\",\n \"display\": \"NLP Cloud\",\n \"base_url\": \"https://api.nlpcloud.io/v1\",\n \"env_var\": \"NLPCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nous_research\",\n \"display\": \"Nous Research\",\n \"base_url\": \"https://api.nousresearch.com/v1\",\n \"env_var\": \"NOUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"novita\",\n \"display\": \"Novita AI\",\n \"base_url\": \"https://api.novita.ai/v1\",\n \"env_var\": \"NOVITA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nscale\",\n \"display\": \"Nscale\",\n \"base_url\": \"https://inference.api.nscale.com/v1\",\n \"env_var\": \"NSCALE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nvidia_nim\",\n \"display\": \"NVIDIA NIM\",\n \"base_url\": \"https://integrate.api.nvidia.com/v1\",\n \"env_var\": \"NVIDIA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"oci\",\n \"display\": \"OCI\",\n \"base_url\": \"https://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1\",\n \"env_var\": \"OCI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ofox\",\n \"display\": \"OfoxAI\",\n \"base_url\": \"https://api.ofox.ai/v1\",\n \"env_var\": \"OFOX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ohmygpt\",\n \"display\": \"OhMyGPT\",\n \"base_url\": \"https://api.ohmygpt.com/v1\",\n \"env_var\": \"OHMYGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ollama_cloud\",\n \"display\": \"Ollama Cloud\",\n \"base_url\": \"https://api.ollama.com/v1\",\n \"env_var\": \"OLLAMA_CLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"openaimax\",\n \"display\": \"OpenAIMax\",\n \"base_url\": \"https://api.openaimax.com/v1\",\n \"env_var\": \"OPENAIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"openaisb\",\n \"display\": \"OpenAI-SB\",\n \"base_url\": \"https://api.openaisb.com/v1\",\n \"env_var\": \"OPENAISB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"opencode\",\n \"display\": \"OpenCode Zen\",\n \"base_url\": \"https://api.opencode.zen/v1\",\n \"env_var\": \"OPENCODE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"opencode_go\",\n \"display\": \"OpenCode Go\",\n \"base_url\": \"https://api.opencode.dev/v1\",\n \"env_var\": \"OPENCODE_GO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"opencode_zen\",\n \"display\": \"OpenCode Zen\",\n \"base_url\": \"https://api.opencode.zen/v1\",\n \"env_var\": \"OPENCODE_ZEN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"orcarouter\",\n \"display\": \"OrcaRouter\",\n \"base_url\": \"https://api.orcarouter.com/v1\",\n \"env_var\": \"ORCAROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ovhcloud\",\n \"display\": \"OVHcloud AI\",\n \"base_url\": \"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1\",\n \"env_var\": \"OVHCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"parasail\",\n \"display\": \"Parasail\",\n \"base_url\": \"https://api.parasail.io/v1\",\n \"env_var\": \"PARASAIL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"perfxcloud\",\n \"display\": \"PerfXCloud\",\n \"base_url\": \"https://api.perfxcloud.com/v1\",\n \"env_var\": \"PERFXCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"perplexity\",\n \"display\": \"Perplexity\",\n \"base_url\": \"https://api.perplexity.ai\",\n \"env_var\": \"PERPLEXITY_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"perplexity_agent\",\n \"display\": \"Perplexity Agent\",\n \"base_url\": \"https://api.perplexity.ai/v1\",\n \"env_var\": \"PERPLEXITY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"petals\",\n \"display\": \"Petals\",\n \"base_url\": \"https://api.petals.dev/v1\",\n \"env_var\": \"PETALS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"pinstripes\",\n \"display\": \"Pinstripes\",\n \"base_url\": \"https://api.pinstripes.io/v1\",\n \"env_var\": \"PINSTRIPES_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"pioneer\",\n \"display\": \"Pioneer\",\n \"base_url\": \"https://api.pioneer.ai/v1\",\n \"env_var\": \"PIONEER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"poe\",\n \"display\": \"Poe\",\n \"base_url\": \"https://api.poe.com/v1\",\n \"env_var\": \"POE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"poolside\",\n \"display\": \"Poolside\",\n \"base_url\": \"https://inference.poolside.ai/v1\",\n \"env_var\": \"POOLSIDE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"portkey\",\n \"display\": \"Portkey Gateway\",\n \"base_url\": \"https://api.portkey.ai/v1\",\n \"env_var\": \"PORTKEY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ppinfra\",\n \"display\": \"PPInfra(PPIO 派欧云)\",\n \"base_url\": \"https://api.ppio.com/openai\",\n \"env_var\": \"PPIO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"predibase\",\n \"display\": \"Predibase\",\n \"base_url\": \"https://serving.app.predibase.com/v1\",\n \"env_var\": \"PREDIBASE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"privatemode_ai\",\n \"display\": \"Privatemode AI\",\n \"base_url\": \"http://localhost:8080/v1\",\n \"env_var\": \"PRIVATEMODE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"publicai\",\n \"display\": \"Publicai\",\n \"base_url\": \"https://platform.publicai.co/v1\",\n \"env_var\": \"PUBLICAI_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"qihang_ai\",\n \"display\": \"QiHang(启航 AI)\",\n \"base_url\": \"https://api.qhaigc.net/v1\",\n \"env_var\": \"QIHANG_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"qihoo360\",\n \"display\": \"360 AI\",\n \"base_url\": \"https://api.360.cn/v1\",\n \"env_var\": \"AI360_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"qiniu_ai\",\n \"display\": \"Qiniu AI\",\n \"base_url\": \"https://api.qiniu.com/v1\",\n \"env_var\": \"QINIU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"regolo_ai\",\n \"display\": \"Regolo AI\",\n \"base_url\": \"https://api.regolo.ai/v1\",\n \"env_var\": \"REGOLO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"reka_ai\",\n \"display\": \"Reka AI\",\n \"base_url\": \"https://api.reka.ai/v1\",\n \"env_var\": \"REKA_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"requesty\",\n \"display\": \"Requesty\",\n \"base_url\": \"https://api.requesty.ai/v1\",\n \"env_var\": \"REQUESTY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"reve\",\n \"display\": \"Reve\",\n \"base_url\": \"https://api.reve.ai/v1\",\n \"env_var\": \"REVE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"routing_run\",\n \"display\": \"routing.run\",\n \"base_url\": \"https://api.routing.run/v1\",\n \"env_var\": \"ROUTING_RUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"sakana\",\n \"display\": \"Sakana AI\",\n \"base_url\": \"https://api.sakana.ai/v1\",\n \"env_var\": \"SAKANA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"sambanova\",\n \"display\": \"SambaNova\",\n \"base_url\": \"https://api.sambanova.ai/v1\",\n \"env_var\": \"SAMBANOVA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"sarvam\",\n \"display\": \"Sarvam AI\",\n \"base_url\": \"https://api.sarvam.ai/v1\",\n \"env_var\": \"SARVAM_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"scaleway\",\n \"display\": \"Scaleway AI\",\n \"base_url\": \"https://api.scaleway.ai/v1\",\n \"env_var\": \"SCALEWAY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"scx_ai\",\n \"display\": \"SCX AI\",\n \"base_url\": \"https://api.scx.ai/v1\",\n \"env_var\": \"SCX_AI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"siliconflow\",\n \"display\": \"SiliconFlow\",\n \"base_url\": \"https://api.siliconflow.cn/v1\",\n \"env_var\": \"SILICONFLOW_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"snowflake\",\n \"display\": \"Snowflake\",\n \"base_url\": \"https://.snowflakecomputing.com/api/v2/cortex/v1\",\n \"env_var\": \"SNOWFLAKE_PAT\",\n \"profile\": {}\n },\n {\n \"name\": \"snowflake_cortex\",\n \"display\": \"Snowflake Cortex\",\n \"base_url\": \"https://.snowflakecomputing.com/api/v2/cortex/v1\",\n \"env_var\": \"SNOWFLAKE_CORTEX_PAT\",\n \"profile\": {}\n },\n {\n \"name\": \"stackit\",\n \"display\": \"STACKIT\",\n \"base_url\": \"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\",\n \"env_var\": \"STACKIT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"stepfun\",\n \"display\": \"StepFun (阶跃星辰)\",\n \"base_url\": \"https://api.stepfun.com/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"stepfun_ai_step_plan\",\n \"display\": \"StepFun Step Plan (Global)\",\n \"base_url\": \"https://api.stepfun.ai/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"stepfun_step_plan\",\n \"display\": \"StepFun Step Plan (China)\",\n \"base_url\": \"https://api.stepfun.com/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"subconscious\",\n \"display\": \"Subconscious\",\n \"base_url\": \"https://api.subconscious.dev/v1\",\n \"env_var\": \"SUBCONSCIOUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"submodel\",\n \"display\": \"SubModel\",\n \"base_url\": \"https://api.submodel.com/v1\",\n \"env_var\": \"SUBMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"synthetic\",\n \"display\": \"Synthetic\",\n \"base_url\": \"https://api.synthetic.new/openai/v1\",\n \"env_var\": \"SYNTHETIC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent\",\n \"display\": \"Tencent (混元/Hunyuan)\",\n \"base_url\": \"https://api.hunyuan.cloud.tencent.com/v1\",\n \"env_var\": \"TENCENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_coding_plan\",\n \"display\": \"Tencent Coding Plan (China)\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/coding/v3\",\n \"env_var\": \"TENCENT_CODING_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan\",\n \"display\": \"Tencent Token Plan\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_enterprise_auto\",\n \"display\": \"腾讯云 Token Plan / Token Plan 企业版轻享套餐\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_enterprise_pro\",\n \"display\": \"腾讯云 Token Plan / Token Plan 企业版专业套餐\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_general_personal\",\n \"display\": \"腾讯云 Token Plan / 通用 Token Plan(个人版)\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_hy_personal\",\n \"display\": \"腾讯云 Token Plan / Hy Token Plan(个人版)\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_tokenhub\",\n \"display\": \"Tencent TokenHub\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/v1\",\n \"env_var\": \"TENCENT_TOKENHUB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tensormesh\",\n \"display\": \"Tensormesh\",\n \"base_url\": \"https://serverless.tensormesh.ai\",\n \"env_var\": \"YOUR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"the_grid_ai\",\n \"display\": \"The Grid AI\",\n \"base_url\": \"https://thegrid.ai/docs\",\n \"env_var\": \"THEGRIDAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"thinkingmachines\",\n \"display\": \"Thinking Machines\",\n \"base_url\": \"https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1\",\n \"env_var\": \"TINKER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tinfoil\",\n \"display\": \"Tinfoil\",\n \"base_url\": \"https://inference.tinfoil.sh/v1\",\n \"env_var\": \"TINFOIL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"togetherai\",\n \"display\": \"Together AI\",\n \"base_url\": \"https://api.together.xyz/v1\",\n \"env_var\": \"TOGETHER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tokenflux\",\n \"display\": \"Tokenflux\",\n \"base_url\": \"https://tokenflux.ai/v1\",\n \"env_var\": \"TOKENFLUX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tokenpony\",\n \"display\": \"TokenPony\",\n \"base_url\": \"https://api.tokenpony.com/v1\",\n \"env_var\": \"TOKENPONY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"trustedrouter\",\n \"display\": \"TrustedRouter\",\n \"base_url\": \"https://api.trustedrouter.com/v1\",\n \"env_var\": \"TRUSTEDROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tundra\",\n \"display\": \"Tundra\",\n \"base_url\": \"https://api.tundra.ai/v1\",\n \"env_var\": \"TUNDRA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"umans_ai\",\n \"display\": \"Umans AI\",\n \"base_url\": \"https://api.code.umans.ai/v1\",\n \"env_var\": \"UMANS_AI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"unorouter\",\n \"display\": \"UnoRouter\",\n \"base_url\": \"https://unorouter.com/en\",\n \"env_var\": \"UNOROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"upstage\",\n \"display\": \"Upstage\",\n \"base_url\": \"https://api.upstage.ai/v1\",\n \"env_var\": \"UPSTAGE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"v0\",\n \"display\": \"v0 (Vercel)\",\n \"base_url\": \"https://api.v0.dev/v1\",\n \"env_var\": \"V0_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"venice\",\n \"display\": \"Venice\",\n \"base_url\": \"https://api.venice.ai/api/v1\",\n \"env_var\": \"VENICE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"vercel\",\n \"display\": \"Vercel\",\n \"base_url\": \"https://api.v0.dev/v1\",\n \"env_var\": \"VERCEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"vivgrid\",\n \"display\": \"Vivgrid\",\n \"base_url\": \"https://api.vivgrid.com/v1\",\n \"env_var\": \"VIVGRID_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"volc_engine\",\n \"display\": \"VolcEngine\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"vultr\",\n \"display\": \"Vultr\",\n \"base_url\": \"https://api.vultrinference.com/v1\",\n \"env_var\": \"VULTR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"wafer\",\n \"display\": \"Wafer\",\n \"base_url\": \"https://api.wafer.ai/v1\",\n \"env_var\": \"WAFER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"wandb\",\n \"display\": \"Weights & Biases\",\n \"base_url\": \"https://api.inference.wandb.ai/v1\",\n \"env_var\": \"WANDB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomi_token_plan_ams\",\n \"display\": \"Xiaomi Token Plan (Europe)\",\n \"base_url\": \"https://token-plan-ams.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomi_token_plan_cn\",\n \"display\": \"Xiaomi Token Plan (China)\",\n \"base_url\": \"https://token-plan-cn.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomi_token_plan_sgp\",\n \"display\": \"Xiaomi Token Plan (Singapore)\",\n \"base_url\": \"https://token-plan-sgp.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomimimo\",\n \"display\": \"Xiaomi MiMo\",\n \"base_url\": \"https://mimo.xiaomi.com/v1\",\n \"env_var\": \"XIAOMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xpersona\",\n \"display\": \"Xpersona\",\n \"base_url\": \"/v1\",\n \"env_var\": \"XPERSONA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xunfei\",\n \"display\": \"Xunfei\",\n \"base_url\": \"https://spark-api-open.xf-yun.com/v1\",\n \"env_var\": \"XUNFEI_API_PASSWORD\",\n \"profile\": {}\n },\n {\n \"name\": \"zai\",\n \"display\": \"Zai\",\n \"base_url\": \"https://api.z.ai/api/paas/v4\",\n \"env_var\": \"ZAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zai_coding_plan\",\n \"display\": \"Z.AI Coding Plan\",\n \"base_url\": \"https://api.z.ai/api/anthropic\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zeldoc\",\n \"display\": \"Zeldoc\",\n \"base_url\": \"https://api.zeldoc.ai/v1\",\n \"env_var\": \"ZELDOC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zenmux\",\n \"display\": \"ZenMux\",\n \"base_url\": \"https://zenmux.ai/api/v1\",\n \"env_var\": \"ZENMUX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zhipu_v4\",\n \"display\": \"ZhipuV4\",\n \"base_url\": \"https://open.bigmodel.cn/api/paas/v4\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zhipuai_coding_plan\",\n \"display\": \"Zhipu AI Coding Plan\",\n \"base_url\": \"https://docs.bigmodel.cn/cn/coding-plan/quick-start\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"profile\": {}\n }\n]\n"}, "d4bfcae94f036812a833dbb6ddb703136eed4760": {"t": 1785809848.333307, "n": 42252, "h": "79ff52615a7022f3", "c": "[\n {\n \"name\": \"abacus\",\n \"display\": \"Abacus\",\n \"base_url\": \"https://routellm.abacus.ai/v1\",\n \"env_var\": \"ABACUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"abliteration_ai\",\n \"display\": \"Abliteration AI\",\n \"base_url\": \"https://api.abliteration.ai/v1\",\n \"env_var\": \"ABLIT_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ai21\",\n \"display\": \"AI21 Labs\",\n \"base_url\": \"https://api.ai21.ai/v1\",\n \"env_var\": \"AI21_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ai302\",\n \"display\": \"302.AI\",\n \"base_url\": \"https://api.302.ai/v1\",\n \"env_var\": \"AI302_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ai_router\",\n \"display\": \"AI-ROUTER\",\n \"base_url\": \"https://api.ai-router.dev/v1\",\n \"env_var\": \"AI_ROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aiand\",\n \"display\": \"AIand\",\n \"base_url\": \"https://api.aiand.com/v1\",\n \"env_var\": \"AIAND_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aibadgr\",\n \"display\": \"AI Badgr\",\n \"base_url\": \"https://api.aibadgr.com/v1\",\n \"env_var\": \"AIBADGR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aigc2d\",\n \"display\": \"AIGC2D\",\n \"base_url\": \"https://api.aigc2d.com/v1\",\n \"env_var\": \"AIGC2D_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aihubmix\",\n \"display\": \"AIHubMix\",\n \"base_url\": \"https://aihubmix.com/v1\",\n \"env_var\": \"AIHUBMIX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ails\",\n \"display\": \"AILS\",\n \"base_url\": \"https://api.caipacity.com/v1\",\n \"env_var\": \"AILS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aiml\",\n \"display\": \"AI/ML API\",\n \"base_url\": \"https://api.aimlapi.com/v1\",\n \"env_var\": \"AIML_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aki_io\",\n \"display\": \"AKI.IO\",\n \"base_url\": \"https://aki.io/openai/v1\",\n \"env_var\": \"AKI_IO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"albert\",\n \"display\": \"Albert\",\n \"base_url\": \"https://api.albert.ai/v1\",\n \"env_var\": \"ALBERT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba\",\n \"display\": \"Alibaba Cloud (DashScope)\",\n \"base_url\": \"https://dashscope-intl.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_coding_plan\",\n \"display\": \"Alibaba Coding Plan\",\n \"base_url\": \"https://coding-intl.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_coding_plan_cn\",\n \"display\": \"Alibaba Coding Plan (China)\",\n \"base_url\": \"https://coding.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_token_plan\",\n \"display\": \"Alibaba Token Plan\",\n \"base_url\": \"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_token_plan_cn\",\n \"display\": \"Alibaba Token Plan (China)\",\n \"base_url\": \"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ambient\",\n \"display\": \"Ambient\",\n \"base_url\": \"https://api.ambient.xyz/v1\",\n \"env_var\": \"AMBIENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"anyapi\",\n \"display\": \"AnyAPI\",\n \"base_url\": \"https://api.anyapi.ai/v1\",\n \"env_var\": \"ANYAPI_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"anyscale\",\n \"display\": \"Anyscale\",\n \"base_url\": \"https://api.endpoints.anyscale.com/v1\",\n \"env_var\": \"ANYSCALE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"apertis\",\n \"display\": \"Apertis\",\n \"base_url\": \"https://api.stima.tech/v1\",\n \"env_var\": \"STIMA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"api2d\",\n \"display\": \"API2D\",\n \"base_url\": \"https://oa.api2d.net/v1\",\n \"env_var\": \"API2D_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"api2gpt\",\n \"display\": \"API2GPT\",\n \"base_url\": \"https://api.api2gpt.com/v1\",\n \"env_var\": \"API2GPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"apiserpent\",\n \"display\": \"API Serpent\",\n \"base_url\": \"https://api.apiserpent.com/v1\",\n \"env_var\": \"APISERPENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"atlascloud\",\n \"display\": \"AtlasCloud\",\n \"base_url\": \"https://api.atlascloud.com/v1\",\n \"env_var\": \"ATLASCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"atomic_chat\",\n \"display\": \"Atomic Chat\",\n \"base_url\": \"http://127.0.0.1:1337/v1\",\n \"env_var\": \"ATOMIC_CHAT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"auriko\",\n \"display\": \"Auriko\",\n \"base_url\": \"https://api.auriko.ai/v1\",\n \"env_var\": \"AURIKO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"azure_ai\",\n \"display\": \"Azure AI\",\n \"base_url\": \"https://models.inference.ai.azure.com\",\n \"env_var\": \"AZURE_AI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"baichuan\",\n \"display\": \"Baichuan AI\",\n \"base_url\": \"https://api.baichuan-ai.com/v1\",\n \"env_var\": \"BAICHUAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"baidu\",\n \"display\": \"Baidu (文心/ERNIE)\",\n \"base_url\": \"https://qianfan.baidubce.com/v2\",\n \"env_var\": \"BAIDU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"baidu_v2\",\n \"display\": \"BaiduV2\",\n \"base_url\": \"https://qianfan.baidubce.com/v2\",\n \"env_var\": \"QIANFAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bailing\",\n \"display\": \"Bailing\",\n \"base_url\": \"https://api.ant-ling.com/v1\",\n \"env_var\": \"BAILING_API_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"baseten\",\n \"display\": \"Baseten\",\n \"base_url\": \"https://inference.baseten.co/v1\",\n \"env_var\": \"BASETEN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"berget\",\n \"display\": \"Berget.AI\",\n \"base_url\": \"https://api.berget.ai/v1\",\n \"env_var\": \"BERGET_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bigmodel\",\n \"display\": \"BigModel (智谱)\",\n \"base_url\": \"https://open.bigmodel.cn/api/paas/v4\",\n \"env_var\": \"BIGMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"blueclaw\",\n \"display\": \"Blue Claw\",\n \"base_url\": \"https://openai.blueclaw.network/v1\",\n \"env_var\": \"BLUECLAW_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bytedance\",\n \"display\": \"ByteDance\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"byteplus\",\n \"display\": \"BytePlus (Volcano)\",\n \"base_url\": \"https://ark.bytepluses.com/api/v3\",\n \"env_var\": \"BYTEPLUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bytez\",\n \"display\": \"Bytez\",\n \"base_url\": \"https://api.bytez.com/v2\",\n \"env_var\": \"BYTEZ_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"canopywave\",\n \"display\": \"Canopywave\",\n \"base_url\": \"https://api.canopywave.com/v1\",\n \"env_var\": \"CANOPYWAVE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cerebras\",\n \"display\": \"Cerebras\",\n \"base_url\": \"https://api.cerebras.ai/v1\",\n \"env_var\": \"CEREBRAS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"chatgpt\",\n \"display\": \"ChatGPT (订阅)\",\n \"base_url\": \"https://chatgpt.com/backend-api/codex\",\n \"env_var\": \"CHATGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cherryin\",\n \"display\": \"cherryin\",\n \"base_url\": \"https://open.cherryin.net\",\n \"env_var\": \"CHERRYIN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"chutes\",\n \"display\": \"Chutes\",\n \"base_url\": \"https://llm.chutes.ai/v1\",\n \"env_var\": \"CHUTES_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"clarifai\",\n \"display\": \"Clarifai\",\n \"base_url\": \"https://api.clarifai.com/v2/ext/openai/v1\",\n \"env_var\": \"CLARIFAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"claudinio\",\n \"display\": \"Claudinio\",\n \"base_url\": \"https://api.claudin.io\",\n \"env_var\": \"CLAUDINIO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cline_pass\",\n \"display\": \"Cline\",\n \"base_url\": \"https://api.cline.bot/v1\",\n \"env_var\": \"CLINE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"closeai\",\n \"display\": \"CloseAI\",\n \"base_url\": \"https://api.closeai-proxy.xyz/v1\",\n \"env_var\": \"CLOSEAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cloudferro_sherlock\",\n \"display\": \"CloudFerro Sherlock\",\n \"base_url\": \"https://api-sherlock.cloudferro.com/openai/v1\",\n \"env_var\": \"CLOUDFERRO_SHERLOCK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cloudflare\",\n \"display\": \"Cloudflare\",\n \"base_url\": \"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\",\n \"env_var\": \"CLOUDFLARE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cloudflare_workers_ai\",\n \"display\": \"Cloudflare Workers AI\",\n \"base_url\": \"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\",\n \"env_var\": \"CLOUDFLARE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"codestral\",\n \"display\": \"Codestral (Mistral)\",\n \"base_url\": \"https://api.mistral.ai/v1\",\n \"env_var\": \"CODESTRAL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cometapi\",\n \"display\": \"CometAPI\",\n \"base_url\": \"https://api.cometapi.com/v1\",\n \"env_var\": \"COMETAPI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"commandcode\",\n \"display\": \"CommandCode\",\n \"base_url\": \"https://api.commandcode.com/v1\",\n \"env_var\": \"COMMANDCODE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"compactifai\",\n \"display\": \"CompactifAI\",\n \"base_url\": \"https://api.compactif.ai/v1\",\n \"env_var\": \"COMPACTIFAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"copilot\",\n \"display\": \"GitHub Copilot\",\n \"base_url\": \"https://api.githubcopilot.com\",\n \"env_var\": \"COPILOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cortecs\",\n \"display\": \"Cortecs\",\n \"base_url\": \"https://api.cortecs.ai/v1/\",\n \"env_var\": \"CORTECS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"coze\",\n \"display\": \"Coze (扣子)\",\n \"base_url\": \"https://api.coze.cn/v1\",\n \"env_var\": \"COZE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"crof\",\n \"display\": \"CrofAI\",\n \"base_url\": \"https://crof.ai/v1\",\n \"env_var\": \"CROF_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"crossmodel\",\n \"display\": \"CrossModel\",\n \"base_url\": \"https://api.crossmodel.ai/v1\",\n \"env_var\": \"CROSSMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"crusoe\",\n \"display\": \"Crusoe\",\n \"base_url\": \"https://api.inference.crusoecloud.com/v1\",\n \"env_var\": \"CRUSOE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"daoxe\",\n \"display\": \"DaoXE\",\n \"base_url\": \"https://daoxe.com/v1\",\n \"env_var\": \"DAOXE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"darkbloom\",\n \"display\": \"Darkbloom\",\n \"base_url\": \"https://api.darkbloom.dev/v1\",\n \"env_var\": \"DARKBLOOM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"databricks\",\n \"display\": \"Databricks\",\n \"base_url\": \"https://databricks.com/serving-endpoints\",\n \"env_var\": \"DATABRICKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"datarobot\",\n \"display\": \"DataRobot\",\n \"base_url\": \"https://app.datarobot.com/api/v2\",\n \"env_var\": \"DATAROBOT_API_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"deepbricks\",\n \"display\": \"DeepBricks\",\n \"base_url\": \"https://api.deepbricks.ai/v1\",\n \"env_var\": \"DEEPBRICKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"deepinfra\",\n \"display\": \"DeepInfra\",\n \"base_url\": \"https://api.deepinfra.com/v1/openai\",\n \"env_var\": \"DEEPINFRA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"deepseek\",\n \"display\": \"DeepSeek\",\n \"base_url\": \"https://api.deepseek.com/v1\",\n \"env_var\": \"DEEPSEEK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"digitalocean\",\n \"display\": \"DigitalOcean\",\n \"base_url\": \"https://inference.do-ai.run\",\n \"env_var\": \"DIGITALOCEAN_ACCESS_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"dinference\",\n \"display\": \"DInference\",\n \"base_url\": \"https://api.dinference.com/v1\",\n \"env_var\": \"DINFERENCE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"doubao\",\n \"display\": \"Doubao\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"doubleword\",\n \"display\": \"Doubleword\",\n \"base_url\": \"https://api.doubleword.ai/v1\",\n \"env_var\": \"DOUBLEWORD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"drun\",\n \"display\": \"D.Run (China)\",\n \"base_url\": \"https://chat.d.run/v1\",\n \"env_var\": \"DRUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ebcloud\",\n \"display\": \"EBCloud\",\n \"base_url\": \"https://maas-api.ebcloud.com/v1\",\n \"env_var\": \"EBCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"embercloud\",\n \"display\": \"Embercloud\",\n \"base_url\": \"https://api.embercloud.com/v1\",\n \"env_var\": \"EMBERCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"empiriolabs\",\n \"display\": \"EmpirioLabs AI\",\n \"base_url\": \"https://api.empiriolabs.ai/v1\",\n \"env_var\": \"EMPIRIOLABS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"evroc\",\n \"display\": \"evroc\",\n \"base_url\": \"https://models.think.evroc.com/v1\",\n \"env_var\": \"EVROC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fastcrw\",\n \"display\": \"FastCRW\",\n \"base_url\": \"https://fastcrw.com/api/v1\",\n \"env_var\": \"FASTCRW_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fastgpt\",\n \"display\": \"FastGPT\",\n \"base_url\": \"https://api.fastgpt.in/v1\",\n \"env_var\": \"FASTGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fastrouter\",\n \"display\": \"FastRouter\",\n \"base_url\": \"https://api.fastrouter.ai/v1\",\n \"env_var\": \"FASTROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"featherless_ai\",\n \"display\": \"Featherless AI\",\n \"base_url\": \"https://api.featherless.ai/v1\",\n \"env_var\": \"FEATHERLESS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"firepass\",\n \"display\": \"Fireworks (Firepass)\",\n \"base_url\": \"https://api.fireworks.ai/inference/v1\",\n \"env_var\": \"FIREWORKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fireworks\",\n \"display\": \"Fireworks\",\n \"base_url\": \"https://api.fireworks.ai/inference/v1\",\n \"env_var\": \"FIREWORKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"freemodel\",\n \"display\": \"FreeModel\",\n \"base_url\": \"https://api.freemodel.dev/v1\",\n \"env_var\": \"FREEMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"friendliai\",\n \"display\": \"FriendliAI\",\n \"base_url\": \"https://inference.friendli.ai/v1\",\n \"env_var\": \"FRIENDLIAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"frogbot\",\n \"display\": \"FrogBot\",\n \"base_url\": \"https://app.frogbot.ai/api/v1\",\n \"env_var\": \"FROGBOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"galadriel\",\n \"display\": \"Galadriel\",\n \"base_url\": \"https://api.galadriel.com/v1\",\n \"env_var\": \"GALADRIEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gdc\",\n \"display\": \"GDC\",\n \"base_url\": \"https://api.gdc.ai/v1\",\n \"env_var\": \"GDC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gigachat\",\n \"display\": \"GigaChat (Sberbank)\",\n \"base_url\": \"https://gigachat.devices.sberbank.ru/api/v1\",\n \"env_var\": \"GIGACHAT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"github\",\n \"display\": \"GitHub Models\",\n \"base_url\": \"https://models.inference.ai.azure.com\",\n \"env_var\": \"GITHUB_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"gmi\",\n \"display\": \"GMI\",\n \"base_url\": \"https://api.gmi-serving.com/v1\",\n \"env_var\": \"GMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gmicloud\",\n \"display\": \"GMI Cloud\",\n \"base_url\": \"https://api.gmi-serving.com/v1\",\n \"env_var\": \"GMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gonka24\",\n \"display\": \"Gonka24\",\n \"base_url\": \"https://api.gonka24.com/v1\",\n \"env_var\": \"GONKA24_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gradient_ai\",\n \"display\": \"Gradient AI\",\n \"base_url\": \"https://inference.do-ai.run/v1\",\n \"env_var\": \"GRADIENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"groq\",\n \"display\": \"Groq\",\n \"base_url\": \"https://api.groq.com/openai/v1\",\n \"env_var\": \"GROQ_API_KEY\",\n \"profile\": {\n \"supports_top_k\": false,\n \"stream_usage_key\": \"x_groq\",\n \"max_tokens_key\": \"max_completion_tokens\"\n }\n },\n {\n \"name\": \"helicone\",\n \"display\": \"Helicone\",\n \"base_url\": \"https://api.helicone.ai/v1\",\n \"env_var\": \"HELICONE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"heroku\",\n \"display\": \"Heroku AI\",\n \"base_url\": \"https://api.heroku.com/inference/v1\",\n \"env_var\": \"HEROKU_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_completion_tokens\"\n }\n },\n {\n \"name\": \"hetzner\",\n \"display\": \"Hetzner\",\n \"base_url\": \"https://inference.hetzner.com/api/v1\",\n \"env_var\": \"HETZNER_VLLM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"hosted_vllm\",\n \"display\": \"Hosted vLLM\",\n \"base_url\": \"https://hosted-vllm-api.com/v1\",\n \"env_var\": \"HOSTED_VLLM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"hpc_ai\",\n \"display\": \"HPC-AI\",\n \"base_url\": \"https://api.hpc-ai.com/inference/v1\",\n \"env_var\": \"INFERENCE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"hyperbolic\",\n \"display\": \"Hyperbolic\",\n \"base_url\": \"https://api.hyperbolic.xyz/v1\",\n \"env_var\": \"HYPERBOLIC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"iflowcn\",\n \"display\": \"iFlow\",\n \"base_url\": \"https://apis.iflow.cn/v1\",\n \"env_var\": \"IFLOW_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inception\",\n \"display\": \"Inception Labs\",\n \"base_url\": \"https://api.inceptionlabs.ai/v1\",\n \"env_var\": \"INCEPTION_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inceptron\",\n \"display\": \"Inceptron\",\n \"base_url\": \"https://api.inceptron.io/v1\",\n \"env_var\": \"INCEPTRON_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inference_net\",\n \"display\": \"Inference.net\",\n \"base_url\": \"https://api.inference.net/v1\",\n \"env_var\": \"INFERENCE_NET_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inferx\",\n \"display\": \"InferX\",\n \"base_url\": \"https://model.inferx.net/v1\",\n \"env_var\": \"INFERX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"infinity\",\n \"display\": \"Infinity AI\",\n \"base_url\": \"https://infinity.ai/api/v1\",\n \"env_var\": \"INFINITY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"io_net\",\n \"display\": \"IO.NET\",\n \"base_url\": \"https://api.intelligence.io.solutions/api/v1\",\n \"env_var\": \"IOINTELLIGENCE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"jiekou\",\n \"display\": \"Jiekou.AI\",\n \"base_url\": \"https://api.highwayapi.ai/openai\",\n \"env_var\": \"JIEKOU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kenari\",\n \"display\": \"Kenari\",\n \"base_url\": \"https://kenari.id/v1\",\n \"env_var\": \"KENARI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kilo\",\n \"display\": \"Kilo\",\n \"base_url\": \"https://api.kilo.ai/v1\",\n \"env_var\": \"KILO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kimi\",\n \"display\": \"Kimi\",\n \"base_url\": \"https://api.moonshot.ai/v1\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kimi_for_coding\",\n \"display\": \"Kimi For Coding\",\n \"base_url\": \"https://api.kimi.com/coding/v1\",\n \"env_var\": \"KIMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kiro\",\n \"display\": \"Kiro\",\n \"base_url\": \"https://api.kiro.dev/v1\",\n \"env_var\": \"KIRO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kluster_ai\",\n \"display\": \"Kluster AI\",\n \"base_url\": \"https://api.kluster.ai/v1\",\n \"env_var\": \"KLUSTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"krutrim\",\n \"display\": \"Krutrim\",\n \"base_url\": \"https://api.krutrim.ai/v1\",\n \"env_var\": \"KRUTRIM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kuae_cloud_coding_plan\",\n \"display\": \"KUAE Cloud Coding Plan\",\n \"base_url\": \"https://coding-plan-endpoint.kuaecloud.net/v1\",\n \"env_var\": \"KUAE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lambda_ai\",\n \"display\": \"Lambda AI\",\n \"base_url\": \"https://api.lambda.ai/v1\",\n \"env_var\": \"LAMBDA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lemonade\",\n \"display\": \"Lemonade\",\n \"base_url\": \"http://localhost:13305/v1\",\n \"env_var\": \"LEMONADE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lemonfox_ai\",\n \"display\": \"Lemonfox AI\",\n \"base_url\": \"https://api.lemonfox.ai/v1\",\n \"env_var\": \"LEMONFOX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"libertai\",\n \"display\": \"Libertai\",\n \"base_url\": \"https://api.libertai.io/v1\",\n \"env_var\": \"LIBERTAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lilac\",\n \"display\": \"Lilac\",\n \"base_url\": \"https://api.getlilac.com/v1\",\n \"env_var\": \"LILAC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lingyiwanwu\",\n \"display\": \"Lingyiwanwu (零一万物)\",\n \"base_url\": \"https://api.lingyiwanwu.com/v1\",\n \"env_var\": \"LINGYIWANWU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llama\",\n \"display\": \"Llama\",\n \"base_url\": \"https://api.llama.com/compat/v1/\",\n \"env_var\": \"LLAMA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llamagate\",\n \"display\": \"Llamagate\",\n \"base_url\": \"https://api.llamagate.dev/v1\",\n \"env_var\": \"LLAMAGATE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llmgateway\",\n \"display\": \"LLM Gateway\",\n \"base_url\": \"https://api.llmgateway.io/v1\",\n \"env_var\": \"LLM_GATEWAY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llmtr\",\n \"display\": \"LLMTR\",\n \"base_url\": \"https://llmtr.com/v1\",\n \"env_var\": \"LLMTR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"longcat\",\n \"display\": \"LongCat\",\n \"base_url\": \"https://api.longcat.chat/v1\",\n \"env_var\": \"LONGCAT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lucidquery\",\n \"display\": \"LucidQuery\",\n \"base_url\": \"https://api.lucidquery.com/v1\",\n \"env_var\": \"LUCIDQUERY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lynkr\",\n \"display\": \"Lynkr\",\n \"base_url\": \"http://localhost:8081/v1\",\n \"env_var\": \"LYNKR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"matterai\",\n \"display\": \"Matter AI\",\n \"base_url\": \"https://api.matterai.com/v1\",\n \"env_var\": \"MATTERAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"meganova\",\n \"display\": \"Meganova\",\n \"base_url\": \"https://api.meganova.ai/v1\",\n \"env_var\": \"MEGANOVA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"merge_gateway\",\n \"display\": \"Merge Gateway\",\n \"base_url\": \"https://api-gateway.merge.dev/v1/openai\",\n \"env_var\": \"MERGE_GATEWAY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"meta\",\n \"display\": \"Meta\",\n \"base_url\": \"https://api.meta.ai/v1\",\n \"env_var\": \"MODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"meta_llama\",\n \"display\": \"Meta Llama API\",\n \"base_url\": \"https://api.llama.com/compat/v1\",\n \"env_var\": \"LLAMA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"mimo\",\n \"display\": \"Mimo\",\n \"base_url\": \"https://api.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax\",\n \"display\": \"MiniMax\",\n \"base_url\": \"https://api.minimax.io/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax_cn\",\n \"display\": \"MiniMax (minimaxi.com)\",\n \"base_url\": \"https://api.minimaxi.com/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax_cn_coding_plan\",\n \"display\": \"MiniMax Token Plan (minimaxi.com)\",\n \"base_url\": \"https://api.minimaxi.com/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax_coding_plan\",\n \"display\": \"MiniMax Token Plan (minimax.io)\",\n \"base_url\": \"https://api.minimax.io/anthropic/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"mira\",\n \"display\": \"Mira\",\n \"base_url\": \"https://api.mira.so/v1\",\n \"env_var\": \"MIRA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"mixlayer\",\n \"display\": \"Mixlayer\",\n \"base_url\": \"https://models.mixlayer.ai/v1\",\n \"env_var\": \"MIXLAYER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"moark\",\n \"display\": \"Moark\",\n \"base_url\": \"https://api.moark.com/v1\",\n \"env_var\": \"MOARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"modal\",\n \"display\": \"Modal\",\n \"base_url\": \"https://modal.com/v1\",\n \"env_var\": \"MODAL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"model_oracle_ai\",\n \"display\": \"Model Oracle AI\",\n \"base_url\": \"https://api.modeloracle.com/api/v1\",\n \"env_var\": \"MODEL_ORACLE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"modelscope\",\n \"display\": \"ModelScope\",\n \"base_url\": \"https://api-inference.modelscope.cn/v1\",\n \"env_var\": \"MODELSCOPE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"moonshotai\",\n \"display\": \"Moonshot AI\",\n \"base_url\": \"https://api.moonshot.cn/v1\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"moonshotai_cn\",\n \"display\": \"Moonshot AI (China)\",\n \"base_url\": \"https://api.moonshot.cn/anthropic/v1(Anthropic\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"morph\",\n \"display\": \"Morph LLM\",\n \"base_url\": \"https://api.morphllm.com/v1\",\n \"env_var\": \"MORPH_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nanogpt\",\n \"display\": \"NanoGPT\",\n \"base_url\": \"https://api.nanogpt.com/v1\",\n \"env_var\": \"NANOGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ncompass\",\n \"display\": \"Ncompass\",\n \"base_url\": \"https://api.ncompass.tech/v1\",\n \"env_var\": \"NCOMPASS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nearai\",\n \"display\": \"NEAR AI Cloud\",\n \"base_url\": \"https://cloud-api.near.ai/v1\",\n \"env_var\": \"NEARAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nebius\",\n \"display\": \"Nebius AI\",\n \"base_url\": \"https://api.studio.nebius.ai/v1\",\n \"env_var\": \"NEBIUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"neon\",\n \"display\": \"Neon\",\n \"base_url\": \"https:///v1\",\n \"env_var\": \"NEON_AI_GATEWAY_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"neuralwatt\",\n \"display\": \"Neuralwatt\",\n \"base_url\": \"https://api.neuralwatt.com/v1\",\n \"env_var\": \"NEURALWATT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nextbit\",\n \"display\": \"NextBit\",\n \"base_url\": \"https://api.nextbit.ai/v1\",\n \"env_var\": \"NEXTBIT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nlp_cloud\",\n \"display\": \"NLP Cloud\",\n \"base_url\": \"https://api.nlpcloud.io/v1\",\n \"env_var\": \"NLPCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nous_research\",\n \"display\": \"Nous Research\",\n \"base_url\": \"https://api.nousresearch.com/v1\",\n \"env_var\": \"NOUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"novita\",\n \"display\": \"Novita AI\",\n \"base_url\": \"https://api.novita.ai/v1\",\n \"env_var\": \"NOVITA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nscale\",\n \"display\": \"Nscale\",\n \"base_url\": \"https://inference.api.nscale.com/v1\",\n \"env_var\": \"NSCALE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nvidia_nim\",\n \"display\": \"NVIDIA NIM\",\n \"base_url\": \"https://integrate.api.nvidia.com/v1\",\n \"env_var\": \"NVIDIA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"oci\",\n \"display\": \"OCI\",\n \"base_url\": \"https://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1\",\n \"env_var\": \"OCI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ofox\",\n \"display\": \"OfoxAI\",\n \"base_url\": \"https://api.ofox.ai/v1\",\n \"env_var\": \"OFOX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ohmygpt\",\n \"display\": \"OhMyGPT\",\n \"base_url\": \"https://api.ohmygpt.com/v1\",\n \"env_var\": \"OHMYGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ollama_cloud\",\n \"display\": \"Ollama Cloud\",\n \"base_url\": \"https://api.ollama.com/v1\",\n \"env_var\": \"OLLAMA_CLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"openaimax\",\n \"display\": \"OpenAIMax\",\n \"base_url\": \"https://api.openaimax.com/v1\",\n \"env_var\": \"OPENAIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"openaisb\",\n \"display\": \"OpenAI-SB\",\n \"base_url\": \"https://api.openaisb.com/v1\",\n \"env_var\": \"OPENAISB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"opencode\",\n \"display\": \"OpenCode Zen\",\n \"base_url\": \"https://api.opencode.zen/v1\",\n \"env_var\": \"OPENCODE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"opencode_go\",\n \"display\": \"OpenCode Go\",\n \"base_url\": \"https://api.opencode.dev/v1\",\n \"env_var\": \"OPENCODE_GO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"opencode_zen\",\n \"display\": \"OpenCode Zen\",\n \"base_url\": \"https://api.opencode.zen/v1\",\n \"env_var\": \"OPENCODE_ZEN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"orcarouter\",\n \"display\": \"OrcaRouter\",\n \"base_url\": \"https://api.orcarouter.com/v1\",\n \"env_var\": \"ORCAROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ovhcloud\",\n \"display\": \"OVHcloud AI\",\n \"base_url\": \"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1\",\n \"env_var\": \"OVHCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"parasail\",\n \"display\": \"Parasail\",\n \"base_url\": \"https://api.parasail.io/v1\",\n \"env_var\": \"PARASAIL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"perfxcloud\",\n \"display\": \"PerfXCloud\",\n \"base_url\": \"https://api.perfxcloud.com/v1\",\n \"env_var\": \"PERFXCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"perplexity\",\n \"display\": \"Perplexity\",\n \"base_url\": \"https://api.perplexity.ai\",\n \"env_var\": \"PERPLEXITY_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"perplexity_agent\",\n \"display\": \"Perplexity Agent\",\n \"base_url\": \"https://api.perplexity.ai/v1\",\n \"env_var\": \"PERPLEXITY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"petals\",\n \"display\": \"Petals\",\n \"base_url\": \"https://api.petals.dev/v1\",\n \"env_var\": \"PETALS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"pinstripes\",\n \"display\": \"Pinstripes\",\n \"base_url\": \"https://api.pinstripes.io/v1\",\n \"env_var\": \"PINSTRIPES_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"pioneer\",\n \"display\": \"Pioneer\",\n \"base_url\": \"https://api.pioneer.ai/v1\",\n \"env_var\": \"PIONEER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"poe\",\n \"display\": \"Poe\",\n \"base_url\": \"https://api.poe.com/v1\",\n \"env_var\": \"POE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"poolside\",\n \"display\": \"Poolside\",\n \"base_url\": \"https://inference.poolside.ai/v1\",\n \"env_var\": \"POOLSIDE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"portkey\",\n \"display\": \"Portkey Gateway\",\n \"base_url\": \"https://api.portkey.ai/v1\",\n \"env_var\": \"PORTKEY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ppinfra\",\n \"display\": \"PPInfra(PPIO 派欧云)\",\n \"base_url\": \"https://api.ppio.com/openai\",\n \"env_var\": \"PPIO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"predibase\",\n \"display\": \"Predibase\",\n \"base_url\": \"https://serving.app.predibase.com/v1\",\n \"env_var\": \"PREDIBASE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"privatemode_ai\",\n \"display\": \"Privatemode AI\",\n \"base_url\": \"http://localhost:8080/v1\",\n \"env_var\": \"PRIVATEMODE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"publicai\",\n \"display\": \"Publicai\",\n \"base_url\": \"https://platform.publicai.co/v1\",\n \"env_var\": \"PUBLICAI_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"qihang_ai\",\n \"display\": \"QiHang(启航 AI)\",\n \"base_url\": \"https://api.qhaigc.net/v1\",\n \"env_var\": \"QIHANG_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"qihoo360\",\n \"display\": \"360 AI\",\n \"base_url\": \"https://api.360.cn/v1\",\n \"env_var\": \"AI360_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"qiniu_ai\",\n \"display\": \"Qiniu AI\",\n \"base_url\": \"https://api.qiniu.com/v1\",\n \"env_var\": \"QINIU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"regolo_ai\",\n \"display\": \"Regolo AI\",\n \"base_url\": \"https://api.regolo.ai/v1\",\n \"env_var\": \"REGOLO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"reka_ai\",\n \"display\": \"Reka AI\",\n \"base_url\": \"https://api.reka.ai/v1\",\n \"env_var\": \"REKA_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"requesty\",\n \"display\": \"Requesty\",\n \"base_url\": \"https://api.requesty.ai/v1\",\n \"env_var\": \"REQUESTY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"reve\",\n \"display\": \"Reve\",\n \"base_url\": \"https://api.reve.ai/v1\",\n \"env_var\": \"REVE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"routing_run\",\n \"display\": \"routing.run\",\n \"base_url\": \"https://api.routing.run/v1\",\n \"env_var\": \"ROUTING_RUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"sakana\",\n \"display\": \"Sakana AI\",\n \"base_url\": \"https://api.sakana.ai/v1\",\n \"env_var\": \"SAKANA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"sambanova\",\n \"display\": \"SambaNova\",\n \"base_url\": \"https://api.sambanova.ai/v1\",\n \"env_var\": \"SAMBANOVA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"sarvam\",\n \"display\": \"Sarvam AI\",\n \"base_url\": \"https://api.sarvam.ai/v1\",\n \"env_var\": \"SARVAM_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"scaleway\",\n \"display\": \"Scaleway AI\",\n \"base_url\": \"https://api.scaleway.ai/v1\",\n \"env_var\": \"SCALEWAY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"scx_ai\",\n \"display\": \"SCX AI\",\n \"base_url\": \"https://api.scx.ai/v1\",\n \"env_var\": \"SCX_AI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"siliconflow\",\n \"display\": \"SiliconFlow\",\n \"base_url\": \"https://api.siliconflow.cn/v1\",\n \"env_var\": \"SILICONFLOW_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"snowflake\",\n \"display\": \"Snowflake\",\n \"base_url\": \"https://.snowflakecomputing.com/api/v2/cortex/v1\",\n \"env_var\": \"SNOWFLAKE_PAT\",\n \"profile\": {}\n },\n {\n \"name\": \"snowflake_cortex\",\n \"display\": \"Snowflake Cortex\",\n \"base_url\": \"https://.snowflakecomputing.com/api/v2/cortex/v1\",\n \"env_var\": \"SNOWFLAKE_CORTEX_PAT\",\n \"profile\": {}\n },\n {\n \"name\": \"stackit\",\n \"display\": \"STACKIT\",\n \"base_url\": \"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\",\n \"env_var\": \"STACKIT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"stepfun\",\n \"display\": \"StepFun (阶跃星辰)\",\n \"base_url\": \"https://api.stepfun.com/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"stepfun_ai_step_plan\",\n \"display\": \"StepFun Step Plan (Global)\",\n \"base_url\": \"https://api.stepfun.ai/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"stepfun_step_plan\",\n \"display\": \"StepFun Step Plan (China)\",\n \"base_url\": \"https://api.stepfun.com/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"subconscious\",\n \"display\": \"Subconscious\",\n \"base_url\": \"https://api.subconscious.dev/v1\",\n \"env_var\": \"SUBCONSCIOUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"submodel\",\n \"display\": \"SubModel\",\n \"base_url\": \"https://api.submodel.com/v1\",\n \"env_var\": \"SUBMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"synthetic\",\n \"display\": \"Synthetic\",\n \"base_url\": \"https://api.synthetic.new/openai/v1\",\n \"env_var\": \"SYNTHETIC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent\",\n \"display\": \"Tencent (混元/Hunyuan)\",\n \"base_url\": \"https://api.hunyuan.cloud.tencent.com/v1\",\n \"env_var\": \"TENCENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_coding_plan\",\n \"display\": \"Tencent Coding Plan (China)\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/coding/v3\",\n \"env_var\": \"TENCENT_CODING_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan\",\n \"display\": \"Tencent Token Plan\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_enterprise_auto\",\n \"display\": \"腾讯云 Token Plan / Token Plan 企业版轻享套餐\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_enterprise_pro\",\n \"display\": \"腾讯云 Token Plan / Token Plan 企业版专业套餐\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_general_personal\",\n \"display\": \"腾讯云 Token Plan / 通用 Token Plan(个人版)\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_hy_personal\",\n \"display\": \"腾讯云 Token Plan / Hy Token Plan(个人版)\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_tokenhub\",\n \"display\": \"Tencent TokenHub\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/v1\",\n \"env_var\": \"TENCENT_TOKENHUB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tensormesh\",\n \"display\": \"Tensormesh\",\n \"base_url\": \"https://serverless.tensormesh.ai\",\n \"env_var\": \"YOUR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"the_grid_ai\",\n \"display\": \"The Grid AI\",\n \"base_url\": \"https://thegrid.ai/docs\",\n \"env_var\": \"THEGRIDAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"thinkingmachines\",\n \"display\": \"Thinking Machines\",\n \"base_url\": \"https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1\",\n \"env_var\": \"TINKER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tinfoil\",\n \"display\": \"Tinfoil\",\n \"base_url\": \"https://inference.tinfoil.sh/v1\",\n \"env_var\": \"TINFOIL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"togetherai\",\n \"display\": \"Together AI\",\n \"base_url\": \"https://api.together.xyz/v1\",\n \"env_var\": \"TOGETHER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tokenflux\",\n \"display\": \"Tokenflux\",\n \"base_url\": \"https://tokenflux.ai/v1\",\n \"env_var\": \"TOKENFLUX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tokenpony\",\n \"display\": \"TokenPony\",\n \"base_url\": \"https://api.tokenpony.com/v1\",\n \"env_var\": \"TOKENPONY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"trustedrouter\",\n \"display\": \"TrustedRouter\",\n \"base_url\": \"https://api.trustedrouter.com/v1\",\n \"env_var\": \"TRUSTEDROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tundra\",\n \"display\": \"Tundra\",\n \"base_url\": \"https://api.tundra.ai/v1\",\n \"env_var\": \"TUNDRA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"umans_ai\",\n \"display\": \"Umans AI\",\n \"base_url\": \"https://api.code.umans.ai/v1\",\n \"env_var\": \"UMANS_AI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"unorouter\",\n \"display\": \"UnoRouter\",\n \"base_url\": \"https://unorouter.com/en\",\n \"env_var\": \"UNOROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"upstage\",\n \"display\": \"Upstage\",\n \"base_url\": \"https://api.upstage.ai/v1\",\n \"env_var\": \"UPSTAGE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"v0\",\n \"display\": \"v0 (Vercel)\",\n \"base_url\": \"https://api.v0.dev/v1\",\n \"env_var\": \"V0_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"venice\",\n \"display\": \"Venice\",\n \"base_url\": \"https://api.venice.ai/api/v1\",\n \"env_var\": \"VENICE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"vercel\",\n \"display\": \"Vercel\",\n \"base_url\": \"https://api.v0.dev/v1\",\n \"env_var\": \"VERCEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"vivgrid\",\n \"display\": \"Vivgrid\",\n \"base_url\": \"https://api.vivgrid.com/v1\",\n \"env_var\": \"VIVGRID_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"volc_engine\",\n \"display\": \"VolcEngine\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"vultr\",\n \"display\": \"Vultr\",\n \"base_url\": \"https://api.vultrinference.com/v1\",\n \"env_var\": \"VULTR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"wafer\",\n \"display\": \"Wafer\",\n \"base_url\": \"https://api.wafer.ai/v1\",\n \"env_var\": \"WAFER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"wandb\",\n \"display\": \"Weights & Biases\",\n \"base_url\": \"https://api.inference.wandb.ai/v1\",\n \"env_var\": \"WANDB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomi_token_plan_ams\",\n \"display\": \"Xiaomi Token Plan (Europe)\",\n \"base_url\": \"https://token-plan-ams.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomi_token_plan_cn\",\n \"display\": \"Xiaomi Token Plan (China)\",\n \"base_url\": \"https://token-plan-cn.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomi_token_plan_sgp\",\n \"display\": \"Xiaomi Token Plan (Singapore)\",\n \"base_url\": \"https://token-plan-sgp.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomimimo\",\n \"display\": \"Xiaomi MiMo\",\n \"base_url\": \"https://mimo.xiaomi.com/v1\",\n \"env_var\": \"XIAOMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xpersona\",\n \"display\": \"Xpersona\",\n \"base_url\": \"/v1\",\n \"env_var\": \"XPERSONA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xunfei\",\n \"display\": \"Xunfei\",\n \"base_url\": \"https://spark-api-open.xf-yun.com/v1\",\n \"env_var\": \"XUNFEI_API_PASSWORD\",\n \"profile\": {}\n },\n {\n \"name\": \"zai\",\n \"display\": \"Zai\",\n \"base_url\": \"https://api.z.ai/api/paas/v4\",\n \"env_var\": \"ZAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zai_coding_plan\",\n \"display\": \"Z.AI Coding Plan\",\n \"base_url\": \"https://api.z.ai/api/anthropic\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zeldoc\",\n \"display\": \"Zeldoc\",\n \"base_url\": \"https://api.zeldoc.ai/v1\",\n \"env_var\": \"ZELDOC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zenmux\",\n \"display\": \"ZenMux\",\n \"base_url\": \"https://zenmux.ai/api/v1\",\n \"env_var\": \"ZENMUX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zhipu_v4\",\n \"display\": \"ZhipuV4\",\n \"base_url\": \"https://open.bigmodel.cn/api/paas/v4\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zhipuai_coding_plan\",\n \"display\": \"Zhipu AI Coding Plan\",\n \"base_url\": \"https://docs.bigmodel.cn/cn/coding-plan/quick-start\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"profile\": {}\n }\n]\n"}, "a322c7f5a7fe25207708799791a9cf48435e9149": {"t": 1785846833.392104, "n": 42429, "h": "c40417fe8593d309", "c": "[\n {\n \"name\": \"abacus\",\n \"display\": \"Abacus\",\n \"base_url\": \"https://routellm.abacus.ai/v1\",\n \"env_var\": \"ABACUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"abliteration_ai\",\n \"display\": \"Abliteration AI\",\n \"base_url\": \"https://api.abliteration.ai/v1\",\n \"env_var\": \"ABLIT_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ai21\",\n \"display\": \"AI21 Labs\",\n \"base_url\": \"https://api.ai21.ai/v1\",\n \"env_var\": \"AI21_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ai302\",\n \"display\": \"302.AI\",\n \"base_url\": \"https://api.302.ai/v1\",\n \"env_var\": \"AI302_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ai_router\",\n \"display\": \"AI-ROUTER\",\n \"base_url\": \"https://api.ai-router.dev/v1\",\n \"env_var\": \"AI_ROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aiand\",\n \"display\": \"AIand\",\n \"base_url\": \"https://api.aiand.com/v1\",\n \"env_var\": \"AIAND_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aibadgr\",\n \"display\": \"AI Badgr\",\n \"base_url\": \"https://api.aibadgr.com/v1\",\n \"env_var\": \"AIBADGR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aigc2d\",\n \"display\": \"AIGC2D\",\n \"base_url\": \"https://api.aigc2d.com/v1\",\n \"env_var\": \"AIGC2D_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aihubmix\",\n \"display\": \"AIHubMix\",\n \"base_url\": \"https://aihubmix.com/v1\",\n \"env_var\": \"AIHUBMIX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ails\",\n \"display\": \"AILS\",\n \"base_url\": \"https://api.caipacity.com/v1\",\n \"env_var\": \"AILS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aiml\",\n \"display\": \"AI/ML API\",\n \"base_url\": \"https://api.aimlapi.com/v1\",\n \"env_var\": \"AIML_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aki_io\",\n \"display\": \"AKI.IO\",\n \"base_url\": \"https://aki.io/openai/v1\",\n \"env_var\": \"AKI_IO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"albert\",\n \"display\": \"Albert\",\n \"base_url\": \"https://api.albert.ai/v1\",\n \"env_var\": \"ALBERT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba\",\n \"display\": \"Alibaba Cloud (DashScope)\",\n \"base_url\": \"https://dashscope-intl.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_coding_plan\",\n \"display\": \"Alibaba Coding Plan\",\n \"base_url\": \"https://coding-intl.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_coding_plan_cn\",\n \"display\": \"Alibaba Coding Plan (China)\",\n \"base_url\": \"https://coding.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_token_plan\",\n \"display\": \"Alibaba Token Plan\",\n \"base_url\": \"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_token_plan_cn\",\n \"display\": \"Alibaba Token Plan (China)\",\n \"base_url\": \"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ambient\",\n \"display\": \"Ambient\",\n \"base_url\": \"https://api.ambient.xyz/v1\",\n \"env_var\": \"AMBIENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"anyapi\",\n \"display\": \"AnyAPI\",\n \"base_url\": \"https://api.anyapi.ai/v1\",\n \"env_var\": \"ANYAPI_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"anyscale\",\n \"display\": \"Anyscale\",\n \"base_url\": \"https://api.endpoints.anyscale.com/v1\",\n \"env_var\": \"ANYSCALE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"apertis\",\n \"display\": \"Apertis\",\n \"base_url\": \"https://api.stima.tech/v1\",\n \"env_var\": \"STIMA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"api2d\",\n \"display\": \"API2D\",\n \"base_url\": \"https://oa.api2d.net/v1\",\n \"env_var\": \"API2D_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"api2gpt\",\n \"display\": \"API2GPT\",\n \"base_url\": \"https://api.api2gpt.com/v1\",\n \"env_var\": \"API2GPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"apiserpent\",\n \"display\": \"API Serpent\",\n \"base_url\": \"https://api.apiserpent.com/v1\",\n \"env_var\": \"APISERPENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"atlascloud\",\n \"display\": \"AtlasCloud\",\n \"base_url\": \"https://api.atlascloud.com/v1\",\n \"env_var\": \"ATLASCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"atomic_chat\",\n \"display\": \"Atomic Chat\",\n \"base_url\": \"http://127.0.0.1:1337/v1\",\n \"env_var\": \"ATOMIC_CHAT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"auriko\",\n \"display\": \"Auriko\",\n \"base_url\": \"https://api.auriko.ai/v1\",\n \"env_var\": \"AURIKO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"azure_ai\",\n \"display\": \"Azure AI\",\n \"base_url\": \"https://models.inference.ai.azure.com\",\n \"env_var\": \"AZURE_AI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"baichuan\",\n \"display\": \"Baichuan AI\",\n \"base_url\": \"https://api.baichuan-ai.com/v1\",\n \"env_var\": \"BAICHUAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"baidu\",\n \"display\": \"Baidu (文心/ERNIE)\",\n \"base_url\": \"https://qianfan.baidubce.com/v2\",\n \"env_var\": \"BAIDU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"baidu_v2\",\n \"display\": \"BaiduV2\",\n \"base_url\": \"https://qianfan.baidubce.com/v2\",\n \"env_var\": \"QIANFAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bailing\",\n \"display\": \"Bailing\",\n \"base_url\": \"https://api.ant-ling.com/v1\",\n \"env_var\": \"BAILING_API_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"baseten\",\n \"display\": \"Baseten\",\n \"base_url\": \"https://inference.baseten.co/v1\",\n \"env_var\": \"BASETEN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"berget\",\n \"display\": \"Berget.AI\",\n \"base_url\": \"https://api.berget.ai/v1\",\n \"env_var\": \"BERGET_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bigmodel\",\n \"display\": \"BigModel (智谱)\",\n \"base_url\": \"https://open.bigmodel.cn/api/paas/v4\",\n \"env_var\": \"BIGMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"blueclaw\",\n \"display\": \"Blue Claw\",\n \"base_url\": \"https://openai.blueclaw.network/v1\",\n \"env_var\": \"BLUECLAW_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bytedance\",\n \"display\": \"ByteDance\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"byteplus\",\n \"display\": \"BytePlus (Volcano)\",\n \"base_url\": \"https://ark.bytepluses.com/api/v3\",\n \"env_var\": \"BYTEPLUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bytez\",\n \"display\": \"Bytez\",\n \"base_url\": \"https://api.bytez.com/v2\",\n \"env_var\": \"BYTEZ_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"canopywave\",\n \"display\": \"Canopywave\",\n \"base_url\": \"https://api.canopywave.com/v1\",\n \"env_var\": \"CANOPYWAVE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cerebras\",\n \"display\": \"Cerebras\",\n \"base_url\": \"https://api.cerebras.ai/v1\",\n \"env_var\": \"CEREBRAS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"chatgpt\",\n \"display\": \"ChatGPT (订阅)\",\n \"base_url\": \"https://chatgpt.com/backend-api/codex\",\n \"env_var\": \"CHATGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cherryin\",\n \"display\": \"cherryin\",\n \"base_url\": \"https://open.cherryin.net\",\n \"env_var\": \"CHERRYIN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"chutes\",\n \"display\": \"Chutes\",\n \"base_url\": \"https://llm.chutes.ai/v1\",\n \"env_var\": \"CHUTES_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"clarifai\",\n \"display\": \"Clarifai\",\n \"base_url\": \"https://api.clarifai.com/v2/ext/openai/v1\",\n \"env_var\": \"CLARIFAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"claudinio\",\n \"display\": \"Claudinio\",\n \"base_url\": \"https://api.claudin.io\",\n \"env_var\": \"CLAUDINIO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cline_pass\",\n \"display\": \"Cline\",\n \"base_url\": \"https://api.cline.bot/v1\",\n \"env_var\": \"CLINE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"closeai\",\n \"display\": \"CloseAI\",\n \"base_url\": \"https://api.closeai-proxy.xyz/v1\",\n \"env_var\": \"CLOSEAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cloudferro_sherlock\",\n \"display\": \"CloudFerro Sherlock\",\n \"base_url\": \"https://api-sherlock.cloudferro.com/openai/v1\",\n \"env_var\": \"CLOUDFERRO_SHERLOCK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cloudflare\",\n \"display\": \"Cloudflare\",\n \"base_url\": \"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\",\n \"env_var\": \"CLOUDFLARE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cloudflare_workers_ai\",\n \"display\": \"Cloudflare Workers AI\",\n \"base_url\": \"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\",\n \"env_var\": \"CLOUDFLARE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"codestral\",\n \"display\": \"Codestral (Mistral)\",\n \"base_url\": \"https://api.mistral.ai/v1\",\n \"env_var\": \"CODESTRAL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cometapi\",\n \"display\": \"CometAPI\",\n \"base_url\": \"https://api.cometapi.com/v1\",\n \"env_var\": \"COMETAPI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"commandcode\",\n \"display\": \"CommandCode\",\n \"base_url\": \"https://api.commandcode.com/v1\",\n \"env_var\": \"COMMANDCODE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"compactifai\",\n \"display\": \"CompactifAI\",\n \"base_url\": \"https://api.compactif.ai/v1\",\n \"env_var\": \"COMPACTIFAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"copilot\",\n \"display\": \"GitHub Copilot\",\n \"base_url\": \"https://api.githubcopilot.com\",\n \"env_var\": \"COPILOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cortecs\",\n \"display\": \"Cortecs\",\n \"base_url\": \"https://api.cortecs.ai/v1/\",\n \"env_var\": \"CORTECS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"coze\",\n \"display\": \"Coze (扣子)\",\n \"base_url\": \"https://api.coze.cn/v1\",\n \"env_var\": \"COZE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"crof\",\n \"display\": \"CrofAI\",\n \"base_url\": \"https://crof.ai/v1\",\n \"env_var\": \"CROF_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"crossmodel\",\n \"display\": \"CrossModel\",\n \"base_url\": \"https://api.crossmodel.ai/v1\",\n \"env_var\": \"CROSSMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"crusoe\",\n \"display\": \"Crusoe\",\n \"base_url\": \"https://api.inference.crusoecloud.com/v1\",\n \"env_var\": \"CRUSOE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"daoxe\",\n \"display\": \"DaoXE\",\n \"base_url\": \"https://daoxe.com/v1\",\n \"env_var\": \"DAOXE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"darkbloom\",\n \"display\": \"Darkbloom\",\n \"base_url\": \"https://api.darkbloom.dev/v1\",\n \"env_var\": \"DARKBLOOM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"databricks\",\n \"display\": \"Databricks\",\n \"base_url\": \"https://databricks.com/serving-endpoints\",\n \"env_var\": \"DATABRICKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"datarobot\",\n \"display\": \"DataRobot\",\n \"base_url\": \"https://app.datarobot.com/api/v2\",\n \"env_var\": \"DATAROBOT_API_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"deepbricks\",\n \"display\": \"DeepBricks\",\n \"base_url\": \"https://api.deepbricks.ai/v1\",\n \"env_var\": \"DEEPBRICKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"deepinfra\",\n \"display\": \"DeepInfra\",\n \"base_url\": \"https://api.deepinfra.com/v1/openai\",\n \"env_var\": \"DEEPINFRA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"deepseek\",\n \"display\": \"DeepSeek\",\n \"base_url\": \"https://api.deepseek.com/v1\",\n \"env_var\": \"DEEPSEEK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"digitalocean\",\n \"display\": \"DigitalOcean\",\n \"base_url\": \"https://inference.do-ai.run\",\n \"env_var\": \"DIGITALOCEAN_ACCESS_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"dinference\",\n \"display\": \"DInference\",\n \"base_url\": \"https://api.dinference.com/v1\",\n \"env_var\": \"DINFERENCE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"doubao\",\n \"display\": \"Doubao\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"doubleword\",\n \"display\": \"Doubleword\",\n \"base_url\": \"https://api.doubleword.ai/v1\",\n \"env_var\": \"DOUBLEWORD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"drun\",\n \"display\": \"D.Run (China)\",\n \"base_url\": \"https://chat.d.run/v1\",\n \"env_var\": \"DRUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ebcloud\",\n \"display\": \"EBCloud\",\n \"base_url\": \"https://maas-api.ebcloud.com/v1\",\n \"env_var\": \"EBCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"embercloud\",\n \"display\": \"Embercloud\",\n \"base_url\": \"https://api.embercloud.com/v1\",\n \"env_var\": \"EMBERCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"empiriolabs\",\n \"display\": \"EmpirioLabs AI\",\n \"base_url\": \"https://api.empiriolabs.ai/v1\",\n \"env_var\": \"EMPIRIOLABS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"evroc\",\n \"display\": \"evroc\",\n \"base_url\": \"https://models.think.evroc.com/v1\",\n \"env_var\": \"EVROC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fastcrw\",\n \"display\": \"FastCRW\",\n \"base_url\": \"https://fastcrw.com/api/v1\",\n \"env_var\": \"FASTCRW_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fastgpt\",\n \"display\": \"FastGPT\",\n \"base_url\": \"https://api.fastgpt.in/v1\",\n \"env_var\": \"FASTGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fastrouter\",\n \"display\": \"FastRouter\",\n \"base_url\": \"https://api.fastrouter.ai/v1\",\n \"env_var\": \"FASTROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"featherless_ai\",\n \"display\": \"Featherless AI\",\n \"base_url\": \"https://api.featherless.ai/v1\",\n \"env_var\": \"FEATHERLESS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"firepass\",\n \"display\": \"Fireworks (Firepass)\",\n \"base_url\": \"https://api.fireworks.ai/inference/v1\",\n \"env_var\": \"FIREWORKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fireworks\",\n \"display\": \"Fireworks\",\n \"base_url\": \"https://api.fireworks.ai/inference/v1\",\n \"env_var\": \"FIREWORKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"freemodel\",\n \"display\": \"FreeModel\",\n \"base_url\": \"https://api.freemodel.dev/v1\",\n \"env_var\": \"FREEMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"friendliai\",\n \"display\": \"FriendliAI\",\n \"base_url\": \"https://inference.friendli.ai/v1\",\n \"env_var\": \"FRIENDLIAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"frogbot\",\n \"display\": \"FrogBot\",\n \"base_url\": \"https://app.frogbot.ai/api/v1\",\n \"env_var\": \"FROGBOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"galadriel\",\n \"display\": \"Galadriel\",\n \"base_url\": \"https://api.galadriel.com/v1\",\n \"env_var\": \"GALADRIEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gdc\",\n \"display\": \"GDC\",\n \"base_url\": \"https://api.gdc.ai/v1\",\n \"env_var\": \"GDC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gigachat\",\n \"display\": \"GigaChat (Sberbank)\",\n \"base_url\": \"https://gigachat.devices.sberbank.ru/api/v1\",\n \"env_var\": \"GIGACHAT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"github\",\n \"display\": \"GitHub Models\",\n \"base_url\": \"https://models.inference.ai.azure.com\",\n \"env_var\": \"GITHUB_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"gmi\",\n \"display\": \"GMI\",\n \"base_url\": \"https://api.gmi-serving.com/v1\",\n \"env_var\": \"GMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gmicloud\",\n \"display\": \"GMI Cloud\",\n \"base_url\": \"https://api.gmi-serving.com/v1\",\n \"env_var\": \"GMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gonka24\",\n \"display\": \"Gonka24\",\n \"base_url\": \"https://api.gonka24.com/v1\",\n \"env_var\": \"GONKA24_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gradient_ai\",\n \"display\": \"Gradient AI\",\n \"base_url\": \"https://inference.do-ai.run/v1\",\n \"env_var\": \"GRADIENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"groq\",\n \"display\": \"Groq\",\n \"base_url\": \"https://api.groq.com/openai/v1\",\n \"env_var\": \"GROQ_API_KEY\",\n \"profile\": {\n \"supports_top_k\": false,\n \"stream_usage_key\": \"x_groq\",\n \"max_tokens_key\": \"max_completion_tokens\"\n }\n },\n {\n \"name\": \"helicone\",\n \"display\": \"Helicone\",\n \"base_url\": \"https://api.helicone.ai/v1\",\n \"env_var\": \"HELICONE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"heroku\",\n \"display\": \"Heroku AI\",\n \"base_url\": \"https://api.heroku.com/inference/v1\",\n \"env_var\": \"HEROKU_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_completion_tokens\"\n }\n },\n {\n \"name\": \"hetzner\",\n \"display\": \"Hetzner\",\n \"base_url\": \"https://inference.hetzner.com/api/v1\",\n \"env_var\": \"HETZNER_VLLM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"hosted_vllm\",\n \"display\": \"Hosted vLLM\",\n \"base_url\": \"https://hosted-vllm-api.com/v1\",\n \"env_var\": \"HOSTED_VLLM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"hpc_ai\",\n \"display\": \"HPC-AI\",\n \"base_url\": \"https://api.hpc-ai.com/inference/v1\",\n \"env_var\": \"INFERENCE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"hyperbolic\",\n \"display\": \"Hyperbolic\",\n \"base_url\": \"https://api.hyperbolic.xyz/v1\",\n \"env_var\": \"HYPERBOLIC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"iflowcn\",\n \"display\": \"iFlow\",\n \"base_url\": \"https://apis.iflow.cn/v1\",\n \"env_var\": \"IFLOW_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inception\",\n \"display\": \"Inception Labs\",\n \"base_url\": \"https://api.inceptionlabs.ai/v1\",\n \"env_var\": \"INCEPTION_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inceptron\",\n \"display\": \"Inceptron\",\n \"base_url\": \"https://api.inceptron.io/v1\",\n \"env_var\": \"INCEPTRON_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inference_net\",\n \"display\": \"Inference.net\",\n \"base_url\": \"https://api.inference.net/v1\",\n \"env_var\": \"INFERENCE_NET_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inferencehub\",\n \"display\": \"InferenceHub\",\n \"base_url\": \"https://app.inferencehub.tech/v1\",\n \"env_var\": \"INFERENCEHUB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inferx\",\n \"display\": \"InferX\",\n \"base_url\": \"https://model.inferx.net/v1\",\n \"env_var\": \"INFERX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"infinity\",\n \"display\": \"Infinity AI\",\n \"base_url\": \"https://infinity.ai/api/v1\",\n \"env_var\": \"INFINITY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"io_net\",\n \"display\": \"IO.NET\",\n \"base_url\": \"https://api.intelligence.io.solutions/api/v1\",\n \"env_var\": \"IOINTELLIGENCE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"jiekou\",\n \"display\": \"Jiekou.AI\",\n \"base_url\": \"https://api.highwayapi.ai/openai\",\n \"env_var\": \"JIEKOU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kenari\",\n \"display\": \"Kenari\",\n \"base_url\": \"https://kenari.id/v1\",\n \"env_var\": \"KENARI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kilo\",\n \"display\": \"Kilo\",\n \"base_url\": \"https://api.kilo.ai/v1\",\n \"env_var\": \"KILO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kimi\",\n \"display\": \"Kimi\",\n \"base_url\": \"https://api.moonshot.ai/v1\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kimi_for_coding\",\n \"display\": \"Kimi For Coding\",\n \"base_url\": \"https://api.kimi.com/coding/v1\",\n \"env_var\": \"KIMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kiro\",\n \"display\": \"Kiro\",\n \"base_url\": \"https://api.kiro.dev/v1\",\n \"env_var\": \"KIRO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kluster_ai\",\n \"display\": \"Kluster AI\",\n \"base_url\": \"https://api.kluster.ai/v1\",\n \"env_var\": \"KLUSTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"krutrim\",\n \"display\": \"Krutrim\",\n \"base_url\": \"https://api.krutrim.ai/v1\",\n \"env_var\": \"KRUTRIM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kuae_cloud_coding_plan\",\n \"display\": \"KUAE Cloud Coding Plan\",\n \"base_url\": \"https://coding-plan-endpoint.kuaecloud.net/v1\",\n \"env_var\": \"KUAE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lambda_ai\",\n \"display\": \"Lambda AI\",\n \"base_url\": \"https://api.lambda.ai/v1\",\n \"env_var\": \"LAMBDA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lemonade\",\n \"display\": \"Lemonade\",\n \"base_url\": \"http://localhost:13305/v1\",\n \"env_var\": \"LEMONADE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lemonfox_ai\",\n \"display\": \"Lemonfox AI\",\n \"base_url\": \"https://api.lemonfox.ai/v1\",\n \"env_var\": \"LEMONFOX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"libertai\",\n \"display\": \"Libertai\",\n \"base_url\": \"https://api.libertai.io/v1\",\n \"env_var\": \"LIBERTAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lilac\",\n \"display\": \"Lilac\",\n \"base_url\": \"https://api.getlilac.com/v1\",\n \"env_var\": \"LILAC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lingyiwanwu\",\n \"display\": \"Lingyiwanwu (零一万物)\",\n \"base_url\": \"https://api.lingyiwanwu.com/v1\",\n \"env_var\": \"LINGYIWANWU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llama\",\n \"display\": \"Llama\",\n \"base_url\": \"https://api.llama.com/compat/v1/\",\n \"env_var\": \"LLAMA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llamagate\",\n \"display\": \"Llamagate\",\n \"base_url\": \"https://api.llamagate.dev/v1\",\n \"env_var\": \"LLAMAGATE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llmgateway\",\n \"display\": \"LLM Gateway\",\n \"base_url\": \"https://api.llmgateway.io/v1\",\n \"env_var\": \"LLM_GATEWAY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llmtr\",\n \"display\": \"LLMTR\",\n \"base_url\": \"https://llmtr.com/v1\",\n \"env_var\": \"LLMTR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"longcat\",\n \"display\": \"LongCat\",\n \"base_url\": \"https://api.longcat.chat/v1\",\n \"env_var\": \"LONGCAT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lucidquery\",\n \"display\": \"LucidQuery\",\n \"base_url\": \"https://api.lucidquery.com/v1\",\n \"env_var\": \"LUCIDQUERY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lynkr\",\n \"display\": \"Lynkr\",\n \"base_url\": \"http://localhost:8081/v1\",\n \"env_var\": \"LYNKR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"matterai\",\n \"display\": \"Matter AI\",\n \"base_url\": \"https://api.matterai.com/v1\",\n \"env_var\": \"MATTERAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"meganova\",\n \"display\": \"Meganova\",\n \"base_url\": \"https://api.meganova.ai/v1\",\n \"env_var\": \"MEGANOVA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"merge_gateway\",\n \"display\": \"Merge Gateway\",\n \"base_url\": \"https://api-gateway.merge.dev/v1/openai\",\n \"env_var\": \"MERGE_GATEWAY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"meta\",\n \"display\": \"Meta\",\n \"base_url\": \"https://api.meta.ai/v1\",\n \"env_var\": \"MODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"meta_llama\",\n \"display\": \"Meta Llama API\",\n \"base_url\": \"https://api.llama.com/compat/v1\",\n \"env_var\": \"LLAMA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"mimo\",\n \"display\": \"Mimo\",\n \"base_url\": \"https://api.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax\",\n \"display\": \"MiniMax\",\n \"base_url\": \"https://api.minimax.io/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax_cn\",\n \"display\": \"MiniMax (minimaxi.com)\",\n \"base_url\": \"https://api.minimaxi.com/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax_cn_coding_plan\",\n \"display\": \"MiniMax Token Plan (minimaxi.com)\",\n \"base_url\": \"https://api.minimaxi.com/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax_coding_plan\",\n \"display\": \"MiniMax Token Plan (minimax.io)\",\n \"base_url\": \"https://api.minimax.io/anthropic/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"mira\",\n \"display\": \"Mira\",\n \"base_url\": \"https://api.mira.so/v1\",\n \"env_var\": \"MIRA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"mixlayer\",\n \"display\": \"Mixlayer\",\n \"base_url\": \"https://models.mixlayer.ai/v1\",\n \"env_var\": \"MIXLAYER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"moark\",\n \"display\": \"Moark\",\n \"base_url\": \"https://api.moark.com/v1\",\n \"env_var\": \"MOARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"modal\",\n \"display\": \"Modal\",\n \"base_url\": \"https://modal.com/v1\",\n \"env_var\": \"MODAL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"model_oracle_ai\",\n \"display\": \"Model Oracle AI\",\n \"base_url\": \"https://api.modeloracle.com/api/v1\",\n \"env_var\": \"MODEL_ORACLE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"modelscope\",\n \"display\": \"ModelScope\",\n \"base_url\": \"https://api-inference.modelscope.cn/v1\",\n \"env_var\": \"MODELSCOPE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"moonshotai\",\n \"display\": \"Moonshot AI\",\n \"base_url\": \"https://api.moonshot.cn/v1\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"moonshotai_cn\",\n \"display\": \"Moonshot AI (China)\",\n \"base_url\": \"https://api.moonshot.cn/anthropic/v1(Anthropic\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"morph\",\n \"display\": \"Morph LLM\",\n \"base_url\": \"https://api.morphllm.com/v1\",\n \"env_var\": \"MORPH_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nanogpt\",\n \"display\": \"NanoGPT\",\n \"base_url\": \"https://api.nanogpt.com/v1\",\n \"env_var\": \"NANOGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ncompass\",\n \"display\": \"Ncompass\",\n \"base_url\": \"https://api.ncompass.tech/v1\",\n \"env_var\": \"NCOMPASS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nearai\",\n \"display\": \"NEAR AI Cloud\",\n \"base_url\": \"https://cloud-api.near.ai/v1\",\n \"env_var\": \"NEARAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nebius\",\n \"display\": \"Nebius AI\",\n \"base_url\": \"https://api.studio.nebius.ai/v1\",\n \"env_var\": \"NEBIUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"neon\",\n \"display\": \"Neon\",\n \"base_url\": \"https:///v1\",\n \"env_var\": \"NEON_AI_GATEWAY_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"neuralwatt\",\n \"display\": \"Neuralwatt\",\n \"base_url\": \"https://api.neuralwatt.com/v1\",\n \"env_var\": \"NEURALWATT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nextbit\",\n \"display\": \"NextBit\",\n \"base_url\": \"https://api.nextbit.ai/v1\",\n \"env_var\": \"NEXTBIT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nlp_cloud\",\n \"display\": \"NLP Cloud\",\n \"base_url\": \"https://api.nlpcloud.io/v1\",\n \"env_var\": \"NLPCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nous_research\",\n \"display\": \"Nous Research\",\n \"base_url\": \"https://api.nousresearch.com/v1\",\n \"env_var\": \"NOUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"novita\",\n \"display\": \"Novita AI\",\n \"base_url\": \"https://api.novita.ai/v1\",\n \"env_var\": \"NOVITA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nscale\",\n \"display\": \"Nscale\",\n \"base_url\": \"https://inference.api.nscale.com/v1\",\n \"env_var\": \"NSCALE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nvidia_nim\",\n \"display\": \"NVIDIA NIM\",\n \"base_url\": \"https://integrate.api.nvidia.com/v1\",\n \"env_var\": \"NVIDIA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"oci\",\n \"display\": \"OCI\",\n \"base_url\": \"https://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1\",\n \"env_var\": \"OCI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ofox\",\n \"display\": \"OfoxAI\",\n \"base_url\": \"https://api.ofox.ai/v1\",\n \"env_var\": \"OFOX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ohmygpt\",\n \"display\": \"OhMyGPT\",\n \"base_url\": \"https://api.ohmygpt.com/v1\",\n \"env_var\": \"OHMYGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ollama_cloud\",\n \"display\": \"Ollama Cloud\",\n \"base_url\": \"https://api.ollama.com/v1\",\n \"env_var\": \"OLLAMA_CLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"openaimax\",\n \"display\": \"OpenAIMax\",\n \"base_url\": \"https://api.openaimax.com/v1\",\n \"env_var\": \"OPENAIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"openaisb\",\n \"display\": \"OpenAI-SB\",\n \"base_url\": \"https://api.openaisb.com/v1\",\n \"env_var\": \"OPENAISB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"opencode\",\n \"display\": \"OpenCode Zen\",\n \"base_url\": \"https://api.opencode.zen/v1\",\n \"env_var\": \"OPENCODE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"opencode_go\",\n \"display\": \"OpenCode Go\",\n \"base_url\": \"https://api.opencode.dev/v1\",\n \"env_var\": \"OPENCODE_GO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"opencode_zen\",\n \"display\": \"OpenCode Zen\",\n \"base_url\": \"https://api.opencode.zen/v1\",\n \"env_var\": \"OPENCODE_ZEN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"orcarouter\",\n \"display\": \"OrcaRouter\",\n \"base_url\": \"https://api.orcarouter.com/v1\",\n \"env_var\": \"ORCAROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ovhcloud\",\n \"display\": \"OVHcloud AI\",\n \"base_url\": \"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1\",\n \"env_var\": \"OVHCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"parasail\",\n \"display\": \"Parasail\",\n \"base_url\": \"https://api.parasail.io/v1\",\n \"env_var\": \"PARASAIL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"perfxcloud\",\n \"display\": \"PerfXCloud\",\n \"base_url\": \"https://api.perfxcloud.com/v1\",\n \"env_var\": \"PERFXCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"perplexity\",\n \"display\": \"Perplexity\",\n \"base_url\": \"https://api.perplexity.ai\",\n \"env_var\": \"PERPLEXITY_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"perplexity_agent\",\n \"display\": \"Perplexity Agent\",\n \"base_url\": \"https://api.perplexity.ai/v1\",\n \"env_var\": \"PERPLEXITY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"petals\",\n \"display\": \"Petals\",\n \"base_url\": \"https://api.petals.dev/v1\",\n \"env_var\": \"PETALS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"pinstripes\",\n \"display\": \"Pinstripes\",\n \"base_url\": \"https://api.pinstripes.io/v1\",\n \"env_var\": \"PINSTRIPES_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"pioneer\",\n \"display\": \"Pioneer\",\n \"base_url\": \"https://api.pioneer.ai/v1\",\n \"env_var\": \"PIONEER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"poe\",\n \"display\": \"Poe\",\n \"base_url\": \"https://api.poe.com/v1\",\n \"env_var\": \"POE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"poolside\",\n \"display\": \"Poolside\",\n \"base_url\": \"https://inference.poolside.ai/v1\",\n \"env_var\": \"POOLSIDE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"portkey\",\n \"display\": \"Portkey Gateway\",\n \"base_url\": \"https://api.portkey.ai/v1\",\n \"env_var\": \"PORTKEY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ppinfra\",\n \"display\": \"PPInfra(PPIO 派欧云)\",\n \"base_url\": \"https://api.ppio.com/openai\",\n \"env_var\": \"PPIO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"predibase\",\n \"display\": \"Predibase\",\n \"base_url\": \"https://serving.app.predibase.com/v1\",\n \"env_var\": \"PREDIBASE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"privatemode_ai\",\n \"display\": \"Privatemode AI\",\n \"base_url\": \"http://localhost:8080/v1\",\n \"env_var\": \"PRIVATEMODE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"publicai\",\n \"display\": \"Publicai\",\n \"base_url\": \"https://platform.publicai.co/v1\",\n \"env_var\": \"PUBLICAI_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"qihang_ai\",\n \"display\": \"QiHang(启航 AI)\",\n \"base_url\": \"https://api.qhaigc.net/v1\",\n \"env_var\": \"QIHANG_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"qihoo360\",\n \"display\": \"360 AI\",\n \"base_url\": \"https://api.360.cn/v1\",\n \"env_var\": \"AI360_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"qiniu_ai\",\n \"display\": \"Qiniu AI\",\n \"base_url\": \"https://api.qiniu.com/v1\",\n \"env_var\": \"QINIU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"regolo_ai\",\n \"display\": \"Regolo AI\",\n \"base_url\": \"https://api.regolo.ai/v1\",\n \"env_var\": \"REGOLO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"reka_ai\",\n \"display\": \"Reka AI\",\n \"base_url\": \"https://api.reka.ai/v1\",\n \"env_var\": \"REKA_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"requesty\",\n \"display\": \"Requesty\",\n \"base_url\": \"https://api.requesty.ai/v1\",\n \"env_var\": \"REQUESTY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"reve\",\n \"display\": \"Reve\",\n \"base_url\": \"https://api.reve.ai/v1\",\n \"env_var\": \"REVE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"routing_run\",\n \"display\": \"routing.run\",\n \"base_url\": \"https://api.routing.run/v1\",\n \"env_var\": \"ROUTING_RUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"sakana\",\n \"display\": \"Sakana AI\",\n \"base_url\": \"https://api.sakana.ai/v1\",\n \"env_var\": \"SAKANA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"sambanova\",\n \"display\": \"SambaNova\",\n \"base_url\": \"https://api.sambanova.ai/v1\",\n \"env_var\": \"SAMBANOVA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"sarvam\",\n \"display\": \"Sarvam AI\",\n \"base_url\": \"https://api.sarvam.ai/v1\",\n \"env_var\": \"SARVAM_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"scaleway\",\n \"display\": \"Scaleway AI\",\n \"base_url\": \"https://api.scaleway.ai/v1\",\n \"env_var\": \"SCALEWAY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"scx_ai\",\n \"display\": \"SCX AI\",\n \"base_url\": \"https://api.scx.ai/v1\",\n \"env_var\": \"SCX_AI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"siliconflow\",\n \"display\": \"SiliconFlow\",\n \"base_url\": \"https://api.siliconflow.cn/v1\",\n \"env_var\": \"SILICONFLOW_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"snowflake\",\n \"display\": \"Snowflake\",\n \"base_url\": \"https://.snowflakecomputing.com/api/v2/cortex/v1\",\n \"env_var\": \"SNOWFLAKE_PAT\",\n \"profile\": {}\n },\n {\n \"name\": \"snowflake_cortex\",\n \"display\": \"Snowflake Cortex\",\n \"base_url\": \"https://.snowflakecomputing.com/api/v2/cortex/v1\",\n \"env_var\": \"SNOWFLAKE_CORTEX_PAT\",\n \"profile\": {}\n },\n {\n \"name\": \"stackit\",\n \"display\": \"STACKIT\",\n \"base_url\": \"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\",\n \"env_var\": \"STACKIT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"stepfun\",\n \"display\": \"StepFun (阶跃星辰)\",\n \"base_url\": \"https://api.stepfun.com/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"stepfun_ai_step_plan\",\n \"display\": \"StepFun Step Plan (Global)\",\n \"base_url\": \"https://api.stepfun.ai/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"stepfun_step_plan\",\n \"display\": \"StepFun Step Plan (China)\",\n \"base_url\": \"https://api.stepfun.com/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"subconscious\",\n \"display\": \"Subconscious\",\n \"base_url\": \"https://api.subconscious.dev/v1\",\n \"env_var\": \"SUBCONSCIOUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"submodel\",\n \"display\": \"SubModel\",\n \"base_url\": \"https://api.submodel.com/v1\",\n \"env_var\": \"SUBMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"synthetic\",\n \"display\": \"Synthetic\",\n \"base_url\": \"https://api.synthetic.new/openai/v1\",\n \"env_var\": \"SYNTHETIC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent\",\n \"display\": \"Tencent (混元/Hunyuan)\",\n \"base_url\": \"https://api.hunyuan.cloud.tencent.com/v1\",\n \"env_var\": \"TENCENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_coding_plan\",\n \"display\": \"Tencent Coding Plan (China)\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/coding/v3\",\n \"env_var\": \"TENCENT_CODING_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan\",\n \"display\": \"Tencent Token Plan\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_enterprise_auto\",\n \"display\": \"腾讯云 Token Plan / Token Plan 企业版轻享套餐\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_enterprise_pro\",\n \"display\": \"腾讯云 Token Plan / Token Plan 企业版专业套餐\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_general_personal\",\n \"display\": \"腾讯云 Token Plan / 通用 Token Plan(个人版)\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_hy_personal\",\n \"display\": \"腾讯云 Token Plan / Hy Token Plan(个人版)\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_tokenhub\",\n \"display\": \"Tencent TokenHub\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/v1\",\n \"env_var\": \"TENCENT_TOKENHUB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tensormesh\",\n \"display\": \"Tensormesh\",\n \"base_url\": \"https://serverless.tensormesh.ai\",\n \"env_var\": \"YOUR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"the_grid_ai\",\n \"display\": \"The Grid AI\",\n \"base_url\": \"https://thegrid.ai/docs\",\n \"env_var\": \"THEGRIDAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"thinkingmachines\",\n \"display\": \"Thinking Machines\",\n \"base_url\": \"https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1\",\n \"env_var\": \"TINKER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tinfoil\",\n \"display\": \"Tinfoil\",\n \"base_url\": \"https://inference.tinfoil.sh/v1\",\n \"env_var\": \"TINFOIL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"togetherai\",\n \"display\": \"Together AI\",\n \"base_url\": \"https://api.together.xyz/v1\",\n \"env_var\": \"TOGETHER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tokenflux\",\n \"display\": \"Tokenflux\",\n \"base_url\": \"https://tokenflux.ai/v1\",\n \"env_var\": \"TOKENFLUX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tokenpony\",\n \"display\": \"TokenPony\",\n \"base_url\": \"https://api.tokenpony.com/v1\",\n \"env_var\": \"TOKENPONY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"trustedrouter\",\n \"display\": \"TrustedRouter\",\n \"base_url\": \"https://api.trustedrouter.com/v1\",\n \"env_var\": \"TRUSTEDROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tundra\",\n \"display\": \"Tundra\",\n \"base_url\": \"https://api.tundra.ai/v1\",\n \"env_var\": \"TUNDRA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"umans_ai\",\n \"display\": \"Umans AI\",\n \"base_url\": \"https://api.code.umans.ai/v1\",\n \"env_var\": \"UMANS_AI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"unorouter\",\n \"display\": \"UnoRouter\",\n \"base_url\": \"https://unorouter.com/en\",\n \"env_var\": \"UNOROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"upstage\",\n \"display\": \"Upstage\",\n \"base_url\": \"https://api.upstage.ai/v1\",\n \"env_var\": \"UPSTAGE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"v0\",\n \"display\": \"v0 (Vercel)\",\n \"base_url\": \"https://api.v0.dev/v1\",\n \"env_var\": \"V0_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"venice\",\n \"display\": \"Venice\",\n \"base_url\": \"https://api.venice.ai/api/v1\",\n \"env_var\": \"VENICE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"vercel\",\n \"display\": \"Vercel\",\n \"base_url\": \"https://api.v0.dev/v1\",\n \"env_var\": \"VERCEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"vivgrid\",\n \"display\": \"Vivgrid\",\n \"base_url\": \"https://api.vivgrid.com/v1\",\n \"env_var\": \"VIVGRID_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"volc_engine\",\n \"display\": \"VolcEngine\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"vultr\",\n \"display\": \"Vultr\",\n \"base_url\": \"https://api.vultrinference.com/v1\",\n \"env_var\": \"VULTR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"wafer\",\n \"display\": \"Wafer\",\n \"base_url\": \"https://api.wafer.ai/v1\",\n \"env_var\": \"WAFER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"wandb\",\n \"display\": \"Weights & Biases\",\n \"base_url\": \"https://api.inference.wandb.ai/v1\",\n \"env_var\": \"WANDB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomi_token_plan_ams\",\n \"display\": \"Xiaomi Token Plan (Europe)\",\n \"base_url\": \"https://token-plan-ams.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomi_token_plan_cn\",\n \"display\": \"Xiaomi Token Plan (China)\",\n \"base_url\": \"https://token-plan-cn.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomi_token_plan_sgp\",\n \"display\": \"Xiaomi Token Plan (Singapore)\",\n \"base_url\": \"https://token-plan-sgp.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomimimo\",\n \"display\": \"Xiaomi MiMo\",\n \"base_url\": \"https://mimo.xiaomi.com/v1\",\n \"env_var\": \"XIAOMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xpersona\",\n \"display\": \"Xpersona\",\n \"base_url\": \"/v1\",\n \"env_var\": \"XPERSONA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xunfei\",\n \"display\": \"Xunfei\",\n \"base_url\": \"https://spark-api-open.xf-yun.com/v1\",\n \"env_var\": \"XUNFEI_API_PASSWORD\",\n \"profile\": {}\n },\n {\n \"name\": \"zai\",\n \"display\": \"Zai\",\n \"base_url\": \"https://api.z.ai/api/paas/v4\",\n \"env_var\": \"ZAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zai_coding_plan\",\n \"display\": \"Z.AI Coding Plan\",\n \"base_url\": \"https://api.z.ai/api/anthropic\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zeldoc\",\n \"display\": \"Zeldoc\",\n \"base_url\": \"https://api.zeldoc.ai/v1\",\n \"env_var\": \"ZELDOC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zenmux\",\n \"display\": \"ZenMux\",\n \"base_url\": \"https://zenmux.ai/api/v1\",\n \"env_var\": \"ZENMUX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zhipu_v4\",\n \"display\": \"ZhipuV4\",\n \"base_url\": \"https://open.bigmodel.cn/api/paas/v4\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zhipuai_coding_plan\",\n \"display\": \"Zhipu AI Coding Plan\",\n \"base_url\": \"https://docs.bigmodel.cn/cn/coding-plan/quick-start\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"profile\": {}\n }\n]\n"}, "1b3e3618ec8c3c7d617087474f15f50e0cba4e0d": {"t": 1785846866.391959, "n": 42429, "h": "c40417fe8593d309", "c": "[\n {\n \"name\": \"abacus\",\n \"display\": \"Abacus\",\n \"base_url\": \"https://routellm.abacus.ai/v1\",\n \"env_var\": \"ABACUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"abliteration_ai\",\n \"display\": \"Abliteration AI\",\n \"base_url\": \"https://api.abliteration.ai/v1\",\n \"env_var\": \"ABLIT_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ai21\",\n \"display\": \"AI21 Labs\",\n \"base_url\": \"https://api.ai21.ai/v1\",\n \"env_var\": \"AI21_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ai302\",\n \"display\": \"302.AI\",\n \"base_url\": \"https://api.302.ai/v1\",\n \"env_var\": \"AI302_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ai_router\",\n \"display\": \"AI-ROUTER\",\n \"base_url\": \"https://api.ai-router.dev/v1\",\n \"env_var\": \"AI_ROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aiand\",\n \"display\": \"AIand\",\n \"base_url\": \"https://api.aiand.com/v1\",\n \"env_var\": \"AIAND_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aibadgr\",\n \"display\": \"AI Badgr\",\n \"base_url\": \"https://api.aibadgr.com/v1\",\n \"env_var\": \"AIBADGR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aigc2d\",\n \"display\": \"AIGC2D\",\n \"base_url\": \"https://api.aigc2d.com/v1\",\n \"env_var\": \"AIGC2D_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aihubmix\",\n \"display\": \"AIHubMix\",\n \"base_url\": \"https://aihubmix.com/v1\",\n \"env_var\": \"AIHUBMIX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ails\",\n \"display\": \"AILS\",\n \"base_url\": \"https://api.caipacity.com/v1\",\n \"env_var\": \"AILS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aiml\",\n \"display\": \"AI/ML API\",\n \"base_url\": \"https://api.aimlapi.com/v1\",\n \"env_var\": \"AIML_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aki_io\",\n \"display\": \"AKI.IO\",\n \"base_url\": \"https://aki.io/openai/v1\",\n \"env_var\": \"AKI_IO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"albert\",\n \"display\": \"Albert\",\n \"base_url\": \"https://api.albert.ai/v1\",\n \"env_var\": \"ALBERT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba\",\n \"display\": \"Alibaba Cloud (DashScope)\",\n \"base_url\": \"https://dashscope-intl.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_coding_plan\",\n \"display\": \"Alibaba Coding Plan\",\n \"base_url\": \"https://coding-intl.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_coding_plan_cn\",\n \"display\": \"Alibaba Coding Plan (China)\",\n \"base_url\": \"https://coding.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_token_plan\",\n \"display\": \"Alibaba Token Plan\",\n \"base_url\": \"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_token_plan_cn\",\n \"display\": \"Alibaba Token Plan (China)\",\n \"base_url\": \"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ambient\",\n \"display\": \"Ambient\",\n \"base_url\": \"https://api.ambient.xyz/v1\",\n \"env_var\": \"AMBIENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"anyapi\",\n \"display\": \"AnyAPI\",\n \"base_url\": \"https://api.anyapi.ai/v1\",\n \"env_var\": \"ANYAPI_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"anyscale\",\n \"display\": \"Anyscale\",\n \"base_url\": \"https://api.endpoints.anyscale.com/v1\",\n \"env_var\": \"ANYSCALE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"apertis\",\n \"display\": \"Apertis\",\n \"base_url\": \"https://api.stima.tech/v1\",\n \"env_var\": \"STIMA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"api2d\",\n \"display\": \"API2D\",\n \"base_url\": \"https://oa.api2d.net/v1\",\n \"env_var\": \"API2D_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"api2gpt\",\n \"display\": \"API2GPT\",\n \"base_url\": \"https://api.api2gpt.com/v1\",\n \"env_var\": \"API2GPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"apiserpent\",\n \"display\": \"API Serpent\",\n \"base_url\": \"https://api.apiserpent.com/v1\",\n \"env_var\": \"APISERPENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"atlascloud\",\n \"display\": \"AtlasCloud\",\n \"base_url\": \"https://api.atlascloud.com/v1\",\n \"env_var\": \"ATLASCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"atomic_chat\",\n \"display\": \"Atomic Chat\",\n \"base_url\": \"http://127.0.0.1:1337/v1\",\n \"env_var\": \"ATOMIC_CHAT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"auriko\",\n \"display\": \"Auriko\",\n \"base_url\": \"https://api.auriko.ai/v1\",\n \"env_var\": \"AURIKO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"azure_ai\",\n \"display\": \"Azure AI\",\n \"base_url\": \"https://models.inference.ai.azure.com\",\n \"env_var\": \"AZURE_AI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"baichuan\",\n \"display\": \"Baichuan AI\",\n \"base_url\": \"https://api.baichuan-ai.com/v1\",\n \"env_var\": \"BAICHUAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"baidu\",\n \"display\": \"Baidu (文心/ERNIE)\",\n \"base_url\": \"https://qianfan.baidubce.com/v2\",\n \"env_var\": \"BAIDU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"baidu_v2\",\n \"display\": \"BaiduV2\",\n \"base_url\": \"https://qianfan.baidubce.com/v2\",\n \"env_var\": \"QIANFAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bailing\",\n \"display\": \"Bailing\",\n \"base_url\": \"https://api.ant-ling.com/v1\",\n \"env_var\": \"BAILING_API_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"baseten\",\n \"display\": \"Baseten\",\n \"base_url\": \"https://inference.baseten.co/v1\",\n \"env_var\": \"BASETEN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"berget\",\n \"display\": \"Berget.AI\",\n \"base_url\": \"https://api.berget.ai/v1\",\n \"env_var\": \"BERGET_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bigmodel\",\n \"display\": \"BigModel (智谱)\",\n \"base_url\": \"https://open.bigmodel.cn/api/paas/v4\",\n \"env_var\": \"BIGMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"blueclaw\",\n \"display\": \"Blue Claw\",\n \"base_url\": \"https://openai.blueclaw.network/v1\",\n \"env_var\": \"BLUECLAW_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bytedance\",\n \"display\": \"ByteDance\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"byteplus\",\n \"display\": \"BytePlus (Volcano)\",\n \"base_url\": \"https://ark.bytepluses.com/api/v3\",\n \"env_var\": \"BYTEPLUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bytez\",\n \"display\": \"Bytez\",\n \"base_url\": \"https://api.bytez.com/v2\",\n \"env_var\": \"BYTEZ_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"canopywave\",\n \"display\": \"Canopywave\",\n \"base_url\": \"https://api.canopywave.com/v1\",\n \"env_var\": \"CANOPYWAVE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cerebras\",\n \"display\": \"Cerebras\",\n \"base_url\": \"https://api.cerebras.ai/v1\",\n \"env_var\": \"CEREBRAS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"chatgpt\",\n \"display\": \"ChatGPT (订阅)\",\n \"base_url\": \"https://chatgpt.com/backend-api/codex\",\n \"env_var\": \"CHATGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cherryin\",\n \"display\": \"cherryin\",\n \"base_url\": \"https://open.cherryin.net\",\n \"env_var\": \"CHERRYIN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"chutes\",\n \"display\": \"Chutes\",\n \"base_url\": \"https://llm.chutes.ai/v1\",\n \"env_var\": \"CHUTES_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"clarifai\",\n \"display\": \"Clarifai\",\n \"base_url\": \"https://api.clarifai.com/v2/ext/openai/v1\",\n \"env_var\": \"CLARIFAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"claudinio\",\n \"display\": \"Claudinio\",\n \"base_url\": \"https://api.claudin.io\",\n \"env_var\": \"CLAUDINIO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cline_pass\",\n \"display\": \"Cline\",\n \"base_url\": \"https://api.cline.bot/v1\",\n \"env_var\": \"CLINE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"closeai\",\n \"display\": \"CloseAI\",\n \"base_url\": \"https://api.closeai-proxy.xyz/v1\",\n \"env_var\": \"CLOSEAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cloudferro_sherlock\",\n \"display\": \"CloudFerro Sherlock\",\n \"base_url\": \"https://api-sherlock.cloudferro.com/openai/v1\",\n \"env_var\": \"CLOUDFERRO_SHERLOCK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cloudflare\",\n \"display\": \"Cloudflare\",\n \"base_url\": \"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\",\n \"env_var\": \"CLOUDFLARE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cloudflare_workers_ai\",\n \"display\": \"Cloudflare Workers AI\",\n \"base_url\": \"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\",\n \"env_var\": \"CLOUDFLARE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"codestral\",\n \"display\": \"Codestral (Mistral)\",\n \"base_url\": \"https://api.mistral.ai/v1\",\n \"env_var\": \"CODESTRAL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cometapi\",\n \"display\": \"CometAPI\",\n \"base_url\": \"https://api.cometapi.com/v1\",\n \"env_var\": \"COMETAPI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"commandcode\",\n \"display\": \"CommandCode\",\n \"base_url\": \"https://api.commandcode.com/v1\",\n \"env_var\": \"COMMANDCODE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"compactifai\",\n \"display\": \"CompactifAI\",\n \"base_url\": \"https://api.compactif.ai/v1\",\n \"env_var\": \"COMPACTIFAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"copilot\",\n \"display\": \"GitHub Copilot\",\n \"base_url\": \"https://api.githubcopilot.com\",\n \"env_var\": \"COPILOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cortecs\",\n \"display\": \"Cortecs\",\n \"base_url\": \"https://api.cortecs.ai/v1/\",\n \"env_var\": \"CORTECS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"coze\",\n \"display\": \"Coze (扣子)\",\n \"base_url\": \"https://api.coze.cn/v1\",\n \"env_var\": \"COZE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"crof\",\n \"display\": \"CrofAI\",\n \"base_url\": \"https://crof.ai/v1\",\n \"env_var\": \"CROF_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"crossmodel\",\n \"display\": \"CrossModel\",\n \"base_url\": \"https://api.crossmodel.ai/v1\",\n \"env_var\": \"CROSSMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"crusoe\",\n \"display\": \"Crusoe\",\n \"base_url\": \"https://api.inference.crusoecloud.com/v1\",\n \"env_var\": \"CRUSOE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"daoxe\",\n \"display\": \"DaoXE\",\n \"base_url\": \"https://daoxe.com/v1\",\n \"env_var\": \"DAOXE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"darkbloom\",\n \"display\": \"Darkbloom\",\n \"base_url\": \"https://api.darkbloom.dev/v1\",\n \"env_var\": \"DARKBLOOM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"databricks\",\n \"display\": \"Databricks\",\n \"base_url\": \"https://databricks.com/serving-endpoints\",\n \"env_var\": \"DATABRICKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"datarobot\",\n \"display\": \"DataRobot\",\n \"base_url\": \"https://app.datarobot.com/api/v2\",\n \"env_var\": \"DATAROBOT_API_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"deepbricks\",\n \"display\": \"DeepBricks\",\n \"base_url\": \"https://api.deepbricks.ai/v1\",\n \"env_var\": \"DEEPBRICKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"deepinfra\",\n \"display\": \"DeepInfra\",\n \"base_url\": \"https://api.deepinfra.com/v1/openai\",\n \"env_var\": \"DEEPINFRA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"deepseek\",\n \"display\": \"DeepSeek\",\n \"base_url\": \"https://api.deepseek.com/v1\",\n \"env_var\": \"DEEPSEEK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"digitalocean\",\n \"display\": \"DigitalOcean\",\n \"base_url\": \"https://inference.do-ai.run\",\n \"env_var\": \"DIGITALOCEAN_ACCESS_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"dinference\",\n \"display\": \"DInference\",\n \"base_url\": \"https://api.dinference.com/v1\",\n \"env_var\": \"DINFERENCE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"doubao\",\n \"display\": \"Doubao\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"doubleword\",\n \"display\": \"Doubleword\",\n \"base_url\": \"https://api.doubleword.ai/v1\",\n \"env_var\": \"DOUBLEWORD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"drun\",\n \"display\": \"D.Run (China)\",\n \"base_url\": \"https://chat.d.run/v1\",\n \"env_var\": \"DRUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ebcloud\",\n \"display\": \"EBCloud\",\n \"base_url\": \"https://maas-api.ebcloud.com/v1\",\n \"env_var\": \"EBCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"embercloud\",\n \"display\": \"Embercloud\",\n \"base_url\": \"https://api.embercloud.com/v1\",\n \"env_var\": \"EMBERCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"empiriolabs\",\n \"display\": \"EmpirioLabs AI\",\n \"base_url\": \"https://api.empiriolabs.ai/v1\",\n \"env_var\": \"EMPIRIOLABS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"evroc\",\n \"display\": \"evroc\",\n \"base_url\": \"https://models.think.evroc.com/v1\",\n \"env_var\": \"EVROC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fastcrw\",\n \"display\": \"FastCRW\",\n \"base_url\": \"https://fastcrw.com/api/v1\",\n \"env_var\": \"FASTCRW_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fastgpt\",\n \"display\": \"FastGPT\",\n \"base_url\": \"https://api.fastgpt.in/v1\",\n \"env_var\": \"FASTGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fastrouter\",\n \"display\": \"FastRouter\",\n \"base_url\": \"https://api.fastrouter.ai/v1\",\n \"env_var\": \"FASTROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"featherless_ai\",\n \"display\": \"Featherless AI\",\n \"base_url\": \"https://api.featherless.ai/v1\",\n \"env_var\": \"FEATHERLESS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"firepass\",\n \"display\": \"Fireworks (Firepass)\",\n \"base_url\": \"https://api.fireworks.ai/inference/v1\",\n \"env_var\": \"FIREWORKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fireworks\",\n \"display\": \"Fireworks\",\n \"base_url\": \"https://api.fireworks.ai/inference/v1\",\n \"env_var\": \"FIREWORKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"freemodel\",\n \"display\": \"FreeModel\",\n \"base_url\": \"https://api.freemodel.dev/v1\",\n \"env_var\": \"FREEMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"friendliai\",\n \"display\": \"FriendliAI\",\n \"base_url\": \"https://inference.friendli.ai/v1\",\n \"env_var\": \"FRIENDLIAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"frogbot\",\n \"display\": \"FrogBot\",\n \"base_url\": \"https://app.frogbot.ai/api/v1\",\n \"env_var\": \"FROGBOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"galadriel\",\n \"display\": \"Galadriel\",\n \"base_url\": \"https://api.galadriel.com/v1\",\n \"env_var\": \"GALADRIEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gdc\",\n \"display\": \"GDC\",\n \"base_url\": \"https://api.gdc.ai/v1\",\n \"env_var\": \"GDC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gigachat\",\n \"display\": \"GigaChat (Sberbank)\",\n \"base_url\": \"https://gigachat.devices.sberbank.ru/api/v1\",\n \"env_var\": \"GIGACHAT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"github\",\n \"display\": \"GitHub Models\",\n \"base_url\": \"https://models.inference.ai.azure.com\",\n \"env_var\": \"GITHUB_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"gmi\",\n \"display\": \"GMI\",\n \"base_url\": \"https://api.gmi-serving.com/v1\",\n \"env_var\": \"GMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gmicloud\",\n \"display\": \"GMI Cloud\",\n \"base_url\": \"https://api.gmi-serving.com/v1\",\n \"env_var\": \"GMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gonka24\",\n \"display\": \"Gonka24\",\n \"base_url\": \"https://api.gonka24.com/v1\",\n \"env_var\": \"GONKA24_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gradient_ai\",\n \"display\": \"Gradient AI\",\n \"base_url\": \"https://inference.do-ai.run/v1\",\n \"env_var\": \"GRADIENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"groq\",\n \"display\": \"Groq\",\n \"base_url\": \"https://api.groq.com/openai/v1\",\n \"env_var\": \"GROQ_API_KEY\",\n \"profile\": {\n \"supports_top_k\": false,\n \"stream_usage_key\": \"x_groq\",\n \"max_tokens_key\": \"max_completion_tokens\"\n }\n },\n {\n \"name\": \"helicone\",\n \"display\": \"Helicone\",\n \"base_url\": \"https://api.helicone.ai/v1\",\n \"env_var\": \"HELICONE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"heroku\",\n \"display\": \"Heroku AI\",\n \"base_url\": \"https://api.heroku.com/inference/v1\",\n \"env_var\": \"HEROKU_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_completion_tokens\"\n }\n },\n {\n \"name\": \"hetzner\",\n \"display\": \"Hetzner\",\n \"base_url\": \"https://inference.hetzner.com/api/v1\",\n \"env_var\": \"HETZNER_VLLM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"hosted_vllm\",\n \"display\": \"Hosted vLLM\",\n \"base_url\": \"https://hosted-vllm-api.com/v1\",\n \"env_var\": \"HOSTED_VLLM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"hpc_ai\",\n \"display\": \"HPC-AI\",\n \"base_url\": \"https://api.hpc-ai.com/inference/v1\",\n \"env_var\": \"INFERENCE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"hyperbolic\",\n \"display\": \"Hyperbolic\",\n \"base_url\": \"https://api.hyperbolic.xyz/v1\",\n \"env_var\": \"HYPERBOLIC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"iflowcn\",\n \"display\": \"iFlow\",\n \"base_url\": \"https://apis.iflow.cn/v1\",\n \"env_var\": \"IFLOW_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inception\",\n \"display\": \"Inception Labs\",\n \"base_url\": \"https://api.inceptionlabs.ai/v1\",\n \"env_var\": \"INCEPTION_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inceptron\",\n \"display\": \"Inceptron\",\n \"base_url\": \"https://api.inceptron.io/v1\",\n \"env_var\": \"INCEPTRON_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inference_net\",\n \"display\": \"Inference.net\",\n \"base_url\": \"https://api.inference.net/v1\",\n \"env_var\": \"INFERENCE_NET_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inferencehub\",\n \"display\": \"InferenceHub\",\n \"base_url\": \"https://app.inferencehub.tech/v1\",\n \"env_var\": \"INFERENCEHUB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inferx\",\n \"display\": \"InferX\",\n \"base_url\": \"https://model.inferx.net/v1\",\n \"env_var\": \"INFERX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"infinity\",\n \"display\": \"Infinity AI\",\n \"base_url\": \"https://infinity.ai/api/v1\",\n \"env_var\": \"INFINITY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"io_net\",\n \"display\": \"IO.NET\",\n \"base_url\": \"https://api.intelligence.io.solutions/api/v1\",\n \"env_var\": \"IOINTELLIGENCE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"jiekou\",\n \"display\": \"Jiekou.AI\",\n \"base_url\": \"https://api.highwayapi.ai/openai\",\n \"env_var\": \"JIEKOU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kenari\",\n \"display\": \"Kenari\",\n \"base_url\": \"https://kenari.id/v1\",\n \"env_var\": \"KENARI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kilo\",\n \"display\": \"Kilo\",\n \"base_url\": \"https://api.kilo.ai/v1\",\n \"env_var\": \"KILO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kimi\",\n \"display\": \"Kimi\",\n \"base_url\": \"https://api.moonshot.ai/v1\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kimi_for_coding\",\n \"display\": \"Kimi For Coding\",\n \"base_url\": \"https://api.kimi.com/coding/v1\",\n \"env_var\": \"KIMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kiro\",\n \"display\": \"Kiro\",\n \"base_url\": \"https://api.kiro.dev/v1\",\n \"env_var\": \"KIRO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kluster_ai\",\n \"display\": \"Kluster AI\",\n \"base_url\": \"https://api.kluster.ai/v1\",\n \"env_var\": \"KLUSTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"krutrim\",\n \"display\": \"Krutrim\",\n \"base_url\": \"https://api.krutrim.ai/v1\",\n \"env_var\": \"KRUTRIM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kuae_cloud_coding_plan\",\n \"display\": \"KUAE Cloud Coding Plan\",\n \"base_url\": \"https://coding-plan-endpoint.kuaecloud.net/v1\",\n \"env_var\": \"KUAE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lambda_ai\",\n \"display\": \"Lambda AI\",\n \"base_url\": \"https://api.lambda.ai/v1\",\n \"env_var\": \"LAMBDA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lemonade\",\n \"display\": \"Lemonade\",\n \"base_url\": \"http://localhost:13305/v1\",\n \"env_var\": \"LEMONADE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lemonfox_ai\",\n \"display\": \"Lemonfox AI\",\n \"base_url\": \"https://api.lemonfox.ai/v1\",\n \"env_var\": \"LEMONFOX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"libertai\",\n \"display\": \"Libertai\",\n \"base_url\": \"https://api.libertai.io/v1\",\n \"env_var\": \"LIBERTAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lilac\",\n \"display\": \"Lilac\",\n \"base_url\": \"https://api.getlilac.com/v1\",\n \"env_var\": \"LILAC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lingyiwanwu\",\n \"display\": \"Lingyiwanwu (零一万物)\",\n \"base_url\": \"https://api.lingyiwanwu.com/v1\",\n \"env_var\": \"LINGYIWANWU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llama\",\n \"display\": \"Llama\",\n \"base_url\": \"https://api.llama.com/compat/v1/\",\n \"env_var\": \"LLAMA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llamagate\",\n \"display\": \"Llamagate\",\n \"base_url\": \"https://api.llamagate.dev/v1\",\n \"env_var\": \"LLAMAGATE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llmgateway\",\n \"display\": \"LLM Gateway\",\n \"base_url\": \"https://api.llmgateway.io/v1\",\n \"env_var\": \"LLM_GATEWAY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llmtr\",\n \"display\": \"LLMTR\",\n \"base_url\": \"https://llmtr.com/v1\",\n \"env_var\": \"LLMTR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"longcat\",\n \"display\": \"LongCat\",\n \"base_url\": \"https://api.longcat.chat/v1\",\n \"env_var\": \"LONGCAT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lucidquery\",\n \"display\": \"LucidQuery\",\n \"base_url\": \"https://api.lucidquery.com/v1\",\n \"env_var\": \"LUCIDQUERY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lynkr\",\n \"display\": \"Lynkr\",\n \"base_url\": \"http://localhost:8081/v1\",\n \"env_var\": \"LYNKR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"matterai\",\n \"display\": \"Matter AI\",\n \"base_url\": \"https://api.matterai.com/v1\",\n \"env_var\": \"MATTERAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"meganova\",\n \"display\": \"Meganova\",\n \"base_url\": \"https://api.meganova.ai/v1\",\n \"env_var\": \"MEGANOVA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"merge_gateway\",\n \"display\": \"Merge Gateway\",\n \"base_url\": \"https://api-gateway.merge.dev/v1/openai\",\n \"env_var\": \"MERGE_GATEWAY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"meta\",\n \"display\": \"Meta\",\n \"base_url\": \"https://api.meta.ai/v1\",\n \"env_var\": \"MODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"meta_llama\",\n \"display\": \"Meta Llama API\",\n \"base_url\": \"https://api.llama.com/compat/v1\",\n \"env_var\": \"LLAMA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"mimo\",\n \"display\": \"Mimo\",\n \"base_url\": \"https://api.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax\",\n \"display\": \"MiniMax\",\n \"base_url\": \"https://api.minimax.io/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax_cn\",\n \"display\": \"MiniMax (minimaxi.com)\",\n \"base_url\": \"https://api.minimaxi.com/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax_cn_coding_plan\",\n \"display\": \"MiniMax Token Plan (minimaxi.com)\",\n \"base_url\": \"https://api.minimaxi.com/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax_coding_plan\",\n \"display\": \"MiniMax Token Plan (minimax.io)\",\n \"base_url\": \"https://api.minimax.io/anthropic/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"mira\",\n \"display\": \"Mira\",\n \"base_url\": \"https://api.mira.so/v1\",\n \"env_var\": \"MIRA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"mixlayer\",\n \"display\": \"Mixlayer\",\n \"base_url\": \"https://models.mixlayer.ai/v1\",\n \"env_var\": \"MIXLAYER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"moark\",\n \"display\": \"Moark\",\n \"base_url\": \"https://api.moark.com/v1\",\n \"env_var\": \"MOARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"modal\",\n \"display\": \"Modal\",\n \"base_url\": \"https://modal.com/v1\",\n \"env_var\": \"MODAL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"model_oracle_ai\",\n \"display\": \"Model Oracle AI\",\n \"base_url\": \"https://api.modeloracle.com/api/v1\",\n \"env_var\": \"MODEL_ORACLE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"modelscope\",\n \"display\": \"ModelScope\",\n \"base_url\": \"https://api-inference.modelscope.cn/v1\",\n \"env_var\": \"MODELSCOPE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"moonshotai\",\n \"display\": \"Moonshot AI\",\n \"base_url\": \"https://api.moonshot.cn/v1\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"moonshotai_cn\",\n \"display\": \"Moonshot AI (China)\",\n \"base_url\": \"https://api.moonshot.cn/anthropic/v1(Anthropic\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"morph\",\n \"display\": \"Morph LLM\",\n \"base_url\": \"https://api.morphllm.com/v1\",\n \"env_var\": \"MORPH_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nanogpt\",\n \"display\": \"NanoGPT\",\n \"base_url\": \"https://api.nanogpt.com/v1\",\n \"env_var\": \"NANOGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ncompass\",\n \"display\": \"Ncompass\",\n \"base_url\": \"https://api.ncompass.tech/v1\",\n \"env_var\": \"NCOMPASS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nearai\",\n \"display\": \"NEAR AI Cloud\",\n \"base_url\": \"https://cloud-api.near.ai/v1\",\n \"env_var\": \"NEARAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nebius\",\n \"display\": \"Nebius AI\",\n \"base_url\": \"https://api.studio.nebius.ai/v1\",\n \"env_var\": \"NEBIUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"neon\",\n \"display\": \"Neon\",\n \"base_url\": \"https:///v1\",\n \"env_var\": \"NEON_AI_GATEWAY_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"neuralwatt\",\n \"display\": \"Neuralwatt\",\n \"base_url\": \"https://api.neuralwatt.com/v1\",\n \"env_var\": \"NEURALWATT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nextbit\",\n \"display\": \"NextBit\",\n \"base_url\": \"https://api.nextbit.ai/v1\",\n \"env_var\": \"NEXTBIT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nlp_cloud\",\n \"display\": \"NLP Cloud\",\n \"base_url\": \"https://api.nlpcloud.io/v1\",\n \"env_var\": \"NLPCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nous_research\",\n \"display\": \"Nous Research\",\n \"base_url\": \"https://api.nousresearch.com/v1\",\n \"env_var\": \"NOUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"novita\",\n \"display\": \"Novita AI\",\n \"base_url\": \"https://api.novita.ai/v1\",\n \"env_var\": \"NOVITA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nscale\",\n \"display\": \"Nscale\",\n \"base_url\": \"https://inference.api.nscale.com/v1\",\n \"env_var\": \"NSCALE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nvidia_nim\",\n \"display\": \"NVIDIA NIM\",\n \"base_url\": \"https://integrate.api.nvidia.com/v1\",\n \"env_var\": \"NVIDIA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"oci\",\n \"display\": \"OCI\",\n \"base_url\": \"https://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1\",\n \"env_var\": \"OCI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ofox\",\n \"display\": \"OfoxAI\",\n \"base_url\": \"https://api.ofox.ai/v1\",\n \"env_var\": \"OFOX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ohmygpt\",\n \"display\": \"OhMyGPT\",\n \"base_url\": \"https://api.ohmygpt.com/v1\",\n \"env_var\": \"OHMYGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ollama_cloud\",\n \"display\": \"Ollama Cloud\",\n \"base_url\": \"https://api.ollama.com/v1\",\n \"env_var\": \"OLLAMA_CLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"openaimax\",\n \"display\": \"OpenAIMax\",\n \"base_url\": \"https://api.openaimax.com/v1\",\n \"env_var\": \"OPENAIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"openaisb\",\n \"display\": \"OpenAI-SB\",\n \"base_url\": \"https://api.openaisb.com/v1\",\n \"env_var\": \"OPENAISB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"opencode\",\n \"display\": \"OpenCode Zen\",\n \"base_url\": \"https://api.opencode.zen/v1\",\n \"env_var\": \"OPENCODE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"opencode_go\",\n \"display\": \"OpenCode Go\",\n \"base_url\": \"https://api.opencode.dev/v1\",\n \"env_var\": \"OPENCODE_GO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"opencode_zen\",\n \"display\": \"OpenCode Zen\",\n \"base_url\": \"https://api.opencode.zen/v1\",\n \"env_var\": \"OPENCODE_ZEN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"orcarouter\",\n \"display\": \"OrcaRouter\",\n \"base_url\": \"https://api.orcarouter.com/v1\",\n \"env_var\": \"ORCAROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ovhcloud\",\n \"display\": \"OVHcloud AI\",\n \"base_url\": \"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1\",\n \"env_var\": \"OVHCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"parasail\",\n \"display\": \"Parasail\",\n \"base_url\": \"https://api.parasail.io/v1\",\n \"env_var\": \"PARASAIL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"perfxcloud\",\n \"display\": \"PerfXCloud\",\n \"base_url\": \"https://api.perfxcloud.com/v1\",\n \"env_var\": \"PERFXCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"perplexity\",\n \"display\": \"Perplexity\",\n \"base_url\": \"https://api.perplexity.ai\",\n \"env_var\": \"PERPLEXITY_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"perplexity_agent\",\n \"display\": \"Perplexity Agent\",\n \"base_url\": \"https://api.perplexity.ai/v1\",\n \"env_var\": \"PERPLEXITY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"petals\",\n \"display\": \"Petals\",\n \"base_url\": \"https://api.petals.dev/v1\",\n \"env_var\": \"PETALS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"pinstripes\",\n \"display\": \"Pinstripes\",\n \"base_url\": \"https://api.pinstripes.io/v1\",\n \"env_var\": \"PINSTRIPES_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"pioneer\",\n \"display\": \"Pioneer\",\n \"base_url\": \"https://api.pioneer.ai/v1\",\n \"env_var\": \"PIONEER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"poe\",\n \"display\": \"Poe\",\n \"base_url\": \"https://api.poe.com/v1\",\n \"env_var\": \"POE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"poolside\",\n \"display\": \"Poolside\",\n \"base_url\": \"https://inference.poolside.ai/v1\",\n \"env_var\": \"POOLSIDE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"portkey\",\n \"display\": \"Portkey Gateway\",\n \"base_url\": \"https://api.portkey.ai/v1\",\n \"env_var\": \"PORTKEY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ppinfra\",\n \"display\": \"PPInfra(PPIO 派欧云)\",\n \"base_url\": \"https://api.ppio.com/openai\",\n \"env_var\": \"PPIO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"predibase\",\n \"display\": \"Predibase\",\n \"base_url\": \"https://serving.app.predibase.com/v1\",\n \"env_var\": \"PREDIBASE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"privatemode_ai\",\n \"display\": \"Privatemode AI\",\n \"base_url\": \"http://localhost:8080/v1\",\n \"env_var\": \"PRIVATEMODE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"publicai\",\n \"display\": \"Publicai\",\n \"base_url\": \"https://platform.publicai.co/v1\",\n \"env_var\": \"PUBLICAI_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"qihang_ai\",\n \"display\": \"QiHang(启航 AI)\",\n \"base_url\": \"https://api.qhaigc.net/v1\",\n \"env_var\": \"QIHANG_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"qihoo360\",\n \"display\": \"360 AI\",\n \"base_url\": \"https://api.360.cn/v1\",\n \"env_var\": \"AI360_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"qiniu_ai\",\n \"display\": \"Qiniu AI\",\n \"base_url\": \"https://api.qiniu.com/v1\",\n \"env_var\": \"QINIU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"regolo_ai\",\n \"display\": \"Regolo AI\",\n \"base_url\": \"https://api.regolo.ai/v1\",\n \"env_var\": \"REGOLO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"reka_ai\",\n \"display\": \"Reka AI\",\n \"base_url\": \"https://api.reka.ai/v1\",\n \"env_var\": \"REKA_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"requesty\",\n \"display\": \"Requesty\",\n \"base_url\": \"https://api.requesty.ai/v1\",\n \"env_var\": \"REQUESTY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"reve\",\n \"display\": \"Reve\",\n \"base_url\": \"https://api.reve.ai/v1\",\n \"env_var\": \"REVE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"routing_run\",\n \"display\": \"routing.run\",\n \"base_url\": \"https://api.routing.run/v1\",\n \"env_var\": \"ROUTING_RUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"sakana\",\n \"display\": \"Sakana AI\",\n \"base_url\": \"https://api.sakana.ai/v1\",\n \"env_var\": \"SAKANA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"sambanova\",\n \"display\": \"SambaNova\",\n \"base_url\": \"https://api.sambanova.ai/v1\",\n \"env_var\": \"SAMBANOVA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"sarvam\",\n \"display\": \"Sarvam AI\",\n \"base_url\": \"https://api.sarvam.ai/v1\",\n \"env_var\": \"SARVAM_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"scaleway\",\n \"display\": \"Scaleway AI\",\n \"base_url\": \"https://api.scaleway.ai/v1\",\n \"env_var\": \"SCALEWAY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"scx_ai\",\n \"display\": \"SCX AI\",\n \"base_url\": \"https://api.scx.ai/v1\",\n \"env_var\": \"SCX_AI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"siliconflow\",\n \"display\": \"SiliconFlow\",\n \"base_url\": \"https://api.siliconflow.cn/v1\",\n \"env_var\": \"SILICONFLOW_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"snowflake\",\n \"display\": \"Snowflake\",\n \"base_url\": \"https://.snowflakecomputing.com/api/v2/cortex/v1\",\n \"env_var\": \"SNOWFLAKE_PAT\",\n \"profile\": {}\n },\n {\n \"name\": \"snowflake_cortex\",\n \"display\": \"Snowflake Cortex\",\n \"base_url\": \"https://.snowflakecomputing.com/api/v2/cortex/v1\",\n \"env_var\": \"SNOWFLAKE_CORTEX_PAT\",\n \"profile\": {}\n },\n {\n \"name\": \"stackit\",\n \"display\": \"STACKIT\",\n \"base_url\": \"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\",\n \"env_var\": \"STACKIT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"stepfun\",\n \"display\": \"StepFun (阶跃星辰)\",\n \"base_url\": \"https://api.stepfun.com/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"stepfun_ai_step_plan\",\n \"display\": \"StepFun Step Plan (Global)\",\n \"base_url\": \"https://api.stepfun.ai/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"stepfun_step_plan\",\n \"display\": \"StepFun Step Plan (China)\",\n \"base_url\": \"https://api.stepfun.com/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"subconscious\",\n \"display\": \"Subconscious\",\n \"base_url\": \"https://api.subconscious.dev/v1\",\n \"env_var\": \"SUBCONSCIOUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"submodel\",\n \"display\": \"SubModel\",\n \"base_url\": \"https://api.submodel.com/v1\",\n \"env_var\": \"SUBMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"synthetic\",\n \"display\": \"Synthetic\",\n \"base_url\": \"https://api.synthetic.new/openai/v1\",\n \"env_var\": \"SYNTHETIC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent\",\n \"display\": \"Tencent (混元/Hunyuan)\",\n \"base_url\": \"https://api.hunyuan.cloud.tencent.com/v1\",\n \"env_var\": \"TENCENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_coding_plan\",\n \"display\": \"Tencent Coding Plan (China)\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/coding/v3\",\n \"env_var\": \"TENCENT_CODING_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan\",\n \"display\": \"Tencent Token Plan\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_enterprise_auto\",\n \"display\": \"腾讯云 Token Plan / Token Plan 企业版轻享套餐\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_enterprise_pro\",\n \"display\": \"腾讯云 Token Plan / Token Plan 企业版专业套餐\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_general_personal\",\n \"display\": \"腾讯云 Token Plan / 通用 Token Plan(个人版)\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_hy_personal\",\n \"display\": \"腾讯云 Token Plan / Hy Token Plan(个人版)\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_tokenhub\",\n \"display\": \"Tencent TokenHub\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/v1\",\n \"env_var\": \"TENCENT_TOKENHUB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tensormesh\",\n \"display\": \"Tensormesh\",\n \"base_url\": \"https://serverless.tensormesh.ai\",\n \"env_var\": \"YOUR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"the_grid_ai\",\n \"display\": \"The Grid AI\",\n \"base_url\": \"https://thegrid.ai/docs\",\n \"env_var\": \"THEGRIDAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"thinkingmachines\",\n \"display\": \"Thinking Machines\",\n \"base_url\": \"https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1\",\n \"env_var\": \"TINKER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tinfoil\",\n \"display\": \"Tinfoil\",\n \"base_url\": \"https://inference.tinfoil.sh/v1\",\n \"env_var\": \"TINFOIL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"togetherai\",\n \"display\": \"Together AI\",\n \"base_url\": \"https://api.together.xyz/v1\",\n \"env_var\": \"TOGETHER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tokenflux\",\n \"display\": \"Tokenflux\",\n \"base_url\": \"https://tokenflux.ai/v1\",\n \"env_var\": \"TOKENFLUX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tokenpony\",\n \"display\": \"TokenPony\",\n \"base_url\": \"https://api.tokenpony.com/v1\",\n \"env_var\": \"TOKENPONY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"trustedrouter\",\n \"display\": \"TrustedRouter\",\n \"base_url\": \"https://api.trustedrouter.com/v1\",\n \"env_var\": \"TRUSTEDROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tundra\",\n \"display\": \"Tundra\",\n \"base_url\": \"https://api.tundra.ai/v1\",\n \"env_var\": \"TUNDRA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"umans_ai\",\n \"display\": \"Umans AI\",\n \"base_url\": \"https://api.code.umans.ai/v1\",\n \"env_var\": \"UMANS_AI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"unorouter\",\n \"display\": \"UnoRouter\",\n \"base_url\": \"https://unorouter.com/en\",\n \"env_var\": \"UNOROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"upstage\",\n \"display\": \"Upstage\",\n \"base_url\": \"https://api.upstage.ai/v1\",\n \"env_var\": \"UPSTAGE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"v0\",\n \"display\": \"v0 (Vercel)\",\n \"base_url\": \"https://api.v0.dev/v1\",\n \"env_var\": \"V0_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"venice\",\n \"display\": \"Venice\",\n \"base_url\": \"https://api.venice.ai/api/v1\",\n \"env_var\": \"VENICE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"vercel\",\n \"display\": \"Vercel\",\n \"base_url\": \"https://api.v0.dev/v1\",\n \"env_var\": \"VERCEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"vivgrid\",\n \"display\": \"Vivgrid\",\n \"base_url\": \"https://api.vivgrid.com/v1\",\n \"env_var\": \"VIVGRID_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"volc_engine\",\n \"display\": \"VolcEngine\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"vultr\",\n \"display\": \"Vultr\",\n \"base_url\": \"https://api.vultrinference.com/v1\",\n \"env_var\": \"VULTR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"wafer\",\n \"display\": \"Wafer\",\n \"base_url\": \"https://api.wafer.ai/v1\",\n \"env_var\": \"WAFER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"wandb\",\n \"display\": \"Weights & Biases\",\n \"base_url\": \"https://api.inference.wandb.ai/v1\",\n \"env_var\": \"WANDB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomi_token_plan_ams\",\n \"display\": \"Xiaomi Token Plan (Europe)\",\n \"base_url\": \"https://token-plan-ams.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomi_token_plan_cn\",\n \"display\": \"Xiaomi Token Plan (China)\",\n \"base_url\": \"https://token-plan-cn.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomi_token_plan_sgp\",\n \"display\": \"Xiaomi Token Plan (Singapore)\",\n \"base_url\": \"https://token-plan-sgp.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomimimo\",\n \"display\": \"Xiaomi MiMo\",\n \"base_url\": \"https://mimo.xiaomi.com/v1\",\n \"env_var\": \"XIAOMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xpersona\",\n \"display\": \"Xpersona\",\n \"base_url\": \"/v1\",\n \"env_var\": \"XPERSONA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xunfei\",\n \"display\": \"Xunfei\",\n \"base_url\": \"https://spark-api-open.xf-yun.com/v1\",\n \"env_var\": \"XUNFEI_API_PASSWORD\",\n \"profile\": {}\n },\n {\n \"name\": \"zai\",\n \"display\": \"Zai\",\n \"base_url\": \"https://api.z.ai/api/paas/v4\",\n \"env_var\": \"ZAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zai_coding_plan\",\n \"display\": \"Z.AI Coding Plan\",\n \"base_url\": \"https://api.z.ai/api/anthropic\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zeldoc\",\n \"display\": \"Zeldoc\",\n \"base_url\": \"https://api.zeldoc.ai/v1\",\n \"env_var\": \"ZELDOC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zenmux\",\n \"display\": \"ZenMux\",\n \"base_url\": \"https://zenmux.ai/api/v1\",\n \"env_var\": \"ZENMUX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zhipu_v4\",\n \"display\": \"ZhipuV4\",\n \"base_url\": \"https://open.bigmodel.cn/api/paas/v4\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zhipuai_coding_plan\",\n \"display\": \"Zhipu AI Coding Plan\",\n \"base_url\": \"https://docs.bigmodel.cn/cn/coding-plan/quick-start\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"profile\": {}\n }\n]\n"}, "7c6283c8ba6e91e6ce380cb9e8a13b99e27431ed": {"t": 1785846967.123756, "n": 42429, "h": "c40417fe8593d309", "c": "[\n {\n \"name\": \"abacus\",\n \"display\": \"Abacus\",\n \"base_url\": \"https://routellm.abacus.ai/v1\",\n \"env_var\": \"ABACUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"abliteration_ai\",\n \"display\": \"Abliteration AI\",\n \"base_url\": \"https://api.abliteration.ai/v1\",\n \"env_var\": \"ABLIT_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ai21\",\n \"display\": \"AI21 Labs\",\n \"base_url\": \"https://api.ai21.ai/v1\",\n \"env_var\": \"AI21_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ai302\",\n \"display\": \"302.AI\",\n \"base_url\": \"https://api.302.ai/v1\",\n \"env_var\": \"AI302_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ai_router\",\n \"display\": \"AI-ROUTER\",\n \"base_url\": \"https://api.ai-router.dev/v1\",\n \"env_var\": \"AI_ROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aiand\",\n \"display\": \"AIand\",\n \"base_url\": \"https://api.aiand.com/v1\",\n \"env_var\": \"AIAND_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aibadgr\",\n \"display\": \"AI Badgr\",\n \"base_url\": \"https://api.aibadgr.com/v1\",\n \"env_var\": \"AIBADGR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aigc2d\",\n \"display\": \"AIGC2D\",\n \"base_url\": \"https://api.aigc2d.com/v1\",\n \"env_var\": \"AIGC2D_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aihubmix\",\n \"display\": \"AIHubMix\",\n \"base_url\": \"https://aihubmix.com/v1\",\n \"env_var\": \"AIHUBMIX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ails\",\n \"display\": \"AILS\",\n \"base_url\": \"https://api.caipacity.com/v1\",\n \"env_var\": \"AILS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aiml\",\n \"display\": \"AI/ML API\",\n \"base_url\": \"https://api.aimlapi.com/v1\",\n \"env_var\": \"AIML_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aki_io\",\n \"display\": \"AKI.IO\",\n \"base_url\": \"https://aki.io/openai/v1\",\n \"env_var\": \"AKI_IO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"albert\",\n \"display\": \"Albert\",\n \"base_url\": \"https://api.albert.ai/v1\",\n \"env_var\": \"ALBERT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba\",\n \"display\": \"Alibaba Cloud (DashScope)\",\n \"base_url\": \"https://dashscope-intl.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_coding_plan\",\n \"display\": \"Alibaba Coding Plan\",\n \"base_url\": \"https://coding-intl.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_coding_plan_cn\",\n \"display\": \"Alibaba Coding Plan (China)\",\n \"base_url\": \"https://coding.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_token_plan\",\n \"display\": \"Alibaba Token Plan\",\n \"base_url\": \"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_token_plan_cn\",\n \"display\": \"Alibaba Token Plan (China)\",\n \"base_url\": \"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ambient\",\n \"display\": \"Ambient\",\n \"base_url\": \"https://api.ambient.xyz/v1\",\n \"env_var\": \"AMBIENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"anyapi\",\n \"display\": \"AnyAPI\",\n \"base_url\": \"https://api.anyapi.ai/v1\",\n \"env_var\": \"ANYAPI_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"anyscale\",\n \"display\": \"Anyscale\",\n \"base_url\": \"https://api.endpoints.anyscale.com/v1\",\n \"env_var\": \"ANYSCALE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"apertis\",\n \"display\": \"Apertis\",\n \"base_url\": \"https://api.stima.tech/v1\",\n \"env_var\": \"STIMA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"api2d\",\n \"display\": \"API2D\",\n \"base_url\": \"https://oa.api2d.net/v1\",\n \"env_var\": \"API2D_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"api2gpt\",\n \"display\": \"API2GPT\",\n \"base_url\": \"https://api.api2gpt.com/v1\",\n \"env_var\": \"API2GPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"apiserpent\",\n \"display\": \"API Serpent\",\n \"base_url\": \"https://api.apiserpent.com/v1\",\n \"env_var\": \"APISERPENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"atlascloud\",\n \"display\": \"AtlasCloud\",\n \"base_url\": \"https://api.atlascloud.com/v1\",\n \"env_var\": \"ATLASCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"atomic_chat\",\n \"display\": \"Atomic Chat\",\n \"base_url\": \"http://127.0.0.1:1337/v1\",\n \"env_var\": \"ATOMIC_CHAT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"auriko\",\n \"display\": \"Auriko\",\n \"base_url\": \"https://api.auriko.ai/v1\",\n \"env_var\": \"AURIKO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"azure_ai\",\n \"display\": \"Azure AI\",\n \"base_url\": \"https://models.inference.ai.azure.com\",\n \"env_var\": \"AZURE_AI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"baichuan\",\n \"display\": \"Baichuan AI\",\n \"base_url\": \"https://api.baichuan-ai.com/v1\",\n \"env_var\": \"BAICHUAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"baidu\",\n \"display\": \"Baidu (文心/ERNIE)\",\n \"base_url\": \"https://qianfan.baidubce.com/v2\",\n \"env_var\": \"BAIDU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"baidu_v2\",\n \"display\": \"BaiduV2\",\n \"base_url\": \"https://qianfan.baidubce.com/v2\",\n \"env_var\": \"QIANFAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bailing\",\n \"display\": \"Bailing\",\n \"base_url\": \"https://api.ant-ling.com/v1\",\n \"env_var\": \"BAILING_API_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"baseten\",\n \"display\": \"Baseten\",\n \"base_url\": \"https://inference.baseten.co/v1\",\n \"env_var\": \"BASETEN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"berget\",\n \"display\": \"Berget.AI\",\n \"base_url\": \"https://api.berget.ai/v1\",\n \"env_var\": \"BERGET_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bigmodel\",\n \"display\": \"BigModel (智谱)\",\n \"base_url\": \"https://open.bigmodel.cn/api/paas/v4\",\n \"env_var\": \"BIGMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"blueclaw\",\n \"display\": \"Blue Claw\",\n \"base_url\": \"https://openai.blueclaw.network/v1\",\n \"env_var\": \"BLUECLAW_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bytedance\",\n \"display\": \"ByteDance\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"byteplus\",\n \"display\": \"BytePlus (Volcano)\",\n \"base_url\": \"https://ark.bytepluses.com/api/v3\",\n \"env_var\": \"BYTEPLUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bytez\",\n \"display\": \"Bytez\",\n \"base_url\": \"https://api.bytez.com/v2\",\n \"env_var\": \"BYTEZ_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"canopywave\",\n \"display\": \"Canopywave\",\n \"base_url\": \"https://api.canopywave.com/v1\",\n \"env_var\": \"CANOPYWAVE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cerebras\",\n \"display\": \"Cerebras\",\n \"base_url\": \"https://api.cerebras.ai/v1\",\n \"env_var\": \"CEREBRAS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"chatgpt\",\n \"display\": \"ChatGPT (订阅)\",\n \"base_url\": \"https://chatgpt.com/backend-api/codex\",\n \"env_var\": \"CHATGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cherryin\",\n \"display\": \"cherryin\",\n \"base_url\": \"https://open.cherryin.net\",\n \"env_var\": \"CHERRYIN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"chutes\",\n \"display\": \"Chutes\",\n \"base_url\": \"https://llm.chutes.ai/v1\",\n \"env_var\": \"CHUTES_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"clarifai\",\n \"display\": \"Clarifai\",\n \"base_url\": \"https://api.clarifai.com/v2/ext/openai/v1\",\n \"env_var\": \"CLARIFAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"claudinio\",\n \"display\": \"Claudinio\",\n \"base_url\": \"https://api.claudin.io\",\n \"env_var\": \"CLAUDINIO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cline_pass\",\n \"display\": \"Cline\",\n \"base_url\": \"https://api.cline.bot/v1\",\n \"env_var\": \"CLINE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"closeai\",\n \"display\": \"CloseAI\",\n \"base_url\": \"https://api.closeai-proxy.xyz/v1\",\n \"env_var\": \"CLOSEAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cloudferro_sherlock\",\n \"display\": \"CloudFerro Sherlock\",\n \"base_url\": \"https://api-sherlock.cloudferro.com/openai/v1\",\n \"env_var\": \"CLOUDFERRO_SHERLOCK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cloudflare\",\n \"display\": \"Cloudflare\",\n \"base_url\": \"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\",\n \"env_var\": \"CLOUDFLARE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cloudflare_workers_ai\",\n \"display\": \"Cloudflare Workers AI\",\n \"base_url\": \"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\",\n \"env_var\": \"CLOUDFLARE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"codestral\",\n \"display\": \"Codestral (Mistral)\",\n \"base_url\": \"https://api.mistral.ai/v1\",\n \"env_var\": \"CODESTRAL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cometapi\",\n \"display\": \"CometAPI\",\n \"base_url\": \"https://api.cometapi.com/v1\",\n \"env_var\": \"COMETAPI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"commandcode\",\n \"display\": \"CommandCode\",\n \"base_url\": \"https://api.commandcode.com/v1\",\n \"env_var\": \"COMMANDCODE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"compactifai\",\n \"display\": \"CompactifAI\",\n \"base_url\": \"https://api.compactif.ai/v1\",\n \"env_var\": \"COMPACTIFAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"copilot\",\n \"display\": \"GitHub Copilot\",\n \"base_url\": \"https://api.githubcopilot.com\",\n \"env_var\": \"COPILOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cortecs\",\n \"display\": \"Cortecs\",\n \"base_url\": \"https://api.cortecs.ai/v1/\",\n \"env_var\": \"CORTECS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"coze\",\n \"display\": \"Coze (扣子)\",\n \"base_url\": \"https://api.coze.cn/v1\",\n \"env_var\": \"COZE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"crof\",\n \"display\": \"CrofAI\",\n \"base_url\": \"https://crof.ai/v1\",\n \"env_var\": \"CROF_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"crossmodel\",\n \"display\": \"CrossModel\",\n \"base_url\": \"https://api.crossmodel.ai/v1\",\n \"env_var\": \"CROSSMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"crusoe\",\n \"display\": \"Crusoe\",\n \"base_url\": \"https://api.inference.crusoecloud.com/v1\",\n \"env_var\": \"CRUSOE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"daoxe\",\n \"display\": \"DaoXE\",\n \"base_url\": \"https://daoxe.com/v1\",\n \"env_var\": \"DAOXE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"darkbloom\",\n \"display\": \"Darkbloom\",\n \"base_url\": \"https://api.darkbloom.dev/v1\",\n \"env_var\": \"DARKBLOOM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"databricks\",\n \"display\": \"Databricks\",\n \"base_url\": \"https://databricks.com/serving-endpoints\",\n \"env_var\": \"DATABRICKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"datarobot\",\n \"display\": \"DataRobot\",\n \"base_url\": \"https://app.datarobot.com/api/v2\",\n \"env_var\": \"DATAROBOT_API_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"deepbricks\",\n \"display\": \"DeepBricks\",\n \"base_url\": \"https://api.deepbricks.ai/v1\",\n \"env_var\": \"DEEPBRICKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"deepinfra\",\n \"display\": \"DeepInfra\",\n \"base_url\": \"https://api.deepinfra.com/v1/openai\",\n \"env_var\": \"DEEPINFRA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"deepseek\",\n \"display\": \"DeepSeek\",\n \"base_url\": \"https://api.deepseek.com/v1\",\n \"env_var\": \"DEEPSEEK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"digitalocean\",\n \"display\": \"DigitalOcean\",\n \"base_url\": \"https://inference.do-ai.run\",\n \"env_var\": \"DIGITALOCEAN_ACCESS_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"dinference\",\n \"display\": \"DInference\",\n \"base_url\": \"https://api.dinference.com/v1\",\n \"env_var\": \"DINFERENCE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"doubao\",\n \"display\": \"Doubao\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"doubleword\",\n \"display\": \"Doubleword\",\n \"base_url\": \"https://api.doubleword.ai/v1\",\n \"env_var\": \"DOUBLEWORD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"drun\",\n \"display\": \"D.Run (China)\",\n \"base_url\": \"https://chat.d.run/v1\",\n \"env_var\": \"DRUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ebcloud\",\n \"display\": \"EBCloud\",\n \"base_url\": \"https://maas-api.ebcloud.com/v1\",\n \"env_var\": \"EBCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"embercloud\",\n \"display\": \"Embercloud\",\n \"base_url\": \"https://api.embercloud.com/v1\",\n \"env_var\": \"EMBERCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"empiriolabs\",\n \"display\": \"EmpirioLabs AI\",\n \"base_url\": \"https://api.empiriolabs.ai/v1\",\n \"env_var\": \"EMPIRIOLABS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"evroc\",\n \"display\": \"evroc\",\n \"base_url\": \"https://models.think.evroc.com/v1\",\n \"env_var\": \"EVROC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fastcrw\",\n \"display\": \"FastCRW\",\n \"base_url\": \"https://fastcrw.com/api/v1\",\n \"env_var\": \"FASTCRW_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fastgpt\",\n \"display\": \"FastGPT\",\n \"base_url\": \"https://api.fastgpt.in/v1\",\n \"env_var\": \"FASTGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fastrouter\",\n \"display\": \"FastRouter\",\n \"base_url\": \"https://api.fastrouter.ai/v1\",\n \"env_var\": \"FASTROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"featherless_ai\",\n \"display\": \"Featherless AI\",\n \"base_url\": \"https://api.featherless.ai/v1\",\n \"env_var\": \"FEATHERLESS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"firepass\",\n \"display\": \"Fireworks (Firepass)\",\n \"base_url\": \"https://api.fireworks.ai/inference/v1\",\n \"env_var\": \"FIREWORKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fireworks\",\n \"display\": \"Fireworks\",\n \"base_url\": \"https://api.fireworks.ai/inference/v1\",\n \"env_var\": \"FIREWORKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"freemodel\",\n \"display\": \"FreeModel\",\n \"base_url\": \"https://api.freemodel.dev/v1\",\n \"env_var\": \"FREEMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"friendliai\",\n \"display\": \"FriendliAI\",\n \"base_url\": \"https://inference.friendli.ai/v1\",\n \"env_var\": \"FRIENDLIAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"frogbot\",\n \"display\": \"FrogBot\",\n \"base_url\": \"https://app.frogbot.ai/api/v1\",\n \"env_var\": \"FROGBOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"galadriel\",\n \"display\": \"Galadriel\",\n \"base_url\": \"https://api.galadriel.com/v1\",\n \"env_var\": \"GALADRIEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gdc\",\n \"display\": \"GDC\",\n \"base_url\": \"https://api.gdc.ai/v1\",\n \"env_var\": \"GDC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gigachat\",\n \"display\": \"GigaChat (Sberbank)\",\n \"base_url\": \"https://gigachat.devices.sberbank.ru/api/v1\",\n \"env_var\": \"GIGACHAT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"github\",\n \"display\": \"GitHub Models\",\n \"base_url\": \"https://models.inference.ai.azure.com\",\n \"env_var\": \"GITHUB_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"gmi\",\n \"display\": \"GMI\",\n \"base_url\": \"https://api.gmi-serving.com/v1\",\n \"env_var\": \"GMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gmicloud\",\n \"display\": \"GMI Cloud\",\n \"base_url\": \"https://api.gmi-serving.com/v1\",\n \"env_var\": \"GMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gonka24\",\n \"display\": \"Gonka24\",\n \"base_url\": \"https://api.gonka24.com/v1\",\n \"env_var\": \"GONKA24_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gradient_ai\",\n \"display\": \"Gradient AI\",\n \"base_url\": \"https://inference.do-ai.run/v1\",\n \"env_var\": \"GRADIENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"groq\",\n \"display\": \"Groq\",\n \"base_url\": \"https://api.groq.com/openai/v1\",\n \"env_var\": \"GROQ_API_KEY\",\n \"profile\": {\n \"supports_top_k\": false,\n \"stream_usage_key\": \"x_groq\",\n \"max_tokens_key\": \"max_completion_tokens\"\n }\n },\n {\n \"name\": \"helicone\",\n \"display\": \"Helicone\",\n \"base_url\": \"https://api.helicone.ai/v1\",\n \"env_var\": \"HELICONE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"heroku\",\n \"display\": \"Heroku AI\",\n \"base_url\": \"https://api.heroku.com/inference/v1\",\n \"env_var\": \"HEROKU_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_completion_tokens\"\n }\n },\n {\n \"name\": \"hetzner\",\n \"display\": \"Hetzner\",\n \"base_url\": \"https://inference.hetzner.com/api/v1\",\n \"env_var\": \"HETZNER_VLLM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"hosted_vllm\",\n \"display\": \"Hosted vLLM\",\n \"base_url\": \"https://hosted-vllm-api.com/v1\",\n \"env_var\": \"HOSTED_VLLM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"hpc_ai\",\n \"display\": \"HPC-AI\",\n \"base_url\": \"https://api.hpc-ai.com/inference/v1\",\n \"env_var\": \"INFERENCE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"hyperbolic\",\n \"display\": \"Hyperbolic\",\n \"base_url\": \"https://api.hyperbolic.xyz/v1\",\n \"env_var\": \"HYPERBOLIC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"iflowcn\",\n \"display\": \"iFlow\",\n \"base_url\": \"https://apis.iflow.cn/v1\",\n \"env_var\": \"IFLOW_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inception\",\n \"display\": \"Inception Labs\",\n \"base_url\": \"https://api.inceptionlabs.ai/v1\",\n \"env_var\": \"INCEPTION_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inceptron\",\n \"display\": \"Inceptron\",\n \"base_url\": \"https://api.inceptron.io/v1\",\n \"env_var\": \"INCEPTRON_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inference_net\",\n \"display\": \"Inference.net\",\n \"base_url\": \"https://api.inference.net/v1\",\n \"env_var\": \"INFERENCE_NET_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inferencehub\",\n \"display\": \"InferenceHub\",\n \"base_url\": \"https://app.inferencehub.tech/v1\",\n \"env_var\": \"INFERENCEHUB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inferx\",\n \"display\": \"InferX\",\n \"base_url\": \"https://model.inferx.net/v1\",\n \"env_var\": \"INFERX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"infinity\",\n \"display\": \"Infinity AI\",\n \"base_url\": \"https://infinity.ai/api/v1\",\n \"env_var\": \"INFINITY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"io_net\",\n \"display\": \"IO.NET\",\n \"base_url\": \"https://api.intelligence.io.solutions/api/v1\",\n \"env_var\": \"IOINTELLIGENCE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"jiekou\",\n \"display\": \"Jiekou.AI\",\n \"base_url\": \"https://api.highwayapi.ai/openai\",\n \"env_var\": \"JIEKOU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kenari\",\n \"display\": \"Kenari\",\n \"base_url\": \"https://kenari.id/v1\",\n \"env_var\": \"KENARI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kilo\",\n \"display\": \"Kilo\",\n \"base_url\": \"https://api.kilo.ai/v1\",\n \"env_var\": \"KILO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kimi\",\n \"display\": \"Kimi\",\n \"base_url\": \"https://api.moonshot.ai/v1\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kimi_for_coding\",\n \"display\": \"Kimi For Coding\",\n \"base_url\": \"https://api.kimi.com/coding/v1\",\n \"env_var\": \"KIMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kiro\",\n \"display\": \"Kiro\",\n \"base_url\": \"https://api.kiro.dev/v1\",\n \"env_var\": \"KIRO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kluster_ai\",\n \"display\": \"Kluster AI\",\n \"base_url\": \"https://api.kluster.ai/v1\",\n \"env_var\": \"KLUSTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"krutrim\",\n \"display\": \"Krutrim\",\n \"base_url\": \"https://api.krutrim.ai/v1\",\n \"env_var\": \"KRUTRIM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kuae_cloud_coding_plan\",\n \"display\": \"KUAE Cloud Coding Plan\",\n \"base_url\": \"https://coding-plan-endpoint.kuaecloud.net/v1\",\n \"env_var\": \"KUAE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lambda_ai\",\n \"display\": \"Lambda AI\",\n \"base_url\": \"https://api.lambda.ai/v1\",\n \"env_var\": \"LAMBDA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lemonade\",\n \"display\": \"Lemonade\",\n \"base_url\": \"http://localhost:13305/v1\",\n \"env_var\": \"LEMONADE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lemonfox_ai\",\n \"display\": \"Lemonfox AI\",\n \"base_url\": \"https://api.lemonfox.ai/v1\",\n \"env_var\": \"LEMONFOX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"libertai\",\n \"display\": \"Libertai\",\n \"base_url\": \"https://api.libertai.io/v1\",\n \"env_var\": \"LIBERTAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lilac\",\n \"display\": \"Lilac\",\n \"base_url\": \"https://api.getlilac.com/v1\",\n \"env_var\": \"LILAC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lingyiwanwu\",\n \"display\": \"Lingyiwanwu (零一万物)\",\n \"base_url\": \"https://api.lingyiwanwu.com/v1\",\n \"env_var\": \"LINGYIWANWU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llama\",\n \"display\": \"Llama\",\n \"base_url\": \"https://api.llama.com/compat/v1/\",\n \"env_var\": \"LLAMA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llamagate\",\n \"display\": \"Llamagate\",\n \"base_url\": \"https://api.llamagate.dev/v1\",\n \"env_var\": \"LLAMAGATE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llmgateway\",\n \"display\": \"LLM Gateway\",\n \"base_url\": \"https://api.llmgateway.io/v1\",\n \"env_var\": \"LLM_GATEWAY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llmtr\",\n \"display\": \"LLMTR\",\n \"base_url\": \"https://llmtr.com/v1\",\n \"env_var\": \"LLMTR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"longcat\",\n \"display\": \"LongCat\",\n \"base_url\": \"https://api.longcat.chat/v1\",\n \"env_var\": \"LONGCAT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lucidquery\",\n \"display\": \"LucidQuery\",\n \"base_url\": \"https://api.lucidquery.com/v1\",\n \"env_var\": \"LUCIDQUERY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lynkr\",\n \"display\": \"Lynkr\",\n \"base_url\": \"http://localhost:8081/v1\",\n \"env_var\": \"LYNKR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"matterai\",\n \"display\": \"Matter AI\",\n \"base_url\": \"https://api.matterai.com/v1\",\n \"env_var\": \"MATTERAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"meganova\",\n \"display\": \"Meganova\",\n \"base_url\": \"https://api.meganova.ai/v1\",\n \"env_var\": \"MEGANOVA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"merge_gateway\",\n \"display\": \"Merge Gateway\",\n \"base_url\": \"https://api-gateway.merge.dev/v1/openai\",\n \"env_var\": \"MERGE_GATEWAY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"meta\",\n \"display\": \"Meta\",\n \"base_url\": \"https://api.meta.ai/v1\",\n \"env_var\": \"MODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"meta_llama\",\n \"display\": \"Meta Llama API\",\n \"base_url\": \"https://api.llama.com/compat/v1\",\n \"env_var\": \"LLAMA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"mimo\",\n \"display\": \"Mimo\",\n \"base_url\": \"https://api.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax\",\n \"display\": \"MiniMax\",\n \"base_url\": \"https://api.minimax.io/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax_cn\",\n \"display\": \"MiniMax (minimaxi.com)\",\n \"base_url\": \"https://api.minimaxi.com/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax_cn_coding_plan\",\n \"display\": \"MiniMax Token Plan (minimaxi.com)\",\n \"base_url\": \"https://api.minimaxi.com/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax_coding_plan\",\n \"display\": \"MiniMax Token Plan (minimax.io)\",\n \"base_url\": \"https://api.minimax.io/anthropic/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"mira\",\n \"display\": \"Mira\",\n \"base_url\": \"https://api.mira.so/v1\",\n \"env_var\": \"MIRA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"mixlayer\",\n \"display\": \"Mixlayer\",\n \"base_url\": \"https://models.mixlayer.ai/v1\",\n \"env_var\": \"MIXLAYER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"moark\",\n \"display\": \"Moark\",\n \"base_url\": \"https://api.moark.com/v1\",\n \"env_var\": \"MOARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"modal\",\n \"display\": \"Modal\",\n \"base_url\": \"https://modal.com/v1\",\n \"env_var\": \"MODAL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"model_oracle_ai\",\n \"display\": \"Model Oracle AI\",\n \"base_url\": \"https://api.modeloracle.com/api/v1\",\n \"env_var\": \"MODEL_ORACLE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"modelscope\",\n \"display\": \"ModelScope\",\n \"base_url\": \"https://api-inference.modelscope.cn/v1\",\n \"env_var\": \"MODELSCOPE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"moonshotai\",\n \"display\": \"Moonshot AI\",\n \"base_url\": \"https://api.moonshot.cn/v1\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"moonshotai_cn\",\n \"display\": \"Moonshot AI (China)\",\n \"base_url\": \"https://api.moonshot.cn/anthropic/v1(Anthropic\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"morph\",\n \"display\": \"Morph LLM\",\n \"base_url\": \"https://api.morphllm.com/v1\",\n \"env_var\": \"MORPH_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nanogpt\",\n \"display\": \"NanoGPT\",\n \"base_url\": \"https://api.nanogpt.com/v1\",\n \"env_var\": \"NANOGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ncompass\",\n \"display\": \"Ncompass\",\n \"base_url\": \"https://api.ncompass.tech/v1\",\n \"env_var\": \"NCOMPASS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nearai\",\n \"display\": \"NEAR AI Cloud\",\n \"base_url\": \"https://cloud-api.near.ai/v1\",\n \"env_var\": \"NEARAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nebius\",\n \"display\": \"Nebius AI\",\n \"base_url\": \"https://api.studio.nebius.ai/v1\",\n \"env_var\": \"NEBIUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"neon\",\n \"display\": \"Neon\",\n \"base_url\": \"https:///v1\",\n \"env_var\": \"NEON_AI_GATEWAY_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"neuralwatt\",\n \"display\": \"Neuralwatt\",\n \"base_url\": \"https://api.neuralwatt.com/v1\",\n \"env_var\": \"NEURALWATT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nextbit\",\n \"display\": \"NextBit\",\n \"base_url\": \"https://api.nextbit.ai/v1\",\n \"env_var\": \"NEXTBIT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nlp_cloud\",\n \"display\": \"NLP Cloud\",\n \"base_url\": \"https://api.nlpcloud.io/v1\",\n \"env_var\": \"NLPCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nous_research\",\n \"display\": \"Nous Research\",\n \"base_url\": \"https://api.nousresearch.com/v1\",\n \"env_var\": \"NOUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"novita\",\n \"display\": \"Novita AI\",\n \"base_url\": \"https://api.novita.ai/v1\",\n \"env_var\": \"NOVITA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nscale\",\n \"display\": \"Nscale\",\n \"base_url\": \"https://inference.api.nscale.com/v1\",\n \"env_var\": \"NSCALE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nvidia_nim\",\n \"display\": \"NVIDIA NIM\",\n \"base_url\": \"https://integrate.api.nvidia.com/v1\",\n \"env_var\": \"NVIDIA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"oci\",\n \"display\": \"OCI\",\n \"base_url\": \"https://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1\",\n \"env_var\": \"OCI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ofox\",\n \"display\": \"OfoxAI\",\n \"base_url\": \"https://api.ofox.ai/v1\",\n \"env_var\": \"OFOX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ohmygpt\",\n \"display\": \"OhMyGPT\",\n \"base_url\": \"https://api.ohmygpt.com/v1\",\n \"env_var\": \"OHMYGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ollama_cloud\",\n \"display\": \"Ollama Cloud\",\n \"base_url\": \"https://api.ollama.com/v1\",\n \"env_var\": \"OLLAMA_CLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"openaimax\",\n \"display\": \"OpenAIMax\",\n \"base_url\": \"https://api.openaimax.com/v1\",\n \"env_var\": \"OPENAIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"openaisb\",\n \"display\": \"OpenAI-SB\",\n \"base_url\": \"https://api.openaisb.com/v1\",\n \"env_var\": \"OPENAISB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"opencode\",\n \"display\": \"OpenCode Zen\",\n \"base_url\": \"https://api.opencode.zen/v1\",\n \"env_var\": \"OPENCODE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"opencode_go\",\n \"display\": \"OpenCode Go\",\n \"base_url\": \"https://api.opencode.dev/v1\",\n \"env_var\": \"OPENCODE_GO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"opencode_zen\",\n \"display\": \"OpenCode Zen\",\n \"base_url\": \"https://api.opencode.zen/v1\",\n \"env_var\": \"OPENCODE_ZEN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"orcarouter\",\n \"display\": \"OrcaRouter\",\n \"base_url\": \"https://api.orcarouter.com/v1\",\n \"env_var\": \"ORCAROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ovhcloud\",\n \"display\": \"OVHcloud AI\",\n \"base_url\": \"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1\",\n \"env_var\": \"OVHCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"parasail\",\n \"display\": \"Parasail\",\n \"base_url\": \"https://api.parasail.io/v1\",\n \"env_var\": \"PARASAIL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"perfxcloud\",\n \"display\": \"PerfXCloud\",\n \"base_url\": \"https://api.perfxcloud.com/v1\",\n \"env_var\": \"PERFXCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"perplexity\",\n \"display\": \"Perplexity\",\n \"base_url\": \"https://api.perplexity.ai\",\n \"env_var\": \"PERPLEXITY_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"perplexity_agent\",\n \"display\": \"Perplexity Agent\",\n \"base_url\": \"https://api.perplexity.ai/v1\",\n \"env_var\": \"PERPLEXITY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"petals\",\n \"display\": \"Petals\",\n \"base_url\": \"https://api.petals.dev/v1\",\n \"env_var\": \"PETALS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"pinstripes\",\n \"display\": \"Pinstripes\",\n \"base_url\": \"https://api.pinstripes.io/v1\",\n \"env_var\": \"PINSTRIPES_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"pioneer\",\n \"display\": \"Pioneer\",\n \"base_url\": \"https://api.pioneer.ai/v1\",\n \"env_var\": \"PIONEER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"poe\",\n \"display\": \"Poe\",\n \"base_url\": \"https://api.poe.com/v1\",\n \"env_var\": \"POE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"poolside\",\n \"display\": \"Poolside\",\n \"base_url\": \"https://inference.poolside.ai/v1\",\n \"env_var\": \"POOLSIDE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"portkey\",\n \"display\": \"Portkey Gateway\",\n \"base_url\": \"https://api.portkey.ai/v1\",\n \"env_var\": \"PORTKEY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ppinfra\",\n \"display\": \"PPInfra(PPIO 派欧云)\",\n \"base_url\": \"https://api.ppio.com/openai\",\n \"env_var\": \"PPIO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"predibase\",\n \"display\": \"Predibase\",\n \"base_url\": \"https://serving.app.predibase.com/v1\",\n \"env_var\": \"PREDIBASE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"privatemode_ai\",\n \"display\": \"Privatemode AI\",\n \"base_url\": \"http://localhost:8080/v1\",\n \"env_var\": \"PRIVATEMODE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"publicai\",\n \"display\": \"Publicai\",\n \"base_url\": \"https://platform.publicai.co/v1\",\n \"env_var\": \"PUBLICAI_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"qihang_ai\",\n \"display\": \"QiHang(启航 AI)\",\n \"base_url\": \"https://api.qhaigc.net/v1\",\n \"env_var\": \"QIHANG_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"qihoo360\",\n \"display\": \"360 AI\",\n \"base_url\": \"https://api.360.cn/v1\",\n \"env_var\": \"AI360_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"qiniu_ai\",\n \"display\": \"Qiniu AI\",\n \"base_url\": \"https://api.qiniu.com/v1\",\n \"env_var\": \"QINIU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"regolo_ai\",\n \"display\": \"Regolo AI\",\n \"base_url\": \"https://api.regolo.ai/v1\",\n \"env_var\": \"REGOLO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"reka_ai\",\n \"display\": \"Reka AI\",\n \"base_url\": \"https://api.reka.ai/v1\",\n \"env_var\": \"REKA_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"requesty\",\n \"display\": \"Requesty\",\n \"base_url\": \"https://api.requesty.ai/v1\",\n \"env_var\": \"REQUESTY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"reve\",\n \"display\": \"Reve\",\n \"base_url\": \"https://api.reve.ai/v1\",\n \"env_var\": \"REVE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"routing_run\",\n \"display\": \"routing.run\",\n \"base_url\": \"https://api.routing.run/v1\",\n \"env_var\": \"ROUTING_RUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"sakana\",\n \"display\": \"Sakana AI\",\n \"base_url\": \"https://api.sakana.ai/v1\",\n \"env_var\": \"SAKANA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"sambanova\",\n \"display\": \"SambaNova\",\n \"base_url\": \"https://api.sambanova.ai/v1\",\n \"env_var\": \"SAMBANOVA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"sarvam\",\n \"display\": \"Sarvam AI\",\n \"base_url\": \"https://api.sarvam.ai/v1\",\n \"env_var\": \"SARVAM_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"scaleway\",\n \"display\": \"Scaleway AI\",\n \"base_url\": \"https://api.scaleway.ai/v1\",\n \"env_var\": \"SCALEWAY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"scx_ai\",\n \"display\": \"SCX AI\",\n \"base_url\": \"https://api.scx.ai/v1\",\n \"env_var\": \"SCX_AI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"siliconflow\",\n \"display\": \"SiliconFlow\",\n \"base_url\": \"https://api.siliconflow.cn/v1\",\n \"env_var\": \"SILICONFLOW_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"snowflake\",\n \"display\": \"Snowflake\",\n \"base_url\": \"https://.snowflakecomputing.com/api/v2/cortex/v1\",\n \"env_var\": \"SNOWFLAKE_PAT\",\n \"profile\": {}\n },\n {\n \"name\": \"snowflake_cortex\",\n \"display\": \"Snowflake Cortex\",\n \"base_url\": \"https://.snowflakecomputing.com/api/v2/cortex/v1\",\n \"env_var\": \"SNOWFLAKE_CORTEX_PAT\",\n \"profile\": {}\n },\n {\n \"name\": \"stackit\",\n \"display\": \"STACKIT\",\n \"base_url\": \"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\",\n \"env_var\": \"STACKIT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"stepfun\",\n \"display\": \"StepFun (阶跃星辰)\",\n \"base_url\": \"https://api.stepfun.com/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"stepfun_ai_step_plan\",\n \"display\": \"StepFun Step Plan (Global)\",\n \"base_url\": \"https://api.stepfun.ai/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"stepfun_step_plan\",\n \"display\": \"StepFun Step Plan (China)\",\n \"base_url\": \"https://api.stepfun.com/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"subconscious\",\n \"display\": \"Subconscious\",\n \"base_url\": \"https://api.subconscious.dev/v1\",\n \"env_var\": \"SUBCONSCIOUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"submodel\",\n \"display\": \"SubModel\",\n \"base_url\": \"https://api.submodel.com/v1\",\n \"env_var\": \"SUBMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"synthetic\",\n \"display\": \"Synthetic\",\n \"base_url\": \"https://api.synthetic.new/openai/v1\",\n \"env_var\": \"SYNTHETIC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent\",\n \"display\": \"Tencent (混元/Hunyuan)\",\n \"base_url\": \"https://api.hunyuan.cloud.tencent.com/v1\",\n \"env_var\": \"TENCENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_coding_plan\",\n \"display\": \"Tencent Coding Plan (China)\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/coding/v3\",\n \"env_var\": \"TENCENT_CODING_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan\",\n \"display\": \"Tencent Token Plan\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_enterprise_auto\",\n \"display\": \"腾讯云 Token Plan / Token Plan 企业版轻享套餐\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_enterprise_pro\",\n \"display\": \"腾讯云 Token Plan / Token Plan 企业版专业套餐\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_general_personal\",\n \"display\": \"腾讯云 Token Plan / 通用 Token Plan(个人版)\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_hy_personal\",\n \"display\": \"腾讯云 Token Plan / Hy Token Plan(个人版)\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_tokenhub\",\n \"display\": \"Tencent TokenHub\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/v1\",\n \"env_var\": \"TENCENT_TOKENHUB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tensormesh\",\n \"display\": \"Tensormesh\",\n \"base_url\": \"https://serverless.tensormesh.ai\",\n \"env_var\": \"YOUR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"the_grid_ai\",\n \"display\": \"The Grid AI\",\n \"base_url\": \"https://thegrid.ai/docs\",\n \"env_var\": \"THEGRIDAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"thinkingmachines\",\n \"display\": \"Thinking Machines\",\n \"base_url\": \"https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1\",\n \"env_var\": \"TINKER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tinfoil\",\n \"display\": \"Tinfoil\",\n \"base_url\": \"https://inference.tinfoil.sh/v1\",\n \"env_var\": \"TINFOIL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"togetherai\",\n \"display\": \"Together AI\",\n \"base_url\": \"https://api.together.xyz/v1\",\n \"env_var\": \"TOGETHER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tokenflux\",\n \"display\": \"Tokenflux\",\n \"base_url\": \"https://tokenflux.ai/v1\",\n \"env_var\": \"TOKENFLUX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tokenpony\",\n \"display\": \"TokenPony\",\n \"base_url\": \"https://api.tokenpony.com/v1\",\n \"env_var\": \"TOKENPONY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"trustedrouter\",\n \"display\": \"TrustedRouter\",\n \"base_url\": \"https://api.trustedrouter.com/v1\",\n \"env_var\": \"TRUSTEDROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tundra\",\n \"display\": \"Tundra\",\n \"base_url\": \"https://api.tundra.ai/v1\",\n \"env_var\": \"TUNDRA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"umans_ai\",\n \"display\": \"Umans AI\",\n \"base_url\": \"https://api.code.umans.ai/v1\",\n \"env_var\": \"UMANS_AI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"unorouter\",\n \"display\": \"UnoRouter\",\n \"base_url\": \"https://unorouter.com/en\",\n \"env_var\": \"UNOROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"upstage\",\n \"display\": \"Upstage\",\n \"base_url\": \"https://api.upstage.ai/v1\",\n \"env_var\": \"UPSTAGE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"v0\",\n \"display\": \"v0 (Vercel)\",\n \"base_url\": \"https://api.v0.dev/v1\",\n \"env_var\": \"V0_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"venice\",\n \"display\": \"Venice\",\n \"base_url\": \"https://api.venice.ai/api/v1\",\n \"env_var\": \"VENICE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"vercel\",\n \"display\": \"Vercel\",\n \"base_url\": \"https://api.v0.dev/v1\",\n \"env_var\": \"VERCEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"vivgrid\",\n \"display\": \"Vivgrid\",\n \"base_url\": \"https://api.vivgrid.com/v1\",\n \"env_var\": \"VIVGRID_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"volc_engine\",\n \"display\": \"VolcEngine\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"vultr\",\n \"display\": \"Vultr\",\n \"base_url\": \"https://api.vultrinference.com/v1\",\n \"env_var\": \"VULTR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"wafer\",\n \"display\": \"Wafer\",\n \"base_url\": \"https://api.wafer.ai/v1\",\n \"env_var\": \"WAFER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"wandb\",\n \"display\": \"Weights & Biases\",\n \"base_url\": \"https://api.inference.wandb.ai/v1\",\n \"env_var\": \"WANDB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomi_token_plan_ams\",\n \"display\": \"Xiaomi Token Plan (Europe)\",\n \"base_url\": \"https://token-plan-ams.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomi_token_plan_cn\",\n \"display\": \"Xiaomi Token Plan (China)\",\n \"base_url\": \"https://token-plan-cn.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomi_token_plan_sgp\",\n \"display\": \"Xiaomi Token Plan (Singapore)\",\n \"base_url\": \"https://token-plan-sgp.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomimimo\",\n \"display\": \"Xiaomi MiMo\",\n \"base_url\": \"https://mimo.xiaomi.com/v1\",\n \"env_var\": \"XIAOMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xpersona\",\n \"display\": \"Xpersona\",\n \"base_url\": \"/v1\",\n \"env_var\": \"XPERSONA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xunfei\",\n \"display\": \"Xunfei\",\n \"base_url\": \"https://spark-api-open.xf-yun.com/v1\",\n \"env_var\": \"XUNFEI_API_PASSWORD\",\n \"profile\": {}\n },\n {\n \"name\": \"zai\",\n \"display\": \"Zai\",\n \"base_url\": \"https://api.z.ai/api/paas/v4\",\n \"env_var\": \"ZAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zai_coding_plan\",\n \"display\": \"Z.AI Coding Plan\",\n \"base_url\": \"https://api.z.ai/api/anthropic\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zeldoc\",\n \"display\": \"Zeldoc\",\n \"base_url\": \"https://api.zeldoc.ai/v1\",\n \"env_var\": \"ZELDOC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zenmux\",\n \"display\": \"ZenMux\",\n \"base_url\": \"https://zenmux.ai/api/v1\",\n \"env_var\": \"ZENMUX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zhipu_v4\",\n \"display\": \"ZhipuV4\",\n \"base_url\": \"https://open.bigmodel.cn/api/paas/v4\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zhipuai_coding_plan\",\n \"display\": \"Zhipu AI Coding Plan\",\n \"base_url\": \"https://docs.bigmodel.cn/cn/coding-plan/quick-start\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"profile\": {}\n }\n]\n"}, "039a2a34372a6add580ee6121c703249d770d604": {"t": 1785846986.3075438, "n": 42429, "h": "c40417fe8593d309", "c": "[\n {\n \"name\": \"abacus\",\n \"display\": \"Abacus\",\n \"base_url\": \"https://routellm.abacus.ai/v1\",\n \"env_var\": \"ABACUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"abliteration_ai\",\n \"display\": \"Abliteration AI\",\n \"base_url\": \"https://api.abliteration.ai/v1\",\n \"env_var\": \"ABLIT_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ai21\",\n \"display\": \"AI21 Labs\",\n \"base_url\": \"https://api.ai21.ai/v1\",\n \"env_var\": \"AI21_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ai302\",\n \"display\": \"302.AI\",\n \"base_url\": \"https://api.302.ai/v1\",\n \"env_var\": \"AI302_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ai_router\",\n \"display\": \"AI-ROUTER\",\n \"base_url\": \"https://api.ai-router.dev/v1\",\n \"env_var\": \"AI_ROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aiand\",\n \"display\": \"AIand\",\n \"base_url\": \"https://api.aiand.com/v1\",\n \"env_var\": \"AIAND_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aibadgr\",\n \"display\": \"AI Badgr\",\n \"base_url\": \"https://api.aibadgr.com/v1\",\n \"env_var\": \"AIBADGR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aigc2d\",\n \"display\": \"AIGC2D\",\n \"base_url\": \"https://api.aigc2d.com/v1\",\n \"env_var\": \"AIGC2D_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aihubmix\",\n \"display\": \"AIHubMix\",\n \"base_url\": \"https://aihubmix.com/v1\",\n \"env_var\": \"AIHUBMIX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ails\",\n \"display\": \"AILS\",\n \"base_url\": \"https://api.caipacity.com/v1\",\n \"env_var\": \"AILS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aiml\",\n \"display\": \"AI/ML API\",\n \"base_url\": \"https://api.aimlapi.com/v1\",\n \"env_var\": \"AIML_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"aki_io\",\n \"display\": \"AKI.IO\",\n \"base_url\": \"https://aki.io/openai/v1\",\n \"env_var\": \"AKI_IO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"albert\",\n \"display\": \"Albert\",\n \"base_url\": \"https://api.albert.ai/v1\",\n \"env_var\": \"ALBERT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba\",\n \"display\": \"Alibaba Cloud (DashScope)\",\n \"base_url\": \"https://dashscope-intl.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_coding_plan\",\n \"display\": \"Alibaba Coding Plan\",\n \"base_url\": \"https://coding-intl.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_coding_plan_cn\",\n \"display\": \"Alibaba Coding Plan (China)\",\n \"base_url\": \"https://coding.dashscope.aliyuncs.com/v1\",\n \"env_var\": \"ALIBABA_CODING_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_token_plan\",\n \"display\": \"Alibaba Token Plan\",\n \"base_url\": \"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"alibaba_token_plan_cn\",\n \"display\": \"Alibaba Token Plan (China)\",\n \"base_url\": \"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\",\n \"env_var\": \"ALIBABA_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ambient\",\n \"display\": \"Ambient\",\n \"base_url\": \"https://api.ambient.xyz/v1\",\n \"env_var\": \"AMBIENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"anyapi\",\n \"display\": \"AnyAPI\",\n \"base_url\": \"https://api.anyapi.ai/v1\",\n \"env_var\": \"ANYAPI_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"anyscale\",\n \"display\": \"Anyscale\",\n \"base_url\": \"https://api.endpoints.anyscale.com/v1\",\n \"env_var\": \"ANYSCALE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"apertis\",\n \"display\": \"Apertis\",\n \"base_url\": \"https://api.stima.tech/v1\",\n \"env_var\": \"STIMA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"api2d\",\n \"display\": \"API2D\",\n \"base_url\": \"https://oa.api2d.net/v1\",\n \"env_var\": \"API2D_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"api2gpt\",\n \"display\": \"API2GPT\",\n \"base_url\": \"https://api.api2gpt.com/v1\",\n \"env_var\": \"API2GPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"apiserpent\",\n \"display\": \"API Serpent\",\n \"base_url\": \"https://api.apiserpent.com/v1\",\n \"env_var\": \"APISERPENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"atlascloud\",\n \"display\": \"AtlasCloud\",\n \"base_url\": \"https://api.atlascloud.com/v1\",\n \"env_var\": \"ATLASCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"atomic_chat\",\n \"display\": \"Atomic Chat\",\n \"base_url\": \"http://127.0.0.1:1337/v1\",\n \"env_var\": \"ATOMIC_CHAT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"auriko\",\n \"display\": \"Auriko\",\n \"base_url\": \"https://api.auriko.ai/v1\",\n \"env_var\": \"AURIKO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"azure_ai\",\n \"display\": \"Azure AI\",\n \"base_url\": \"https://models.inference.ai.azure.com\",\n \"env_var\": \"AZURE_AI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"baichuan\",\n \"display\": \"Baichuan AI\",\n \"base_url\": \"https://api.baichuan-ai.com/v1\",\n \"env_var\": \"BAICHUAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"baidu\",\n \"display\": \"Baidu (文心/ERNIE)\",\n \"base_url\": \"https://qianfan.baidubce.com/v2\",\n \"env_var\": \"BAIDU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"baidu_v2\",\n \"display\": \"BaiduV2\",\n \"base_url\": \"https://qianfan.baidubce.com/v2\",\n \"env_var\": \"QIANFAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bailing\",\n \"display\": \"Bailing\",\n \"base_url\": \"https://api.ant-ling.com/v1\",\n \"env_var\": \"BAILING_API_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"baseten\",\n \"display\": \"Baseten\",\n \"base_url\": \"https://inference.baseten.co/v1\",\n \"env_var\": \"BASETEN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"berget\",\n \"display\": \"Berget.AI\",\n \"base_url\": \"https://api.berget.ai/v1\",\n \"env_var\": \"BERGET_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bigmodel\",\n \"display\": \"BigModel (智谱)\",\n \"base_url\": \"https://open.bigmodel.cn/api/paas/v4\",\n \"env_var\": \"BIGMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"blueclaw\",\n \"display\": \"Blue Claw\",\n \"base_url\": \"https://openai.blueclaw.network/v1\",\n \"env_var\": \"BLUECLAW_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bytedance\",\n \"display\": \"ByteDance\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"byteplus\",\n \"display\": \"BytePlus (Volcano)\",\n \"base_url\": \"https://ark.bytepluses.com/api/v3\",\n \"env_var\": \"BYTEPLUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"bytez\",\n \"display\": \"Bytez\",\n \"base_url\": \"https://api.bytez.com/v2\",\n \"env_var\": \"BYTEZ_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"canopywave\",\n \"display\": \"Canopywave\",\n \"base_url\": \"https://api.canopywave.com/v1\",\n \"env_var\": \"CANOPYWAVE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cerebras\",\n \"display\": \"Cerebras\",\n \"base_url\": \"https://api.cerebras.ai/v1\",\n \"env_var\": \"CEREBRAS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"chatgpt\",\n \"display\": \"ChatGPT (订阅)\",\n \"base_url\": \"https://chatgpt.com/backend-api/codex\",\n \"env_var\": \"CHATGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cherryin\",\n \"display\": \"cherryin\",\n \"base_url\": \"https://open.cherryin.net\",\n \"env_var\": \"CHERRYIN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"chutes\",\n \"display\": \"Chutes\",\n \"base_url\": \"https://llm.chutes.ai/v1\",\n \"env_var\": \"CHUTES_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"clarifai\",\n \"display\": \"Clarifai\",\n \"base_url\": \"https://api.clarifai.com/v2/ext/openai/v1\",\n \"env_var\": \"CLARIFAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"claudinio\",\n \"display\": \"Claudinio\",\n \"base_url\": \"https://api.claudin.io\",\n \"env_var\": \"CLAUDINIO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cline_pass\",\n \"display\": \"Cline\",\n \"base_url\": \"https://api.cline.bot/v1\",\n \"env_var\": \"CLINE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"closeai\",\n \"display\": \"CloseAI\",\n \"base_url\": \"https://api.closeai-proxy.xyz/v1\",\n \"env_var\": \"CLOSEAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cloudferro_sherlock\",\n \"display\": \"CloudFerro Sherlock\",\n \"base_url\": \"https://api-sherlock.cloudferro.com/openai/v1\",\n \"env_var\": \"CLOUDFERRO_SHERLOCK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cloudflare\",\n \"display\": \"Cloudflare\",\n \"base_url\": \"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\",\n \"env_var\": \"CLOUDFLARE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cloudflare_workers_ai\",\n \"display\": \"Cloudflare Workers AI\",\n \"base_url\": \"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\",\n \"env_var\": \"CLOUDFLARE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"codestral\",\n \"display\": \"Codestral (Mistral)\",\n \"base_url\": \"https://api.mistral.ai/v1\",\n \"env_var\": \"CODESTRAL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cometapi\",\n \"display\": \"CometAPI\",\n \"base_url\": \"https://api.cometapi.com/v1\",\n \"env_var\": \"COMETAPI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"commandcode\",\n \"display\": \"CommandCode\",\n \"base_url\": \"https://api.commandcode.com/v1\",\n \"env_var\": \"COMMANDCODE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"compactifai\",\n \"display\": \"CompactifAI\",\n \"base_url\": \"https://api.compactif.ai/v1\",\n \"env_var\": \"COMPACTIFAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"copilot\",\n \"display\": \"GitHub Copilot\",\n \"base_url\": \"https://api.githubcopilot.com\",\n \"env_var\": \"COPILOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"cortecs\",\n \"display\": \"Cortecs\",\n \"base_url\": \"https://api.cortecs.ai/v1/\",\n \"env_var\": \"CORTECS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"coze\",\n \"display\": \"Coze (扣子)\",\n \"base_url\": \"https://api.coze.cn/v1\",\n \"env_var\": \"COZE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"crof\",\n \"display\": \"CrofAI\",\n \"base_url\": \"https://crof.ai/v1\",\n \"env_var\": \"CROF_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"crossmodel\",\n \"display\": \"CrossModel\",\n \"base_url\": \"https://api.crossmodel.ai/v1\",\n \"env_var\": \"CROSSMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"crusoe\",\n \"display\": \"Crusoe\",\n \"base_url\": \"https://api.inference.crusoecloud.com/v1\",\n \"env_var\": \"CRUSOE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"daoxe\",\n \"display\": \"DaoXE\",\n \"base_url\": \"https://daoxe.com/v1\",\n \"env_var\": \"DAOXE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"darkbloom\",\n \"display\": \"Darkbloom\",\n \"base_url\": \"https://api.darkbloom.dev/v1\",\n \"env_var\": \"DARKBLOOM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"databricks\",\n \"display\": \"Databricks\",\n \"base_url\": \"https://databricks.com/serving-endpoints\",\n \"env_var\": \"DATABRICKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"datarobot\",\n \"display\": \"DataRobot\",\n \"base_url\": \"https://app.datarobot.com/api/v2\",\n \"env_var\": \"DATAROBOT_API_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"deepbricks\",\n \"display\": \"DeepBricks\",\n \"base_url\": \"https://api.deepbricks.ai/v1\",\n \"env_var\": \"DEEPBRICKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"deepinfra\",\n \"display\": \"DeepInfra\",\n \"base_url\": \"https://api.deepinfra.com/v1/openai\",\n \"env_var\": \"DEEPINFRA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"deepseek\",\n \"display\": \"DeepSeek\",\n \"base_url\": \"https://api.deepseek.com/v1\",\n \"env_var\": \"DEEPSEEK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"digitalocean\",\n \"display\": \"DigitalOcean\",\n \"base_url\": \"https://inference.do-ai.run\",\n \"env_var\": \"DIGITALOCEAN_ACCESS_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"dinference\",\n \"display\": \"DInference\",\n \"base_url\": \"https://api.dinference.com/v1\",\n \"env_var\": \"DINFERENCE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"doubao\",\n \"display\": \"Doubao\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"doubleword\",\n \"display\": \"Doubleword\",\n \"base_url\": \"https://api.doubleword.ai/v1\",\n \"env_var\": \"DOUBLEWORD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"drun\",\n \"display\": \"D.Run (China)\",\n \"base_url\": \"https://chat.d.run/v1\",\n \"env_var\": \"DRUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ebcloud\",\n \"display\": \"EBCloud\",\n \"base_url\": \"https://maas-api.ebcloud.com/v1\",\n \"env_var\": \"EBCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"embercloud\",\n \"display\": \"Embercloud\",\n \"base_url\": \"https://api.embercloud.com/v1\",\n \"env_var\": \"EMBERCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"empiriolabs\",\n \"display\": \"EmpirioLabs AI\",\n \"base_url\": \"https://api.empiriolabs.ai/v1\",\n \"env_var\": \"EMPIRIOLABS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"evroc\",\n \"display\": \"evroc\",\n \"base_url\": \"https://models.think.evroc.com/v1\",\n \"env_var\": \"EVROC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fastcrw\",\n \"display\": \"FastCRW\",\n \"base_url\": \"https://fastcrw.com/api/v1\",\n \"env_var\": \"FASTCRW_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fastgpt\",\n \"display\": \"FastGPT\",\n \"base_url\": \"https://api.fastgpt.in/v1\",\n \"env_var\": \"FASTGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fastrouter\",\n \"display\": \"FastRouter\",\n \"base_url\": \"https://api.fastrouter.ai/v1\",\n \"env_var\": \"FASTROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"featherless_ai\",\n \"display\": \"Featherless AI\",\n \"base_url\": \"https://api.featherless.ai/v1\",\n \"env_var\": \"FEATHERLESS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"firepass\",\n \"display\": \"Fireworks (Firepass)\",\n \"base_url\": \"https://api.fireworks.ai/inference/v1\",\n \"env_var\": \"FIREWORKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"fireworks\",\n \"display\": \"Fireworks\",\n \"base_url\": \"https://api.fireworks.ai/inference/v1\",\n \"env_var\": \"FIREWORKS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"freemodel\",\n \"display\": \"FreeModel\",\n \"base_url\": \"https://api.freemodel.dev/v1\",\n \"env_var\": \"FREEMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"friendliai\",\n \"display\": \"FriendliAI\",\n \"base_url\": \"https://inference.friendli.ai/v1\",\n \"env_var\": \"FRIENDLIAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"frogbot\",\n \"display\": \"FrogBot\",\n \"base_url\": \"https://app.frogbot.ai/api/v1\",\n \"env_var\": \"FROGBOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"galadriel\",\n \"display\": \"Galadriel\",\n \"base_url\": \"https://api.galadriel.com/v1\",\n \"env_var\": \"GALADRIEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gdc\",\n \"display\": \"GDC\",\n \"base_url\": \"https://api.gdc.ai/v1\",\n \"env_var\": \"GDC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gigachat\",\n \"display\": \"GigaChat (Sberbank)\",\n \"base_url\": \"https://gigachat.devices.sberbank.ru/api/v1\",\n \"env_var\": \"GIGACHAT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"github\",\n \"display\": \"GitHub Models\",\n \"base_url\": \"https://models.inference.ai.azure.com\",\n \"env_var\": \"GITHUB_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"gmi\",\n \"display\": \"GMI\",\n \"base_url\": \"https://api.gmi-serving.com/v1\",\n \"env_var\": \"GMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gmicloud\",\n \"display\": \"GMI Cloud\",\n \"base_url\": \"https://api.gmi-serving.com/v1\",\n \"env_var\": \"GMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gonka24\",\n \"display\": \"Gonka24\",\n \"base_url\": \"https://api.gonka24.com/v1\",\n \"env_var\": \"GONKA24_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"gradient_ai\",\n \"display\": \"Gradient AI\",\n \"base_url\": \"https://inference.do-ai.run/v1\",\n \"env_var\": \"GRADIENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"groq\",\n \"display\": \"Groq\",\n \"base_url\": \"https://api.groq.com/openai/v1\",\n \"env_var\": \"GROQ_API_KEY\",\n \"profile\": {\n \"supports_top_k\": false,\n \"stream_usage_key\": \"x_groq\",\n \"max_tokens_key\": \"max_completion_tokens\"\n }\n },\n {\n \"name\": \"helicone\",\n \"display\": \"Helicone\",\n \"base_url\": \"https://api.helicone.ai/v1\",\n \"env_var\": \"HELICONE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"heroku\",\n \"display\": \"Heroku AI\",\n \"base_url\": \"https://api.heroku.com/inference/v1\",\n \"env_var\": \"HEROKU_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_completion_tokens\"\n }\n },\n {\n \"name\": \"hetzner\",\n \"display\": \"Hetzner\",\n \"base_url\": \"https://inference.hetzner.com/api/v1\",\n \"env_var\": \"HETZNER_VLLM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"hosted_vllm\",\n \"display\": \"Hosted vLLM\",\n \"base_url\": \"https://hosted-vllm-api.com/v1\",\n \"env_var\": \"HOSTED_VLLM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"hpc_ai\",\n \"display\": \"HPC-AI\",\n \"base_url\": \"https://api.hpc-ai.com/inference/v1\",\n \"env_var\": \"INFERENCE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"hyperbolic\",\n \"display\": \"Hyperbolic\",\n \"base_url\": \"https://api.hyperbolic.xyz/v1\",\n \"env_var\": \"HYPERBOLIC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"iflowcn\",\n \"display\": \"iFlow\",\n \"base_url\": \"https://apis.iflow.cn/v1\",\n \"env_var\": \"IFLOW_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inception\",\n \"display\": \"Inception Labs\",\n \"base_url\": \"https://api.inceptionlabs.ai/v1\",\n \"env_var\": \"INCEPTION_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inceptron\",\n \"display\": \"Inceptron\",\n \"base_url\": \"https://api.inceptron.io/v1\",\n \"env_var\": \"INCEPTRON_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inference_net\",\n \"display\": \"Inference.net\",\n \"base_url\": \"https://api.inference.net/v1\",\n \"env_var\": \"INFERENCE_NET_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inferencehub\",\n \"display\": \"InferenceHub\",\n \"base_url\": \"https://app.inferencehub.tech/v1\",\n \"env_var\": \"INFERENCEHUB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"inferx\",\n \"display\": \"InferX\",\n \"base_url\": \"https://model.inferx.net/v1\",\n \"env_var\": \"INFERX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"infinity\",\n \"display\": \"Infinity AI\",\n \"base_url\": \"https://infinity.ai/api/v1\",\n \"env_var\": \"INFINITY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"io_net\",\n \"display\": \"IO.NET\",\n \"base_url\": \"https://api.intelligence.io.solutions/api/v1\",\n \"env_var\": \"IOINTELLIGENCE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"jiekou\",\n \"display\": \"Jiekou.AI\",\n \"base_url\": \"https://api.highwayapi.ai/openai\",\n \"env_var\": \"JIEKOU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kenari\",\n \"display\": \"Kenari\",\n \"base_url\": \"https://kenari.id/v1\",\n \"env_var\": \"KENARI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kilo\",\n \"display\": \"Kilo\",\n \"base_url\": \"https://api.kilo.ai/v1\",\n \"env_var\": \"KILO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kimi\",\n \"display\": \"Kimi\",\n \"base_url\": \"https://api.moonshot.ai/v1\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kimi_for_coding\",\n \"display\": \"Kimi For Coding\",\n \"base_url\": \"https://api.kimi.com/coding/v1\",\n \"env_var\": \"KIMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kiro\",\n \"display\": \"Kiro\",\n \"base_url\": \"https://api.kiro.dev/v1\",\n \"env_var\": \"KIRO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kluster_ai\",\n \"display\": \"Kluster AI\",\n \"base_url\": \"https://api.kluster.ai/v1\",\n \"env_var\": \"KLUSTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"krutrim\",\n \"display\": \"Krutrim\",\n \"base_url\": \"https://api.krutrim.ai/v1\",\n \"env_var\": \"KRUTRIM_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"kuae_cloud_coding_plan\",\n \"display\": \"KUAE Cloud Coding Plan\",\n \"base_url\": \"https://coding-plan-endpoint.kuaecloud.net/v1\",\n \"env_var\": \"KUAE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lambda_ai\",\n \"display\": \"Lambda AI\",\n \"base_url\": \"https://api.lambda.ai/v1\",\n \"env_var\": \"LAMBDA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lemonade\",\n \"display\": \"Lemonade\",\n \"base_url\": \"http://localhost:13305/v1\",\n \"env_var\": \"LEMONADE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lemonfox_ai\",\n \"display\": \"Lemonfox AI\",\n \"base_url\": \"https://api.lemonfox.ai/v1\",\n \"env_var\": \"LEMONFOX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"libertai\",\n \"display\": \"Libertai\",\n \"base_url\": \"https://api.libertai.io/v1\",\n \"env_var\": \"LIBERTAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lilac\",\n \"display\": \"Lilac\",\n \"base_url\": \"https://api.getlilac.com/v1\",\n \"env_var\": \"LILAC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lingyiwanwu\",\n \"display\": \"Lingyiwanwu (零一万物)\",\n \"base_url\": \"https://api.lingyiwanwu.com/v1\",\n \"env_var\": \"LINGYIWANWU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llama\",\n \"display\": \"Llama\",\n \"base_url\": \"https://api.llama.com/compat/v1/\",\n \"env_var\": \"LLAMA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llamagate\",\n \"display\": \"Llamagate\",\n \"base_url\": \"https://api.llamagate.dev/v1\",\n \"env_var\": \"LLAMAGATE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llmgateway\",\n \"display\": \"LLM Gateway\",\n \"base_url\": \"https://api.llmgateway.io/v1\",\n \"env_var\": \"LLM_GATEWAY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"llmtr\",\n \"display\": \"LLMTR\",\n \"base_url\": \"https://llmtr.com/v1\",\n \"env_var\": \"LLMTR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"longcat\",\n \"display\": \"LongCat\",\n \"base_url\": \"https://api.longcat.chat/v1\",\n \"env_var\": \"LONGCAT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lucidquery\",\n \"display\": \"LucidQuery\",\n \"base_url\": \"https://api.lucidquery.com/v1\",\n \"env_var\": \"LUCIDQUERY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"lynkr\",\n \"display\": \"Lynkr\",\n \"base_url\": \"http://localhost:8081/v1\",\n \"env_var\": \"LYNKR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"matterai\",\n \"display\": \"Matter AI\",\n \"base_url\": \"https://api.matterai.com/v1\",\n \"env_var\": \"MATTERAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"meganova\",\n \"display\": \"Meganova\",\n \"base_url\": \"https://api.meganova.ai/v1\",\n \"env_var\": \"MEGANOVA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"merge_gateway\",\n \"display\": \"Merge Gateway\",\n \"base_url\": \"https://api-gateway.merge.dev/v1/openai\",\n \"env_var\": \"MERGE_GATEWAY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"meta\",\n \"display\": \"Meta\",\n \"base_url\": \"https://api.meta.ai/v1\",\n \"env_var\": \"MODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"meta_llama\",\n \"display\": \"Meta Llama API\",\n \"base_url\": \"https://api.llama.com/compat/v1\",\n \"env_var\": \"LLAMA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"mimo\",\n \"display\": \"Mimo\",\n \"base_url\": \"https://api.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax\",\n \"display\": \"MiniMax\",\n \"base_url\": \"https://api.minimax.io/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax_cn\",\n \"display\": \"MiniMax (minimaxi.com)\",\n \"base_url\": \"https://api.minimaxi.com/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax_cn_coding_plan\",\n \"display\": \"MiniMax Token Plan (minimaxi.com)\",\n \"base_url\": \"https://api.minimaxi.com/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"minimax_coding_plan\",\n \"display\": \"MiniMax Token Plan (minimax.io)\",\n \"base_url\": \"https://api.minimax.io/anthropic/v1\",\n \"env_var\": \"MINIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"mira\",\n \"display\": \"Mira\",\n \"base_url\": \"https://api.mira.so/v1\",\n \"env_var\": \"MIRA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"mixlayer\",\n \"display\": \"Mixlayer\",\n \"base_url\": \"https://models.mixlayer.ai/v1\",\n \"env_var\": \"MIXLAYER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"moark\",\n \"display\": \"Moark\",\n \"base_url\": \"https://api.moark.com/v1\",\n \"env_var\": \"MOARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"modal\",\n \"display\": \"Modal\",\n \"base_url\": \"https://modal.com/v1\",\n \"env_var\": \"MODAL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"model_oracle_ai\",\n \"display\": \"Model Oracle AI\",\n \"base_url\": \"https://api.modeloracle.com/api/v1\",\n \"env_var\": \"MODEL_ORACLE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"modelscope\",\n \"display\": \"ModelScope\",\n \"base_url\": \"https://api-inference.modelscope.cn/v1\",\n \"env_var\": \"MODELSCOPE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"moonshotai\",\n \"display\": \"Moonshot AI\",\n \"base_url\": \"https://api.moonshot.cn/v1\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"moonshotai_cn\",\n \"display\": \"Moonshot AI (China)\",\n \"base_url\": \"https://api.moonshot.cn/anthropic/v1(Anthropic\",\n \"env_var\": \"MOONSHOT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"morph\",\n \"display\": \"Morph LLM\",\n \"base_url\": \"https://api.morphllm.com/v1\",\n \"env_var\": \"MORPH_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nanogpt\",\n \"display\": \"NanoGPT\",\n \"base_url\": \"https://api.nanogpt.com/v1\",\n \"env_var\": \"NANOGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ncompass\",\n \"display\": \"Ncompass\",\n \"base_url\": \"https://api.ncompass.tech/v1\",\n \"env_var\": \"NCOMPASS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nearai\",\n \"display\": \"NEAR AI Cloud\",\n \"base_url\": \"https://cloud-api.near.ai/v1\",\n \"env_var\": \"NEARAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nebius\",\n \"display\": \"Nebius AI\",\n \"base_url\": \"https://api.studio.nebius.ai/v1\",\n \"env_var\": \"NEBIUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"neon\",\n \"display\": \"Neon\",\n \"base_url\": \"https:///v1\",\n \"env_var\": \"NEON_AI_GATEWAY_TOKEN\",\n \"profile\": {}\n },\n {\n \"name\": \"neuralwatt\",\n \"display\": \"Neuralwatt\",\n \"base_url\": \"https://api.neuralwatt.com/v1\",\n \"env_var\": \"NEURALWATT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nextbit\",\n \"display\": \"NextBit\",\n \"base_url\": \"https://api.nextbit.ai/v1\",\n \"env_var\": \"NEXTBIT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nlp_cloud\",\n \"display\": \"NLP Cloud\",\n \"base_url\": \"https://api.nlpcloud.io/v1\",\n \"env_var\": \"NLPCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nous_research\",\n \"display\": \"Nous Research\",\n \"base_url\": \"https://api.nousresearch.com/v1\",\n \"env_var\": \"NOUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"novita\",\n \"display\": \"Novita AI\",\n \"base_url\": \"https://api.novita.ai/v1\",\n \"env_var\": \"NOVITA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nscale\",\n \"display\": \"Nscale\",\n \"base_url\": \"https://inference.api.nscale.com/v1\",\n \"env_var\": \"NSCALE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"nvidia_nim\",\n \"display\": \"NVIDIA NIM\",\n \"base_url\": \"https://integrate.api.nvidia.com/v1\",\n \"env_var\": \"NVIDIA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"oci\",\n \"display\": \"OCI\",\n \"base_url\": \"https://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1\",\n \"env_var\": \"OCI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ofox\",\n \"display\": \"OfoxAI\",\n \"base_url\": \"https://api.ofox.ai/v1\",\n \"env_var\": \"OFOX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ohmygpt\",\n \"display\": \"OhMyGPT\",\n \"base_url\": \"https://api.ohmygpt.com/v1\",\n \"env_var\": \"OHMYGPT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ollama_cloud\",\n \"display\": \"Ollama Cloud\",\n \"base_url\": \"https://api.ollama.com/v1\",\n \"env_var\": \"OLLAMA_CLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"openaimax\",\n \"display\": \"OpenAIMax\",\n \"base_url\": \"https://api.openaimax.com/v1\",\n \"env_var\": \"OPENAIMAX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"openaisb\",\n \"display\": \"OpenAI-SB\",\n \"base_url\": \"https://api.openaisb.com/v1\",\n \"env_var\": \"OPENAISB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"opencode\",\n \"display\": \"OpenCode Zen\",\n \"base_url\": \"https://api.opencode.zen/v1\",\n \"env_var\": \"OPENCODE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"opencode_go\",\n \"display\": \"OpenCode Go\",\n \"base_url\": \"https://api.opencode.dev/v1\",\n \"env_var\": \"OPENCODE_GO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"opencode_zen\",\n \"display\": \"OpenCode Zen\",\n \"base_url\": \"https://api.opencode.zen/v1\",\n \"env_var\": \"OPENCODE_ZEN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"orcarouter\",\n \"display\": \"OrcaRouter\",\n \"base_url\": \"https://api.orcarouter.com/v1\",\n \"env_var\": \"ORCAROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ovhcloud\",\n \"display\": \"OVHcloud AI\",\n \"base_url\": \"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1\",\n \"env_var\": \"OVHCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"parasail\",\n \"display\": \"Parasail\",\n \"base_url\": \"https://api.parasail.io/v1\",\n \"env_var\": \"PARASAIL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"perfxcloud\",\n \"display\": \"PerfXCloud\",\n \"base_url\": \"https://api.perfxcloud.com/v1\",\n \"env_var\": \"PERFXCLOUD_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"perplexity\",\n \"display\": \"Perplexity\",\n \"base_url\": \"https://api.perplexity.ai\",\n \"env_var\": \"PERPLEXITY_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"perplexity_agent\",\n \"display\": \"Perplexity Agent\",\n \"base_url\": \"https://api.perplexity.ai/v1\",\n \"env_var\": \"PERPLEXITY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"petals\",\n \"display\": \"Petals\",\n \"base_url\": \"https://api.petals.dev/v1\",\n \"env_var\": \"PETALS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"pinstripes\",\n \"display\": \"Pinstripes\",\n \"base_url\": \"https://api.pinstripes.io/v1\",\n \"env_var\": \"PINSTRIPES_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"pioneer\",\n \"display\": \"Pioneer\",\n \"base_url\": \"https://api.pioneer.ai/v1\",\n \"env_var\": \"PIONEER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"poe\",\n \"display\": \"Poe\",\n \"base_url\": \"https://api.poe.com/v1\",\n \"env_var\": \"POE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"poolside\",\n \"display\": \"Poolside\",\n \"base_url\": \"https://inference.poolside.ai/v1\",\n \"env_var\": \"POOLSIDE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"portkey\",\n \"display\": \"Portkey Gateway\",\n \"base_url\": \"https://api.portkey.ai/v1\",\n \"env_var\": \"PORTKEY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"ppinfra\",\n \"display\": \"PPInfra(PPIO 派欧云)\",\n \"base_url\": \"https://api.ppio.com/openai\",\n \"env_var\": \"PPIO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"predibase\",\n \"display\": \"Predibase\",\n \"base_url\": \"https://serving.app.predibase.com/v1\",\n \"env_var\": \"PREDIBASE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"privatemode_ai\",\n \"display\": \"Privatemode AI\",\n \"base_url\": \"http://localhost:8080/v1\",\n \"env_var\": \"PRIVATEMODE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"publicai\",\n \"display\": \"Publicai\",\n \"base_url\": \"https://platform.publicai.co/v1\",\n \"env_var\": \"PUBLICAI_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"qihang_ai\",\n \"display\": \"QiHang(启航 AI)\",\n \"base_url\": \"https://api.qhaigc.net/v1\",\n \"env_var\": \"QIHANG_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"qihoo360\",\n \"display\": \"360 AI\",\n \"base_url\": \"https://api.360.cn/v1\",\n \"env_var\": \"AI360_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"qiniu_ai\",\n \"display\": \"Qiniu AI\",\n \"base_url\": \"https://api.qiniu.com/v1\",\n \"env_var\": \"QINIU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"regolo_ai\",\n \"display\": \"Regolo AI\",\n \"base_url\": \"https://api.regolo.ai/v1\",\n \"env_var\": \"REGOLO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"reka_ai\",\n \"display\": \"Reka AI\",\n \"base_url\": \"https://api.reka.ai/v1\",\n \"env_var\": \"REKA_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"requesty\",\n \"display\": \"Requesty\",\n \"base_url\": \"https://api.requesty.ai/v1\",\n \"env_var\": \"REQUESTY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"reve\",\n \"display\": \"Reve\",\n \"base_url\": \"https://api.reve.ai/v1\",\n \"env_var\": \"REVE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"routing_run\",\n \"display\": \"routing.run\",\n \"base_url\": \"https://api.routing.run/v1\",\n \"env_var\": \"ROUTING_RUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"sakana\",\n \"display\": \"Sakana AI\",\n \"base_url\": \"https://api.sakana.ai/v1\",\n \"env_var\": \"SAKANA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"sambanova\",\n \"display\": \"SambaNova\",\n \"base_url\": \"https://api.sambanova.ai/v1\",\n \"env_var\": \"SAMBANOVA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"sarvam\",\n \"display\": \"Sarvam AI\",\n \"base_url\": \"https://api.sarvam.ai/v1\",\n \"env_var\": \"SARVAM_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"scaleway\",\n \"display\": \"Scaleway AI\",\n \"base_url\": \"https://api.scaleway.ai/v1\",\n \"env_var\": \"SCALEWAY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"scx_ai\",\n \"display\": \"SCX AI\",\n \"base_url\": \"https://api.scx.ai/v1\",\n \"env_var\": \"SCX_AI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"siliconflow\",\n \"display\": \"SiliconFlow\",\n \"base_url\": \"https://api.siliconflow.cn/v1\",\n \"env_var\": \"SILICONFLOW_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"snowflake\",\n \"display\": \"Snowflake\",\n \"base_url\": \"https://.snowflakecomputing.com/api/v2/cortex/v1\",\n \"env_var\": \"SNOWFLAKE_PAT\",\n \"profile\": {}\n },\n {\n \"name\": \"snowflake_cortex\",\n \"display\": \"Snowflake Cortex\",\n \"base_url\": \"https://.snowflakecomputing.com/api/v2/cortex/v1\",\n \"env_var\": \"SNOWFLAKE_CORTEX_PAT\",\n \"profile\": {}\n },\n {\n \"name\": \"stackit\",\n \"display\": \"STACKIT\",\n \"base_url\": \"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\",\n \"env_var\": \"STACKIT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"stepfun\",\n \"display\": \"StepFun (阶跃星辰)\",\n \"base_url\": \"https://api.stepfun.com/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"profile\": {\n \"max_tokens_key\": \"max_tokens\"\n }\n },\n {\n \"name\": \"stepfun_ai_step_plan\",\n \"display\": \"StepFun Step Plan (Global)\",\n \"base_url\": \"https://api.stepfun.ai/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"stepfun_step_plan\",\n \"display\": \"StepFun Step Plan (China)\",\n \"base_url\": \"https://api.stepfun.com/step_plan/v1\",\n \"env_var\": \"STEPFUN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"subconscious\",\n \"display\": \"Subconscious\",\n \"base_url\": \"https://api.subconscious.dev/v1\",\n \"env_var\": \"SUBCONSCIOUS_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"submodel\",\n \"display\": \"SubModel\",\n \"base_url\": \"https://api.submodel.com/v1\",\n \"env_var\": \"SUBMODEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"synthetic\",\n \"display\": \"Synthetic\",\n \"base_url\": \"https://api.synthetic.new/openai/v1\",\n \"env_var\": \"SYNTHETIC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent\",\n \"display\": \"Tencent (混元/Hunyuan)\",\n \"base_url\": \"https://api.hunyuan.cloud.tencent.com/v1\",\n \"env_var\": \"TENCENT_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_coding_plan\",\n \"display\": \"Tencent Coding Plan (China)\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/coding/v3\",\n \"env_var\": \"TENCENT_CODING_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan\",\n \"display\": \"Tencent Token Plan\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_enterprise_auto\",\n \"display\": \"腾讯云 Token Plan / Token Plan 企业版轻享套餐\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_enterprise_pro\",\n \"display\": \"腾讯云 Token Plan / Token Plan 企业版专业套餐\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_general_personal\",\n \"display\": \"腾讯云 Token Plan / 通用 Token Plan(个人版)\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_token_plan_hy_personal\",\n \"display\": \"腾讯云 Token Plan / Hy Token Plan(个人版)\",\n \"base_url\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"env_var\": \"TENCENT_TOKEN_PLAN_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tencent_tokenhub\",\n \"display\": \"Tencent TokenHub\",\n \"base_url\": \"https://tokenhub.tencentmaas.com/v1\",\n \"env_var\": \"TENCENT_TOKENHUB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tensormesh\",\n \"display\": \"Tensormesh\",\n \"base_url\": \"https://serverless.tensormesh.ai\",\n \"env_var\": \"YOUR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"the_grid_ai\",\n \"display\": \"The Grid AI\",\n \"base_url\": \"https://thegrid.ai/docs\",\n \"env_var\": \"THEGRIDAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"thinkingmachines\",\n \"display\": \"Thinking Machines\",\n \"base_url\": \"https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1\",\n \"env_var\": \"TINKER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tinfoil\",\n \"display\": \"Tinfoil\",\n \"base_url\": \"https://inference.tinfoil.sh/v1\",\n \"env_var\": \"TINFOIL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"togetherai\",\n \"display\": \"Together AI\",\n \"base_url\": \"https://api.together.xyz/v1\",\n \"env_var\": \"TOGETHER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tokenflux\",\n \"display\": \"Tokenflux\",\n \"base_url\": \"https://tokenflux.ai/v1\",\n \"env_var\": \"TOKENFLUX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tokenpony\",\n \"display\": \"TokenPony\",\n \"base_url\": \"https://api.tokenpony.com/v1\",\n \"env_var\": \"TOKENPONY_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"trustedrouter\",\n \"display\": \"TrustedRouter\",\n \"base_url\": \"https://api.trustedrouter.com/v1\",\n \"env_var\": \"TRUSTEDROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"tundra\",\n \"display\": \"Tundra\",\n \"base_url\": \"https://api.tundra.ai/v1\",\n \"env_var\": \"TUNDRA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"umans_ai\",\n \"display\": \"Umans AI\",\n \"base_url\": \"https://api.code.umans.ai/v1\",\n \"env_var\": \"UMANS_AI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"unorouter\",\n \"display\": \"UnoRouter\",\n \"base_url\": \"https://unorouter.com/en\",\n \"env_var\": \"UNOROUTER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"upstage\",\n \"display\": \"Upstage\",\n \"base_url\": \"https://api.upstage.ai/v1\",\n \"env_var\": \"UPSTAGE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"v0\",\n \"display\": \"v0 (Vercel)\",\n \"base_url\": \"https://api.v0.dev/v1\",\n \"env_var\": \"V0_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"venice\",\n \"display\": \"Venice\",\n \"base_url\": \"https://api.venice.ai/api/v1\",\n \"env_var\": \"VENICE_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"vercel\",\n \"display\": \"Vercel\",\n \"base_url\": \"https://api.v0.dev/v1\",\n \"env_var\": \"VERCEL_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"vivgrid\",\n \"display\": \"Vivgrid\",\n \"base_url\": \"https://api.vivgrid.com/v1\",\n \"env_var\": \"VIVGRID_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"volc_engine\",\n \"display\": \"VolcEngine\",\n \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\",\n \"env_var\": \"ARK_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"vultr\",\n \"display\": \"Vultr\",\n \"base_url\": \"https://api.vultrinference.com/v1\",\n \"env_var\": \"VULTR_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"wafer\",\n \"display\": \"Wafer\",\n \"base_url\": \"https://api.wafer.ai/v1\",\n \"env_var\": \"WAFER_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"wandb\",\n \"display\": \"Weights & Biases\",\n \"base_url\": \"https://api.inference.wandb.ai/v1\",\n \"env_var\": \"WANDB_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomi_token_plan_ams\",\n \"display\": \"Xiaomi Token Plan (Europe)\",\n \"base_url\": \"https://token-plan-ams.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomi_token_plan_cn\",\n \"display\": \"Xiaomi Token Plan (China)\",\n \"base_url\": \"https://token-plan-cn.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomi_token_plan_sgp\",\n \"display\": \"Xiaomi Token Plan (Singapore)\",\n \"base_url\": \"https://token-plan-sgp.xiaomimimo.com/v1\",\n \"env_var\": \"MIMO_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xiaomimimo\",\n \"display\": \"Xiaomi MiMo\",\n \"base_url\": \"https://mimo.xiaomi.com/v1\",\n \"env_var\": \"XIAOMI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xpersona\",\n \"display\": \"Xpersona\",\n \"base_url\": \"/v1\",\n \"env_var\": \"XPERSONA_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"xunfei\",\n \"display\": \"Xunfei\",\n \"base_url\": \"https://spark-api-open.xf-yun.com/v1\",\n \"env_var\": \"XUNFEI_API_PASSWORD\",\n \"profile\": {}\n },\n {\n \"name\": \"zai\",\n \"display\": \"Zai\",\n \"base_url\": \"https://api.z.ai/api/paas/v4\",\n \"env_var\": \"ZAI_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zai_coding_plan\",\n \"display\": \"Z.AI Coding Plan\",\n \"base_url\": \"https://api.z.ai/api/anthropic\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zeldoc\",\n \"display\": \"Zeldoc\",\n \"base_url\": \"https://api.zeldoc.ai/v1\",\n \"env_var\": \"ZELDOC_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zenmux\",\n \"display\": \"ZenMux\",\n \"base_url\": \"https://zenmux.ai/api/v1\",\n \"env_var\": \"ZENMUX_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zhipu_v4\",\n \"display\": \"ZhipuV4\",\n \"base_url\": \"https://open.bigmodel.cn/api/paas/v4\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"profile\": {}\n },\n {\n \"name\": \"zhipuai_coding_plan\",\n \"display\": \"Zhipu AI Coding Plan\",\n \"base_url\": \"https://docs.bigmodel.cn/cn/coding-plan/quick-start\",\n \"env_var\": \"ZHIPU_API_KEY\",\n \"profile\": {}\n }\n]\n"}}, "docs/internal/model-config-research/_research-input.tsv": {"5b352e19b5717ed5ba775e097bed1f6fd81c2095": {"t": 1785809832.778899, "n": 24847, "h": "ad858d728801b3c0", "c": " abacus\tAbacus\thttps://routellm.abacus.ai/v1\tABACUS_API_KEY\tOpenAICompatProfile::full()\n abliteration_ai\tAbliteration AI\thttps://api.abliteration.ai/v1\tABLIT_KEY\tOpenAICompatProfile::full()\n ai_router\tAI-ROUTER\thttps://api.ai-router.dev/v1\tAI_ROUTER_API_KEY\tOpenAICompatProfile::full()\n ai21\tAI21 Labs\thttps://api.ai21.ai/v1\tAI21_API_KEY\tOpenAICompatProfile::full()\n ai302\t302.AI\thttps://api.302.ai/v1\tAI302_API_KEY\tOpenAICompatProfile::full()\n aiand\tAIand\thttps://api.aiand.com/v1\tAIAND_API_KEY\tOpenAICompatProfile::full()\n aibadgr\tAI Badgr\thttps://api.aibadgr.com/v1\tAIBADGR_API_KEY\tOpenAICompatProfile::full()\n aigc2d\tAIGC2D\thttps://api.aigc2d.com/v1\tAIGC2D_API_KEY\tOpenAICompatProfile::full()\n aihubmix\tAIHubMix\thttps://aihubmix.com/v1\tAIHUBMIX_API_KEY\tOpenAICompatProfile::full()\n ails\tAILS\thttps://api.caipacity.com/v1\tAILS_API_KEY\tOpenAICompatProfile::full()\n aiml\tAI/ML API\thttps://api.aimlapi.com/v1\tAIML_API_KEY\tOpenAICompatProfile::full()\n aki_io\tAKI.IO\thttps://aki.io/openai/v1\tAKI_IO_API_KEY\tOpenAICompatProfile::full()\n albert\tAlbert\thttps://api.albert.ai/v1\tALBERT_API_KEY\tOpenAICompatProfile::full()\n alibaba\tAlibaba Cloud (DashScope)\thttps://dashscope-intl.aliyuncs.com/compatible-mode/v1\tALIBABA_API_KEY\tOpenAICompatProfile::full()\n alibaba_coding_plan\tAlibaba Coding Plan\thttps://coding-intl.dashscope.aliyuncs.com/v1\tALIBABA_CODING_PLAN_API_KEY\tOpenAICompatProfile::full()\n alibaba_coding_plan_cn\tAlibaba Coding Plan (China)\thttps://coding.dashscope.aliyuncs.com/v1\tALIBABA_CODING_PLAN_API_KEY\tOpenAICompatProfile::full()\n alibaba_token_plan\tAlibaba Token Plan\thttps://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\tALIBABA_TOKEN_PLAN_API_KEY\tOpenAICompatProfile::full()\n alibaba_token_plan_cn\tAlibaba Token Plan (China)\thttps://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\tALIBABA_TOKEN_PLAN_API_KEY\tOpenAICompatProfile::full()\n ambient\tAmbient\thttps://api.ambient.xyz/v1\tAMBIENT_API_KEY\tOpenAICompatProfile::full()\n anyapi\tAnyAPI\thttps://api.anyapi.ai/v1\tANYAPI_KEY\tOpenAICompatProfile::full()\n anyscale\tAnyscale\thttps://api.endpoints.anyscale.com/v1\tANYSCALE_API_KEY\tOpenAICompatProfile::full()\n apertis\tApertis\thttps://api.stima.tech/v1\tSTIMA_API_KEY\tOpenAICompatProfile::full()\n api2d\tAPI2D\thttps://oa.api2d.net/v1\tAPI2D_API_KEY\tOpenAICompatProfile::full()\n api2gpt\tAPI2GPT\thttps://api.api2gpt.com/v1\tAPI2GPT_API_KEY\tOpenAICompatProfile::full()\n apiserpent\tAPI Serpent\thttps://api.apiserpent.com/v1\tAPISERPENT_API_KEY\tOpenAICompatProfile::full()\n atlascloud\tAtlasCloud\thttps://api.atlascloud.com/v1\tATLASCLOUD_API_KEY\tOpenAICompatProfile::full()\n atomic_chat\tAtomic Chat\thttp://127.0.0.1:1337/v1\tATOMIC_CHAT_API_KEY\tOpenAICompatProfile::full()\n auriko\tAuriko\thttps://api.auriko.ai/v1\tAURIKO_API_KEY\tOpenAICompatProfile::full()\n azure_ai\tAzure AI\thttps://models.inference.ai.azure.com\tAZURE_AI_API_KEY\tOpenAICompatProfile::full()\n baichuan\tBaichuan AI\thttps://api.baichuan-ai.com/v1\tBAICHUAN_API_KEY\tOpenAICompatProfile::full()\n baidu\tBaidu (鏂囧績/ERNIE)\thttps://qianfan.baidubce.com/v2\tBAIDU_API_KEY\tOpenAICompatProfile::full()\n baidu_v2\tBaiduV2\thttps://qianfan.baidubce.com/v2\tQIANFAN_API_KEY\tOpenAICompatProfile::full()\n bailing\tBailing\thttps://api.ant-ling.com/v1\tBAILING_API_TOKEN\tOpenAICompatProfile::full()\n baseten\tBaseten\thttps://inference.baseten.co/v1\tBASETEN_API_KEY\tOpenAICompatProfile::full()\n berget\tBerget.AI\thttps://api.berget.ai/v1\tBERGET_API_KEY\tOpenAICompatProfile::full()\n bigmodel\tBigModel (鏅鸿氨)\thttps://open.bigmodel.cn/api/paas/v4\tBIGMODEL_API_KEY\tOpenAICompatProfile::full()\n blueclaw\tBlue Claw\thttps://openai.blueclaw.network/v1\tBLUECLAW_API_KEY\tOpenAICompatProfile::full()\n bytedance\tByteDance\thttps://ark.cn-beijing.volces.com/api/v3\tARK_API_KEY\tOpenAICompatProfile::full()\n byteplus\tBytePlus (Volcano)\thttps://ark.bytepluses.com/api/v3\tBYTEPLUS_API_KEY\tOpenAICompatProfile::full()\n bytez\tBytez\thttps://api.bytez.com/v2\tBYTEZ_API_KEY\tOpenAICompatProfile::full()\n canopywave\tCanopywave\thttps://api.canopywave.com/v1\tCANOPYWAVE_API_KEY\tOpenAICompatProfile::full()\n cerebras\tCerebras\thttps://api.cerebras.ai/v1\tCEREBRAS_API_KEY\tOpenAICompatProfile::full()\n chatgpt\tChatGPT (璁㈤槄)\thttps://chatgpt.com/backend-api/codex\tCHATGPT_API_KEY\tOpenAICompatProfile::full()\n cherryin\tcherryin\thttps://open.cherryin.net\tCHERRYIN_API_KEY\tOpenAICompatProfile::full()\n chutes\tChutes\thttps://llm.chutes.ai/v1\tCHUTES_API_KEY\tOpenAICompatProfile::full()\n clarifai\tClarifai\thttps://api.clarifai.com/v2/ext/openai/v1\tCLARIFAI_API_KEY\tOpenAICompatProfile::full()\n claudinio\tClaudinio\thttps://api.claudin.io\tCLAUDINIO_API_KEY\tOpenAICompatProfile::full()\n cline_pass\tCline\thttps://api.cline.bot/v1\tCLINE_API_KEY\tOpenAICompatProfile::full()\n closeai\tCloseAI\thttps://api.closeai-proxy.xyz/v1\tCLOSEAI_API_KEY\tOpenAICompatProfile::full()\n cloudferro_sherlock\tCloudFerro Sherlock\thttps://api-sherlock.cloudferro.com/openai/v1\tCLOUDFERRO_SHERLOCK_API_KEY\tOpenAICompatProfile::full()\n cloudflare\tCloudflare\thttps://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\tCLOUDFLARE_API_KEY\tOpenAICompatProfile::full()\n cloudflare_workers_ai\tCloudflare Workers AI\thttps://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\tCLOUDFLARE_API_KEY\tOpenAICompatProfile::full()\n codestral\tCodestral (Mistral)\thttps://api.mistral.ai/v1\tCODESTRAL_API_KEY\tOpenAICompatProfile::full()\n cometapi\tCometAPI\thttps://api.cometapi.com/v1\tCOMETAPI_API_KEY\tOpenAICompatProfile::full()\n commandcode\tCommandCode\thttps://api.commandcode.com/v1\tCOMMANDCODE_API_KEY\tOpenAICompatProfile::full()\n compactifai\tCompactifAI\thttps://api.compactif.ai/v1\tCOMPACTIFAI_API_KEY\tOpenAICompatProfile::full()\n copilot\tGitHub Copilot\thttps://api.githubcopilot.com\tCOPILOT_API_KEY\tOpenAICompatProfile::full()\n cortecs\tCortecs\thttps://api.cortecs.ai/v1/\tCORTECS_API_KEY\tOpenAICompatProfile::full()\n coze\tCoze (鎵e瓙)\thttps://api.coze.cn/v1\tCOZE_API_KEY\tOpenAICompatProfile::full()\n crof\tCrofAI\thttps://crof.ai/v1\tCROF_API_KEY\tOpenAICompatProfile::full()\n crossmodel\tCrossModel\thttps://api.crossmodel.ai/v1\tCROSSMODEL_API_KEY\tOpenAICompatProfile::full()\n crusoe\tCrusoe\thttps://api.inference.crusoecloud.com/v1\tCRUSOE_API_KEY\tOpenAICompatProfile::full()\n daoxe\tDaoXE\thttps://daoxe.com/v1\tDAOXE_API_KEY\tOpenAICompatProfile::full()\n darkbloom\tDarkbloom\thttps://api.darkbloom.dev/v1\tDARKBLOOM_API_KEY\tOpenAICompatProfile::full()\n databricks\tDatabricks\thttps://databricks.com/serving-endpoints\tDATABRICKS_API_KEY\tOpenAICompatProfile::full()\n datarobot\tDataRobot\thttps://app.datarobot.com/api/v2\tDATAROBOT_API_TOKEN\tOpenAICompatProfile::full()\n deepbricks\tDeepBricks\thttps://api.deepbricks.ai/v1\tDEEPBRICKS_API_KEY\tOpenAICompatProfile::full()\n deepinfra\tDeepInfra\thttps://api.deepinfra.com/v1/openai\tDEEPINFRA_API_KEY\tOpenAICompatProfile::full()\n deepseek\tDeepSeek\thttps://api.deepseek.com/v1\tDEEPSEEK_API_KEY\tOpenAICompatProfile::deepseek()\n digitalocean\tDigitalOcean\thttps://inference.do-ai.run\tDIGITALOCEAN_ACCESS_TOKEN\tOpenAICompatProfile::full()\n dinference\tDInference\thttps://api.dinference.com/v1\tDINFERENCE_API_KEY\tOpenAICompatProfile::full()\n doubao\tDoubao\thttps://ark.cn-beijing.volces.com/api/v3\tARK_API_KEY\tOpenAICompatProfile::full()\n doubleword\tDoubleword\thttps://api.doubleword.ai/v1\tDOUBLEWORD_API_KEY\tOpenAICompatProfile::full()\n drun\tD.Run (China)\thttps://chat.d.run/v1\tDRUN_API_KEY\tOpenAICompatProfile::full()\n ebcloud\tEBCloud\thttps://maas-api.ebcloud.com/v1\tEBCLOUD_API_KEY\tOpenAICompatProfile::full()\n embercloud\tEmbercloud\thttps://api.embercloud.com/v1\tEMBERCLOUD_API_KEY\tOpenAICompatProfile::full()\n empiriolabs\tEmpirioLabs AI\thttps://api.empiriolabs.ai/v1\tEMPIRIOLABS_API_KEY\tOpenAICompatProfile::full()\n evroc\tevroc\thttps://models.think.evroc.com/v1\tEVROC_API_KEY\tOpenAICompatProfile::full()\n fastcrw\tFastCRW\thttps://fastcrw.com/api/v1\tFASTCRW_API_KEY\tOpenAICompatProfile::full()\n fastgpt\tFastGPT\thttps://api.fastgpt.in/v1\tFASTGPT_API_KEY\tOpenAICompatProfile::full()\n fastrouter\tFastRouter\thttps://api.fastrouter.ai/v1\tFASTROUTER_API_KEY\tOpenAICompatProfile::full()\n featherless_ai\tFeatherless AI\thttps://api.featherless.ai/v1\tFEATHERLESS_API_KEY\tOpenAICompatProfile::full()\n firepass\tFireworks (Firepass)\thttps://api.fireworks.ai/inference/v1锛圤penAI\tFIREWORKS_API_KEY\tOpenAICompatProfile::full()\n fireworks\tFireworks\thttps://api.fireworks.ai/inference/v1\tFIREWORKS_API_KEY\tOpenAICompatProfile::full()\n freemodel\tFreeModel\tclient.chat.completions.create\tFREEMODEL_API_KEY\tOpenAICompatProfile::full()\n friendliai\tFriendliAI\thttps://inference.friendli.ai/v1\tFRIENDLIAI_API_KEY\tOpenAICompatProfile::full()\n frogbot\tFrogBot\thttps://app.frogbot.ai/api/v1\tFROGBOT_API_KEY\tOpenAICompatProfile::full()\n galadriel\tGaladriel\thttps://api.galadriel.com/v1\tGALADRIEL_API_KEY\tOpenAICompatProfile::full()\n gdc\tGDC\thttps://api.gdc.ai/v1\tGDC_API_KEY\tOpenAICompatProfile::full()\n gigachat\tGigaChat (Sberbank)\thttps://gigachat.devices.sberbank.ru/api/v1\tGIGACHAT_API_KEY\tOpenAICompatProfile::full()\n github\tGitHub Models\thttps://models.inference.ai.azure.com\tGITHUB_TOKEN\tOpenAICompatProfile::full()\n gmi\tGMI\thttps://api.gmi-serving.com/v1锛堜笌\tGMI_API_KEY\tOpenAICompatProfile::full()\n gmicloud\tGMI Cloud\thttps://api.gmi-serving.com/v1\tGMI_API_KEY\tOpenAICompatProfile::full()\n gonka24\tGonka24\thttps://api.gonka24.com/v1\tGONKA24_API_KEY\tOpenAICompatProfile::full()\n gradient_ai\tGradient AI\thttps://inference.do-ai.run/v1\tGRADIENT_API_KEY\tOpenAICompatProfile::full()\n groq\tGroq\thttps://api.groq.com/openai/v1\tGROQ_API_KEY\tOpenAICompatProfile::groq()\n helicone\tHelicone\thttps://api.helicone.ai/v1\tHELICONE_API_KEY\tOpenAICompatProfile::full()\n heroku\tHeroku AI\thttps://api.heroku.com/inference/v1\tHEROKU_API_KEY\tOpenAICompatProfile::full()\n hetzner\tHetzner\thttps://inference.hetzner.com/api/v1\tHETZNER_VLLM_API_KEY\tOpenAICompatProfile::full()\n hosted_vllm\tHosted vLLM\thttps://hosted-vllm-api.com/v1\tHOSTED_VLLM_API_KEY\tOpenAICompatProfile::full()\n hpc_ai\tHPC-AI\thttps://api.hpc-ai.com/inference/v1\tINFERENCE_API_KEY\tOpenAICompatProfile::full()\n hyperbolic\tHyperbolic\thttps://api.hyperbolic.xyz/v1\tHYPERBOLIC_API_KEY\tOpenAICompatProfile::full()\n iflowcn\tiFlow\thttps://apis.iflow.cn/v1锛坈hat\tIFLOW_API_KEY\tOpenAICompatProfile::full()\n inception\tInception Labs\thttps://api.inceptionlabs.ai/v1\tINCEPTION_API_KEY\tOpenAICompatProfile::full()\n inceptron\tInceptron\thttps://api.inceptron.io/v1\tINCEPTRON_API_KEY\tOpenAICompatProfile::full()\n inference_net\tInference.net\thttps://api.inference.net/v1\tINFERENCE_NET_API_KEY\tOpenAICompatProfile::full()\n inferx\tInferX\thttps://model.inferx.net/v1\tINFERX_API_KEY\tOpenAICompatProfile::full()\n infinity\tInfinity AI\thttps://infinity.ai/api/v1\tINFINITY_API_KEY\tOpenAICompatProfile::full()\n io_net\tIO.NET\thttps://api.intelligence.io.solutions/api/v1\tIOINTELLIGENCE_API_KEY\tOpenAICompatProfile::full()\n jiekou\tJiekou.AI\thttps://api.highwayapi.ai/openai\tJIEKOU_API_KEY\tOpenAICompatProfile::full()\n kenari\tKenari\thttps://kenari.id/v1\tKENARI_API_KEY\tOpenAICompatProfile::full()\n kilo\tKilo\thttps://api.kilo.ai/v1\tKILO_API_KEY\tOpenAICompatProfile::full()\n kimi\tKimi\thttps://api.moonshot.ai/v1\tMOONSHOT_API_KEY\tOpenAICompatProfile::full()\n kimi_for_coding\tKimi For Coding\thttps://api.kimi.com/coding/v1\tKIMI_API_KEY\tOpenAICompatProfile::full()\n kiro\tKiro\thttps://api.kiro.dev/v1\tKIRO_API_KEY\tOpenAICompatProfile::full()\n kluster_ai\tKluster AI\thttps://api.kluster.ai/v1\tKLUSTER_API_KEY\tOpenAICompatProfile::full()\n krutrim\tKrutrim\thttps://api.krutrim.ai/v1\tKRUTRIM_API_KEY\tOpenAICompatProfile::full()\n kuae_cloud_coding_plan\tKUAE Cloud Coding Plan\thttps://coding-plan-endpoint.kuaecloud.net/v1\tKUAE_API_KEY\tOpenAICompatProfile::full()\n lambda_ai\tLambda AI\thttps://api.lambda.ai/v1\tLAMBDA_API_KEY\tOpenAICompatProfile::full()\n lemonade\tLemonade\thttp://localhost:13305/v1\tLEMONADE_API_KEY\tOpenAICompatProfile::full()\n lemonfox_ai\tLemonfox AI\thttps://api.lemonfox.ai/v1\tLEMONFOX_API_KEY\tOpenAICompatProfile::full()\n libertai\tLibertai\thttps://api.libertai.io/v1\tLIBERTAI_API_KEY\tOpenAICompatProfile::full()\n lilac\tLilac\thttps://api.getlilac.com/v1\tLILAC_API_KEY\tOpenAICompatProfile::full()\n lingyiwanwu\tLingyiwanwu (闆朵竴涓囩墿)\thttps://api.lingyiwanwu.com/v1\tLINGYIWANWU_API_KEY\tOpenAICompatProfile::full()\n llama\tLlama\thttps://api.llama.com/compat/v1/\tLLAMA_API_KEY\tOpenAICompatProfile::full()\n llamagate\tLlamagate\thttps://api.llamagate.dev/v1\tLLAMAGATE_API_KEY\tOpenAICompatProfile::full()\n llmgateway\tLLM Gateway\thttps://api.llmgateway.io/v1\tLLM_GATEWAY_API_KEY\tOpenAICompatProfile::full()\n llmtr\tLLMTR\thttps://llmtr.com/v1\tLLMTR_API_KEY\tOpenAICompatProfile::full()\n longcat\tLongCat\thttps://api.longcat.chat/v1\tLONGCAT_API_KEY\tOpenAICompatProfile::full()\n lucidquery\tLucidQuery\thttps://api.lucidquery.com/v1\tLUCIDQUERY_API_KEY\tOpenAICompatProfile::full()\n lynkr\tLynkr\thttp://localhost:8081/v1\tLYNKR_API_KEY\tOpenAICompatProfile::full()\n matterai\tMatter AI\thttps://api.matterai.com/v1\tMATTERAI_API_KEY\tOpenAICompatProfile::full()\n meganova\tMeganova\thttps://api.meganova.ai/v1\tMEGANOVA_API_KEY\tOpenAICompatProfile::full()\n merge_gateway\tMerge Gateway\thttps://api-gateway.merge.dev/v1/openai\tMERGE_GATEWAY_API_KEY\tOpenAICompatProfile::full()\n meta\tMeta\thttps://api.meta.ai/v1\tMODEL_API_KEY\tOpenAICompatProfile::full()\n meta_llama\tMeta Llama API\thttps://api.llama.com/compat/v1\tLLAMA_API_KEY\tOpenAICompatProfile::full()\n mimo\tMimo\thttps://api.xiaomimimo.com/v1\tMIMO_API_KEY\tOpenAICompatProfile::full()\n minimax\tMiniMax\thttps://api.minimax.io/v1\tMINIMAX_API_KEY\tOpenAICompatProfile::full()\n minimax_cn\tMiniMax (minimaxi.com)\thttps://api.minimaxi.com/v1\tMINIMAX_API_KEY\tOpenAICompatProfile::full()\n minimax_cn_coding_plan\tMiniMax Token Plan (minimaxi.com)\thttps://api.minimaxi.com/v1\tMINIMAX_API_KEY\tOpenAICompatProfile::full()\n minimax_coding_plan\tMiniMax Token Plan (minimax.io)\thttps://api.minimax.io/anthropic/v1\tMINIMAX_API_KEY\tOpenAICompatProfile::full()\n mira\tMira\thttps://api.mira.so/v1\tMIRA_API_KEY\tOpenAICompatProfile::full()\n mixlayer\tMixlayer\thttps://models.mixlayer.ai/v1\tMIXLAYER_API_KEY\tOpenAICompatProfile::full()\n moark\tMoark\thttps://api.moark.com/v1\tMOARK_API_KEY\tOpenAICompatProfile::full()\n modal\tModal\thttps://modal.com/v1\tMODAL_API_KEY\tOpenAICompatProfile::full()\n model_oracle_ai\tModel Oracle AI\thttps://api.modeloracle.com/api/v1\tMODEL_ORACLE_API_KEY\tOpenAICompatProfile::full()\n modelscope\tModelScope\thttps://api-inference.modelscope.cn/v1\tMODELSCOPE_API_KEY\tOpenAICompatProfile::full()\n moonshotai\tMoonshot AI\thttps://api.moonshot.cn/v1\tMOONSHOT_API_KEY\tOpenAICompatProfile::full()\n moonshotai_cn\tMoonshot AI (China)\thttps://api.moonshot.cn/anthropic/v1锛圓nthropic\tMOONSHOT_API_KEY\tOpenAICompatProfile::full()\n morph\tMorph LLM\thttps://api.morphllm.com/v1\tMORPH_API_KEY\tOpenAICompatProfile::full()\n nanogpt\tNanoGPT\thttps://api.nanogpt.com/v1\tNANOGPT_API_KEY\tOpenAICompatProfile::full()\n ncompass\tNcompass\thttps://api.ncompass.tech/v1\tNCOMPASS_API_KEY\tOpenAICompatProfile::full()\n nearai\tNEAR AI Cloud\thttps://cloud-api.near.ai/v1\tNEARAI_API_KEY\tOpenAICompatProfile::full()\n nebius\tNebius AI\thttps://api.studio.nebius.ai/v1\tNEBIUS_API_KEY\tOpenAICompatProfile::full()\n neon\tNeon\thttps:///v1\tNEON_AI_GATEWAY_TOKEN\tOpenAICompatProfile::full()\n neuralwatt\tNeuralwatt\thttps://api.neuralwatt.com/v1\tNEURALWATT_API_KEY\tOpenAICompatProfile::full()\n nextbit\tNextBit\thttps://api.nextbit.ai/v1\tNEXTBIT_API_KEY\tOpenAICompatProfile::full()\n nlp_cloud\tNLP Cloud\thttps://api.nlpcloud.io/v1\tNLPCLOUD_API_KEY\tOpenAICompatProfile::full()\n nous_research\tNous Research\thttps://api.nousresearch.com/v1\tNOUS_API_KEY\tOpenAICompatProfile::full()\n novita\tNovita AI\thttps://api.novita.ai/v1\tNOVITA_API_KEY\tOpenAICompatProfile::full()\n nscale\tNscale\thttps://inference.api.nscale.com/v1\tNSCALE_API_KEY\tOpenAICompatProfile::full()\n nvidia_nim\tNVIDIA NIM\thttps://integrate.api.nvidia.com/v1\tNVIDIA_API_KEY\tOpenAICompatProfile::full()\n oci\tOCI\thttps://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1\tOCI_API_KEY\tOpenAICompatProfile::full()\n ofox\tOfoxAI\thttps://api.ofox.ai/v1\tOFOX_API_KEY\tOpenAICompatProfile::full()\n ohmygpt\tOhMyGPT\thttps://api.ohmygpt.com/v1\tOHMYGPT_API_KEY\tOpenAICompatProfile::full()\n ollama_cloud\tOllama Cloud\thttps://api.ollama.com/v1\tOLLAMA_CLOUD_API_KEY\tOpenAICompatProfile::full()\n openaimax\tOpenAIMax\thttps://api.openaimax.com/v1\tOPENAIMAX_API_KEY\tOpenAICompatProfile::full()\n openaisb\tOpenAI-SB\thttps://api.openaisb.com/v1\tOPENAISB_API_KEY\tOpenAICompatProfile::full()\n opencode\tOpenCode Zen\topencode_zen.rs\tOPENCODE_API_KEY\tOpenAICompatProfile::full()\n opencode_go\tOpenCode Go\thttps://api.opencode.dev/v1\tOPENCODE_GO_API_KEY\tOpenAICompatProfile::full()\n opencode_zen\tOpenCode Zen\thttps://api.opencode.zen/v1\tOPENCODE_ZEN_API_KEY\tOpenAICompatProfile::full()\n orcarouter\tOrcaRouter\thttps://api.orcarouter.com/v1\tORCAROUTER_API_KEY\tOpenAICompatProfile::full()\n ovhcloud\tOVHcloud AI\thttps://oai.endpoints.kepler.ai.cloud.ovh.net/v1\tOVHCLOUD_API_KEY\tOpenAICompatProfile::full()\n parasail\tParasail\thttps://api.parasail.io/v1\tPARASAIL_API_KEY\tOpenAICompatProfile::full()\n perfxcloud\tPerfXCloud\thttps://api.perfxcloud.com/v1\tPERFXCLOUD_API_KEY\tOpenAICompatProfile::full()\n perplexity\tPerplexity\thttps://api.perplexity.ai\tPERPLEXITY_API_KEY\tOpenAICompatProfile::full()\n perplexity_agent\tPerplexity Agent\thttps://api.perplexity.ai/v1\tPERPLEXITY_API_KEY\tOpenAICompatProfile::full()\n petals\tPetals\thttps://api.petals.dev/v1\tPETALS_API_KEY\tOpenAICompatProfile::full()\n pinstripes\tPinstripes\thttps://api.pinstripes.io/v1\tPINSTRIPES_API_KEY\tOpenAICompatProfile::full()\n pioneer\tPioneer\thttps://api.pioneer.ai/v1\tPIONEER_API_KEY\tOpenAICompatProfile::full()\n poe\tPoe\thttps://api.poe.com/v1\tPOE_API_KEY\tOpenAICompatProfile::full()\n poolside\tPoolside\thttps://inference.poolside.ai/v1\tPOOLSIDE_API_KEY\tOpenAICompatProfile::full()\n portkey\tPortkey Gateway\thttps://api.portkey.ai/v1\tPORTKEY_API_KEY\tOpenAICompatProfile::full()\n ppinfra\tPPInfra锛圥PIO 娲炬浜戯級\thttps://api.ppio.com/openai\tPPIO_API_KEY\tOpenAICompatProfile::full()\n predibase\tPredibase\thttps://serving.app.predibase.com/v1\tPREDIBASE_API_KEY\tOpenAICompatProfile::full()\n privatemode_ai\tPrivatemode AI\thttp://localhost:8080/v1\tPRIVATEMODE_API_KEY\tOpenAICompatProfile::full()\n publicai\tPublicai\thttps://platform.publicai.co/v1\tPUBLICAI_API_KEY\tOpenAICompatProfile::full()\n qihang_ai\tQiHang锛堝惎鑸?AI锛?\thttps://api.qhaigc.net/v1\tQIHANG_API_KEY\tOpenAICompatProfile::full()\n qihoo360\t360 AI\thttps://api.360.cn/v1\tAI360_API_KEY\tOpenAICompatProfile::full()\n qiniu_ai\tQiniu AI\thttps://api.qiniu.com/v1\tQINIU_API_KEY\tOpenAICompatProfile::full()\n regolo_ai\tRegolo AI\thttps://api.regolo.ai/v1\tREGOLO_API_KEY\tOpenAICompatProfile::full()\n reka_ai\tReka AI\thttps://api.reka.ai/v1\tREKA_API_KEY\tOpenAICompatProfile::full()\n requesty\tRequesty\thttps://api.requesty.ai/v1\tREQUESTY_API_KEY\tOpenAICompatProfile::full()\n reve\tReve\thttps://api.reve.ai/v1\tREVE_API_KEY\tOpenAICompatProfile::full()\n routing_run\trouting.run\thttps://api.routing.run/v1\tROUTING_RUN_API_KEY\tOpenAICompatProfile::full()\n sakana\tSakana AI\thttps://api.sakana.ai/v1\tSAKANA_API_KEY\tOpenAICompatProfile::full()\n sambanova\tSambaNova\thttps://api.sambanova.ai/v1\tSAMBANOVA_API_KEY\tOpenAICompatProfile::full()\n sarvam\tSarvam AI\thttps://api.sarvam.ai/v1\tSARVAM_API_KEY\tOpenAICompatProfile::full()\n scaleway\tScaleway AI\thttps://api.scaleway.ai/v1\tSCALEWAY_API_KEY\tOpenAICompatProfile::full()\n scx_ai\tSCX AI\thttps://api.scx.ai/v1\tSCX_AI_API_KEY\tOpenAICompatProfile::full()\n siliconflow\tSiliconFlow\thttps://api.siliconflow.cn/v1\tSILICONFLOW_API_KEY\tOpenAICompatProfile::full()\n snowflake\tSnowflake\thttps://.snowflakecomputing.com/api/v2/cortex/v1\tSNOWFLAKE_PAT\tOpenAICompatProfile::full()\n snowflake_cortex\tSnowflake Cortex\thttps://.snowflakecomputing.com/api/v2/cortex/v1\tSNOWFLAKE_CORTEX_PAT\tOpenAICompatProfile::full()\n stackit\tSTACKIT\thttps://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\tSTACKIT_API_KEY\tOpenAICompatProfile::full()\n stepfun\tStepFun (闃惰穬鏄熻景)\thttps://api.stepfun.com/v1\tSTEPFUN_API_KEY\tOpenAICompatProfile::full()\n stepfun_ai_step_plan\tStepFun Step Plan (Global)\thttps://api.stepfun.ai/step_plan/v1\tSTEPFUN_API_KEY\tOpenAICompatProfile::full()\n stepfun_step_plan\tStepFun Step Plan (China)\thttps://api.stepfun.com/step_plan/v1\tSTEPFUN_API_KEY\tOpenAICompatProfile::full()\n subconscious\tSubconscious\thttps://api.subconscious.dev/v1\tSUBCONSCIOUS_API_KEY\tOpenAICompatProfile::full()\n submodel\tSubModel\thttps://api.submodel.com/v1\tSUBMODEL_API_KEY\tOpenAICompatProfile::full()\n synthetic\tSynthetic\thttps://api.synthetic.new/openai/v1\tSYNTHETIC_API_KEY\tOpenAICompatProfile::full()\n tencent\tTencent (娣峰厓/Hunyuan)\thttps://api.hunyuan.cloud.tencent.com/v1\tTENCENT_API_KEY\tOpenAICompatProfile::full()\n tencent_coding_plan\tTencent Coding Plan (China)\thttps://api.lkeap.cloud.tencent.com/coding/v3\tTENCENT_CODING_PLAN_API_KEY\tOpenAICompatProfile::full()\n tencent_token_plan\tTencent Token Plan\thttps://api.lkeap.cloud.tencent.com/plan/v3\tTENCENT_TOKEN_PLAN_API_KEY\tOpenAICompatProfile::full()\n tencent_token_plan_enterprise_auto\t鑵捐浜?Token Plan / Token Plan 浼佷笟鐗堣交浜椁?\thttps://tokenhub.tencentmaas.com/plan/v3\tTENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY\tOpenAICompatProfile::full()\n tencent_token_plan_enterprise_pro\t鑵捐浜?Token Plan / Token Plan 浼佷笟鐗堜笓涓氬椁?\thttps://tokenhub.tencentmaas.com/plan/v3\tTENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY\tOpenAICompatProfile::full()\n tencent_token_plan_general_personal\t鑵捐浜?Token Plan / 閫氱敤 Token Plan锛堜釜浜虹増锛?\thttps://api.lkeap.cloud.tencent.com/plan/v3\tTENCENT_TOKEN_PLAN_API_KEY\tOpenAICompatProfile::full()\n tencent_token_plan_hy_personal\t鑵捐浜?Token Plan / Hy Token Plan锛堜釜浜虹増锛?\thttps://api.lkeap.cloud.tencent.com/plan/v3\tTENCENT_TOKEN_PLAN_API_KEY\tOpenAICompatProfile::full()\n tencent_tokenhub\tTencent TokenHub\thttps://tokenhub.tencentmaas.com/v1\tTENCENT_TOKENHUB_API_KEY\tOpenAICompatProfile::full()\n tensormesh\tTensormesh\thttps://serverless.tensormesh.ai\tYOUR_API_KEY\tOpenAICompatProfile::full()\n the_grid_ai\tThe Grid AI\thttps://thegrid.ai/docs\tTHEGRIDAI_API_KEY\tOpenAICompatProfile::full()\n thinkingmachines\tThinking Machines\thttps://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1\tTINKER_API_KEY\tOpenAICompatProfile::full()\n tinfoil\tTinfoil\thttps://inference.tinfoil.sh/v1\tTINFOIL_API_KEY\tOpenAICompatProfile::full()\n togetherai\tTogether AI\thttps://api.together.xyz/v1\tTOGETHER_API_KEY\tOpenAICompatProfile::full()\n tokenflux\tTokenflux\thttps://tokenflux.ai/v1\tTOKENFLUX_API_KEY\tOpenAICompatProfile::full()\n tokenpony\tTokenPony\thttps://api.tokenpony.com/v1\tTOKENPONY_API_KEY\tOpenAICompatProfile::full()\n trustedrouter\tTrustedRouter\thttps://api.trustedrouter.com/v1\tTRUSTEDROUTER_API_KEY\tOpenAICompatProfile::full()\n tundra\tTundra\thttps://api.tundra.ai/v1\tTUNDRA_API_KEY\tOpenAICompatProfile::full()\n umans_ai\tUmans AI\thttps://api.code.umans.ai/v1\tUMANS_AI_API_KEY\tOpenAICompatProfile::full()\n unorouter\tUnoRouter\thttps://unorouter.com/en\tUNOROUTER_API_KEY\tOpenAICompatProfile::full()\n upstage\tUpstage\thttps://api.upstage.ai/v1\tUPSTAGE_API_KEY\tOpenAICompatProfile::full()\n v0\tv0 (Vercel)\thttps://api.v0.dev/v1\tV0_API_KEY\tOpenAICompatProfile::full()\n venice\tVenice\thttps://api.venice.ai/api/v1\tVENICE_API_KEY\tOpenAICompatProfile::full()\n vercel\tVercel\thttps://api.v0.dev/v1\tVERCEL_API_KEY\tOpenAICompatProfile::full()\n vivgrid\tVivgrid\thttps://api.vivgrid.com/v1\tVIVGRID_API_KEY\tOpenAICompatProfile::full()\n volc_engine\tVolcEngine\thttps://ark.cn-beijing.volces.com\tARK_API_KEY\tOpenAICompatProfile::full()\n vultr\tVultr\thttps://api.vultrinference.com/v1\tVULTR_API_KEY\tOpenAICompatProfile::full()\n wafer\tWafer\thttps://api.wafer.ai/v1\tWAFER_API_KEY\tOpenAICompatProfile::full()\n wandb\tWeights & Biases\thttps://api.inference.wandb.ai/v1\tWANDB_API_KEY\tOpenAICompatProfile::full()\n xiaomi_token_plan_ams\tXiaomi Token Plan (Europe)\thttps://token-plan-ams.xiaomimimo.com/v1\tMIMO_API_KEY\tOpenAICompatProfile::full()\n xiaomi_token_plan_cn\tXiaomi Token Plan (China)\thttps://token-plan-cn.xiaomimimo.com/v1\tMIMO_API_KEY\tOpenAICompatProfile::full()\n xiaomi_token_plan_sgp\tXiaomi Token Plan (Singapore)\thttps://token-plan-sgp.xiaomimimo.com/v1\tMIMO_API_KEY\tOpenAICompatProfile::full()\n xiaomimimo\tXiaomi MiMo\thttps://mimo.xiaomi.com/v1\tXIAOMI_API_KEY\tOpenAICompatProfile::full()\n xpersona\tXpersona\t/v1\tXPERSONA_API_KEY\tOpenAICompatProfile::full()\n xunfei\tXunfei\thttps://spark-api-open.xf-yun.com/v1\tXUNFEI_API_PASSWORD\tOpenAICompatProfile::full()\n zai\tZai\thttps://api.z.ai/api/paas/v4\tZAI_API_KEY\tOpenAICompatProfile::full()\n zai_coding_plan\tZ.AI Coding Plan\thttps://api.z.ai/api/anthropic\tZHIPU_API_KEY\tOpenAICompatProfile::full()\n zeldoc\tZeldoc\thttps://api.zeldoc.ai/v1\tZELDOC_API_KEY\tOpenAICompatProfile::full()\n zenmux\tZenMux\thttps://zenmux.ai/api/v1\tZENMUX_API_KEY\tOpenAICompatProfile::full()\n zhipu_v4\tZhipuV4\thttps://open.bigmodel.cn\tZHIPU_API_KEY\tOpenAICompatProfile::full()\n zhipuai_coding_plan\tZhipu AI Coding Plan\thttps://docs.bigmodel.cn/cn/coding-plan/quick-start\tZHIPU_API_KEY\tOpenAICompatProfile::full()\n"}, "1b3e3618ec8c3c7d617087474f15f50e0cba4e0d": {"t": 1785846958.9490733, "n": 24847, "h": "ad858d728801b3c0", "c": " abacus\tAbacus\thttps://routellm.abacus.ai/v1\tABACUS_API_KEY\tOpenAICompatProfile::full()\n abliteration_ai\tAbliteration AI\thttps://api.abliteration.ai/v1\tABLIT_KEY\tOpenAICompatProfile::full()\n ai_router\tAI-ROUTER\thttps://api.ai-router.dev/v1\tAI_ROUTER_API_KEY\tOpenAICompatProfile::full()\n ai21\tAI21 Labs\thttps://api.ai21.ai/v1\tAI21_API_KEY\tOpenAICompatProfile::full()\n ai302\t302.AI\thttps://api.302.ai/v1\tAI302_API_KEY\tOpenAICompatProfile::full()\n aiand\tAIand\thttps://api.aiand.com/v1\tAIAND_API_KEY\tOpenAICompatProfile::full()\n aibadgr\tAI Badgr\thttps://api.aibadgr.com/v1\tAIBADGR_API_KEY\tOpenAICompatProfile::full()\n aigc2d\tAIGC2D\thttps://api.aigc2d.com/v1\tAIGC2D_API_KEY\tOpenAICompatProfile::full()\n aihubmix\tAIHubMix\thttps://aihubmix.com/v1\tAIHUBMIX_API_KEY\tOpenAICompatProfile::full()\n ails\tAILS\thttps://api.caipacity.com/v1\tAILS_API_KEY\tOpenAICompatProfile::full()\n aiml\tAI/ML API\thttps://api.aimlapi.com/v1\tAIML_API_KEY\tOpenAICompatProfile::full()\n aki_io\tAKI.IO\thttps://aki.io/openai/v1\tAKI_IO_API_KEY\tOpenAICompatProfile::full()\n albert\tAlbert\thttps://api.albert.ai/v1\tALBERT_API_KEY\tOpenAICompatProfile::full()\n alibaba\tAlibaba Cloud (DashScope)\thttps://dashscope-intl.aliyuncs.com/compatible-mode/v1\tALIBABA_API_KEY\tOpenAICompatProfile::full()\n alibaba_coding_plan\tAlibaba Coding Plan\thttps://coding-intl.dashscope.aliyuncs.com/v1\tALIBABA_CODING_PLAN_API_KEY\tOpenAICompatProfile::full()\n alibaba_coding_plan_cn\tAlibaba Coding Plan (China)\thttps://coding.dashscope.aliyuncs.com/v1\tALIBABA_CODING_PLAN_API_KEY\tOpenAICompatProfile::full()\n alibaba_token_plan\tAlibaba Token Plan\thttps://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\tALIBABA_TOKEN_PLAN_API_KEY\tOpenAICompatProfile::full()\n alibaba_token_plan_cn\tAlibaba Token Plan (China)\thttps://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\tALIBABA_TOKEN_PLAN_API_KEY\tOpenAICompatProfile::full()\n ambient\tAmbient\thttps://api.ambient.xyz/v1\tAMBIENT_API_KEY\tOpenAICompatProfile::full()\n anyapi\tAnyAPI\thttps://api.anyapi.ai/v1\tANYAPI_KEY\tOpenAICompatProfile::full()\n anyscale\tAnyscale\thttps://api.endpoints.anyscale.com/v1\tANYSCALE_API_KEY\tOpenAICompatProfile::full()\n apertis\tApertis\thttps://api.stima.tech/v1\tSTIMA_API_KEY\tOpenAICompatProfile::full()\n api2d\tAPI2D\thttps://oa.api2d.net/v1\tAPI2D_API_KEY\tOpenAICompatProfile::full()\n api2gpt\tAPI2GPT\thttps://api.api2gpt.com/v1\tAPI2GPT_API_KEY\tOpenAICompatProfile::full()\n apiserpent\tAPI Serpent\thttps://api.apiserpent.com/v1\tAPISERPENT_API_KEY\tOpenAICompatProfile::full()\n atlascloud\tAtlasCloud\thttps://api.atlascloud.com/v1\tATLASCLOUD_API_KEY\tOpenAICompatProfile::full()\n atomic_chat\tAtomic Chat\thttp://127.0.0.1:1337/v1\tATOMIC_CHAT_API_KEY\tOpenAICompatProfile::full()\n auriko\tAuriko\thttps://api.auriko.ai/v1\tAURIKO_API_KEY\tOpenAICompatProfile::full()\n azure_ai\tAzure AI\thttps://models.inference.ai.azure.com\tAZURE_AI_API_KEY\tOpenAICompatProfile::full()\n baichuan\tBaichuan AI\thttps://api.baichuan-ai.com/v1\tBAICHUAN_API_KEY\tOpenAICompatProfile::full()\n baidu\tBaidu (鏂囧績/ERNIE)\thttps://qianfan.baidubce.com/v2\tBAIDU_API_KEY\tOpenAICompatProfile::full()\n baidu_v2\tBaiduV2\thttps://qianfan.baidubce.com/v2\tQIANFAN_API_KEY\tOpenAICompatProfile::full()\n bailing\tBailing\thttps://api.ant-ling.com/v1\tBAILING_API_TOKEN\tOpenAICompatProfile::full()\n baseten\tBaseten\thttps://inference.baseten.co/v1\tBASETEN_API_KEY\tOpenAICompatProfile::full()\n berget\tBerget.AI\thttps://api.berget.ai/v1\tBERGET_API_KEY\tOpenAICompatProfile::full()\n bigmodel\tBigModel (鏅鸿氨)\thttps://open.bigmodel.cn/api/paas/v4\tBIGMODEL_API_KEY\tOpenAICompatProfile::full()\n blueclaw\tBlue Claw\thttps://openai.blueclaw.network/v1\tBLUECLAW_API_KEY\tOpenAICompatProfile::full()\n bytedance\tByteDance\thttps://ark.cn-beijing.volces.com/api/v3\tARK_API_KEY\tOpenAICompatProfile::full()\n byteplus\tBytePlus (Volcano)\thttps://ark.bytepluses.com/api/v3\tBYTEPLUS_API_KEY\tOpenAICompatProfile::full()\n bytez\tBytez\thttps://api.bytez.com/v2\tBYTEZ_API_KEY\tOpenAICompatProfile::full()\n canopywave\tCanopywave\thttps://api.canopywave.com/v1\tCANOPYWAVE_API_KEY\tOpenAICompatProfile::full()\n cerebras\tCerebras\thttps://api.cerebras.ai/v1\tCEREBRAS_API_KEY\tOpenAICompatProfile::full()\n chatgpt\tChatGPT (璁㈤槄)\thttps://chatgpt.com/backend-api/codex\tCHATGPT_API_KEY\tOpenAICompatProfile::full()\n cherryin\tcherryin\thttps://open.cherryin.net\tCHERRYIN_API_KEY\tOpenAICompatProfile::full()\n chutes\tChutes\thttps://llm.chutes.ai/v1\tCHUTES_API_KEY\tOpenAICompatProfile::full()\n clarifai\tClarifai\thttps://api.clarifai.com/v2/ext/openai/v1\tCLARIFAI_API_KEY\tOpenAICompatProfile::full()\n claudinio\tClaudinio\thttps://api.claudin.io\tCLAUDINIO_API_KEY\tOpenAICompatProfile::full()\n cline_pass\tCline\thttps://api.cline.bot/v1\tCLINE_API_KEY\tOpenAICompatProfile::full()\n closeai\tCloseAI\thttps://api.closeai-proxy.xyz/v1\tCLOSEAI_API_KEY\tOpenAICompatProfile::full()\n cloudferro_sherlock\tCloudFerro Sherlock\thttps://api-sherlock.cloudferro.com/openai/v1\tCLOUDFERRO_SHERLOCK_API_KEY\tOpenAICompatProfile::full()\n cloudflare\tCloudflare\thttps://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\tCLOUDFLARE_API_KEY\tOpenAICompatProfile::full()\n cloudflare_workers_ai\tCloudflare Workers AI\thttps://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1\tCLOUDFLARE_API_KEY\tOpenAICompatProfile::full()\n codestral\tCodestral (Mistral)\thttps://api.mistral.ai/v1\tCODESTRAL_API_KEY\tOpenAICompatProfile::full()\n cometapi\tCometAPI\thttps://api.cometapi.com/v1\tCOMETAPI_API_KEY\tOpenAICompatProfile::full()\n commandcode\tCommandCode\thttps://api.commandcode.com/v1\tCOMMANDCODE_API_KEY\tOpenAICompatProfile::full()\n compactifai\tCompactifAI\thttps://api.compactif.ai/v1\tCOMPACTIFAI_API_KEY\tOpenAICompatProfile::full()\n copilot\tGitHub Copilot\thttps://api.githubcopilot.com\tCOPILOT_API_KEY\tOpenAICompatProfile::full()\n cortecs\tCortecs\thttps://api.cortecs.ai/v1/\tCORTECS_API_KEY\tOpenAICompatProfile::full()\n coze\tCoze (鎵e瓙)\thttps://api.coze.cn/v1\tCOZE_API_KEY\tOpenAICompatProfile::full()\n crof\tCrofAI\thttps://crof.ai/v1\tCROF_API_KEY\tOpenAICompatProfile::full()\n crossmodel\tCrossModel\thttps://api.crossmodel.ai/v1\tCROSSMODEL_API_KEY\tOpenAICompatProfile::full()\n crusoe\tCrusoe\thttps://api.inference.crusoecloud.com/v1\tCRUSOE_API_KEY\tOpenAICompatProfile::full()\n daoxe\tDaoXE\thttps://daoxe.com/v1\tDAOXE_API_KEY\tOpenAICompatProfile::full()\n darkbloom\tDarkbloom\thttps://api.darkbloom.dev/v1\tDARKBLOOM_API_KEY\tOpenAICompatProfile::full()\n databricks\tDatabricks\thttps://databricks.com/serving-endpoints\tDATABRICKS_API_KEY\tOpenAICompatProfile::full()\n datarobot\tDataRobot\thttps://app.datarobot.com/api/v2\tDATAROBOT_API_TOKEN\tOpenAICompatProfile::full()\n deepbricks\tDeepBricks\thttps://api.deepbricks.ai/v1\tDEEPBRICKS_API_KEY\tOpenAICompatProfile::full()\n deepinfra\tDeepInfra\thttps://api.deepinfra.com/v1/openai\tDEEPINFRA_API_KEY\tOpenAICompatProfile::full()\n deepseek\tDeepSeek\thttps://api.deepseek.com/v1\tDEEPSEEK_API_KEY\tOpenAICompatProfile::deepseek()\n digitalocean\tDigitalOcean\thttps://inference.do-ai.run\tDIGITALOCEAN_ACCESS_TOKEN\tOpenAICompatProfile::full()\n dinference\tDInference\thttps://api.dinference.com/v1\tDINFERENCE_API_KEY\tOpenAICompatProfile::full()\n doubao\tDoubao\thttps://ark.cn-beijing.volces.com/api/v3\tARK_API_KEY\tOpenAICompatProfile::full()\n doubleword\tDoubleword\thttps://api.doubleword.ai/v1\tDOUBLEWORD_API_KEY\tOpenAICompatProfile::full()\n drun\tD.Run (China)\thttps://chat.d.run/v1\tDRUN_API_KEY\tOpenAICompatProfile::full()\n ebcloud\tEBCloud\thttps://maas-api.ebcloud.com/v1\tEBCLOUD_API_KEY\tOpenAICompatProfile::full()\n embercloud\tEmbercloud\thttps://api.embercloud.com/v1\tEMBERCLOUD_API_KEY\tOpenAICompatProfile::full()\n empiriolabs\tEmpirioLabs AI\thttps://api.empiriolabs.ai/v1\tEMPIRIOLABS_API_KEY\tOpenAICompatProfile::full()\n evroc\tevroc\thttps://models.think.evroc.com/v1\tEVROC_API_KEY\tOpenAICompatProfile::full()\n fastcrw\tFastCRW\thttps://fastcrw.com/api/v1\tFASTCRW_API_KEY\tOpenAICompatProfile::full()\n fastgpt\tFastGPT\thttps://api.fastgpt.in/v1\tFASTGPT_API_KEY\tOpenAICompatProfile::full()\n fastrouter\tFastRouter\thttps://api.fastrouter.ai/v1\tFASTROUTER_API_KEY\tOpenAICompatProfile::full()\n featherless_ai\tFeatherless AI\thttps://api.featherless.ai/v1\tFEATHERLESS_API_KEY\tOpenAICompatProfile::full()\n firepass\tFireworks (Firepass)\thttps://api.fireworks.ai/inference/v1锛圤penAI\tFIREWORKS_API_KEY\tOpenAICompatProfile::full()\n fireworks\tFireworks\thttps://api.fireworks.ai/inference/v1\tFIREWORKS_API_KEY\tOpenAICompatProfile::full()\n freemodel\tFreeModel\tclient.chat.completions.create\tFREEMODEL_API_KEY\tOpenAICompatProfile::full()\n friendliai\tFriendliAI\thttps://inference.friendli.ai/v1\tFRIENDLIAI_API_KEY\tOpenAICompatProfile::full()\n frogbot\tFrogBot\thttps://app.frogbot.ai/api/v1\tFROGBOT_API_KEY\tOpenAICompatProfile::full()\n galadriel\tGaladriel\thttps://api.galadriel.com/v1\tGALADRIEL_API_KEY\tOpenAICompatProfile::full()\n gdc\tGDC\thttps://api.gdc.ai/v1\tGDC_API_KEY\tOpenAICompatProfile::full()\n gigachat\tGigaChat (Sberbank)\thttps://gigachat.devices.sberbank.ru/api/v1\tGIGACHAT_API_KEY\tOpenAICompatProfile::full()\n github\tGitHub Models\thttps://models.inference.ai.azure.com\tGITHUB_TOKEN\tOpenAICompatProfile::full()\n gmi\tGMI\thttps://api.gmi-serving.com/v1锛堜笌\tGMI_API_KEY\tOpenAICompatProfile::full()\n gmicloud\tGMI Cloud\thttps://api.gmi-serving.com/v1\tGMI_API_KEY\tOpenAICompatProfile::full()\n gonka24\tGonka24\thttps://api.gonka24.com/v1\tGONKA24_API_KEY\tOpenAICompatProfile::full()\n gradient_ai\tGradient AI\thttps://inference.do-ai.run/v1\tGRADIENT_API_KEY\tOpenAICompatProfile::full()\n groq\tGroq\thttps://api.groq.com/openai/v1\tGROQ_API_KEY\tOpenAICompatProfile::groq()\n helicone\tHelicone\thttps://api.helicone.ai/v1\tHELICONE_API_KEY\tOpenAICompatProfile::full()\n heroku\tHeroku AI\thttps://api.heroku.com/inference/v1\tHEROKU_API_KEY\tOpenAICompatProfile::full()\n hetzner\tHetzner\thttps://inference.hetzner.com/api/v1\tHETZNER_VLLM_API_KEY\tOpenAICompatProfile::full()\n hosted_vllm\tHosted vLLM\thttps://hosted-vllm-api.com/v1\tHOSTED_VLLM_API_KEY\tOpenAICompatProfile::full()\n hpc_ai\tHPC-AI\thttps://api.hpc-ai.com/inference/v1\tINFERENCE_API_KEY\tOpenAICompatProfile::full()\n hyperbolic\tHyperbolic\thttps://api.hyperbolic.xyz/v1\tHYPERBOLIC_API_KEY\tOpenAICompatProfile::full()\n iflowcn\tiFlow\thttps://apis.iflow.cn/v1锛坈hat\tIFLOW_API_KEY\tOpenAICompatProfile::full()\n inception\tInception Labs\thttps://api.inceptionlabs.ai/v1\tINCEPTION_API_KEY\tOpenAICompatProfile::full()\n inceptron\tInceptron\thttps://api.inceptron.io/v1\tINCEPTRON_API_KEY\tOpenAICompatProfile::full()\n inference_net\tInference.net\thttps://api.inference.net/v1\tINFERENCE_NET_API_KEY\tOpenAICompatProfile::full()\n inferx\tInferX\thttps://model.inferx.net/v1\tINFERX_API_KEY\tOpenAICompatProfile::full()\n infinity\tInfinity AI\thttps://infinity.ai/api/v1\tINFINITY_API_KEY\tOpenAICompatProfile::full()\n io_net\tIO.NET\thttps://api.intelligence.io.solutions/api/v1\tIOINTELLIGENCE_API_KEY\tOpenAICompatProfile::full()\n jiekou\tJiekou.AI\thttps://api.highwayapi.ai/openai\tJIEKOU_API_KEY\tOpenAICompatProfile::full()\n kenari\tKenari\thttps://kenari.id/v1\tKENARI_API_KEY\tOpenAICompatProfile::full()\n kilo\tKilo\thttps://api.kilo.ai/v1\tKILO_API_KEY\tOpenAICompatProfile::full()\n kimi\tKimi\thttps://api.moonshot.ai/v1\tMOONSHOT_API_KEY\tOpenAICompatProfile::full()\n kimi_for_coding\tKimi For Coding\thttps://api.kimi.com/coding/v1\tKIMI_API_KEY\tOpenAICompatProfile::full()\n kiro\tKiro\thttps://api.kiro.dev/v1\tKIRO_API_KEY\tOpenAICompatProfile::full()\n kluster_ai\tKluster AI\thttps://api.kluster.ai/v1\tKLUSTER_API_KEY\tOpenAICompatProfile::full()\n krutrim\tKrutrim\thttps://api.krutrim.ai/v1\tKRUTRIM_API_KEY\tOpenAICompatProfile::full()\n kuae_cloud_coding_plan\tKUAE Cloud Coding Plan\thttps://coding-plan-endpoint.kuaecloud.net/v1\tKUAE_API_KEY\tOpenAICompatProfile::full()\n lambda_ai\tLambda AI\thttps://api.lambda.ai/v1\tLAMBDA_API_KEY\tOpenAICompatProfile::full()\n lemonade\tLemonade\thttp://localhost:13305/v1\tLEMONADE_API_KEY\tOpenAICompatProfile::full()\n lemonfox_ai\tLemonfox AI\thttps://api.lemonfox.ai/v1\tLEMONFOX_API_KEY\tOpenAICompatProfile::full()\n libertai\tLibertai\thttps://api.libertai.io/v1\tLIBERTAI_API_KEY\tOpenAICompatProfile::full()\n lilac\tLilac\thttps://api.getlilac.com/v1\tLILAC_API_KEY\tOpenAICompatProfile::full()\n lingyiwanwu\tLingyiwanwu (闆朵竴涓囩墿)\thttps://api.lingyiwanwu.com/v1\tLINGYIWANWU_API_KEY\tOpenAICompatProfile::full()\n llama\tLlama\thttps://api.llama.com/compat/v1/\tLLAMA_API_KEY\tOpenAICompatProfile::full()\n llamagate\tLlamagate\thttps://api.llamagate.dev/v1\tLLAMAGATE_API_KEY\tOpenAICompatProfile::full()\n llmgateway\tLLM Gateway\thttps://api.llmgateway.io/v1\tLLM_GATEWAY_API_KEY\tOpenAICompatProfile::full()\n llmtr\tLLMTR\thttps://llmtr.com/v1\tLLMTR_API_KEY\tOpenAICompatProfile::full()\n longcat\tLongCat\thttps://api.longcat.chat/v1\tLONGCAT_API_KEY\tOpenAICompatProfile::full()\n lucidquery\tLucidQuery\thttps://api.lucidquery.com/v1\tLUCIDQUERY_API_KEY\tOpenAICompatProfile::full()\n lynkr\tLynkr\thttp://localhost:8081/v1\tLYNKR_API_KEY\tOpenAICompatProfile::full()\n matterai\tMatter AI\thttps://api.matterai.com/v1\tMATTERAI_API_KEY\tOpenAICompatProfile::full()\n meganova\tMeganova\thttps://api.meganova.ai/v1\tMEGANOVA_API_KEY\tOpenAICompatProfile::full()\n merge_gateway\tMerge Gateway\thttps://api-gateway.merge.dev/v1/openai\tMERGE_GATEWAY_API_KEY\tOpenAICompatProfile::full()\n meta\tMeta\thttps://api.meta.ai/v1\tMODEL_API_KEY\tOpenAICompatProfile::full()\n meta_llama\tMeta Llama API\thttps://api.llama.com/compat/v1\tLLAMA_API_KEY\tOpenAICompatProfile::full()\n mimo\tMimo\thttps://api.xiaomimimo.com/v1\tMIMO_API_KEY\tOpenAICompatProfile::full()\n minimax\tMiniMax\thttps://api.minimax.io/v1\tMINIMAX_API_KEY\tOpenAICompatProfile::full()\n minimax_cn\tMiniMax (minimaxi.com)\thttps://api.minimaxi.com/v1\tMINIMAX_API_KEY\tOpenAICompatProfile::full()\n minimax_cn_coding_plan\tMiniMax Token Plan (minimaxi.com)\thttps://api.minimaxi.com/v1\tMINIMAX_API_KEY\tOpenAICompatProfile::full()\n minimax_coding_plan\tMiniMax Token Plan (minimax.io)\thttps://api.minimax.io/anthropic/v1\tMINIMAX_API_KEY\tOpenAICompatProfile::full()\n mira\tMira\thttps://api.mira.so/v1\tMIRA_API_KEY\tOpenAICompatProfile::full()\n mixlayer\tMixlayer\thttps://models.mixlayer.ai/v1\tMIXLAYER_API_KEY\tOpenAICompatProfile::full()\n moark\tMoark\thttps://api.moark.com/v1\tMOARK_API_KEY\tOpenAICompatProfile::full()\n modal\tModal\thttps://modal.com/v1\tMODAL_API_KEY\tOpenAICompatProfile::full()\n model_oracle_ai\tModel Oracle AI\thttps://api.modeloracle.com/api/v1\tMODEL_ORACLE_API_KEY\tOpenAICompatProfile::full()\n modelscope\tModelScope\thttps://api-inference.modelscope.cn/v1\tMODELSCOPE_API_KEY\tOpenAICompatProfile::full()\n moonshotai\tMoonshot AI\thttps://api.moonshot.cn/v1\tMOONSHOT_API_KEY\tOpenAICompatProfile::full()\n moonshotai_cn\tMoonshot AI (China)\thttps://api.moonshot.cn/anthropic/v1锛圓nthropic\tMOONSHOT_API_KEY\tOpenAICompatProfile::full()\n morph\tMorph LLM\thttps://api.morphllm.com/v1\tMORPH_API_KEY\tOpenAICompatProfile::full()\n nanogpt\tNanoGPT\thttps://api.nanogpt.com/v1\tNANOGPT_API_KEY\tOpenAICompatProfile::full()\n ncompass\tNcompass\thttps://api.ncompass.tech/v1\tNCOMPASS_API_KEY\tOpenAICompatProfile::full()\n nearai\tNEAR AI Cloud\thttps://cloud-api.near.ai/v1\tNEARAI_API_KEY\tOpenAICompatProfile::full()\n nebius\tNebius AI\thttps://api.studio.nebius.ai/v1\tNEBIUS_API_KEY\tOpenAICompatProfile::full()\n neon\tNeon\thttps:///v1\tNEON_AI_GATEWAY_TOKEN\tOpenAICompatProfile::full()\n neuralwatt\tNeuralwatt\thttps://api.neuralwatt.com/v1\tNEURALWATT_API_KEY\tOpenAICompatProfile::full()\n nextbit\tNextBit\thttps://api.nextbit.ai/v1\tNEXTBIT_API_KEY\tOpenAICompatProfile::full()\n nlp_cloud\tNLP Cloud\thttps://api.nlpcloud.io/v1\tNLPCLOUD_API_KEY\tOpenAICompatProfile::full()\n nous_research\tNous Research\thttps://api.nousresearch.com/v1\tNOUS_API_KEY\tOpenAICompatProfile::full()\n novita\tNovita AI\thttps://api.novita.ai/v1\tNOVITA_API_KEY\tOpenAICompatProfile::full()\n nscale\tNscale\thttps://inference.api.nscale.com/v1\tNSCALE_API_KEY\tOpenAICompatProfile::full()\n nvidia_nim\tNVIDIA NIM\thttps://integrate.api.nvidia.com/v1\tNVIDIA_API_KEY\tOpenAICompatProfile::full()\n oci\tOCI\thttps://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1\tOCI_API_KEY\tOpenAICompatProfile::full()\n ofox\tOfoxAI\thttps://api.ofox.ai/v1\tOFOX_API_KEY\tOpenAICompatProfile::full()\n ohmygpt\tOhMyGPT\thttps://api.ohmygpt.com/v1\tOHMYGPT_API_KEY\tOpenAICompatProfile::full()\n ollama_cloud\tOllama Cloud\thttps://api.ollama.com/v1\tOLLAMA_CLOUD_API_KEY\tOpenAICompatProfile::full()\n openaimax\tOpenAIMax\thttps://api.openaimax.com/v1\tOPENAIMAX_API_KEY\tOpenAICompatProfile::full()\n openaisb\tOpenAI-SB\thttps://api.openaisb.com/v1\tOPENAISB_API_KEY\tOpenAICompatProfile::full()\n opencode\tOpenCode Zen\topencode_zen.rs\tOPENCODE_API_KEY\tOpenAICompatProfile::full()\n opencode_go\tOpenCode Go\thttps://api.opencode.dev/v1\tOPENCODE_GO_API_KEY\tOpenAICompatProfile::full()\n opencode_zen\tOpenCode Zen\thttps://api.opencode.zen/v1\tOPENCODE_ZEN_API_KEY\tOpenAICompatProfile::full()\n orcarouter\tOrcaRouter\thttps://api.orcarouter.com/v1\tORCAROUTER_API_KEY\tOpenAICompatProfile::full()\n ovhcloud\tOVHcloud AI\thttps://oai.endpoints.kepler.ai.cloud.ovh.net/v1\tOVHCLOUD_API_KEY\tOpenAICompatProfile::full()\n parasail\tParasail\thttps://api.parasail.io/v1\tPARASAIL_API_KEY\tOpenAICompatProfile::full()\n perfxcloud\tPerfXCloud\thttps://api.perfxcloud.com/v1\tPERFXCLOUD_API_KEY\tOpenAICompatProfile::full()\n perplexity\tPerplexity\thttps://api.perplexity.ai\tPERPLEXITY_API_KEY\tOpenAICompatProfile::full()\n perplexity_agent\tPerplexity Agent\thttps://api.perplexity.ai/v1\tPERPLEXITY_API_KEY\tOpenAICompatProfile::full()\n petals\tPetals\thttps://api.petals.dev/v1\tPETALS_API_KEY\tOpenAICompatProfile::full()\n pinstripes\tPinstripes\thttps://api.pinstripes.io/v1\tPINSTRIPES_API_KEY\tOpenAICompatProfile::full()\n pioneer\tPioneer\thttps://api.pioneer.ai/v1\tPIONEER_API_KEY\tOpenAICompatProfile::full()\n poe\tPoe\thttps://api.poe.com/v1\tPOE_API_KEY\tOpenAICompatProfile::full()\n poolside\tPoolside\thttps://inference.poolside.ai/v1\tPOOLSIDE_API_KEY\tOpenAICompatProfile::full()\n portkey\tPortkey Gateway\thttps://api.portkey.ai/v1\tPORTKEY_API_KEY\tOpenAICompatProfile::full()\n ppinfra\tPPInfra锛圥PIO 娲炬浜戯級\thttps://api.ppio.com/openai\tPPIO_API_KEY\tOpenAICompatProfile::full()\n predibase\tPredibase\thttps://serving.app.predibase.com/v1\tPREDIBASE_API_KEY\tOpenAICompatProfile::full()\n privatemode_ai\tPrivatemode AI\thttp://localhost:8080/v1\tPRIVATEMODE_API_KEY\tOpenAICompatProfile::full()\n publicai\tPublicai\thttps://platform.publicai.co/v1\tPUBLICAI_API_KEY\tOpenAICompatProfile::full()\n qihang_ai\tQiHang锛堝惎鑸?AI锛?\thttps://api.qhaigc.net/v1\tQIHANG_API_KEY\tOpenAICompatProfile::full()\n qihoo360\t360 AI\thttps://api.360.cn/v1\tAI360_API_KEY\tOpenAICompatProfile::full()\n qiniu_ai\tQiniu AI\thttps://api.qiniu.com/v1\tQINIU_API_KEY\tOpenAICompatProfile::full()\n regolo_ai\tRegolo AI\thttps://api.regolo.ai/v1\tREGOLO_API_KEY\tOpenAICompatProfile::full()\n reka_ai\tReka AI\thttps://api.reka.ai/v1\tREKA_API_KEY\tOpenAICompatProfile::full()\n requesty\tRequesty\thttps://api.requesty.ai/v1\tREQUESTY_API_KEY\tOpenAICompatProfile::full()\n reve\tReve\thttps://api.reve.ai/v1\tREVE_API_KEY\tOpenAICompatProfile::full()\n routing_run\trouting.run\thttps://api.routing.run/v1\tROUTING_RUN_API_KEY\tOpenAICompatProfile::full()\n sakana\tSakana AI\thttps://api.sakana.ai/v1\tSAKANA_API_KEY\tOpenAICompatProfile::full()\n sambanova\tSambaNova\thttps://api.sambanova.ai/v1\tSAMBANOVA_API_KEY\tOpenAICompatProfile::full()\n sarvam\tSarvam AI\thttps://api.sarvam.ai/v1\tSARVAM_API_KEY\tOpenAICompatProfile::full()\n scaleway\tScaleway AI\thttps://api.scaleway.ai/v1\tSCALEWAY_API_KEY\tOpenAICompatProfile::full()\n scx_ai\tSCX AI\thttps://api.scx.ai/v1\tSCX_AI_API_KEY\tOpenAICompatProfile::full()\n siliconflow\tSiliconFlow\thttps://api.siliconflow.cn/v1\tSILICONFLOW_API_KEY\tOpenAICompatProfile::full()\n snowflake\tSnowflake\thttps://.snowflakecomputing.com/api/v2/cortex/v1\tSNOWFLAKE_PAT\tOpenAICompatProfile::full()\n snowflake_cortex\tSnowflake Cortex\thttps://.snowflakecomputing.com/api/v2/cortex/v1\tSNOWFLAKE_CORTEX_PAT\tOpenAICompatProfile::full()\n stackit\tSTACKIT\thttps://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\tSTACKIT_API_KEY\tOpenAICompatProfile::full()\n stepfun\tStepFun (闃惰穬鏄熻景)\thttps://api.stepfun.com/v1\tSTEPFUN_API_KEY\tOpenAICompatProfile::full()\n stepfun_ai_step_plan\tStepFun Step Plan (Global)\thttps://api.stepfun.ai/step_plan/v1\tSTEPFUN_API_KEY\tOpenAICompatProfile::full()\n stepfun_step_plan\tStepFun Step Plan (China)\thttps://api.stepfun.com/step_plan/v1\tSTEPFUN_API_KEY\tOpenAICompatProfile::full()\n subconscious\tSubconscious\thttps://api.subconscious.dev/v1\tSUBCONSCIOUS_API_KEY\tOpenAICompatProfile::full()\n submodel\tSubModel\thttps://api.submodel.com/v1\tSUBMODEL_API_KEY\tOpenAICompatProfile::full()\n synthetic\tSynthetic\thttps://api.synthetic.new/openai/v1\tSYNTHETIC_API_KEY\tOpenAICompatProfile::full()\n tencent\tTencent (娣峰厓/Hunyuan)\thttps://api.hunyuan.cloud.tencent.com/v1\tTENCENT_API_KEY\tOpenAICompatProfile::full()\n tencent_coding_plan\tTencent Coding Plan (China)\thttps://api.lkeap.cloud.tencent.com/coding/v3\tTENCENT_CODING_PLAN_API_KEY\tOpenAICompatProfile::full()\n tencent_token_plan\tTencent Token Plan\thttps://api.lkeap.cloud.tencent.com/plan/v3\tTENCENT_TOKEN_PLAN_API_KEY\tOpenAICompatProfile::full()\n tencent_token_plan_enterprise_auto\t鑵捐浜?Token Plan / Token Plan 浼佷笟鐗堣交浜椁?\thttps://tokenhub.tencentmaas.com/plan/v3\tTENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY\tOpenAICompatProfile::full()\n tencent_token_plan_enterprise_pro\t鑵捐浜?Token Plan / Token Plan 浼佷笟鐗堜笓涓氬椁?\thttps://tokenhub.tencentmaas.com/plan/v3\tTENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY\tOpenAICompatProfile::full()\n tencent_token_plan_general_personal\t鑵捐浜?Token Plan / 閫氱敤 Token Plan锛堜釜浜虹増锛?\thttps://api.lkeap.cloud.tencent.com/plan/v3\tTENCENT_TOKEN_PLAN_API_KEY\tOpenAICompatProfile::full()\n tencent_token_plan_hy_personal\t鑵捐浜?Token Plan / Hy Token Plan锛堜釜浜虹増锛?\thttps://api.lkeap.cloud.tencent.com/plan/v3\tTENCENT_TOKEN_PLAN_API_KEY\tOpenAICompatProfile::full()\n tencent_tokenhub\tTencent TokenHub\thttps://tokenhub.tencentmaas.com/v1\tTENCENT_TOKENHUB_API_KEY\tOpenAICompatProfile::full()\n tensormesh\tTensormesh\thttps://serverless.tensormesh.ai\tYOUR_API_KEY\tOpenAICompatProfile::full()\n the_grid_ai\tThe Grid AI\thttps://thegrid.ai/docs\tTHEGRIDAI_API_KEY\tOpenAICompatProfile::full()\n thinkingmachines\tThinking Machines\thttps://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1\tTINKER_API_KEY\tOpenAICompatProfile::full()\n tinfoil\tTinfoil\thttps://inference.tinfoil.sh/v1\tTINFOIL_API_KEY\tOpenAICompatProfile::full()\n togetherai\tTogether AI\thttps://api.together.xyz/v1\tTOGETHER_API_KEY\tOpenAICompatProfile::full()\n tokenflux\tTokenflux\thttps://tokenflux.ai/v1\tTOKENFLUX_API_KEY\tOpenAICompatProfile::full()\n tokenpony\tTokenPony\thttps://api.tokenpony.com/v1\tTOKENPONY_API_KEY\tOpenAICompatProfile::full()\n trustedrouter\tTrustedRouter\thttps://api.trustedrouter.com/v1\tTRUSTEDROUTER_API_KEY\tOpenAICompatProfile::full()\n tundra\tTundra\thttps://api.tundra.ai/v1\tTUNDRA_API_KEY\tOpenAICompatProfile::full()\n umans_ai\tUmans AI\thttps://api.code.umans.ai/v1\tUMANS_AI_API_KEY\tOpenAICompatProfile::full()\n unorouter\tUnoRouter\thttps://unorouter.com/en\tUNOROUTER_API_KEY\tOpenAICompatProfile::full()\n upstage\tUpstage\thttps://api.upstage.ai/v1\tUPSTAGE_API_KEY\tOpenAICompatProfile::full()\n v0\tv0 (Vercel)\thttps://api.v0.dev/v1\tV0_API_KEY\tOpenAICompatProfile::full()\n venice\tVenice\thttps://api.venice.ai/api/v1\tVENICE_API_KEY\tOpenAICompatProfile::full()\n vercel\tVercel\thttps://api.v0.dev/v1\tVERCEL_API_KEY\tOpenAICompatProfile::full()\n vivgrid\tVivgrid\thttps://api.vivgrid.com/v1\tVIVGRID_API_KEY\tOpenAICompatProfile::full()\n volc_engine\tVolcEngine\thttps://ark.cn-beijing.volces.com\tARK_API_KEY\tOpenAICompatProfile::full()\n vultr\tVultr\thttps://api.vultrinference.com/v1\tVULTR_API_KEY\tOpenAICompatProfile::full()\n wafer\tWafer\thttps://api.wafer.ai/v1\tWAFER_API_KEY\tOpenAICompatProfile::full()\n wandb\tWeights & Biases\thttps://api.inference.wandb.ai/v1\tWANDB_API_KEY\tOpenAICompatProfile::full()\n xiaomi_token_plan_ams\tXiaomi Token Plan (Europe)\thttps://token-plan-ams.xiaomimimo.com/v1\tMIMO_API_KEY\tOpenAICompatProfile::full()\n xiaomi_token_plan_cn\tXiaomi Token Plan (China)\thttps://token-plan-cn.xiaomimimo.com/v1\tMIMO_API_KEY\tOpenAICompatProfile::full()\n xiaomi_token_plan_sgp\tXiaomi Token Plan (Singapore)\thttps://token-plan-sgp.xiaomimimo.com/v1\tMIMO_API_KEY\tOpenAICompatProfile::full()\n xiaomimimo\tXiaomi MiMo\thttps://mimo.xiaomi.com/v1\tXIAOMI_API_KEY\tOpenAICompatProfile::full()\n xpersona\tXpersona\t/v1\tXPERSONA_API_KEY\tOpenAICompatProfile::full()\n xunfei\tXunfei\thttps://spark-api-open.xf-yun.com/v1\tXUNFEI_API_PASSWORD\tOpenAICompatProfile::full()\n zai\tZai\thttps://api.z.ai/api/paas/v4\tZAI_API_KEY\tOpenAICompatProfile::full()\n zai_coding_plan\tZ.AI Coding Plan\thttps://api.z.ai/api/anthropic\tZHIPU_API_KEY\tOpenAICompatProfile::full()\n zeldoc\tZeldoc\thttps://api.zeldoc.ai/v1\tZELDOC_API_KEY\tOpenAICompatProfile::full()\n zenmux\tZenMux\thttps://zenmux.ai/api/v1\tZENMUX_API_KEY\tOpenAICompatProfile::full()\n zhipu_v4\tZhipuV4\thttps://open.bigmodel.cn\tZHIPU_API_KEY\tOpenAICompatProfile::full()\n zhipuai_coding_plan\tZhipu AI Coding Plan\thttps://docs.bigmodel.cn/cn/coding-plan/quick-start\tZHIPU_API_KEY\tOpenAICompatProfile::full()\n"}}, "docs/internal/provider-research/batch-11.md": {"5b352e19b5717ed5ba775e097bed1f6fd81c2095": {"t": 1785809841.6689932, "n": 22838, "h": "45e64dcaa04bb19f", "c": "# 第 11 批调研记录(14 个 provider)\n\n本批覆盖 inventory 中 14 个 `implemented_in_aimux=false` 的 provider,按 canonical id 字母序排列。证据裁决遵循 RFC-0006 §2.1:以官方 API 文档/SDK 为首选证据,inventory 元数据(tier/protocol/openai_compatible)仅作线索。\n\n---\n\n### suno_api — SunoAPI\n\n- **canonical ID**:suno_api\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.3\n- **能力**(本次调研覆盖):inventory 标 chat,但核验后实为音乐生成模态(非 chat)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.sunoapi.org/\n- **核验来源**:官方 API 文档(docs.sunoapi.org,系第三方 Suno 代理产品 \"Suno API\" 的官方文档)\n- **证据强度**:中(官方文档可确认其为音乐生成 API;但 inventory 实体来源为 new_api 网关,与该 docs.sunoapi.org 产品是否同一对象存歧义)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://api.sunoapi.org\n- **鉴权**:方式=Bearer token(`Authorization: Bearer YOUR_API_KEY`)/ 环境变量=未知(inventory 无)/ 是否必需=是\n- **endpoint 公式**:原生音乐生成端点(音乐生成、扩展、歌词、人声分离、翻唱、音乐视频等),非 OpenAI Chat Completions\n- **协议类型**:专用模态(音乐/音频生成,原生任务式协议)\n- **请求结构要点**:任务式请求(文本描述、模型版本 V4/V4.5/V5/V5.5 等),非 `messages` 数组\n- **响应结构要点**:异步任务式(任务 ID + webhook 回调/轮询获取结果)\n- **流式**:厂商专属(宣称 20 秒流式输出,非标准 SSE chat 流)\n- **错误结构**:厂商专属\n- **特有行为**:音乐/歌词/音频处理/音乐视频;webhook 回调;按 credits 计费\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:模态专用\n- **依据**:实际为音乐生成模态 API,与 OpenAI Chat Completions 结构无关;inventory 的 chat 能力标注有误\n- **可复用模型 ID 样例**:V5_5、V5、V4.5PLUS、V4.5、V4(音乐模型版本,非 chat 模型)\n- **是否需扩展共享层**:否(不在 OpenAI chat 共享层范围)\n\n#### 4. 风险与限制\n\n- inventory 标 chat 能力与实际音乐模态不符\n- 实体来源为 new_api 网关,可能与 docs.sunoapi.org 的 \"Suno API\" 产品非同一对象\n- 音乐生成属异步任务式(回调/轮询),与同步 chat 模型差异大\n\n#### 5. 优先级建议\n\n- **优先级**:搁置\n- **理由**:音乐生成模态不在 aimux 当前 chat 适配范围;inventory 实体身份存歧义,无 chat 协议价值\n\n---\n\n### tencent_coding_plan — Tencent Coding Plan (China)\n\n- **canonical ID**:tencent_coding_plan\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1772/128947\n- **核验来源**:官方 API 文档(腾讯云)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:OpenAI 兼容 `https://api.lkeap.cloud.tencent.com/coding/v3`;Anthropic 兼容 `https://api.lkeap.cloud.tencent.com/coding/anthropic`\n- **鉴权**:方式=Bearer(套餐专属 API Key,格式 `sk-sp-xxxx`)/ 环境变量=`TENCENT_CODING_PLAN_API_KEY`(inventory)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`(OpenAI 兼容)\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic 兼容)\n- **请求结构要点**:标准 OpenAI Chat Completions(model、messages、stream 等)\n- **响应结构要点**:标准 OpenAI `chat.completion`\n- **流式**:SSE(OpenAI 标准)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:套餐专属 Key(`sk-sp-xxxx`)与预/后付费 Key(`sk-xxxx`)不互通;官方声明\"严禁 API 调用\"用于自动化脚本/批量调用(仅限编程工具交互式使用);模型库动态更新\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示\"OpenAI 兼容协议\",base URL `/coding/v3`,标准 `chat/completions`\n- **可复用模型 ID 样例**:glm-5、kimi-k2.5、hunyuan-t1、hunyuan-turbos、minimax-m2.5、tc-code-latest(auto)\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 官方禁止自动化/批量 API 调用,违规可能封禁 Key——与 aimux 作为程序化适配库的用途存在合规冲突\n- 套餐模型动态调整,部分模型已下线\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:协议上属标准 OpenAI 薄封装(证据强),但官方使用条款限制程序化 API 调用,接入需谨慎,宜后续低优先级处理\n\n---\n\n### tencent_token_plan — Tencent Token Plan\n\n- **canonical ID**:tencent_token_plan\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1823/130060\n- **核验来源**:官方 API 文档(腾讯云 TokenHub)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:OpenAI 兼容 `https://api.lkeap.cloud.tencent.com/plan/v3`;Anthropic 兼容 `https://api.lkeap.cloud.tencent.com/plan/anthropic`\n- **鉴权**:方式=Bearer / 环境变量=`TENCENT_TOKEN_PLAN_API_KEY`(inventory)/ 是否必需=是\n- **endpoint 公式**:完整 URL `https://api.lkeap.cloud.tencent.com/plan/v3/chat/completions`(OpenAI 兼容);Anthropic `…/plan/anthropic/v1/messages`\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic 兼容)\n- **请求结构要点**:标准 OpenAI Chat Completions\n- **响应结构要点**:标准 OpenAI `chat.completion`\n- **流式**:SSE(OpenAI 标准)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:通用 Token Plan 与 Hy Token Plan 共用同一 API Key 与同一 base URL;面向\"龙虾/编程\"场景的个人订阅套餐\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示\"兼容 OpenAI 接口协议工具\",给出完整 `/plan/v3/chat/completions` URL\n- **可复用模型 ID 样例**:hy3、hy3-preview(Hy 系列);通用系列另有 deepseek-v4-flash/pro、glm-5/5.1、kimi-k2.5、minimax-m2.5/m2.7、tc-code-latest(auto)\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 个人订阅套餐面向交互式编程工具,程序化批量调用存在与 coding plan 类似的合规风险\n- 通用/Hy 共用端点,需以 model 参数区分\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:协议属标准 OpenAI 薄封装(证据强),但订阅套餐使用场景受限,宜后续处理\n\n---\n\n### tencent_token_plan_enterprise_auto — 腾讯云 Token Plan / Token Plan 企业版轻享套餐\n\n- **canonical ID**:tencent_token_plan_enterprise_auto\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1823/130660\n- **核验来源**:官方 API 文档(腾讯云 TokenHub,企业版快速入门,含 cURL 请求与响应示例)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:广州 `https://tokenhub.tencentmaas.com/plan/v3`;新加坡(intl)`https://tokenhub-intl.tencentmaas.com/plan/v3`\n- **鉴权**:方式=Bearer(`Authorization: Bearer $your_api_key`)/ 环境变量=未知(inventory 无,建议 `TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY`)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI Chat Completions(`{model, messages, stream}`)\n- **响应结构要点**:`{id, object:\"chat.completion\", model, created, choices:[{index, message:{role, content, reasoning_content}, finish_reason}], usage:{prompt_tokens, completion_tokens, total_tokens, prompt_tokens_details, completion_tokens_details:{reasoning_tokens}}}`\n- **流式**:SSE(OpenAI 标准,`stream` 字段控制)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:响应含 `reasoning_content` 字段(DeepSeek 风格扩展)与 `reasoning_tokens` 用量;企业版支持按 Key 配置模型权限、独占额度、TPM 限制\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方 cURL 示例与响应体直接确认标准 OpenAI Chat Completions 契约\n- **可复用模型 ID 样例**:auto(轻享套餐可用模型较少)\n- **是否需扩展共享层**:否(`reasoning_content` 为常见 DeepSeek 风格扩展,若共享层未覆盖可作可选扩展)\n\n#### 4. 风险与限制\n\n- 企业版按 Key 限定可用模型,未授权模型返回无权限错误\n- 轻享与专业套餐可用模型集合不同\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:协议属标准 OpenAI 薄封装(证据强,含完整请求/响应示例);企业版面向组织 API 调用,合规风险低于个人版,但属订阅套餐,宜后续处理\n\n---\n\n### tencent_token_plan_enterprise_pro — 腾讯云 Token Plan / Token Plan 企业版专业套餐\n\n- **canonical ID**:tencent_token_plan_enterprise_pro\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1823/130660\n- **核验来源**:官方 API 文档(腾讯云 TokenHub,企业版快速入门,含 cURL 请求与响应示例)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:广州 `https://tokenhub.tencentmaas.com/plan/v3`;新加坡(intl)`https://tokenhub-intl.tencentmaas.com/plan/v3`\n- **鉴权**:方式=Bearer(`Authorization: Bearer $your_api_key`)/ 环境变量=未知(inventory 无,建议 `TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY`)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI Chat Completions(`{model, messages, stream}`)\n- **响应结构要点**:`{id, object:\"chat.completion\", model, created, choices:[{index, message:{role, content, reasoning_content}, finish_reason}], usage:{prompt_tokens, completion_tokens, total_tokens, prompt_tokens_details, completion_tokens_details:{reasoning_tokens}}}`\n- **流式**:SSE(OpenAI 标准)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:响应含 `reasoning_content` 与 `reasoning_tokens`;专业套餐支持自定义积分规格、按 Key 模型权限/独占额度/TPM\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方 cURL 示例与响应体直接确认标准 OpenAI Chat Completions 契约\n- **可复用模型 ID 样例**:auto、deepseek-v4-flash、deepseek-v4-flash-202605、deepseek-v4-pro、deepseek-v4-pro-202606\n- **是否需扩展共享层**:否(`reasoning_content` 为可选扩展)\n\n#### 4. 风险与限制\n\n- 与轻享套餐共用端点与协议,仅可用模型集合不同\n- 企业版按 Key 限定模型权限\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:协议属标准 OpenAI 薄封装(证据强);企业版面向组织 API 调用,合规风险低,但属订阅套餐,宜后续处理\n\n---\n\n### tencent_token_plan_general_personal — 腾讯云 Token Plan / 通用 Token Plan(个人版)\n\n- **canonical ID**:tencent_token_plan_general_personal\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1823/130060\n- **核验来源**:官方 API 文档(腾讯云 TokenHub)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:OpenAI 兼容 `https://api.lkeap.cloud.tencent.com/plan/v3`;Anthropic 兼容 `https://api.lkeap.cloud.tencent.com/plan/anthropic`\n- **鉴权**:方式=Bearer / 环境变量=未知(inventory 无)/ 是否必需=是\n- **endpoint 公式**:完整 URL `https://api.lkeap.cloud.tencent.com/plan/v3/chat/completions`\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic 兼容)\n- **请求结构要点**:标准 OpenAI Chat Completions\n- **响应结构要点**:标准 OpenAI `chat.completion`\n- **流式**:SSE(OpenAI 标准)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:通用 Token Plan 与 Hy Token Plan 共用同一 API Key 与 base URL;四档套餐(Lite/Standard/Pro/Max)按月 Token 额度计费\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示\"兼容 OpenAI 接口协议工具\"并给出完整 `/plan/v3/chat/completions` URL\n- **可复用模型 ID 样例**:deepseek-v4-flash-202605、deepseek-v4-pro-202606、glm-5、glm-5.1、kimi-k2.5、minimax-m2.5/m2.7、tc-code-latest(auto)\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 个人订阅套餐面向交互式编程工具,程序化批量调用存在合规风险\n- 与 tencent_token_plan / tencent_token_plan_hy_personal 共用同一端点,区别仅在套餐与可用模型\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:协议属标准 OpenAI 薄封装(证据强),但订阅套餐使用场景受限,宜后续处理\n\n---\n\n### tencent_token_plan_hy_personal — 腾讯云 Token Plan / Hy Token Plan(个人版)\n\n- **canonical ID**:tencent_token_plan_hy_personal\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1823/130060\n- **核验来源**:官方 API 文档(腾讯云 TokenHub)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:OpenAI 兼容 `https://api.lkeap.cloud.tencent.com/plan/v3`;Anthropic 兼容 `https://api.lkeap.cloud.tencent.com/plan/anthropic`\n- **鉴权**:方式=Bearer / 环境变量=未知(inventory 无)/ 是否必需=是\n- **endpoint 公式**:完整 URL `https://api.lkeap.cloud.tencent.com/plan/v3/chat/completions`\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic 兼容)\n- **请求结构要点**:标准 OpenAI Chat Completions\n- **响应结构要点**:标准 OpenAI `chat.completion`\n- **流式**:SSE(OpenAI 标准)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:Hy Token Plan 仅提供 Hy3 模型;与通用 Token Plan 共用同一 API Key 与 base URL\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示\"兼容 OpenAI 接口协议工具\"并给出完整 `/plan/v3/chat/completions` URL\n- **可复用模型 ID 样例**:hy3、hy3-preview\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 个人订阅套餐,程序化批量调用存在合规风险\n- 与通用 Token Plan 共用端点,仅模型集合不同\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:协议属标准 OpenAI 薄封装(证据强),但订阅套餐使用场景受限,宜后续处理\n\n---\n\n### tencent_tokenhub — Tencent TokenHub\n\n- **canonical ID**:tencent_tokenhub\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1823/130050 (产品简介);https://cloud.tencent.com/document/product/1823/130058 (快速入门,含 cURL/多语言 SDK 示例)\n- **核验来源**:官方 API 文档(腾讯云)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://tokenhub.tencentmaas.com/v1`\n- **鉴权**:方式=Bearer(`Authorization: Bearer YOUR_API_KEY`)/ 环境变量=`TENCENT_TOKENHUB_API_KEY`(inventory)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`\n- **协议类型**:OpenAI 兼容(官方明示\"大模型服务平台 TokenHub 兼容 OpenAI API 协议\")\n- **请求结构要点**:标准 OpenAI Chat Completions(`{model, messages, stream}`)\n- **响应结构要点**:标准 OpenAI `chat.completion`(官方示例用 OpenAI SDK 直接消费)\n- **流式**:SSE(OpenAI 标准,`stream:true`)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:一站式聚合平台(混元/DeepSeek/MiniMax/Kimi/GLM/通义千问等),统一 API;支持文本/图片/视频/3D 多能力;按 Token 计费(非订阅套餐)\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方快速入门给出 `https://tokenhub.tencentmaas.com/v1/chat/completions` 与 OpenAI SDK/cURL 示例,直接确认 OpenAI Chat Completions 契约\n- **可复用模型 ID 样例**:hy3、hy3-preview(inventory);平台另支持 deepseek-v3 等多厂商模型\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 平台聚合多厂商模型,单模型能力/参数支持以模型列表为准\n- 与 Token Plan/Coding Plan 等订阅套餐的 base URL 与 Key 不互通\n\n#### 5. 优先级建议\n\n- **优先级**:P1\n- **理由**:主流国产模型聚合平台,OpenAI 兼容协议证据强、按量计费无订阅合规限制,近期接入价值高\n\n---\n\n### the_grid_ai — The Grid AI\n\n- **canonical ID**:the_grid_ai\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://thegrid.ai/docs (Overview,给出 Consumption API base URL 与鉴权)\n- **核验来源**:官方 API 文档\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:OpenAI Chat Completions `https://api.thegrid.ai/v1`;Anthropic Messages(beta)`https://messages-beta.api.thegrid.ai/v1`\n- **鉴权**:方式=Bearer(OpenAI,`Authorization: Bearer `);Anthropic 端用 `x-api-key: ` / 环境变量=`THEGRIDAI_API_KEY`(inventory)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`(OpenAI 兼容)\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic Messages 兼容)\n- **请求结构要点**:标准 OpenAI Chat Completions;`model` 字段传 instrument 字符串(如 `text-prime`、`code-prime`、`claude-opus-latest`)而非具体模型名\n- **响应结构要点**:标准 OpenAI `chat.completion`(官方称兼容 OpenAI Chat Completions 格式)\n- **流式**:SSE(OpenAI 标准,推断)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:\"现货市场\"按 task type + quality tier(Standard/Prime/Max)或 lab latest 市场路由到竞争供应商;instrument 串作为 model 名\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示\"compatible with OpenAI Chat Completions\",给出 base URL `https://api.thegrid.ai/v1` 与 Bearer 鉴权\n- **可复用模型 ID 样例**:agent-max、agent-prime、agent-standard、code-max、code-prime、text-prime、gpt-sol-latest、claude-opus-latest\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- model 字段语义为 instrument(任务/质量档)而非传统模型 ID,需文档化\n- Anthropic 端为 beta\n\n#### 5. 优先级建议\n\n- **优先级**:P1\n- **理由**:OpenAI 兼容协议证据强、接入简单(仅改 base URL),近期接入价值高\n\n---\n\n### thinkingmachines — Thinking Machines\n\n- **canonical ID**:thinkingmachines\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:\n - Anthropic 兼容:https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/anthropic\n - OpenAI 兼容:https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/openai/\n- **核验来源**:官方 API 文档(Tinker Documentation)\n- **证据强度**:强(两个兼容端点均有官方文档与代码示例)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:\n - OpenAI 兼容 `https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1`(支持 `/completions` 与 `/chat/completions`)\n - Anthropic 兼容 `https://tinker.thinkingmachines.dev/services/tinker-prod/anthropic/api`(客户端追加 `/v1/messages`)\n - 注:inventory 的 base_url 指向 Anthropic 端点,非 OpenAI 端点\n- **鉴权**:方式=OpenAI 端用 Bearer(OpenAI SDK 默认);Anthropic 端用 `x-api-key` 或 `Authorization: Bearer` / 环境变量=`TINKER_API_KEY`(inventory + 文档)/ 是否必需=是\n- **endpoint 公式**:OpenAI `{base}/chat/completions`、`{base}/completions`\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic Messages 兼容)\n- **请求结构要点**:标准 OpenAI Chat Completions;model 字段传 Tinker sampler 权重路径(`tinker://...:train:0/sampler_weights/000080`)或模型名(如 `thinkingmachines/Inkling`)\n- **响应结构要点**:标准 OpenAI 结构;`/chat/completions` 支持非标准 `separate_reasoning`(默认 true)将推理置于 `reasoning_content` 字段\n- **流式**:SSE(OpenAI 标准;推理与正文分 separate_reasoning/content 事件)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:非标准 `separate_reasoning`、`reasoning_effort`(OpenAI 串或 [0.0,0.99] 浮点);model 为动态 sampler checkpoint 路径;当前为 beta,面向测试/内部低流量\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方文档给出 OpenAI 兼容 base URL 与 `/chat/completions` 代码示例,直接确认 OpenAI Completions 契约\n- **可复用模型 ID 样例**:`thinkingmachines/Inkling`、`thinkingmachines/Inkling:peft:262144`、`tinker://:train:0/sampler_weights/000080`\n- **是否需扩展共享层**:否(`separate_reasoning`/`reasoning_content` 为可选扩展,核心 OpenAI 契约无需改动)\n\n#### 4. 风险与限制\n\n- inventory base_url 错误指向 Anthropic 端点,OpenAI 薄封装需改用 `…/oai/api/v1`\n- model 标识为动态 sampler checkpoint 路径,非稳定模型 ID\n- 当前为 beta,面向测试/内部用,延迟与吞吐可能波动\n- `reasoning_effort`/`separate_reasoning` 为非标准字段\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:OpenAI 兼容协议证据强可薄封装,但为 beta 且 model 标识为动态训练 checkpoint,生产价值有限,宜后续处理\n\n---\n\n### tinfoil — Tinfoil\n\n- **canonical ID**:tinfoil\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.tinfoil.sh (Introduction);https://docs.tinfoil.sh/quickstart (含多语言 SDK 与 cURL 示例)\n- **核验来源**:官方 API 文档 + 官方 SDK\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://inference.tinfoil.sh/v1`\n- **鉴权**:方式=Bearer(`Authorization: Bearer $TINFOIL_API_KEY`)/ 环境变量=`TINFOIL_API_KEY`(inventory + 文档)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`\n- **协议类型**:OpenAI 兼容(官方称 \"OpenAI compatible inference API\",\"Drop-in Compatibility\",SDK 兼容 OpenAI API)\n- **请求结构要点**:标准 OpenAI Chat Completions(`{model, messages}`);支持 tool calling、structured outputs、image(base64/url)、document\n- **响应结构要点**:标准 OpenAI `chat.completion`(官方 SDK 直接复用 OpenAI 客户端类型)\n- **流式**:SSE(OpenAI 标准,推断)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:基于安全 enclave 的隐私推理;SDK 自动做远程证明(attestation)校验;裸 HTTP 调用为标准 OpenAI 兼容,证明校验由 SDK 侧完成\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方 quickstart 给出 `https://inference.tinfoil.sh/v1/chat/completions` 与 Bearer 鉴权,OpenAI SDK 直接可用\n- **可复用模型 ID 样例**:gpt-oss-120b、gpt-oss-safeguard-120b、gemma4-31b、glm-5-2、kimi-k2-6\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 隐私 enclave 证明校验为厂商特有,但属 SDK 侧可选行为,不影响 OpenAI 兼容线路协议\n- 模型为开源模型集合,能力以模型为准\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:OpenAI 兼容协议证据强可薄封装,但属隐私 enclave 细分场景,主流需求有限,宜后续处理\n\n---\n\n### tokenflux — Tokenflux\n\n- **canonical ID**:tokenflux\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.3\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.tokenflux.ai/quickstart (含 JS/Python/cURL 示例);https://tokenflux.ai/docs/introduction\n- **核验来源**:官方 API 文档\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://tokenflux.ai/v1`\n- **鉴权**:方式=同时接受 `Authorization: Bearer `(OpenAI SDK 默认)与 `X-Api-Key: `(cURL 示例)/ 环境变量=未知(inventory 无,建议 `TOKENFLUX_API_KEY`)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`;另有 `/v1/embeddings`、`/v1/images/generations`、`/v1/models`\n- **协议类型**:OpenAI 兼容(官方称 \"fully compatible with OpenAI's client libraries\",\"switch by simply changing the base URL and API key\")\n- **请求结构要点**:标准 OpenAI Chat Completions(`{model, messages, stream}`)\n- **响应结构要点**:标准 OpenAI `chat.completion`(`choices[0].message.content`、流式 `choices[0].delta.content`)\n- **流式**:SSE(OpenAI 标准,`stream:true`)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:200+ 模型聚合(OpenAI/Anthropic/Google/Mistral/DeepSeek 等);cURL 示例用 `X-Api-Key` 头(与 OpenAI SDK 的 Bearer 并存)\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方 quickstart 给出 `https://tokenflux.ai/v1/chat/completions` 与 OpenAI SDK/cURL 示例,直接确认 OpenAI Chat Completions 契约\n- **可复用模型 ID 样例**:gpt-4o、claude-3.5-sonnet、gemini-pro、mistral-large、deepseek-chat、anthropic/claude-3.5-sonnet(inventory)\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 鉴权头同时支持 Bearer 与 X-Api-Key,OpenAI 共享层用 Bearer 即可\n- inventory 无 base_url/env 线索,本次由搜索定位官方文档确认\n\n#### 5. 优先级建议\n\n- **优先级**:P1\n- **理由**:主流模型聚合网关,OpenAI 兼容协议证据强、接入简单,近期接入价值高\n\n---\n\n### triton — Triton\n\n- **canonical ID**:triton\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.3\n- **能力**(本次调研覆盖):chat(inventory 标注)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.nvidia.com/deeplearning/triton-inference-server/user-guide/docs/client_guide/openai_readme.html (OpenAI 兼容前端);https://docs.litellm.ai/docs/providers/triton-inference-server (litellm 集成)\n- **核验来源**:官方文档(NVIDIA Triton Inference Server)\n- **证据强度**:中(官方文档确认存在 OpenAI 兼容前端与原生 /generate 协议;但 inventory 实体无 base_url/模型/鉴权,属自托管服务器,非厂商 provider)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:用户自定义(自托管 Triton 服务器,如 `http://localhost:8000`)\n- **鉴权**:方式=默认无鉴权,可通过 `--allow-http-header` 配置 token / 环境变量=无 / 是否必需=否(取决于部署)\n- **endpoint 公式**:OpenAI 兼容前端 `{base}/v1/chat/completions`、`{base}/v1/models`、`{base}/v1/embeddings`;原生协议 `{base}/generate`、`{base}/embeddings`\n- **协议类型**:原生(Triton 原生 /generate、/embeddings)+ OpenAI 兼容前端可选\n- **请求结构要点**:OpenAI 前端为标准 Chat Completions;原生 /generate 为 `{text_input, parameters}` 等 Triton 专属结构\n- **响应结构要点**:OpenAI 前端为标准 chat.completion;原生 /generate 为 Triton 专属响应\n- **流式**:SSE(OpenAI 前端)/ 原生流式(推断)\n- **错误结构**:厂商专属(Triton 原生)/ OpenAI 兼容(前端)\n- **特有行为**:自托管推理服务器,模型由用户自行部署;litellm 以 `triton/` 前缀路由至原生 /generate\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:待定(若用 OpenAI 前端可薄封装;若用原生 /generate 则需原生实现)\n- **依据**:协议取决于选用前端还是原生端点;且为自托管,无固定 base_url/鉴权/模型\n- **可复用模型 ID 样例**:无(由部署的模型决定)\n- **是否需扩展共享层**:否(若走 OpenAI 前端)/ 是(若走原生 /generate 需原生适配)\n\n#### 4. 风险与限制\n\n- inventory 实体无 base_url/模型/鉴权线索,无法定位具体服务\n- 自托管服务器,不属于厂商 provider 范畴\n- 协议路径取决于部署配置(前端 vs 原生)\n\n#### 5. 优先级建议\n\n- **优先级**:搁置\n- **理由**:自托管推理服务器,无固定 base_url/鉴权/模型清单,不属于厂商 provider;inventory 实体线索不足,无法确定协议路径\n\n---\n\n### trustedrouter — TrustedRouter\n\n- **canonical ID**:trustedrouter\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://trustedrouter.com/docs (Quickstart + API reference)\n- **核验来源**:官方 API 文档\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://api.trustedrouter.com/v1`\n- **鉴权**:方式=Bearer(`Bearer sk-tr-…`)/ 环境变量=`TRUSTEDROUTER_API_KEY`(inventory + 文档)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`;另有 `/v1/responses`、`/v1/embeddings`、`/v1/models`\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic 兼容;官方称 \"point any OpenAI-compatible SDK at TrustedRouter\")\n- **请求结构要点**:标准 OpenAI Chat Completions;model 字段传路由别名(如 `trustedrouter/auto`、`trustedrouter/socrates`);可选 OpenRouter 兼容的 `provider` 对象(`min_privacy`、`data_collection`)\n- **响应结构要点**:标准 OpenAI `chat.completion`(官方示例用 OpenAI SDK 直接消费)\n- **流式**:SSE(OpenAI 标准,推断)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:证明网关(attested gateway);`provider.min_privacy`(zdr/confidential)硬性隐私下限;模型别名路由(auto/eu/socrates/iris/prometheus/zeus/openpatcher 等);支持 Responses API web search\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示 OpenAI 兼容,给出 base URL `https://api.trustedrouter.com/v1` 与 `/v1/chat/completions` 端点、Bearer 鉴权\n- **可复用模型 ID 样例**:trustedrouter/auto、trustedrouter/cheap、trustedrouter/e2e、trustedrouter/fast、trustedrouter/synth、trustedrouter/socrates\n- **是否需扩展共享层**:否(`provider.min_privacy` 等为可选 OpenRouter 兼容扩展,不影响核心薄封装)\n\n#### 4. 风险与限制\n\n- model 字段为路由别名而非具体模型,需文档化\n- `provider.*` 隐私字段为厂商扩展,但可选\n\n#### 5. 优先级建议\n\n- **优先级**:P1\n- **理由**:OpenAI 兼容协议证据强、接入简单(仅改 base URL + key),近期接入价值高\n"}, "d4bfcae94f036812a833dbb6ddb703136eed4760": {"t": 1785809886.1334841, "n": 22838, "h": "45e64dcaa04bb19f", "c": "# 第 11 批调研记录(14 个 provider)\n\n本批覆盖 inventory 中 14 个 `implemented_in_aimux=false` 的 provider,按 canonical id 字母序排列。证据裁决遵循 RFC-0006 §2.1:以官方 API 文档/SDK 为首选证据,inventory 元数据(tier/protocol/openai_compatible)仅作线索。\n\n---\n\n### suno_api — SunoAPI\n\n- **canonical ID**:suno_api\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.3\n- **能力**(本次调研覆盖):inventory 标 chat,但核验后实为音乐生成模态(非 chat)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.sunoapi.org/\n- **核验来源**:官方 API 文档(docs.sunoapi.org,系第三方 Suno 代理产品 \"Suno API\" 的官方文档)\n- **证据强度**:中(官方文档可确认其为音乐生成 API;但 inventory 实体来源为 new_api 网关,与该 docs.sunoapi.org 产品是否同一对象存歧义)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://api.sunoapi.org\n- **鉴权**:方式=Bearer token(`Authorization: Bearer YOUR_API_KEY`)/ 环境变量=未知(inventory 无)/ 是否必需=是\n- **endpoint 公式**:原生音乐生成端点(音乐生成、扩展、歌词、人声分离、翻唱、音乐视频等),非 OpenAI Chat Completions\n- **协议类型**:专用模态(音乐/音频生成,原生任务式协议)\n- **请求结构要点**:任务式请求(文本描述、模型版本 V4/V4.5/V5/V5.5 等),非 `messages` 数组\n- **响应结构要点**:异步任务式(任务 ID + webhook 回调/轮询获取结果)\n- **流式**:厂商专属(宣称 20 秒流式输出,非标准 SSE chat 流)\n- **错误结构**:厂商专属\n- **特有行为**:音乐/歌词/音频处理/音乐视频;webhook 回调;按 credits 计费\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:模态专用\n- **依据**:实际为音乐生成模态 API,与 OpenAI Chat Completions 结构无关;inventory 的 chat 能力标注有误\n- **可复用模型 ID 样例**:V5_5、V5、V4.5PLUS、V4.5、V4(音乐模型版本,非 chat 模型)\n- **是否需扩展共享层**:否(不在 OpenAI chat 共享层范围)\n\n#### 4. 风险与限制\n\n- inventory 标 chat 能力与实际音乐模态不符\n- 实体来源为 new_api 网关,可能与 docs.sunoapi.org 的 \"Suno API\" 产品非同一对象\n- 音乐生成属异步任务式(回调/轮询),与同步 chat 模型差异大\n\n#### 5. 优先级建议\n\n- **优先级**:搁置\n- **理由**:音乐生成模态不在 aimux 当前 chat 适配范围;inventory 实体身份存歧义,无 chat 协议价值\n\n---\n\n### tencent_coding_plan — Tencent Coding Plan (China)\n\n- **canonical ID**:tencent_coding_plan\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1772/128947\n- **核验来源**:官方 API 文档(腾讯云)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:OpenAI 兼容 `https://api.lkeap.cloud.tencent.com/coding/v3`;Anthropic 兼容 `https://api.lkeap.cloud.tencent.com/coding/anthropic`\n- **鉴权**:方式=Bearer(套餐专属 API Key,格式 `sk-sp-xxxx`)/ 环境变量=`TENCENT_CODING_PLAN_API_KEY`(inventory)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`(OpenAI 兼容)\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic 兼容)\n- **请求结构要点**:标准 OpenAI Chat Completions(model、messages、stream 等)\n- **响应结构要点**:标准 OpenAI `chat.completion`\n- **流式**:SSE(OpenAI 标准)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:套餐专属 Key(`sk-sp-xxxx`)与预/后付费 Key(`sk-xxxx`)不互通;官方声明\"严禁 API 调用\"用于自动化脚本/批量调用(仅限编程工具交互式使用);模型库动态更新\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示\"OpenAI 兼容协议\",base URL `/coding/v3`,标准 `chat/completions`\n- **可复用模型 ID 样例**:glm-5、kimi-k2.5、hunyuan-t1、hunyuan-turbos、minimax-m2.5、tc-code-latest(auto)\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 官方禁止自动化/批量 API 调用,违规可能封禁 Key——与 aimux 作为程序化适配库的用途存在合规冲突\n- 套餐模型动态调整,部分模型已下线\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:协议上属标准 OpenAI 薄封装(证据强),但官方使用条款限制程序化 API 调用,接入需谨慎,宜后续低优先级处理\n\n---\n\n### tencent_token_plan — Tencent Token Plan\n\n- **canonical ID**:tencent_token_plan\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1823/130060\n- **核验来源**:官方 API 文档(腾讯云 TokenHub)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:OpenAI 兼容 `https://api.lkeap.cloud.tencent.com/plan/v3`;Anthropic 兼容 `https://api.lkeap.cloud.tencent.com/plan/anthropic`\n- **鉴权**:方式=Bearer / 环境变量=`TENCENT_TOKEN_PLAN_API_KEY`(inventory)/ 是否必需=是\n- **endpoint 公式**:完整 URL `https://api.lkeap.cloud.tencent.com/plan/v3/chat/completions`(OpenAI 兼容);Anthropic `…/plan/anthropic/v1/messages`\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic 兼容)\n- **请求结构要点**:标准 OpenAI Chat Completions\n- **响应结构要点**:标准 OpenAI `chat.completion`\n- **流式**:SSE(OpenAI 标准)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:通用 Token Plan 与 Hy Token Plan 共用同一 API Key 与同一 base URL;面向\"龙虾/编程\"场景的个人订阅套餐\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示\"兼容 OpenAI 接口协议工具\",给出完整 `/plan/v3/chat/completions` URL\n- **可复用模型 ID 样例**:hy3、hy3-preview(Hy 系列);通用系列另有 deepseek-v4-flash/pro、glm-5/5.1、kimi-k2.5、minimax-m2.5/m2.7、tc-code-latest(auto)\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 个人订阅套餐面向交互式编程工具,程序化批量调用存在与 coding plan 类似的合规风险\n- 通用/Hy 共用端点,需以 model 参数区分\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:协议属标准 OpenAI 薄封装(证据强),但订阅套餐使用场景受限,宜后续处理\n\n---\n\n### tencent_token_plan_enterprise_auto — 腾讯云 Token Plan / Token Plan 企业版轻享套餐\n\n- **canonical ID**:tencent_token_plan_enterprise_auto\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1823/130660\n- **核验来源**:官方 API 文档(腾讯云 TokenHub,企业版快速入门,含 cURL 请求与响应示例)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:广州 `https://tokenhub.tencentmaas.com/plan/v3`;新加坡(intl)`https://tokenhub-intl.tencentmaas.com/plan/v3`\n- **鉴权**:方式=Bearer(`Authorization: Bearer $your_api_key`)/ 环境变量=未知(inventory 无,建议 `TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY`)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI Chat Completions(`{model, messages, stream}`)\n- **响应结构要点**:`{id, object:\"chat.completion\", model, created, choices:[{index, message:{role, content, reasoning_content}, finish_reason}], usage:{prompt_tokens, completion_tokens, total_tokens, prompt_tokens_details, completion_tokens_details:{reasoning_tokens}}}`\n- **流式**:SSE(OpenAI 标准,`stream` 字段控制)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:响应含 `reasoning_content` 字段(DeepSeek 风格扩展)与 `reasoning_tokens` 用量;企业版支持按 Key 配置模型权限、独占额度、TPM 限制\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方 cURL 示例与响应体直接确认标准 OpenAI Chat Completions 契约\n- **可复用模型 ID 样例**:auto(轻享套餐可用模型较少)\n- **是否需扩展共享层**:否(`reasoning_content` 为常见 DeepSeek 风格扩展,若共享层未覆盖可作可选扩展)\n\n#### 4. 风险与限制\n\n- 企业版按 Key 限定可用模型,未授权模型返回无权限错误\n- 轻享与专业套餐可用模型集合不同\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:协议属标准 OpenAI 薄封装(证据强,含完整请求/响应示例);企业版面向组织 API 调用,合规风险低于个人版,但属订阅套餐,宜后续处理\n\n---\n\n### tencent_token_plan_enterprise_pro — 腾讯云 Token Plan / Token Plan 企业版专业套餐\n\n- **canonical ID**:tencent_token_plan_enterprise_pro\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1823/130660\n- **核验来源**:官方 API 文档(腾讯云 TokenHub,企业版快速入门,含 cURL 请求与响应示例)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:广州 `https://tokenhub.tencentmaas.com/plan/v3`;新加坡(intl)`https://tokenhub-intl.tencentmaas.com/plan/v3`\n- **鉴权**:方式=Bearer(`Authorization: Bearer $your_api_key`)/ 环境变量=未知(inventory 无,建议 `TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY`)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI Chat Completions(`{model, messages, stream}`)\n- **响应结构要点**:`{id, object:\"chat.completion\", model, created, choices:[{index, message:{role, content, reasoning_content}, finish_reason}], usage:{prompt_tokens, completion_tokens, total_tokens, prompt_tokens_details, completion_tokens_details:{reasoning_tokens}}}`\n- **流式**:SSE(OpenAI 标准)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:响应含 `reasoning_content` 与 `reasoning_tokens`;专业套餐支持自定义积分规格、按 Key 模型权限/独占额度/TPM\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方 cURL 示例与响应体直接确认标准 OpenAI Chat Completions 契约\n- **可复用模型 ID 样例**:auto、deepseek-v4-flash、deepseek-v4-flash-202605、deepseek-v4-pro、deepseek-v4-pro-202606\n- **是否需扩展共享层**:否(`reasoning_content` 为可选扩展)\n\n#### 4. 风险与限制\n\n- 与轻享套餐共用端点与协议,仅可用模型集合不同\n- 企业版按 Key 限定模型权限\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:协议属标准 OpenAI 薄封装(证据强);企业版面向组织 API 调用,合规风险低,但属订阅套餐,宜后续处理\n\n---\n\n### tencent_token_plan_general_personal — 腾讯云 Token Plan / 通用 Token Plan(个人版)\n\n- **canonical ID**:tencent_token_plan_general_personal\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1823/130060\n- **核验来源**:官方 API 文档(腾讯云 TokenHub)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:OpenAI 兼容 `https://api.lkeap.cloud.tencent.com/plan/v3`;Anthropic 兼容 `https://api.lkeap.cloud.tencent.com/plan/anthropic`\n- **鉴权**:方式=Bearer / 环境变量=未知(inventory 无)/ 是否必需=是\n- **endpoint 公式**:完整 URL `https://api.lkeap.cloud.tencent.com/plan/v3/chat/completions`\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic 兼容)\n- **请求结构要点**:标准 OpenAI Chat Completions\n- **响应结构要点**:标准 OpenAI `chat.completion`\n- **流式**:SSE(OpenAI 标准)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:通用 Token Plan 与 Hy Token Plan 共用同一 API Key 与 base URL;四档套餐(Lite/Standard/Pro/Max)按月 Token 额度计费\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示\"兼容 OpenAI 接口协议工具\"并给出完整 `/plan/v3/chat/completions` URL\n- **可复用模型 ID 样例**:deepseek-v4-flash-202605、deepseek-v4-pro-202606、glm-5、glm-5.1、kimi-k2.5、minimax-m2.5/m2.7、tc-code-latest(auto)\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 个人订阅套餐面向交互式编程工具,程序化批量调用存在合规风险\n- 与 tencent_token_plan / tencent_token_plan_hy_personal 共用同一端点,区别仅在套餐与可用模型\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:协议属标准 OpenAI 薄封装(证据强),但订阅套餐使用场景受限,宜后续处理\n\n---\n\n### tencent_token_plan_hy_personal — 腾讯云 Token Plan / Hy Token Plan(个人版)\n\n- **canonical ID**:tencent_token_plan_hy_personal\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1823/130060\n- **核验来源**:官方 API 文档(腾讯云 TokenHub)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:OpenAI 兼容 `https://api.lkeap.cloud.tencent.com/plan/v3`;Anthropic 兼容 `https://api.lkeap.cloud.tencent.com/plan/anthropic`\n- **鉴权**:方式=Bearer / 环境变量=未知(inventory 无)/ 是否必需=是\n- **endpoint 公式**:完整 URL `https://api.lkeap.cloud.tencent.com/plan/v3/chat/completions`\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic 兼容)\n- **请求结构要点**:标准 OpenAI Chat Completions\n- **响应结构要点**:标准 OpenAI `chat.completion`\n- **流式**:SSE(OpenAI 标准)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:Hy Token Plan 仅提供 Hy3 模型;与通用 Token Plan 共用同一 API Key 与 base URL\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示\"兼容 OpenAI 接口协议工具\"并给出完整 `/plan/v3/chat/completions` URL\n- **可复用模型 ID 样例**:hy3、hy3-preview\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 个人订阅套餐,程序化批量调用存在合规风险\n- 与通用 Token Plan 共用端点,仅模型集合不同\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:协议属标准 OpenAI 薄封装(证据强),但订阅套餐使用场景受限,宜后续处理\n\n---\n\n### tencent_tokenhub — Tencent TokenHub\n\n- **canonical ID**:tencent_tokenhub\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1823/130050 (产品简介);https://cloud.tencent.com/document/product/1823/130058 (快速入门,含 cURL/多语言 SDK 示例)\n- **核验来源**:官方 API 文档(腾讯云)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://tokenhub.tencentmaas.com/v1`\n- **鉴权**:方式=Bearer(`Authorization: Bearer YOUR_API_KEY`)/ 环境变量=`TENCENT_TOKENHUB_API_KEY`(inventory)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`\n- **协议类型**:OpenAI 兼容(官方明示\"大模型服务平台 TokenHub 兼容 OpenAI API 协议\")\n- **请求结构要点**:标准 OpenAI Chat Completions(`{model, messages, stream}`)\n- **响应结构要点**:标准 OpenAI `chat.completion`(官方示例用 OpenAI SDK 直接消费)\n- **流式**:SSE(OpenAI 标准,`stream:true`)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:一站式聚合平台(混元/DeepSeek/MiniMax/Kimi/GLM/通义千问等),统一 API;支持文本/图片/视频/3D 多能力;按 Token 计费(非订阅套餐)\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方快速入门给出 `https://tokenhub.tencentmaas.com/v1/chat/completions` 与 OpenAI SDK/cURL 示例,直接确认 OpenAI Chat Completions 契约\n- **可复用模型 ID 样例**:hy3、hy3-preview(inventory);平台另支持 deepseek-v3 等多厂商模型\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 平台聚合多厂商模型,单模型能力/参数支持以模型列表为准\n- 与 Token Plan/Coding Plan 等订阅套餐的 base URL 与 Key 不互通\n\n#### 5. 优先级建议\n\n- **优先级**:P1\n- **理由**:主流国产模型聚合平台,OpenAI 兼容协议证据强、按量计费无订阅合规限制,近期接入价值高\n\n---\n\n### the_grid_ai — The Grid AI\n\n- **canonical ID**:the_grid_ai\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://thegrid.ai/docs (Overview,给出 Consumption API base URL 与鉴权)\n- **核验来源**:官方 API 文档\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:OpenAI Chat Completions `https://api.thegrid.ai/v1`;Anthropic Messages(beta)`https://messages-beta.api.thegrid.ai/v1`\n- **鉴权**:方式=Bearer(OpenAI,`Authorization: Bearer `);Anthropic 端用 `x-api-key: ` / 环境变量=`THEGRIDAI_API_KEY`(inventory)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`(OpenAI 兼容)\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic Messages 兼容)\n- **请求结构要点**:标准 OpenAI Chat Completions;`model` 字段传 instrument 字符串(如 `text-prime`、`code-prime`、`claude-opus-latest`)而非具体模型名\n- **响应结构要点**:标准 OpenAI `chat.completion`(官方称兼容 OpenAI Chat Completions 格式)\n- **流式**:SSE(OpenAI 标准,推断)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:\"现货市场\"按 task type + quality tier(Standard/Prime/Max)或 lab latest 市场路由到竞争供应商;instrument 串作为 model 名\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示\"compatible with OpenAI Chat Completions\",给出 base URL `https://api.thegrid.ai/v1` 与 Bearer 鉴权\n- **可复用模型 ID 样例**:agent-max、agent-prime、agent-standard、code-max、code-prime、text-prime、gpt-sol-latest、claude-opus-latest\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- model 字段语义为 instrument(任务/质量档)而非传统模型 ID,需文档化\n- Anthropic 端为 beta\n\n#### 5. 优先级建议\n\n- **优先级**:P1\n- **理由**:OpenAI 兼容协议证据强、接入简单(仅改 base URL),近期接入价值高\n\n---\n\n### thinkingmachines — Thinking Machines\n\n- **canonical ID**:thinkingmachines\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:\n - Anthropic 兼容:https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/anthropic\n - OpenAI 兼容:https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/openai/\n- **核验来源**:官方 API 文档(Tinker Documentation)\n- **证据强度**:强(两个兼容端点均有官方文档与代码示例)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:\n - OpenAI 兼容 `https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1`(支持 `/completions` 与 `/chat/completions`)\n - Anthropic 兼容 `https://tinker.thinkingmachines.dev/services/tinker-prod/anthropic/api`(客户端追加 `/v1/messages`)\n - 注:inventory 的 base_url 指向 Anthropic 端点,非 OpenAI 端点\n- **鉴权**:方式=OpenAI 端用 Bearer(OpenAI SDK 默认);Anthropic 端用 `x-api-key` 或 `Authorization: Bearer` / 环境变量=`TINKER_API_KEY`(inventory + 文档)/ 是否必需=是\n- **endpoint 公式**:OpenAI `{base}/chat/completions`、`{base}/completions`\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic Messages 兼容)\n- **请求结构要点**:标准 OpenAI Chat Completions;model 字段传 Tinker sampler 权重路径(`tinker://...:train:0/sampler_weights/000080`)或模型名(如 `thinkingmachines/Inkling`)\n- **响应结构要点**:标准 OpenAI 结构;`/chat/completions` 支持非标准 `separate_reasoning`(默认 true)将推理置于 `reasoning_content` 字段\n- **流式**:SSE(OpenAI 标准;推理与正文分 separate_reasoning/content 事件)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:非标准 `separate_reasoning`、`reasoning_effort`(OpenAI 串或 [0.0,0.99] 浮点);model 为动态 sampler checkpoint 路径;当前为 beta,面向测试/内部低流量\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方文档给出 OpenAI 兼容 base URL 与 `/chat/completions` 代码示例,直接确认 OpenAI Completions 契约\n- **可复用模型 ID 样例**:`thinkingmachines/Inkling`、`thinkingmachines/Inkling:peft:262144`、`tinker://:train:0/sampler_weights/000080`\n- **是否需扩展共享层**:否(`separate_reasoning`/`reasoning_content` 为可选扩展,核心 OpenAI 契约无需改动)\n\n#### 4. 风险与限制\n\n- inventory base_url 错误指向 Anthropic 端点,OpenAI 薄封装需改用 `…/oai/api/v1`\n- model 标识为动态 sampler checkpoint 路径,非稳定模型 ID\n- 当前为 beta,面向测试/内部用,延迟与吞吐可能波动\n- `reasoning_effort`/`separate_reasoning` 为非标准字段\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:OpenAI 兼容协议证据强可薄封装,但为 beta 且 model 标识为动态训练 checkpoint,生产价值有限,宜后续处理\n\n---\n\n### tinfoil — Tinfoil\n\n- **canonical ID**:tinfoil\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.tinfoil.sh (Introduction);https://docs.tinfoil.sh/quickstart (含多语言 SDK 与 cURL 示例)\n- **核验来源**:官方 API 文档 + 官方 SDK\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://inference.tinfoil.sh/v1`\n- **鉴权**:方式=Bearer(`Authorization: Bearer $TINFOIL_API_KEY`)/ 环境变量=`TINFOIL_API_KEY`(inventory + 文档)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`\n- **协议类型**:OpenAI 兼容(官方称 \"OpenAI compatible inference API\",\"Drop-in Compatibility\",SDK 兼容 OpenAI API)\n- **请求结构要点**:标准 OpenAI Chat Completions(`{model, messages}`);支持 tool calling、structured outputs、image(base64/url)、document\n- **响应结构要点**:标准 OpenAI `chat.completion`(官方 SDK 直接复用 OpenAI 客户端类型)\n- **流式**:SSE(OpenAI 标准,推断)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:基于安全 enclave 的隐私推理;SDK 自动做远程证明(attestation)校验;裸 HTTP 调用为标准 OpenAI 兼容,证明校验由 SDK 侧完成\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方 quickstart 给出 `https://inference.tinfoil.sh/v1/chat/completions` 与 Bearer 鉴权,OpenAI SDK 直接可用\n- **可复用模型 ID 样例**:gpt-oss-120b、gpt-oss-safeguard-120b、gemma4-31b、glm-5-2、kimi-k2-6\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 隐私 enclave 证明校验为厂商特有,但属 SDK 侧可选行为,不影响 OpenAI 兼容线路协议\n- 模型为开源模型集合,能力以模型为准\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:OpenAI 兼容协议证据强可薄封装,但属隐私 enclave 细分场景,主流需求有限,宜后续处理\n\n---\n\n### tokenflux — Tokenflux\n\n- **canonical ID**:tokenflux\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.3\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.tokenflux.ai/quickstart (含 JS/Python/cURL 示例);https://tokenflux.ai/docs/introduction\n- **核验来源**:官方 API 文档\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://tokenflux.ai/v1`\n- **鉴权**:方式=同时接受 `Authorization: Bearer `(OpenAI SDK 默认)与 `X-Api-Key: `(cURL 示例)/ 环境变量=未知(inventory 无,建议 `TOKENFLUX_API_KEY`)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`;另有 `/v1/embeddings`、`/v1/images/generations`、`/v1/models`\n- **协议类型**:OpenAI 兼容(官方称 \"fully compatible with OpenAI's client libraries\",\"switch by simply changing the base URL and API key\")\n- **请求结构要点**:标准 OpenAI Chat Completions(`{model, messages, stream}`)\n- **响应结构要点**:标准 OpenAI `chat.completion`(`choices[0].message.content`、流式 `choices[0].delta.content`)\n- **流式**:SSE(OpenAI 标准,`stream:true`)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:200+ 模型聚合(OpenAI/Anthropic/Google/Mistral/DeepSeek 等);cURL 示例用 `X-Api-Key` 头(与 OpenAI SDK 的 Bearer 并存)\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方 quickstart 给出 `https://tokenflux.ai/v1/chat/completions` 与 OpenAI SDK/cURL 示例,直接确认 OpenAI Chat Completions 契约\n- **可复用模型 ID 样例**:gpt-4o、claude-3.5-sonnet、gemini-pro、mistral-large、deepseek-chat、anthropic/claude-3.5-sonnet(inventory)\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 鉴权头同时支持 Bearer 与 X-Api-Key,OpenAI 共享层用 Bearer 即可\n- inventory 无 base_url/env 线索,本次由搜索定位官方文档确认\n\n#### 5. 优先级建议\n\n- **优先级**:P1\n- **理由**:主流模型聚合网关,OpenAI 兼容协议证据强、接入简单,近期接入价值高\n\n---\n\n### triton — Triton\n\n- **canonical ID**:triton\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.3\n- **能力**(本次调研覆盖):chat(inventory 标注)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.nvidia.com/deeplearning/triton-inference-server/user-guide/docs/client_guide/openai_readme.html (OpenAI 兼容前端);https://docs.litellm.ai/docs/providers/triton-inference-server (litellm 集成)\n- **核验来源**:官方文档(NVIDIA Triton Inference Server)\n- **证据强度**:中(官方文档确认存在 OpenAI 兼容前端与原生 /generate 协议;但 inventory 实体无 base_url/模型/鉴权,属自托管服务器,非厂商 provider)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:用户自定义(自托管 Triton 服务器,如 `http://localhost:8000`)\n- **鉴权**:方式=默认无鉴权,可通过 `--allow-http-header` 配置 token / 环境变量=无 / 是否必需=否(取决于部署)\n- **endpoint 公式**:OpenAI 兼容前端 `{base}/v1/chat/completions`、`{base}/v1/models`、`{base}/v1/embeddings`;原生协议 `{base}/generate`、`{base}/embeddings`\n- **协议类型**:原生(Triton 原生 /generate、/embeddings)+ OpenAI 兼容前端可选\n- **请求结构要点**:OpenAI 前端为标准 Chat Completions;原生 /generate 为 `{text_input, parameters}` 等 Triton 专属结构\n- **响应结构要点**:OpenAI 前端为标准 chat.completion;原生 /generate 为 Triton 专属响应\n- **流式**:SSE(OpenAI 前端)/ 原生流式(推断)\n- **错误结构**:厂商专属(Triton 原生)/ OpenAI 兼容(前端)\n- **特有行为**:自托管推理服务器,模型由用户自行部署;litellm 以 `triton/` 前缀路由至原生 /generate\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:待定(若用 OpenAI 前端可薄封装;若用原生 /generate 则需原生实现)\n- **依据**:协议取决于选用前端还是原生端点;且为自托管,无固定 base_url/鉴权/模型\n- **可复用模型 ID 样例**:无(由部署的模型决定)\n- **是否需扩展共享层**:否(若走 OpenAI 前端)/ 是(若走原生 /generate 需原生适配)\n\n#### 4. 风险与限制\n\n- inventory 实体无 base_url/模型/鉴权线索,无法定位具体服务\n- 自托管服务器,不属于厂商 provider 范畴\n- 协议路径取决于部署配置(前端 vs 原生)\n\n#### 5. 优先级建议\n\n- **优先级**:搁置\n- **理由**:自托管推理服务器,无固定 base_url/鉴权/模型清单,不属于厂商 provider;inventory 实体线索不足,无法确定协议路径\n\n---\n\n### trustedrouter — TrustedRouter\n\n- **canonical ID**:trustedrouter\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://trustedrouter.com/docs (Quickstart + API reference)\n- **核验来源**:官方 API 文档\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://api.trustedrouter.com/v1`\n- **鉴权**:方式=Bearer(`Bearer sk-tr-…`)/ 环境变量=`TRUSTEDROUTER_API_KEY`(inventory + 文档)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`;另有 `/v1/responses`、`/v1/embeddings`、`/v1/models`\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic 兼容;官方称 \"point any OpenAI-compatible SDK at TrustedRouter\")\n- **请求结构要点**:标准 OpenAI Chat Completions;model 字段传路由别名(如 `trustedrouter/auto`、`trustedrouter/socrates`);可选 OpenRouter 兼容的 `provider` 对象(`min_privacy`、`data_collection`)\n- **响应结构要点**:标准 OpenAI `chat.completion`(官方示例用 OpenAI SDK 直接消费)\n- **流式**:SSE(OpenAI 标准,推断)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:证明网关(attested gateway);`provider.min_privacy`(zdr/confidential)硬性隐私下限;模型别名路由(auto/eu/socrates/iris/prometheus/zeus/openpatcher 等);支持 Responses API web search\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示 OpenAI 兼容,给出 base URL `https://api.trustedrouter.com/v1` 与 `/v1/chat/completions` 端点、Bearer 鉴权\n- **可复用模型 ID 样例**:trustedrouter/auto、trustedrouter/cheap、trustedrouter/e2e、trustedrouter/fast、trustedrouter/synth、trustedrouter/socrates\n- **是否需扩展共享层**:否(`provider.min_privacy` 等为可选 OpenRouter 兼容扩展,不影响核心薄封装)\n\n#### 4. 风险与限制\n\n- model 字段为路由别名而非具体模型,需文档化\n- `provider.*` 隐私字段为厂商扩展,但可选\n\n#### 5. 优先级建议\n\n- **优先级**:P1\n- **理由**:OpenAI 兼容协议证据强、接入简单(仅改 base URL + key),近期接入价值高\n"}, "7c6283c8ba6e91e6ce380cb9e8a13b99e27431ed": {"t": 1785846961.9327917, "n": 22838, "h": "45e64dcaa04bb19f", "c": "# 第 11 批调研记录(14 个 provider)\n\n本批覆盖 inventory 中 14 个 `implemented_in_aimux=false` 的 provider,按 canonical id 字母序排列。证据裁决遵循 RFC-0006 §2.1:以官方 API 文档/SDK 为首选证据,inventory 元数据(tier/protocol/openai_compatible)仅作线索。\n\n---\n\n### suno_api — SunoAPI\n\n- **canonical ID**:suno_api\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.3\n- **能力**(本次调研覆盖):inventory 标 chat,但核验后实为音乐生成模态(非 chat)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.sunoapi.org/\n- **核验来源**:官方 API 文档(docs.sunoapi.org,系第三方 Suno 代理产品 \"Suno API\" 的官方文档)\n- **证据强度**:中(官方文档可确认其为音乐生成 API;但 inventory 实体来源为 new_api 网关,与该 docs.sunoapi.org 产品是否同一对象存歧义)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://api.sunoapi.org\n- **鉴权**:方式=Bearer token(`Authorization: Bearer YOUR_API_KEY`)/ 环境变量=未知(inventory 无)/ 是否必需=是\n- **endpoint 公式**:原生音乐生成端点(音乐生成、扩展、歌词、人声分离、翻唱、音乐视频等),非 OpenAI Chat Completions\n- **协议类型**:专用模态(音乐/音频生成,原生任务式协议)\n- **请求结构要点**:任务式请求(文本描述、模型版本 V4/V4.5/V5/V5.5 等),非 `messages` 数组\n- **响应结构要点**:异步任务式(任务 ID + webhook 回调/轮询获取结果)\n- **流式**:厂商专属(宣称 20 秒流式输出,非标准 SSE chat 流)\n- **错误结构**:厂商专属\n- **特有行为**:音乐/歌词/音频处理/音乐视频;webhook 回调;按 credits 计费\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:模态专用\n- **依据**:实际为音乐生成模态 API,与 OpenAI Chat Completions 结构无关;inventory 的 chat 能力标注有误\n- **可复用模型 ID 样例**:V5_5、V5、V4.5PLUS、V4.5、V4(音乐模型版本,非 chat 模型)\n- **是否需扩展共享层**:否(不在 OpenAI chat 共享层范围)\n\n#### 4. 风险与限制\n\n- inventory 标 chat 能力与实际音乐模态不符\n- 实体来源为 new_api 网关,可能与 docs.sunoapi.org 的 \"Suno API\" 产品非同一对象\n- 音乐生成属异步任务式(回调/轮询),与同步 chat 模型差异大\n\n#### 5. 优先级建议\n\n- **优先级**:搁置\n- **理由**:音乐生成模态不在 aimux 当前 chat 适配范围;inventory 实体身份存歧义,无 chat 协议价值\n\n---\n\n### tencent_coding_plan — Tencent Coding Plan (China)\n\n- **canonical ID**:tencent_coding_plan\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1772/128947\n- **核验来源**:官方 API 文档(腾讯云)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:OpenAI 兼容 `https://api.lkeap.cloud.tencent.com/coding/v3`;Anthropic 兼容 `https://api.lkeap.cloud.tencent.com/coding/anthropic`\n- **鉴权**:方式=Bearer(套餐专属 API Key,格式 `sk-sp-xxxx`)/ 环境变量=`TENCENT_CODING_PLAN_API_KEY`(inventory)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`(OpenAI 兼容)\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic 兼容)\n- **请求结构要点**:标准 OpenAI Chat Completions(model、messages、stream 等)\n- **响应结构要点**:标准 OpenAI `chat.completion`\n- **流式**:SSE(OpenAI 标准)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:套餐专属 Key(`sk-sp-xxxx`)与预/后付费 Key(`sk-xxxx`)不互通;官方声明\"严禁 API 调用\"用于自动化脚本/批量调用(仅限编程工具交互式使用);模型库动态更新\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示\"OpenAI 兼容协议\",base URL `/coding/v3`,标准 `chat/completions`\n- **可复用模型 ID 样例**:glm-5、kimi-k2.5、hunyuan-t1、hunyuan-turbos、minimax-m2.5、tc-code-latest(auto)\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 官方禁止自动化/批量 API 调用,违规可能封禁 Key——与 aimux 作为程序化适配库的用途存在合规冲突\n- 套餐模型动态调整,部分模型已下线\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:协议上属标准 OpenAI 薄封装(证据强),但官方使用条款限制程序化 API 调用,接入需谨慎,宜后续低优先级处理\n\n---\n\n### tencent_token_plan — Tencent Token Plan\n\n- **canonical ID**:tencent_token_plan\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1823/130060\n- **核验来源**:官方 API 文档(腾讯云 TokenHub)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:OpenAI 兼容 `https://api.lkeap.cloud.tencent.com/plan/v3`;Anthropic 兼容 `https://api.lkeap.cloud.tencent.com/plan/anthropic`\n- **鉴权**:方式=Bearer / 环境变量=`TENCENT_TOKEN_PLAN_API_KEY`(inventory)/ 是否必需=是\n- **endpoint 公式**:完整 URL `https://api.lkeap.cloud.tencent.com/plan/v3/chat/completions`(OpenAI 兼容);Anthropic `…/plan/anthropic/v1/messages`\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic 兼容)\n- **请求结构要点**:标准 OpenAI Chat Completions\n- **响应结构要点**:标准 OpenAI `chat.completion`\n- **流式**:SSE(OpenAI 标准)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:通用 Token Plan 与 Hy Token Plan 共用同一 API Key 与同一 base URL;面向\"龙虾/编程\"场景的个人订阅套餐\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示\"兼容 OpenAI 接口协议工具\",给出完整 `/plan/v3/chat/completions` URL\n- **可复用模型 ID 样例**:hy3、hy3-preview(Hy 系列);通用系列另有 deepseek-v4-flash/pro、glm-5/5.1、kimi-k2.5、minimax-m2.5/m2.7、tc-code-latest(auto)\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 个人订阅套餐面向交互式编程工具,程序化批量调用存在与 coding plan 类似的合规风险\n- 通用/Hy 共用端点,需以 model 参数区分\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:协议属标准 OpenAI 薄封装(证据强),但订阅套餐使用场景受限,宜后续处理\n\n---\n\n### tencent_token_plan_enterprise_auto — 腾讯云 Token Plan / Token Plan 企业版轻享套餐\n\n- **canonical ID**:tencent_token_plan_enterprise_auto\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1823/130660\n- **核验来源**:官方 API 文档(腾讯云 TokenHub,企业版快速入门,含 cURL 请求与响应示例)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:广州 `https://tokenhub.tencentmaas.com/plan/v3`;新加坡(intl)`https://tokenhub-intl.tencentmaas.com/plan/v3`\n- **鉴权**:方式=Bearer(`Authorization: Bearer $your_api_key`)/ 环境变量=未知(inventory 无,建议 `TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY`)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI Chat Completions(`{model, messages, stream}`)\n- **响应结构要点**:`{id, object:\"chat.completion\", model, created, choices:[{index, message:{role, content, reasoning_content}, finish_reason}], usage:{prompt_tokens, completion_tokens, total_tokens, prompt_tokens_details, completion_tokens_details:{reasoning_tokens}}}`\n- **流式**:SSE(OpenAI 标准,`stream` 字段控制)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:响应含 `reasoning_content` 字段(DeepSeek 风格扩展)与 `reasoning_tokens` 用量;企业版支持按 Key 配置模型权限、独占额度、TPM 限制\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方 cURL 示例与响应体直接确认标准 OpenAI Chat Completions 契约\n- **可复用模型 ID 样例**:auto(轻享套餐可用模型较少)\n- **是否需扩展共享层**:否(`reasoning_content` 为常见 DeepSeek 风格扩展,若共享层未覆盖可作可选扩展)\n\n#### 4. 风险与限制\n\n- 企业版按 Key 限定可用模型,未授权模型返回无权限错误\n- 轻享与专业套餐可用模型集合不同\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:协议属标准 OpenAI 薄封装(证据强,含完整请求/响应示例);企业版面向组织 API 调用,合规风险低于个人版,但属订阅套餐,宜后续处理\n\n---\n\n### tencent_token_plan_enterprise_pro — 腾讯云 Token Plan / Token Plan 企业版专业套餐\n\n- **canonical ID**:tencent_token_plan_enterprise_pro\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1823/130660\n- **核验来源**:官方 API 文档(腾讯云 TokenHub,企业版快速入门,含 cURL 请求与响应示例)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:广州 `https://tokenhub.tencentmaas.com/plan/v3`;新加坡(intl)`https://tokenhub-intl.tencentmaas.com/plan/v3`\n- **鉴权**:方式=Bearer(`Authorization: Bearer $your_api_key`)/ 环境变量=未知(inventory 无,建议 `TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY`)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI Chat Completions(`{model, messages, stream}`)\n- **响应结构要点**:`{id, object:\"chat.completion\", model, created, choices:[{index, message:{role, content, reasoning_content}, finish_reason}], usage:{prompt_tokens, completion_tokens, total_tokens, prompt_tokens_details, completion_tokens_details:{reasoning_tokens}}}`\n- **流式**:SSE(OpenAI 标准)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:响应含 `reasoning_content` 与 `reasoning_tokens`;专业套餐支持自定义积分规格、按 Key 模型权限/独占额度/TPM\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方 cURL 示例与响应体直接确认标准 OpenAI Chat Completions 契约\n- **可复用模型 ID 样例**:auto、deepseek-v4-flash、deepseek-v4-flash-202605、deepseek-v4-pro、deepseek-v4-pro-202606\n- **是否需扩展共享层**:否(`reasoning_content` 为可选扩展)\n\n#### 4. 风险与限制\n\n- 与轻享套餐共用端点与协议,仅可用模型集合不同\n- 企业版按 Key 限定模型权限\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:协议属标准 OpenAI 薄封装(证据强);企业版面向组织 API 调用,合规风险低,但属订阅套餐,宜后续处理\n\n---\n\n### tencent_token_plan_general_personal — 腾讯云 Token Plan / 通用 Token Plan(个人版)\n\n- **canonical ID**:tencent_token_plan_general_personal\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1823/130060\n- **核验来源**:官方 API 文档(腾讯云 TokenHub)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:OpenAI 兼容 `https://api.lkeap.cloud.tencent.com/plan/v3`;Anthropic 兼容 `https://api.lkeap.cloud.tencent.com/plan/anthropic`\n- **鉴权**:方式=Bearer / 环境变量=未知(inventory 无)/ 是否必需=是\n- **endpoint 公式**:完整 URL `https://api.lkeap.cloud.tencent.com/plan/v3/chat/completions`\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic 兼容)\n- **请求结构要点**:标准 OpenAI Chat Completions\n- **响应结构要点**:标准 OpenAI `chat.completion`\n- **流式**:SSE(OpenAI 标准)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:通用 Token Plan 与 Hy Token Plan 共用同一 API Key 与 base URL;四档套餐(Lite/Standard/Pro/Max)按月 Token 额度计费\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示\"兼容 OpenAI 接口协议工具\"并给出完整 `/plan/v3/chat/completions` URL\n- **可复用模型 ID 样例**:deepseek-v4-flash-202605、deepseek-v4-pro-202606、glm-5、glm-5.1、kimi-k2.5、minimax-m2.5/m2.7、tc-code-latest(auto)\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 个人订阅套餐面向交互式编程工具,程序化批量调用存在合规风险\n- 与 tencent_token_plan / tencent_token_plan_hy_personal 共用同一端点,区别仅在套餐与可用模型\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:协议属标准 OpenAI 薄封装(证据强),但订阅套餐使用场景受限,宜后续处理\n\n---\n\n### tencent_token_plan_hy_personal — 腾讯云 Token Plan / Hy Token Plan(个人版)\n\n- **canonical ID**:tencent_token_plan_hy_personal\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1823/130060\n- **核验来源**:官方 API 文档(腾讯云 TokenHub)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:OpenAI 兼容 `https://api.lkeap.cloud.tencent.com/plan/v3`;Anthropic 兼容 `https://api.lkeap.cloud.tencent.com/plan/anthropic`\n- **鉴权**:方式=Bearer / 环境变量=未知(inventory 无)/ 是否必需=是\n- **endpoint 公式**:完整 URL `https://api.lkeap.cloud.tencent.com/plan/v3/chat/completions`\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic 兼容)\n- **请求结构要点**:标准 OpenAI Chat Completions\n- **响应结构要点**:标准 OpenAI `chat.completion`\n- **流式**:SSE(OpenAI 标准)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:Hy Token Plan 仅提供 Hy3 模型;与通用 Token Plan 共用同一 API Key 与 base URL\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示\"兼容 OpenAI 接口协议工具\"并给出完整 `/plan/v3/chat/completions` URL\n- **可复用模型 ID 样例**:hy3、hy3-preview\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 个人订阅套餐,程序化批量调用存在合规风险\n- 与通用 Token Plan 共用端点,仅模型集合不同\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:协议属标准 OpenAI 薄封装(证据强),但订阅套餐使用场景受限,宜后续处理\n\n---\n\n### tencent_tokenhub — Tencent TokenHub\n\n- **canonical ID**:tencent_tokenhub\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://cloud.tencent.com/document/product/1823/130050 (产品简介);https://cloud.tencent.com/document/product/1823/130058 (快速入门,含 cURL/多语言 SDK 示例)\n- **核验来源**:官方 API 文档(腾讯云)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://tokenhub.tencentmaas.com/v1`\n- **鉴权**:方式=Bearer(`Authorization: Bearer YOUR_API_KEY`)/ 环境变量=`TENCENT_TOKENHUB_API_KEY`(inventory)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`\n- **协议类型**:OpenAI 兼容(官方明示\"大模型服务平台 TokenHub 兼容 OpenAI API 协议\")\n- **请求结构要点**:标准 OpenAI Chat Completions(`{model, messages, stream}`)\n- **响应结构要点**:标准 OpenAI `chat.completion`(官方示例用 OpenAI SDK 直接消费)\n- **流式**:SSE(OpenAI 标准,`stream:true`)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:一站式聚合平台(混元/DeepSeek/MiniMax/Kimi/GLM/通义千问等),统一 API;支持文本/图片/视频/3D 多能力;按 Token 计费(非订阅套餐)\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方快速入门给出 `https://tokenhub.tencentmaas.com/v1/chat/completions` 与 OpenAI SDK/cURL 示例,直接确认 OpenAI Chat Completions 契约\n- **可复用模型 ID 样例**:hy3、hy3-preview(inventory);平台另支持 deepseek-v3 等多厂商模型\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 平台聚合多厂商模型,单模型能力/参数支持以模型列表为准\n- 与 Token Plan/Coding Plan 等订阅套餐的 base URL 与 Key 不互通\n\n#### 5. 优先级建议\n\n- **优先级**:P1\n- **理由**:主流国产模型聚合平台,OpenAI 兼容协议证据强、按量计费无订阅合规限制,近期接入价值高\n\n---\n\n### the_grid_ai — The Grid AI\n\n- **canonical ID**:the_grid_ai\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://thegrid.ai/docs (Overview,给出 Consumption API base URL 与鉴权)\n- **核验来源**:官方 API 文档\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:OpenAI Chat Completions `https://api.thegrid.ai/v1`;Anthropic Messages(beta)`https://messages-beta.api.thegrid.ai/v1`\n- **鉴权**:方式=Bearer(OpenAI,`Authorization: Bearer `);Anthropic 端用 `x-api-key: ` / 环境变量=`THEGRIDAI_API_KEY`(inventory)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`(OpenAI 兼容)\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic Messages 兼容)\n- **请求结构要点**:标准 OpenAI Chat Completions;`model` 字段传 instrument 字符串(如 `text-prime`、`code-prime`、`claude-opus-latest`)而非具体模型名\n- **响应结构要点**:标准 OpenAI `chat.completion`(官方称兼容 OpenAI Chat Completions 格式)\n- **流式**:SSE(OpenAI 标准,推断)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:\"现货市场\"按 task type + quality tier(Standard/Prime/Max)或 lab latest 市场路由到竞争供应商;instrument 串作为 model 名\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示\"compatible with OpenAI Chat Completions\",给出 base URL `https://api.thegrid.ai/v1` 与 Bearer 鉴权\n- **可复用模型 ID 样例**:agent-max、agent-prime、agent-standard、code-max、code-prime、text-prime、gpt-sol-latest、claude-opus-latest\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- model 字段语义为 instrument(任务/质量档)而非传统模型 ID,需文档化\n- Anthropic 端为 beta\n\n#### 5. 优先级建议\n\n- **优先级**:P1\n- **理由**:OpenAI 兼容协议证据强、接入简单(仅改 base URL),近期接入价值高\n\n---\n\n### thinkingmachines — Thinking Machines\n\n- **canonical ID**:thinkingmachines\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:\n - Anthropic 兼容:https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/anthropic\n - OpenAI 兼容:https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/openai/\n- **核验来源**:官方 API 文档(Tinker Documentation)\n- **证据强度**:强(两个兼容端点均有官方文档与代码示例)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:\n - OpenAI 兼容 `https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1`(支持 `/completions` 与 `/chat/completions`)\n - Anthropic 兼容 `https://tinker.thinkingmachines.dev/services/tinker-prod/anthropic/api`(客户端追加 `/v1/messages`)\n - 注:inventory 的 base_url 指向 Anthropic 端点,非 OpenAI 端点\n- **鉴权**:方式=OpenAI 端用 Bearer(OpenAI SDK 默认);Anthropic 端用 `x-api-key` 或 `Authorization: Bearer` / 环境变量=`TINKER_API_KEY`(inventory + 文档)/ 是否必需=是\n- **endpoint 公式**:OpenAI `{base}/chat/completions`、`{base}/completions`\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic Messages 兼容)\n- **请求结构要点**:标准 OpenAI Chat Completions;model 字段传 Tinker sampler 权重路径(`tinker://...:train:0/sampler_weights/000080`)或模型名(如 `thinkingmachines/Inkling`)\n- **响应结构要点**:标准 OpenAI 结构;`/chat/completions` 支持非标准 `separate_reasoning`(默认 true)将推理置于 `reasoning_content` 字段\n- **流式**:SSE(OpenAI 标准;推理与正文分 separate_reasoning/content 事件)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:非标准 `separate_reasoning`、`reasoning_effort`(OpenAI 串或 [0.0,0.99] 浮点);model 为动态 sampler checkpoint 路径;当前为 beta,面向测试/内部低流量\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方文档给出 OpenAI 兼容 base URL 与 `/chat/completions` 代码示例,直接确认 OpenAI Completions 契约\n- **可复用模型 ID 样例**:`thinkingmachines/Inkling`、`thinkingmachines/Inkling:peft:262144`、`tinker://:train:0/sampler_weights/000080`\n- **是否需扩展共享层**:否(`separate_reasoning`/`reasoning_content` 为可选扩展,核心 OpenAI 契约无需改动)\n\n#### 4. 风险与限制\n\n- inventory base_url 错误指向 Anthropic 端点,OpenAI 薄封装需改用 `…/oai/api/v1`\n- model 标识为动态 sampler checkpoint 路径,非稳定模型 ID\n- 当前为 beta,面向测试/内部用,延迟与吞吐可能波动\n- `reasoning_effort`/`separate_reasoning` 为非标准字段\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:OpenAI 兼容协议证据强可薄封装,但为 beta 且 model 标识为动态训练 checkpoint,生产价值有限,宜后续处理\n\n---\n\n### tinfoil — Tinfoil\n\n- **canonical ID**:tinfoil\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.tinfoil.sh (Introduction);https://docs.tinfoil.sh/quickstart (含多语言 SDK 与 cURL 示例)\n- **核验来源**:官方 API 文档 + 官方 SDK\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://inference.tinfoil.sh/v1`\n- **鉴权**:方式=Bearer(`Authorization: Bearer $TINFOIL_API_KEY`)/ 环境变量=`TINFOIL_API_KEY`(inventory + 文档)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`\n- **协议类型**:OpenAI 兼容(官方称 \"OpenAI compatible inference API\",\"Drop-in Compatibility\",SDK 兼容 OpenAI API)\n- **请求结构要点**:标准 OpenAI Chat Completions(`{model, messages}`);支持 tool calling、structured outputs、image(base64/url)、document\n- **响应结构要点**:标准 OpenAI `chat.completion`(官方 SDK 直接复用 OpenAI 客户端类型)\n- **流式**:SSE(OpenAI 标准,推断)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:基于安全 enclave 的隐私推理;SDK 自动做远程证明(attestation)校验;裸 HTTP 调用为标准 OpenAI 兼容,证明校验由 SDK 侧完成\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方 quickstart 给出 `https://inference.tinfoil.sh/v1/chat/completions` 与 Bearer 鉴权,OpenAI SDK 直接可用\n- **可复用模型 ID 样例**:gpt-oss-120b、gpt-oss-safeguard-120b、gemma4-31b、glm-5-2、kimi-k2-6\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 隐私 enclave 证明校验为厂商特有,但属 SDK 侧可选行为,不影响 OpenAI 兼容线路协议\n- 模型为开源模型集合,能力以模型为准\n\n#### 5. 优先级建议\n\n- **优先级**:P2\n- **理由**:OpenAI 兼容协议证据强可薄封装,但属隐私 enclave 细分场景,主流需求有限,宜后续处理\n\n---\n\n### tokenflux — Tokenflux\n\n- **canonical ID**:tokenflux\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.3\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.tokenflux.ai/quickstart (含 JS/Python/cURL 示例);https://tokenflux.ai/docs/introduction\n- **核验来源**:官方 API 文档\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://tokenflux.ai/v1`\n- **鉴权**:方式=同时接受 `Authorization: Bearer `(OpenAI SDK 默认)与 `X-Api-Key: `(cURL 示例)/ 环境变量=未知(inventory 无,建议 `TOKENFLUX_API_KEY`)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`;另有 `/v1/embeddings`、`/v1/images/generations`、`/v1/models`\n- **协议类型**:OpenAI 兼容(官方称 \"fully compatible with OpenAI's client libraries\",\"switch by simply changing the base URL and API key\")\n- **请求结构要点**:标准 OpenAI Chat Completions(`{model, messages, stream}`)\n- **响应结构要点**:标准 OpenAI `chat.completion`(`choices[0].message.content`、流式 `choices[0].delta.content`)\n- **流式**:SSE(OpenAI 标准,`stream:true`)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:200+ 模型聚合(OpenAI/Anthropic/Google/Mistral/DeepSeek 等);cURL 示例用 `X-Api-Key` 头(与 OpenAI SDK 的 Bearer 并存)\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方 quickstart 给出 `https://tokenflux.ai/v1/chat/completions` 与 OpenAI SDK/cURL 示例,直接确认 OpenAI Chat Completions 契约\n- **可复用模型 ID 样例**:gpt-4o、claude-3.5-sonnet、gemini-pro、mistral-large、deepseek-chat、anthropic/claude-3.5-sonnet(inventory)\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 鉴权头同时支持 Bearer 与 X-Api-Key,OpenAI 共享层用 Bearer 即可\n- inventory 无 base_url/env 线索,本次由搜索定位官方文档确认\n\n#### 5. 优先级建议\n\n- **优先级**:P1\n- **理由**:主流模型聚合网关,OpenAI 兼容协议证据强、接入简单,近期接入价值高\n\n---\n\n### triton — Triton\n\n- **canonical ID**:triton\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.3\n- **能力**(本次调研覆盖):chat(inventory 标注)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.nvidia.com/deeplearning/triton-inference-server/user-guide/docs/client_guide/openai_readme.html (OpenAI 兼容前端);https://docs.litellm.ai/docs/providers/triton-inference-server (litellm 集成)\n- **核验来源**:官方文档(NVIDIA Triton Inference Server)\n- **证据强度**:中(官方文档确认存在 OpenAI 兼容前端与原生 /generate 协议;但 inventory 实体无 base_url/模型/鉴权,属自托管服务器,非厂商 provider)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:用户自定义(自托管 Triton 服务器,如 `http://localhost:8000`)\n- **鉴权**:方式=默认无鉴权,可通过 `--allow-http-header` 配置 token / 环境变量=无 / 是否必需=否(取决于部署)\n- **endpoint 公式**:OpenAI 兼容前端 `{base}/v1/chat/completions`、`{base}/v1/models`、`{base}/v1/embeddings`;原生协议 `{base}/generate`、`{base}/embeddings`\n- **协议类型**:原生(Triton 原生 /generate、/embeddings)+ OpenAI 兼容前端可选\n- **请求结构要点**:OpenAI 前端为标准 Chat Completions;原生 /generate 为 `{text_input, parameters}` 等 Triton 专属结构\n- **响应结构要点**:OpenAI 前端为标准 chat.completion;原生 /generate 为 Triton 专属响应\n- **流式**:SSE(OpenAI 前端)/ 原生流式(推断)\n- **错误结构**:厂商专属(Triton 原生)/ OpenAI 兼容(前端)\n- **特有行为**:自托管推理服务器,模型由用户自行部署;litellm 以 `triton/` 前缀路由至原生 /generate\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:待定(若用 OpenAI 前端可薄封装;若用原生 /generate 则需原生实现)\n- **依据**:协议取决于选用前端还是原生端点;且为自托管,无固定 base_url/鉴权/模型\n- **可复用模型 ID 样例**:无(由部署的模型决定)\n- **是否需扩展共享层**:否(若走 OpenAI 前端)/ 是(若走原生 /generate 需原生适配)\n\n#### 4. 风险与限制\n\n- inventory 实体无 base_url/模型/鉴权线索,无法定位具体服务\n- 自托管服务器,不属于厂商 provider 范畴\n- 协议路径取决于部署配置(前端 vs 原生)\n\n#### 5. 优先级建议\n\n- **优先级**:搁置\n- **理由**:自托管推理服务器,无固定 base_url/鉴权/模型清单,不属于厂商 provider;inventory 实体线索不足,无法确定协议路径\n\n---\n\n### trustedrouter — TrustedRouter\n\n- **canonical ID**:trustedrouter\n- **aliases**:无\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://trustedrouter.com/docs (Quickstart + API reference)\n- **核验来源**:官方 API 文档\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://api.trustedrouter.com/v1`\n- **鉴权**:方式=Bearer(`Bearer sk-tr-…`)/ 环境变量=`TRUSTEDROUTER_API_KEY`(inventory + 文档)/ 是否必需=是\n- **endpoint 公式**:`{base}/chat/completions`;另有 `/v1/responses`、`/v1/embeddings`、`/v1/models`\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic 兼容;官方称 \"point any OpenAI-compatible SDK at TrustedRouter\")\n- **请求结构要点**:标准 OpenAI Chat Completions;model 字段传路由别名(如 `trustedrouter/auto`、`trustedrouter/socrates`);可选 OpenRouter 兼容的 `provider` 对象(`min_privacy`、`data_collection`)\n- **响应结构要点**:标准 OpenAI `chat.completion`(官方示例用 OpenAI SDK 直接消费)\n- **流式**:SSE(OpenAI 标准,推断)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:证明网关(attested gateway);`provider.min_privacy`(zdr/confidential)硬性隐私下限;模型别名路由(auto/eu/socrates/iris/prometheus/zeus/openpatcher 等);支持 Responses API web search\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示 OpenAI 兼容,给出 base URL `https://api.trustedrouter.com/v1` 与 `/v1/chat/completions` 端点、Bearer 鉴权\n- **可复用模型 ID 样例**:trustedrouter/auto、trustedrouter/cheap、trustedrouter/e2e、trustedrouter/fast、trustedrouter/synth、trustedrouter/socrates\n- **是否需扩展共享层**:否(`provider.min_privacy` 等为可选 OpenRouter 兼容扩展,不影响核心薄封装)\n\n#### 4. 风险与限制\n\n- model 字段为路由别名而非具体模型,需文档化\n- `provider.*` 隐私字段为厂商扩展,但可选\n\n#### 5. 优先级建议\n\n- **优先级**:P1\n- **理由**:OpenAI 兼容协议证据强、接入简单(仅改 base URL + key),近期接入价值高\n"}}, "docs/internal/model-config-research/batch-06.md": {"5b352e19b5717ed5ba775e097bed1f6fd81c2095": {"t": 1785809842.8410938, "n": 66188, "h": "829fcf6c360c19ed", "c": "# Batch 06 — Model Request Config 调研\n\n> 状态: ✅ 已完成(2026-08-01 调研)· 厂商数: 40\n> 模板见 [_template.md](_template.md) · 方法论见 [README.md](README.md)\n> 证据硬性要求: 每条目必须有例子或证明(A/B/C 级),禁止编造来源。\n\n## 厂商清单\n\n| # | id | display | base_url | env_var | profile |\n|---|---|---|---|---|---|\n| 1 | tencent | Tencent (混元/Hunyuan) | https://api.hunyuan.cloud.tencent.com/v1 | TENCENT_API_KEY | OpenAICompatProfile::full() |\n| 2 | tencent_coding_plan | Tencent Coding Plan (China) | https://api.lkeap.cloud.tencent.com/coding/v3 | TENCENT_CODING_PLAN_API_KEY | OpenAICompatProfile::full() |\n| 3 | tencent_token_plan | Tencent Token Plan | https://api.lkeap.cloud.tencent.com/plan/v3 | TENCENT_TOKEN_PLAN_API_KEY | OpenAICompatProfile::full() |\n| 4 | tencent_token_plan_enterprise_auto | 腾讯云 Token Plan / Token Plan 企业版轻享套餐 | https://tokenhub.tencentmaas.com/plan/v3 | TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY | OpenAICompatProfile::full() |\n| 5 | tencent_token_plan_enterprise_pro | 腾讯云 Token Plan / Token Plan 企业版专业套餐 | https://tokenhub.tencentmaas.com/plan/v3 | TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY | OpenAICompatProfile::full() |\n| 6 | tencent_token_plan_general_personal | 腾讯云 Token Plan / 通用 Token Plan(个人版) | https://api.lkeap.cloud.tencent.com/plan/v3 | TENCENT_TOKEN_PLAN_API_KEY | OpenAICompatProfile::full() |\n| 7 | tencent_token_plan_hy_personal | 腾讯云 Token Plan / Hy Token Plan(个人版) | https://api.lkeap.cloud.tencent.com/plan/v3 | TENCENT_TOKEN_PLAN_API_KEY | OpenAICompatProfile::full() |\n| 8 | tencent_tokenhub | Tencent TokenHub | https://tokenhub.tencentmaas.com/v1 | TENCENT_TOKENHUB_API_KEY | OpenAICompatProfile::full() |\n| 9 | tensormesh | Tensormesh | https://serverless.tensormesh.ai | YOUR_API_KEY | OpenAICompatProfile::full() |\n| 10 | the_grid_ai | The Grid AI | https://thegrid.ai/docs | THEGRIDAI_API_KEY | OpenAICompatProfile::full() |\n| 11 | thinkingmachines | Thinking Machines | https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1 | TINKER_API_KEY | OpenAICompatProfile::full() |\n| 12 | tinfoil | Tinfoil | https://inference.tinfoil.sh/v1 | TINFOIL_API_KEY | OpenAICompatProfile::full() |\n| 13 | togetherai | Together AI | https://api.together.xyz/v1 | TOGETHER_API_KEY | OpenAICompatProfile::full() |\n| 14 | tokenflux | Tokenflux | https://tokenflux.ai/v1 | TOKENFLUX_API_KEY | OpenAICompatProfile::full() |\n| 15 | tokenpony | TokenPony | https://api.tokenpony.com/v1 | TOKENPONY_API_KEY | OpenAICompatProfile::full() |\n| 16 | trustedrouter | TrustedRouter | https://api.trustedrouter.com/v1 | TRUSTEDROUTER_API_KEY | OpenAICompatProfile::full() |\n| 17 | tundra | Tundra | https://api.tundra.ai/v1 | TUNDRA_API_KEY | OpenAICompatProfile::full() |\n| 18 | umans_ai | Umans AI | https://api.code.umans.ai/v1 | UMANS_AI_API_KEY | OpenAICompatProfile::full() |\n| 19 | unorouter | UnoRouter | https://unorouter.com/en | UNOROUTER_API_KEY | OpenAICompatProfile::full() |\n| 20 | upstage | Upstage | https://api.upstage.ai/v1 | UPSTAGE_API_KEY | OpenAICompatProfile::full() |\n| 21 | v0 | v0 (Vercel) | https://api.v0.dev/v1 | V0_API_KEY | OpenAICompatProfile::full() |\n| 22 | venice | Venice | https://api.venice.ai/api/v1 | VENICE_API_KEY | OpenAICompatProfile::full() |\n| 23 | vercel | Vercel | https://api.v0.dev/v1 | VERCEL_API_KEY | OpenAICompatProfile::full() |\n| 24 | vivgrid | Vivgrid | https://api.vivgrid.com/v1 | VIVGRID_API_KEY | OpenAICompatProfile::full() |\n| 25 | volc_engine | VolcEngine | https://ark.cn-beijing.volces.com | ARK_API_KEY | OpenAICompatProfile::full() |\n| 26 | vultr | Vultr | https://api.vultrinference.com/v1 | VULTR_API_KEY | OpenAICompatProfile::full() |\n| 27 | wafer | Wafer | https://api.wafer.ai/v1 | WAFER_API_KEY | OpenAICompatProfile::full() |\n| 28 | wandb | Weights & Biases | https://api.inference.wandb.ai/v1 | WANDB_API_KEY | OpenAICompatProfile::full() |\n| 29 | xiaomi_token_plan_ams | Xiaomi Token Plan (Europe) | https://token-plan-ams.xiaomimimo.com/v1 | MIMO_API_KEY | OpenAICompatProfile::full() |\n| 30 | xiaomi_token_plan_cn | Xiaomi Token Plan (China) | https://token-plan-cn.xiaomimimo.com/v1 | MIMO_API_KEY | OpenAICompatProfile::full() |\n| 31 | xiaomi_token_plan_sgp | Xiaomi Token Plan (Singapore) | https://token-plan-sgp.xiaomimimo.com/v1 | MIMO_API_KEY | OpenAICompatProfile::full() |\n| 32 | xiaomimimo | Xiaomi MiMo | https://mimo.xiaomi.com/v1 | XIAOMI_API_KEY | OpenAICompatProfile::full() |\n| 33 | xpersona | Xpersona | /v1 | XPERSONA_API_KEY | OpenAICompatProfile::full() |\n| 34 | xunfei | Xunfei | https://spark-api-open.xf-yun.com/v1 | XUNFEI_API_PASSWORD | OpenAICompatProfile::full() |\n| 35 | zai | Zai | https://api.z.ai/api/paas/v4 | ZAI_API_KEY | OpenAICompatProfile::full() |\n| 36 | zai_coding_plan | Z.AI Coding Plan | https://api.z.ai/api/anthropic | ZHIPU_API_KEY | OpenAICompatProfile::full() |\n| 37 | zeldoc | Zeldoc | https://api.zeldoc.ai/v1 | ZELDOC_API_KEY | OpenAICompatProfile::full() |\n| 38 | zenmux | ZenMux | https://zenmux.ai/api/v1 | ZENMUX_API_KEY | OpenAICompatProfile::full() |\n| 39 | zhipu_v4 | ZhipuV4 | https://open.bigmodel.cn | ZHIPU_API_KEY | OpenAICompatProfile::full() |\n| 40 | zhipuai_coding_plan | Zhipu AI Coding Plan | https://docs.bigmodel.cn/cn/coding-plan/quick-start | ZHIPU_API_KEY | OpenAICompatProfile::full() |\n\n---\n\n## 条目\n\n### tencent — Tencent (混元/Hunyuan)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.hunyuan.cloud.tencent.com/v1` · env=`TENCENT_API_KEY`\n- **变体**:tencent_coding_plan / tencent_token_plan / tencent_tokenhub(同厂商不同入口,各自成条目)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(vision 走标准 `image_url`,支持 base64) | - | C | https://cloud.tencent.com/document/product/1729/111007 |\n| 思考机制 | TokenHub 侧 hy3/hy3-preview 支持深度思考:请求体 `thinking` 对象 + `reasoning_effort`(默认 `low`;带 tools 时 low 自动映射 high);响应含 `reasoning_content`。独立混元 API(api.hunyuan.cloud.tencent.com)文档未见 thinking 字段 | `{\"model\":\"hy3\",\"messages\":[...],\"thinking\":{\"type\":\"enabled\"}}`;响应 `\"message\":{\"content\":\"...\",\"reasoning_content\":\"...\"}` | C | https://cloud.tencent.com/document/product/1823/132252 |\n| 流式/usage | 无差异(标准 `stream_options:{\"include_usage\":true}`,usage 含 `prompt_tokens_details.cached_tokens` / `completion_tokens_details.reasoning_tokens`) | - | C | https://cloud.tencent.com/document/product/1823/132252 |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 混元独立 API 支持自定义参数 `enable_enhancement`(增强) | `{\"model\":\"hunyuan-turbos-latest\",\"messages\":[...],\"enable_enhancement\":true}` | C | https://cloud.tencent.com/document/product/1729/111007 |\n| headers/认证 | 无差异(`Authorization: Bearer $HUNYUAN_API_KEY`) | - | C | https://cloud.tencent.com/document/product/1729/111007 |\n| URL/端点 | 无差异(base_url 与官方一致) | - | C | https://cloud.tencent.com/document/product/1729/111007 |\n| 模型 ID | 版本代号:`hunyuan-turbos-latest`、`hunyuan-vision`;TokenHub 侧 `hy3` / `hy3-preview` | - | C | https://cloud.tencent.com/document/product/1823/132252 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[convert.rs](aimux-providers/src/openai/convert.rs#L1485)(apply_deepseek_override 仅按 provider_options[\"deepseek\"] 注入 thinking)\n- **差距说明**:`thinking` 对象(hy3 深度思考)与 `enable_enhancement` 无内置支持;reasoning_content 响应已支持([model.rs](aimux-providers/src/openai/model.rs#L558))。\n- **建议动作**:thinking 字段可先用 bodyOverrides 兜底;若 hy3 成为主模型,评估通用 `thinking` override(GLM 系同款,见 zai/zhipu_v4)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### tencent_coding_plan — Tencent Coding Plan (China)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.lkeap.cloud.tencent.com/coding/v3` · env=`TENCENT_CODING_PLAN_API_KEY`\n- **变体**:无(与 tencent_token_plan 并列,Coding Plan 偏编程场景)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 套餐内模型(hy3 系)沿用 TokenHub 深度思考机制(`thinking.type.enabled`),未见独立文档,标 ⚠️ | 同 tencent 条目 `{\"thinking\":{\"type\":\"enabled\"}}` | C(⚠️) | https://cloud.tencent.com/document/product/1823/130092 |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + Coding Plan 专用 API Key) | - | C | https://cloud.tencent.com/document/product/1823/130092 |\n| URL/端点 | 无差异(`https://api.lkeap.cloud.tencent.com/coding/v3` 与官方一致;另提供 Anthropic 兼容端点 `/coding/anthropic`) | - | C | https://cloud.tencent.com/document/product/1823/130092 |\n| 模型 ID | 套餐配额制模型(hy3 等),未见独立代号 | - | C | https://cloud.tencent.com/document/product/1823/130092 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(除 thinking 字段,同 tencent)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1915)\n- **差距说明**:无独立差距;thinking 覆盖见 tencent 条目。\n- **建议动作**:无需动作(bodyOverrides 兜底 thinking)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:thinking 机制 ⚠️(推断自 TokenHub hy3 文档,套餐内模型清单未单独确认)\n\n### tencent_token_plan — Tencent Token Plan\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.lkeap.cloud.tencent.com/plan/v3` · env=`TENCENT_TOKEN_PLAN_API_KEY`\n- **变体**:tencent_token_plan_general_personal / tencent_token_plan_hy_personal(个人版,同 base_url);tencent_token_plan_enterprise_auto / tencent_token_plan_enterprise_pro(企业版,base_url=`https://tokenhub.tencentmaas.com/plan/v3`,env=`TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY`)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 套餐内模型沿用 TokenHub 深度思考(`thinking.type.enabled` / `enable_thinking` 按模型族),未单列文档 ⚠️ | 同 tencent 条目 | C(⚠️) | https://cloud.tencent.com/developer/article/2675771 |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + Token Plan 专用 API Key) | - | C | https://intl.cloud.tencent.com/document/product/1300/81317 |\n| URL/端点 | 无差异(`/plan/v3` 与官方一致;另支持 Anthropic 兼容接口) | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| 模型 ID | 套餐内多模型(qwen/hy3/deepseek 等),按网关路由 | - | C | https://cloud.tencent.com/developer/article/2675771 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(除 thinking 字段,同 tencent)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1924)\n- **差距说明**:企业版两个条目仅套餐差异,request 层无差别,可合并。\n- **建议动作**:无需动作;思考类字段 bodyOverrides 兜底。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制 ⚠️(推断)\n\n### tencent_token_plan_enterprise_auto — Tencent Token Plan 企业版轻享套餐\n\n- **registry 现状**:profile=`full()` · base_url=`https://tokenhub.tencentmaas.com/plan/v3` · env=`TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY`\n- **变体**:无(**并入主条目 tencent_token_plan**——同套餐体系,仅 base_url 指向 tokenhub.tencentmaas.com 子路径 `/plan/v3`,request 构造差异与主条目一致)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(并入主条目) | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 同主条目(TokenHub 深度思考 `thinking.type.enabled` / `enable_thinking` by-model,⚠️ 推断) | - | C(⚠️) | 见 tencent_tokenhub |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + 企业版专用 Key) | - | C | https://cloud.tencent.com/document/product/1823/130092 |\n| URL/端点 | 无差异(`/plan/v3` 子路径为套餐入口) | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| 模型 ID | 同主条目 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1933)\n- **差距说明**:与 tencent_token_plan 仅套餐/额度差异,request 层相同。\n- **建议动作**:无需动作(可与主条目合并声明)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制 ⚠️(推断)\n\n### tencent_token_plan_enterprise_pro — Tencent Token Plan 企业版专业套餐\n\n- **registry 现状**:profile=`full()` · base_url=`https://tokenhub.tencentmaas.com/plan/v3` · env=`TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY`\n- **变体**:无(**并入主条目 tencent_token_plan**,与 enterprise_auto 仅套餐档位差异)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(并入主条目) | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 同主条目(⚠️ 推断) | - | C(⚠️) | 见 tencent_tokenhub |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + 企业版专用 Key) | - | C | https://cloud.tencent.com/document/product/1823/130092 |\n| URL/端点 | 无差异 | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| 模型 ID | 同主条目 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1942)\n- **差距说明**:无独立差距。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制 ⚠️(推断)\n\n### tencent_token_plan_general_personal — Tencent Token Plan 通用(个人版)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.lkeap.cloud.tencent.com/plan/v3` · env=`TENCENT_TOKEN_PLAN_API_KEY`\n- **变体**:无(**并入主条目 tencent_token_plan**,同 base_url 与 env)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(并入主条目) | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 同主条目(⚠️ 推断) | - | C(⚠️) | 见 tencent_tokenhub |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + 个人版 Key) | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| URL/端点 | 无差异 | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| 模型 ID | 同主条目 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1951)\n- **差距说明**:与 tencent_token_plan 完全同构。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制 ⚠️(推断)\n\n### tencent_token_plan_hy_personal — Tencent Token Plan Hy(个人版)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.lkeap.cloud.tencent.com/plan/v3` · env=`TENCENT_TOKEN_PLAN_API_KEY`\n- **变体**:无(**并入主条目 tencent_token_plan**;\"Hy\" 指套餐内主推混元 hy3 模型)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(并入主条目) | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 套餐主打 hy3,深度思考 `thinking.type.enabled` 直接适用(⚠️ 推断) | `{\"model\":\"hy3\",\"messages\":[...],\"thinking\":{\"type\":\"enabled\"}}` | C(⚠️) | https://cloud.tencent.com/document/product/1823/132252 |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + 个人版 Key) | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| URL/端点 | 无差异 | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| 模型 ID | 同主条目(hy3 系) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(thinking 同 tencent)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1960)\n- **差距说明**:无独立差距。\n- **建议动作**:无需动作(bodyOverrides 兜底 thinking)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制 ⚠️(推断)\n\n### tencent_tokenhub — Tencent TokenHub\n\n- **registry 现状**:profile=`full()` · base_url=`https://tokenhub.tencentmaas.com/v1` · env=`TENCENT_TOKENHUB_API_KEY`\n- **变体**:无(网关本体;token_plan_enterprise_* 走 `/plan/v3` 子路径)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | **by-model 两套思考开关**:Qwen3.5 系用顶层布尔 `enable_thinking`(默认开启)+ `preserve_thinking` + 消息内 `/think`、`/no_think` prompt 开关;hy3 系用 `thinking` 对象 | `{\"model\":\"qwen3.5-plus\",\"messages\":[...],\"enable_thinking\":false}`(可关);`{\"model\":\"hy3\",\"messages\":[...],\"thinking\":{\"type\":\"enabled\"}}` | C | https://cloud.tencent.com/document/product/1823/132247 ;https://cloud.tencent.com/document/product/1823/132252 |\n| 流式/usage | 无差异(标准 include_usage) | - | C | https://cloud.tencent.com/document/product/1823/132252 |\n| 消息格式 | 推理过程统一 `reasoning_content` 字段 | - | C | https://cloud.tencent.com/document/product/1823/132247 |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + TokenHub API Key) | - | C | https://cloud.tencent.com/document/product/1823/132247 |\n| URL/端点 | 无差异(`/v1` 与官方一致;hy3 同时兼容 Responses / Anthropic 协议) | - | C | https://cloud.tencent.com/document/product/1823/132252 |\n| 模型 ID | 网关聚合多模型族:`qwen3.5-plus`、`hy3`、`hy3-preview` 等 | - | C | https://cloud.tencent.com/document/product/1823/132247 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1969)\n- **差距说明**:`enable_thinking`/`thinking` 均需 bodyOverrides;`/think`、`/no_think` 是消息内容层面的协议,aimux 无内置(需用户拼进 prompt)。\n- **建议动作**:bodyOverrides 兜底;若做 reasoningMap,TokenHub 是\"一网关双机制\"的典型样例,需要 by-model 映射。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### tensormesh — Tensormesh\n\n- **registry 现状**:profile=`full()` · base_url=`https://serverless.tensormesh.ai` · env=`YOUR_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | tools 支持但**每个 tool 必须带非空 description**,否则 400 | `{\"tools\":[{\"type\":\"function\",\"function\":{\"name\":\"get_weather\",\"description\":\"...\",\"parameters\":{...}}}]}` | C | https://docs.litellm.ai/docs/providers/tensormesh |\n| 思考机制 | 思考模式走 **vLLM chat-template 控制**:`chat_template_kwargs` 传 `thinking` + `reasoning_effort`;输出在 `reasoning_content` | `extra_body={\"chat_template_kwargs\":{\"thinking\":true,\"reasoning_effort\":\"high\"}}` | C | https://docs.litellm.ai/docs/providers/tensormesh |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer);litellm 侧 env 名为 `TENSORMESH_INFERENCE_API_KEY`,registry 的 `YOUR_API_KEY` 是占位符 | - | C | https://docs.litellm.ai/docs/providers/tensormesh |\n| URL/端点 | **registry 缺 `/v1` 后缀**:litellm/官方默认 `https://serverless.tensormesh.ai/v1` | `POST https://serverless.tensormesh.ai/v1/chat/completions` | C | https://docs.litellm.ai/docs/providers/tensormesh |\n| 模型 ID | catalog 式前缀模型:`openai/gpt-oss-120b`、`MiniMaxAI/MiniMax-M2.5`、`deepseek-ai/DeepSeek-V4-Flash` | - | C | https://docs.litellm.ai/docs/providers/tensormesh |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1978)\n- **差距说明**:base_url 少 `/v1`([model.rs](aimux-providers/src/openai/model.rs#L73) 拼接后变 `.../chat/completions`,非 `.../v1/chat/completions`);`chat_template_kwargs` 思考开关需 bodyOverrides。\n- **建议动作**:registry base_url 补 `/v1`;思考用 bodyOverrides。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### the_grid_ai — The Grid AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://thegrid.ai/docs` · env=`THEGRIDAI_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_tokens` 已废弃,建议 `max_completion_tokens`) | - | C | https://thegrid.ai/docs/api-reference/consumption-api |\n| 能力支持 | 无差异(tools/tool_choice/response_format/logprobs/seed 全支持) | - | C | https://thegrid.ai/docs/api-reference/consumption-api |\n| 思考机制 | `reasoning_effort`(none/minimal/low/medium/high/xhigh)标准透传 | `{\"model\":\"text-prime\",\"messages\":[...],\"reasoning_effort\":\"high\"}` | C | https://thegrid.ai/docs/api-reference/consumption-api |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | **OpenRouter 风格路由字段**:`provider` 对象、`route:\"fallback\"`、`safety_identifier`、`prompt_cache_key`、`prompt_cache_retention`、`service_tier`(auto/default/flex/scale/priority)、`web_search_options`、`verbosity` | `{\"model\":\"text-prime\",\"provider\":{\"allow_fallbacks\":true},\"route\":\"fallback\",\"safety_identifier\":\"...\"}` | C | https://thegrid.ai/docs/api-reference/consumption-api |\n| headers/认证 | OpenAI 面 `Authorization: Bearer`;Anthropic 面(`https://messages-beta.api.thegrid.ai/v1`)用 `x-api-key` | - | C | https://thegrid.ai/docs/api-reference/consumption-api |\n| URL/端点 | **registry base_url 是 docs 页面**;真实 API 为 `https://api.thegrid.ai/v1` | `POST https://api.thegrid.ai/v1/chat/completions` | C | https://thegrid.ai/docs/api-reference/consumption-api |\n| 模型 ID | 模型=instrument 代号:`text-prime`、`code-max`、`claude-opus-latest`(非 org 前缀) | - | C | https://thegrid.ai/docs/api-reference/consumption-api |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1987)\n- **差距说明**:base_url 错误(docs 页不是 API 端点);provider/route/safety_identifier 等路由字段无内置(bodyOverrides 可兜底)。\n- **建议动作**:registry base_url 改为 `https://api.thegrid.ai/v1`;特殊字段文档化走 bodyOverrides。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### thinkingmachines — Thinking Machines (Tinker)\n\n- **registry 现状**:profile=`full()` · base_url=`https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1` · env=`TINKER_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 训练/推理 API,思考行为取决于权重路径(sampler weight),无独立开关字段证据 | - | C(⚠️) | https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/openai/ |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer,`{env:TINKER_API_KEY}` 官方示例) | - | C | https://tinker-docs.thinkingmachines.ai/tutorials/deployment/opencode/ |\n| URL/端点 | 无差异(registry 与官方 OAI 端点完全一致) | `POST https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1/chat/completions` | C | https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/openai/ |\n| 模型 ID | **模型名 = Tinker 采样器权重路径**:`tinker://0034d8c9...`(非普通模型代号) | `{\"model\":\"tinker://0034d8c9...\",\"messages\":[...]}` | C | https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/openai/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1996)\n- **差距说明**:无(模型 ID 特殊但 aimux 直接透传 model 字段,无需转换)。\n- **建议动作**:补文档说明模型名须为 `tinker://` 权重路径;无需代码改动。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制无直接证据(本厂商为训练 API,chat 面用于权重推理)\n\n### tinfoil — Tinfoil\n\n- **registry 现状**:profile=`full()` · base_url=`https://inference.tinfoil.sh/v1` · env=`TINFOIL_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(tool calling、structured outputs、多模态 base64、文档处理均 OpenAI 兼容) | - | C | https://docs.tinfoil.sh/introduction |\n| 思考机制 | 无差异(无独立开关证据) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | SDK 额外做远端 attestation 验证(传输层,非请求体字段),请求体无特殊字段 | - | C | https://docs.tinfoil.sh/introduction |\n| headers/认证 | 无差异(Bearer;SDK 同时校验 enclave 证明) | `curl -X POST https://inference.tinfoil.sh/v1/chat/completions -H \"Content-Type...\"` | C | https://tinfoil.sh/inference |\n| URL/端点 | 无差异 | - | C | https://tinfoil.sh/inference |\n| 模型 ID | 未确认模型清单 ⚠️(docs 未列出 model ID 表) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2005)\n- **差距说明**:无 request 层差距(attestation 属传输层,不在 aimux 范围)。\n- **建议动作**:无需动作;模型 ID 待补。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:模型 ID 清单证据不足\n\n### togetherai — Together AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.together.xyz/v1` · env=`TOGETHER_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_tokens` 标准用法;支持 `stop`) | - | C | https://docs.together.ai/docs/inference/chat/parameters |\n| 能力支持 | 无差异(temperature/top_p/**top_k**/seed/repetition_penalty;`response_format` json_schema 结构化输出;tools/logprobs 均支持) | `{\"model\":\"meta-llama/Llama-3.3-70B-Instruct-Turbo\",\"messages\":[...],\"max_tokens\":100,\"stop\":[\"\\n\\n\"],\"seed\":42,\"top_k\":40}` | C | https://docs.together.ai/docs/inference/chat/parameters |\n| 思考机制 | 推理模型(如 DeepSeek-R1)无独立开关字段证据;输出 reasoning_content 标准 | - | - | - |\n| 流式/usage | 无差异(标准 SSE) | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | - | - |\n| URL/端点 | 无差异 | - | C | https://docs.together.ai/docs/inference/chat/overview |\n| 模型 ID | **org 前缀模型名**:`meta-llama/Llama-3.3-70B-Instruct-Turbo`、`deepseek-ai/DeepSeek-R1` 等(直接透传即可) | - | C | https://docs.together.ai/docs/inference/chat/parameters |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2014);top_k 白名单 [convert.rs](aimux-providers/src/openai/convert.rs#L1111)\n- **差距说明**:无(full() 已覆盖 top_k/tools/response_format/usage)。\n- **建议动作**:补一条结构化输出 + top_k 的 cassette 测试即可。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### tokenflux — TokenFlux\n\n- **registry 现状**:profile=`full()` · base_url=`https://tokenflux.ai/v1` · env=`TOKENFLUX_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(Models/Chat Completions/Messages/Embeddings/Images API 齐备) | - | C | https://tokenflux.ai/docs/introduction |\n| 思考机制 | 无差异(未见独立开关文档) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 管理面用 `X-Api-Key`(projects 接口);模型推理面 OpenAI 兼容 Bearer ⚠️ 推理面 header 细节未逐条确认 | - | C(⚠️) | https://tokenflux.ai/ |\n| URL/端点 | **双 base URL**:推荐 `https://tokenflux.ai/openai/v1`(drop-in),`https://tokenflux.ai/v1` 亦可;registry 用后者 | `POST https://tokenflux.ai/openai/v1/chat/completions` | C | https://tokenflux.ai/docs/api-reference/embeddings |\n| 模型 ID | 未逐一确认 ⚠️ | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2024)\n- **差距说明**:无 request 构造差距。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:推理面认证 header 细节、模型 ID 清单证据不足\n\n### tokenpony — TokenPony(小马算力)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.tokenpony.com/v1` · env=`TOKENPONY_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(DeepSeek/GLM/MiniMax 等聚合,兼容 OpenAI 规范) | - | C | https://www.tokenpony.cn/ |\n| 思考机制 | 透传上游(deepseek 系 reasoning),无独立开关文档 ⚠️ | - | C(⚠️) | https://www.tokenpony.cn/ |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer 聚合网关) | - | C | https://www.tokenpony.cn/ |\n| URL/端点 | **registry 域名存疑**:官方为 `www.tokenpony.cn` / `api.tokenpony.cn/v1`(chats 项目同);registry 写 `api.tokenpony.com` ⚠️ | `https://api.tokenpony.cn/v1/chat/completions` | B | [chats/doc/zh-CN/release-notes/1.8.1.md](reference/chats/doc/zh-CN/release-notes/1.8.1.md#L151) ;https://www.tokenpony.cn/ |\n| 模型 ID | 上游模型直通(`deepseek-v3.*` 等,chats 1.9.1 提及) | - | B | [chats/doc/zh-CN/release-notes/1.9.1.md](reference/chats/doc/zh-CN/release-notes/1.9.1.md#L126) |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 域名待核)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2032)\n- **差距说明**:`.com` vs `.cn` 域名差异需实测确认哪个可解析/可服务;若 `.cn` 为真则 registry 需修正。\n- **建议动作**:实测两个域名连通性后修正 base_url。\n\n#### 3. 证据与验证\n\n- **证据等级**:B+C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:base_url 域名 ⚠️\n\n### trustedrouter — TrustedRouter\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.trustedrouter.com/v1` · env=`TRUSTEDROUTER_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异(透传上游) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | **OpenRouter 风格 `provider` 路由对象**:`min_privacy`(\"zdr\"/\"confidential\",fail-closed 硬约束)、`data_collection:\"deny\"`;x402 自动充值 | `{\"model\":\"your/model\",\"provider\":{\"min_privacy\":\"zdr\"}}` | C | https://trustedrouter.com/docs |\n| headers/认证 | 无差异(Bearer,`TRUSTEDROUTER_API_KEY` 与 registry env 一致) | - | C | https://trustedrouter.com/docs |\n| URL/端点 | 无差异 | - | C | https://trustedrouter.com/docs |\n| 模型 ID | **preset 路由模型**:`trustedrouter/auto`(failover)、`trustedrouter/eu`、`trustedrouter/socrates`、Synth presets(`trustedrouter/iris-2.0` 等) | - | C | https://trustedrouter.com/docs |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2041)\n- **差距说明**:`provider` 路由对象需 bodyOverrides;其余标准。\n- **建议动作**:bodyOverrides 兜底;模型 ID 约定写进厂商文档。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### tundra — Tundra\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.tundra.ai/v1` · env=`TUNDRA_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(证据不足) | - | - | - |\n| 能力支持 | 无差异(证据不足) | - | - | - |\n| 思考机制 | 无差异(证据不足) | - | - | - |\n| 流式/usage | 无差异(证据不足) | - | - | - |\n| 消息格式 | 无差异(证据不足) | - | - | - |\n| 特殊字段 | 无差异(证据不足) | - | - | - |\n| headers/认证 | 无差异(证据不足) | - | - | - |\n| URL/端点 | 无法确认 ⚠️(公开检索未命中 api.tundra.ai 有效文档/服务) | - | - | - |\n| 模型 ID | 无法确认 ⚠️ | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:❓ 无法判断(证据不足)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2050)\n- **差距说明**:未找到该厂商任何可验证的 API 文档/集成代码。\n- **建议动作**:保留 full() 默认假设,标记\"证据不足\",后续有实测再补。\n\n#### 3. 证据与验证\n\n- **证据等级**:无\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 全条目存疑(无任何公开证据)\n\n### umans_ai — Umans AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.code.umans.ai/v1` · env=`UMANS_AI_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | **Coding Plan 走 Anthropic Messages 协议,thinking 用 Anthropic budget 模式**:`{\"thinking\":{\"mode\":\"budget\",\"efforts\":[\"minimal\",\"low\",\"medium\",\"high\",\"xhigh\"]}}`;OpenAI 面(`/v1`)无独立文档 ⚠️ | 见左(Anthropic 面) | C(⚠️) | https://github.com/can1357/oh-my-pi/issues/3286 |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | Anthropic 面 `x-api-key`;OpenAI 面假设 Bearer ⚠️ | - | C(⚠️) | https://github.com/can1357/oh-my-pi/issues/3192 |\n| URL/端点 | 官方公开 base `https://api.code.umans.ai`(HF inference-providers 收录为 OpenAI 兼容);registry 的 `/v1` 子路径未经官方文档确认 ⚠️ | `https://api.code.umans.ai/v1/chat/completions`(推断) | C(⚠️) | https://huggingface.co/spaces/huggingface/HuggingDiscussions/discussions/49 |\n| 模型 ID | `umans-glm-5.2` 等 `umans-*` 前缀模型 | - | C | https://github.com/can1357/oh-my-pi/issues/3192 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(协议面存疑)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2059)\n- **差距说明**:官方主推 Coding Plan(Anthropic 协议);OpenAI 兼容面是否存在 `/v1` 需实测。若仅 Anthropic,aimux OpenAI 请求会失败。\n- **建议动作**:实测 `https://api.code.umans.ai/v1/chat/completions` 连通性;确认前标注存疑。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:OpenAI 面/认证 header ⚠️\n\n### unorouter — UnoRouter\n\n- **registry 现状**:profile=`full()` · base_url=`https://unorouter.com/en` · env=`UNOROUTER_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(200+ 模型 OpenAI 兼容网关) | - | C | https://sourceforge.net/software/product/UnoRouter/ |\n| 思考机制 | 无差异(透传上游) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://unorouter.com/en |\n| URL/端点 | **registry base_url 是官网路径**;API 端点为 `https://api.unorouter.com/v1` | `curl -X POST https://api.unorouter.com/v1/chat/completions` | C | https://unorouter.com/en/docs/integrations/sillytavern |\n| 模型 ID | 平台模型 slug(未逐一确认) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 错误)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2068)\n- **差距说明**:`unorouter.com/en` 是营销页,请求必然 404;应改为 `https://api.unorouter.com/v1`。\n- **建议动作**:修正 registry base_url。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### upstage — Upstage\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.upstage.ai/v1` · env=`UPSTAGE_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(官方 OpenAI SDK 直连示例:stream/messages 标准) | - | C | https://console.upstage.ai/api-keys |\n| 思考机制 | 无差异(Solar 推理为模型内建,无独立开关字段证据) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异(Document AI 是独立产品线,不走 chat 请求体) | - | - | - |\n| 特殊字段 | 旧版 RAG 曾传 `document` 参数,当前版本未见官方文档,⚠️ 不采信 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://console.upstage.ai/api-keys |\n| URL/端点 | 无差异 | - | C | https://console.upstage.ai/api-keys |\n| 模型 ID | `solar-pro-3`、`solar-mini`、`solar-pro` 等 `solar-*` 代号(非 org 前缀) | - | C | https://openrouter.ai/upstage/solar-pro-3 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2077)\n- **差距说明**:无。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无(旧版 `document` 参数未采信)\n\n### v0 — v0 (Vercel)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.v0.dev/v1` · env=`V0_API_KEY`\n- **变体**:vercel(Vercel AI Gateway,见 vercel 条目)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(function/tool calls、多模态 base64 图片、低延迟流式均支持;限流 200 消息/天、上下文 128K) | `POST https://api.v0.dev/v1/chat/completions` + Bearer | C | https://apidog.com/blog/vercel-v0-1-0-md-api/ |\n| 思考机制 | 无差异(v0 模型无公开 thinking 开关) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异(image base64) | - | C | https://apidog.com/blog/vercel-v0-1-0-md-api/ |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + v0.dev API key) | - | C | https://apidog.com/blog/vercel-v0-1-0-md-api/ |\n| URL/端点 | 无差异(registry 与官方一致) | - | C | https://v0.app/docs/api/platform/overview |\n| 模型 ID | v0 专有模型:`v0-1.0-md`、`v0-1.0`、`v0-1.1` 等 | - | C | https://apidog.com/blog/vercel-v0-1-0-md-api/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2086)\n- **差距说明**:无。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### venice — Venice\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.venice.ai/api/v1` · env=`VENICE_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | `max_tokens` 已废弃(建议 `max_completion_tokens`);`user` 字段被丢弃仅兼容 | - | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| 能力支持 | 富参数:`top_k`、`logprobs`/`top_logprobs`、`min_p`、`min_temp`/`max_temp`(动态温控)、`repetition_penalty`、`stop_token_ids`、`seed`、tools/response_format json_schema | `{\"model\":\"zai-org-glm-5-1\",\"top_k\":40,\"min_p\":0.05,\"repetition_penalty\":1.2,\"stop_token_ids\":[151643]}` | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| 思考机制 | 双通道:`reasoning_effort`(none/minimal/low/medium/high/xhigh/max)+ `reasoning` 对象(`effort`/`summary`);`venice_parameters.disable_thinking` / `strip_thinking_response` 控制开关与剥离;响应 `reasoning_content` | `{\"reasoning\":{\"effort\":\"medium\",\"summary\":\"auto\"},\"venice_parameters\":{\"disable_thinking\":false,\"strip_thinking_response\":false}}` | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| 流式/usage | 无差异(标准 `stream_options.include_usage`) | - | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| 消息格式 | 无差异(text/image/audio/video/file 多模态) | - | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| 特殊字段 | **`venice_parameters` 对象**:`enable_web_search`、`enable_web_citations`、`enable_web_scraping`、`include_venice_system_prompt`、`character_slug`、`enable_e2ee`、`include_search_results_in_stream`、`return_search_results_as_documents`;另有 `prompt_cache_key`、`prompt_cache_retention`(\"default\"/\"extended\"/\"24h\")、`verbosity`/`text.verbosity`;`store` 字段被接受但忽略 | `{\"venice_parameters\":{\"enable_web_search\":\"auto\",\"include_venice_system_prompt\":true,\"character_slug\":\"venice\",\"enable_e2ee\":true}}` | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| headers/认证 | Bearer 或 `SIGN-IN-WITH-X`(x402 钱包认证,`X-Sign-In-With-X` 为迁移期别名);402 响应=余额不足 | - | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| URL/端点 | 无差异(`/api/v1` 与官方一致) | - | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| 模型 ID | 模型 ID 或 **feature suffix**(如追加后缀启用 web search/角色人设),可替代 venice_parameters | - | C | https://docs.venice.ai/api-reference/endpoint/chat/model_feature_suffix |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2095)\n- **差距说明**:`venice_parameters`/`prompt_cache_key`/`min_p`/`min_temp`/`max_temp`/`stop_token_ids` 等均需 bodyOverrides(convert.rs 白名单无这些键);`reasoning` 对象需 bodyOverrides;`max_completion_tokens` 已有([convert.rs](aimux-providers/src/openai/convert.rs#L1119))。\n- **建议动作**:venice_parameters 是封闭厂商专属字段,建议文档化走 bodyOverrides;无需 profile 扩展(除非要内置 web search)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### vercel — Vercel (AI Gateway)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.v0.dev/v1` · env=`VERCEL_API_KEY`\n- **变体**:v0(同 host 不同产品线,见 v0 条目)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(chat/completions、embeddings、reasoning 控制、file attachments、tool calling、structured outputs) | - | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions |\n| 思考机制 | 有独立 Reasoning 文档(控制思考量),字段与 OpenAI 标准 reasoning_effort 一致 | - | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异(支持图片与 PDF 附件) | - | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions |\n| 特殊字段 | 网关扩展:`provider` 选项、模型 fallback、BYOK、prompt caching(advanced 文档) | - | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced |\n| headers/认证 | Bearer(AI Gateway API key 或 **OIDC token**) | - | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions |\n| URL/端点 | **registry base_url 存疑**:官方 AI Gateway 为 `https://ai-gateway.vercel.sh/v1`(registry 复用 v0 的 `api.v0.dev/v1`)⚠️ | `POST https://ai-gateway.vercel.sh/v1/chat/completions` | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions |\n| 模型 ID | **provider 前缀**:`anthropic/claude-opus-5`、`openai/gpt-5.6-sol` | - | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 存疑)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2104)\n- **差距说明**:registry 的 vercel 与 v0 共用 `api.v0.dev/v1`,但 Vercel AI Gateway 官方端点是 `ai-gateway.vercel.sh/v1`,两者模型清单/配额体系不同;需确认 registry 意图(也许指向 v0 的 Vercel 通道)。\n- **建议动作**:与仓库维护者确认意图后修正 base_url;若走 AI Gateway,`ai-gateway.vercel.sh/v1` 为标准 OpenAI 兼容,full() 适用。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:base_url ⚠️\n\n### vivgrid — Vivgrid\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.vivgrid.com/v1` · env=`VIVGRID_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(OpenAI `/chat/completions` 端点) | - | C | https://vivgrid.com/docs/quick-start |\n| 思考机制 | 无差异(透传上游) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer,`VIVGRID_API_KEY` 与 registry 一致) | - | C | https://mastra.ai/models/providers/vivgrid |\n| URL/端点 | 无差异 | - | C | https://vivgrid.com/blog/decoupling-prompts-tools-models-from-agent-client |\n| 模型 ID | **org 前缀**:`vivgrid/deepseek-v3.2`、`vivgrid/gemini-3.1-pro-preview`、`vivgrid/gpt-5.6-sol` 等 | - | C | https://mastra.ai/models/providers/vivgrid |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2113)\n- **差距说明**:无。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### volc_engine — VolcEngine (火山方舟)\n\n- **registry 现状**:profile=`full()` · base_url=`https://ark.cn-beijing.volces.com` · env=`ARK_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(OpenAI 兼容 /api/v3;支持工具调用) | - | C | https://www.volcengine.com/docs/82379/1298459 |\n| 思考机制 | 推理模型(豆包/DeepSeek 系)无统一开关字段证据(按模型走 enable_thinking 或 thinking 需实测)⚠️ | - | - | - |\n| 流式/usage | 无差异(标准) | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | **官方推荐 IAM(AccessKey/SecretKey)签名鉴权**;OpenAI 兼容面也可 API Key Bearer(ARK_API_KEY) | - | B/C | https://www.volcengine.com/docs/82379/1263279 ;[simple-one-api 接入指南](reference/simple-one-api/docs/火山方舟大模型接入指南.md#L7) |\n| URL/端点 | **registry 缺 `/api/v3` 路径**:官方 OpenAI 兼容 base 为 `https://ark.cn-beijing.volces.com/api/v3` | `POST https://ark.cn-beijing.volces.com/api/v3/chat/completions` | B | [simple-one-api/docs/火山方舟大模型接入指南.md](reference/simple-one-api/docs/火山方舟大模型接入指南.md#L24) ;[uni-api/README.md](reference/uni-api/README.md#L233) |\n| 模型 ID | **推理接入点 ID**:`ep-xxxxxxxxxx-yyyy`(endpoint 格式)或 `doubao-*` 模型名 | `{\"model\":\"ep-20240612090709-hzjz5\",\"messages\":[...]}` | B | [simple-one-api/docs/火山方舟大模型接入指南.md](reference/simple-one-api/docs/火山方舟大模型接入指南.md#L18) |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 缺 `/api/v3`)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2122);端点拼接 [model.rs](aimux-providers/src/openai/model.rs#L73)\n- **差距说明**:当前拼接结果为 `https://ark.cn-beijing.volces.com/chat/completions`,缺少 `/api/v3` 路径段,必 404;Bearer 认证可用(免 IAM 签名,官方兼容面接受 API Key)。\n- **建议动作**:registry base_url 改为 `https://ark.cn-beijing.volces.com/api/v3`(高优先)。\n\n#### 3. 证据与验证\n\n- **证据等级**:B(本地 reference 配置)+C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无(base_url 结论强)\n\n### vultr — Vultr (Inference)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.vultrinference.com/v1` · env=`VULTR_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_tokens` 默认 4096;`stop`、`seed` 标准) | - | C | https://api.vultrinference.com/ |\n| 能力支持 | 无差异(logprobs/top_logprobs/tools/tool_choice 标准) | - | C | https://api.vultrinference.com/ |\n| 思考机制 | 无差异(raw 端点透传上游 `reasoning_content`;**normalize 模式可改写为 `reasoning`**,见下) | - | C | https://api.vultrinference.com/ |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | raw 端点可能返回非标准字段(content=None + tool_calls 等),normalize 模式修正 | - | C | https://api.vultrinference.com/ |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer *API Key*) | - | C | https://api.vultrinference.com/ |\n| URL/端点 | 无差异 | - | C | https://api.vultrinference.com/ |\n| 模型 ID | **org 前缀 + `-normalize` 后缀约定**:`deepseek-ai/DeepSeek-V4-Pro` / `deepseek-ai/DeepSeek-V4-Pro-normalize`(normalizer 修正 `reasoning_content`→`reasoning`、工具调用 ID 等非标准响应) | `{\"model\":\"deepseek-ai/DeepSeek-V4-Pro-normalize\",\"messages\":[...]}` | C | https://api.vultrinference.com/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2131)\n- **差距说明**:aimux 已兼容 `reasoning_content`([model.rs](aimux-providers/src/openai/model.rs#L558) 优先读它),与 raw 端点兼容良好;`-normalize` 只是用户可选模型名后缀,无需代码改动;但需在文档提示 deepseek 系模型加 `-normalize` 以获得标准响应。\n- **建议动作**:补文档说明,无需 profile 改动。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### wafer — Wafer\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.wafer.ai/v1` · env=`WAFER_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(OpenAI 兼容 `/chat/completions`) | - | C | https://www.truefoundry.com/docs/ai-gateway/wafer |\n| 思考机制 | 无差异(透传上游;模型表带 Reasoning 列) | - | C | https://mastra.ai/models/providers/wafer.ai |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer,`WAFER_API_KEY` 与 registry 一致) | - | C | https://mastra.ai/models/providers/wafer.ai |\n| URL/端点 | **registry 域名存疑**:TrueFoundry/Mastra 官方 base 为 `https://pass.wafer.ai/v1`(Wafer Pass 产品);registry 写 `api.wafer.ai` ⚠️ | `POST https://pass.wafer.ai/v1/chat/completions` | C(⚠️) | https://www.truefoundry.com/docs/ai-gateway/wafer ;https://mastra.ai/models/providers/wafer.ai |\n| 模型 ID | **org 前缀**:`wafer.ai/GLM-5.1`、`wafer.ai/Kimi-K2.6`、`wafer.ai/MiniMax-M3` | - | C | https://mastra.ai/models/providers/wafer.ai |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 域名待核)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2140)\n- **差距说明**:`api.wafer.ai` vs 官方 `pass.wafer.ai`;需实测 api.wafer.ai 是否解析/转发。\n- **建议动作**:实测后修正 registry base_url。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:base_url 域名 ⚠️\n\n### wandb — Weights & Biases (Serverless Inference)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.inference.wandb.ai/v1` · env=`WANDB_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(标准 chat/completions,模型清单由 W&B 托管) | - | C | https://docs.wandb.ai/inference/api-reference/chat-completions |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer);**可选 `OpenAI-Project: [YOUR-TEAM]/[YOUR-PROJECT]` 头**做 usage 追踪 | `curl .../chat/completions -H \"Authorization: Bearer [YOUR-API-KEY]\" -H \"OpenAI-Project: [YOUR-TEAM]/[YOUR-PROJECT]\"` | C | https://docs.wandb.ai/inference/api-reference/chat-completions |\n| URL/端点 | 无差异 | - | C | https://docs.wandb.ai/inference/api-reference/chat-completions |\n| 模型 ID | **org 前缀**:`meta-llama/Llama-3.1-8B-Instruct` 等托管模型 | - | C | https://docs.wandb.ai/inference/api-reference/chat-completions |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2149);`OpenAI-Project` 头已有 [mod.rs](aimux-providers/src/openai/mod.rs#L101)(`with_project`)\n- **差距说明**:`OpenAI-Project` 头需要用户显式 `with_project(\"team/project\")` 配置,默认不发送——符合可选语义。\n- **建议动作**:厂商文档提示设置 project 头以启用 usage 追踪。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### xiaomi_token_plan_ams — Xiaomi Token Plan(欧洲区)\n\n- **registry 现状**:profile=`full()` · base_url=`https://token-plan-ams.xiaomimimo.com/v1` · env=`MIMO_API_KEY`\n- **变体**:无(**并入主条目 xiaomi_token_plan_cn**——同一 Token Plan 产品,区域镜像域名 `token-plan-ams.xiaomimimo.com`)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(并入主条目,`max_completion_tokens`) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异(同主条目,无独立开关文档) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | **`api-key` 头**(同主条目,Key 格式 `tp-xxxxx`) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| URL/端点 | 无差异(区域子域) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 模型 ID | 同主条目(`mimo-v2.5-pro` 等) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(同主条目:`api-key` 头需 with_headers)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2158)\n- **差距说明**:无独立差距。\n- **建议动作**:与主条目一并处理认证头问题。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:区域域名是否真实开通未实测\n\n### xiaomi_token_plan_sgp — Xiaomi Token Plan(新加坡区)\n\n- **registry 现状**:profile=`full()` · base_url=`https://token-plan-sgp.xiaomimimo.com/v1` · env=`MIMO_API_KEY`\n- **变体**:无(**并入主条目 xiaomi_token_plan_cn**,区域镜像 `token-plan-sgp.xiaomimimo.com`)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(并入主条目) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | **`api-key` 头**(同主条目) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| URL/端点 | 无差异(区域子域) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 模型 ID | 同主条目 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(同主条目)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2176)\n- **差距说明**:无独立差距。\n- **建议动作**:与主条目一并处理认证头问题。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:区域域名是否真实开通未实测\n\n### xiaomi_token_plan_cn — Xiaomi Token Plan(中国区)\n\n- **registry 现状**:profile=`full()` · base_url=`https://token-plan-cn.xiaomimimo.com/v1` · env=`MIMO_API_KEY`\n- **变体**:xiaomi_token_plan_ams(`token-plan-ams.xiaomimimo.com/v1`)/ xiaomi_token_plan_sgp(`token-plan-sgp.xiaomimimo.com/v1`),区域镜像同协议\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_completion_tokens` 官方示例) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 能力支持 | 无差异(temperature/top_p/frequency_penalty/presence_penalty/stop/stream 标准) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 思考机制 | MiMo 推理模型无独立开关字段证据(reasoning 模型按权重)⚠️ | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | **认证头是 `api-key`(非 `Authorization: Bearer`)**:官方 curl 用 `--header \"api-key: $MIMO_API_KEY\"`;Key 格式 `tp-xxxxx`(Token Plan) | `curl ... 'https://token-plan-cn.xiaomimimo.com/v1/chat/completions' --header \"api-key: $MIMO_API_KEY\"` | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| URL/端点 | 无差异(cn 区与官方一致;另提供 Anthropic 面 `/anthropic`) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 模型 ID | `mimo-v2.5-pro`、`mimo-v2.5` 等 `mimo-*` 代号 | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2158)\n- **差距说明**:aimux 默认发送 `Authorization: Bearer`;若 MiMo 拒绝 Bearer 只认 `api-key`,则请求 401——需用户 `with_headers` 注入 `api-key` 头([mod.rs](aimux-providers/src/openai/mod.rs#L155) 支持自定义 headers,可兜底但非零配置)。\n- **建议动作**:实测 `api-key` vs `Authorization` 兼容性;若不兼容,考虑在 profile 增加 auth 头选项或在厂商文档注明 with_headers 用法。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:是否同时接受 Bearer 未确认(官方只示范 `api-key`)\n\n### xiaomimimo — Xiaomi MiMo(按量计费)\n\n- **registry 现状**:profile=`full()` · base_url=`https://mimo.xiaomi.com/v1` · env=`XIAOMI_API_KEY`\n- **变体**:无(与 xiaomi_token_plan_* 是同一平台两种计费方式)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_completion_tokens`) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 能力支持 | 无差异 | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 思考机制 | 无差异(无独立开关文档) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | **认证头 `api-key`**(同 Token Plan);Key 格式 `sk-xxxxx` | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| URL/端点 | **registry 域名存疑**:官方按量计费 base 为 `https://api.xiaomimimo.com/v1`(registry 写 `mimo.xiaomi.com/v1`,后者是官网站)⚠️ | `POST https://api.xiaomimimo.com/v1/chat/completions` | C(⚠️) | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 模型 ID | `mimo-v2.5-pro` 等(同 Token Plan) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url + 认证头)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2185)\n- **差距说明**:base_url 需按官方改为 `api.xiaomimimo.com/v1`(或实测 mimo.xiaomi.com 是否通 API);认证头 `api-key` 需 with_headers。\n- **建议动作**:修正 base_url;认证头问题与 xiaomi_token_plan_cn 一并处理。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:base_url 域名 ⚠️\n\n### xpersona — Xpersona\n\n- **registry 现状**:profile=`full()` · base_url=`/v1` · env=`XPERSONA_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(OpenAI 兼容 `/chat/completions`) | - | C | https://mastra.ai/models/providers/xpersona |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://www.xpersona.co/ |\n| URL/端点 | **registry base_url 只有 `/v1` 相对路径(缺 host)**:官方为 `https://www.xpersona.co/v1`(Mastra 配置) | `POST https://www.xpersona.co/v1/chat/completions` | C(⚠️) | https://mastra.ai/models/providers/xpersona |\n| 模型 ID | **org 前缀**:`xpersona/claude-fable-5` 等(聚合 GPT/Claude/Gemini) | - | C | https://mastra.ai/models/providers/xpersona |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 缺 host)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2194)\n- **差距说明**:`/v1` 相对路径无法发起请求,需补全 host。\n- **建议动作**:registry base_url 改为 `https://www.xpersona.co/v1`(或官方 API 域名,以实测为准)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:官方 API 域名(www vs 裸域)⚠️\n\n### xunfei — Xunfei(讯飞星火)\n\n- **registry 现状**:profile=`full()` · base_url=`https://spark-api-open.xf-yun.com/v1` · env=`XUNFEI_API_PASSWORD`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_tokens`、`user`、`presence_penalty`、`frequency_penalty` 标准;temperature 建议 1.2) | - | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n| 能力支持 | **支持 `top_k`**;`response_format:{\"type\":\"json_object\"}`;tools 支持 function 与 **`web_search` 类型内置工具** | `{\"tools\":[{\"type\":\"function\",\"function\":{...}},{\"type\":\"web_search\",\"web_search\":{\"enable\":true,\"show_ref_label\":true,\"search_mode\":\"deep\"}}]}` | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n| 思考机制 | Ultra 已升级 X1.5 快思考;X1/X2 深度思考模型存在(另册 X1 HTTP 文档),OpenAI 兼容面无统一 thinking 开关证据 ⚠️ | - | C(⚠️) | https://www.xfyun.cn/doc/spark/X1http.html |\n| 流式/usage | 无差异(stream 标准 SSE) | - | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | **`suppress_plugin` 数组**:抑制内置插件(如 knowledge 搜索插件) | `{\"suppress_plugin\":[\"knowledge\"]}` | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n| headers/认证 | 无差异(`Authorization: Bearer `,env 名与 registry 的 XUNFEI_API_PASSWORD 语义一致) | `--header 'Authorization: Bearer 123456'` | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n| URL/端点 | 无差异(`/v1/chat/completions` 官方一致) | - | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n| 模型 ID | **版本码约定**:`4.0Ultra` / `generalv3.5`(Max) / `max-32k` / `generalv3`(Pro) / `pro-128k` / `lite`(非 OpenAI 式命名) | `{\"model\":\"generalv3.5\",\"messages\":[...]}` | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2203)\n- **差距说明**:`suppress_plugin` 不在 convert.rs 白名单(需 bodyOverrides);`web_search` 类型 tool 不在 aimux `Tool` 枚举([convert.rs](aimux-providers/src/openai/convert.rs#L1374) 只处理 Function 类型,Provider 类型被丢弃并 warn)——星火内置搜索工具无法透传;top_k/response_format/tools(function) 均 ✅。\n- **建议动作**:`web_search` 工具透传可评估(低优先);suppress_plugin 文档化走 bodyOverrides。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:X1 思考开关字段未确认\n\n### zai — Z.AI (GLM)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.z.ai/api/paas/v4` · env=`ZAI_API_KEY`\n- **变体**:zai_coding_plan(订阅套餐,见下条)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(官方 GLM-5 示例用 `max_tokens` + `temperature`) | - | C | https://docs.z.ai/guides/llm/glm-5 |\n| 能力支持 | 无差异(Function Call、Structured Output、streaming、上下文缓存) | - | C | https://docs.z.ai/guides/llm/glm-5 |\n| 思考机制 | **`thinking` 对象开关**:`{\"type\":\"enabled\"}`(GLM-5/4.6V 官方示例);GLM-5 提供多种 thinking mode 档位;响应含 reasoning 输出 | `{\"model\":\"glm-5\",\"messages\":[...],\"thinking\":{\"type\":\"enabled\"},\"max_tokens\":4096,\"temperature\":1.0}` | C | https://docs.z.ai/guides/llm/glm-5 ;https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异(多模态走标准 image_url) | - | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 特殊字段 | 无差异(上下文缓存为服务端行为) | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://docs.z.ai/guides/llm/glm-5 |\n| URL/端点 | 无差异(`/api/paas/v4` 与官方一致) | - | C | https://docs.z.ai/guides/llm/glm-5 |\n| 模型 ID | `glm-5`、`glm-5.2`、`glm-4.6v` 等 `glm-*` 系列 | - | C | https://docs.z.ai/guides/llm/glm-5 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2212)\n- **差距说明**:`thinking` 对象需 bodyOverrides(现有 DeepSeek override 的 thinking 注入绑定 provider_options[\"deepseek\"],不通用);其余 ✅。\n- **建议动作**:若 GLM 成为主流,建议在 RequestBodyOverride 增加 GLM 变体(thinking 透传 + reasoning_effort 可选)或 profile 增加 `thinking_field` 通用支持。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### zai_coding_plan — Z.AI Coding Plan\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.z.ai/api/anthropic` · env=`ZHIPU_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | **协议级差异**:该端点是 Anthropic Messages 协议,无 `messages.role=system` 顶层数组,改用顶层 `system` + `max_tokens` 必填 | `{\"model\":\"glm-5.2[1m]\",\"max_tokens\":... ,\"system\":\"...\",\"messages\":[...]}` | C | https://docs.z.ai/devpack/tool/claude |\n| 能力支持 | Anthropic 面(tool_use/tool_result、thinking budget 模式) | - | C | https://docs.z.ai/devpack/tool/claude |\n| 思考机制 | Claude Code 集成:`ANTHROPIC_AUTH_TOKEN`=ZHIPU_API_KEY,模型 `glm-4.7` / `glm-5.2[1m]`;thinking 走 Anthropic budget 模式 | `\"env\":{\"ANTHROPIC_AUTH_TOKEN\":\"your_zai_api_key\",\"ANTHROPIC_BASE_URL\":\"https://api.z.ai/api/anthropic\",\"ANTHROPIC_DEFAULT_OPUS_MODEL\":\"glm-5.2[1m]\"}` | C | https://docs.z.ai/devpack/tool/claude |\n| 流式/usage | Anthropic SSE 格式(event: message_start/content_block_delta 等) | - | C | https://docs.z.ai/devpack/tool/claude |\n| 消息格式 | Anthropic 消息格式(顶层 system,tool_result 角色) | - | C | https://docs.z.ai/devpack/tool/claude |\n| 特殊字段 | Anthropic 专属(`thinking` budget、`metadata` 等) | - | C | https://docs.z.ai/devpack/tool/claude |\n| headers/认证 | `x-api-key` + `anthropic-version` 头(非 OpenAI Bearer) | - | C | https://docs.z.ai/devpack/tool/claude |\n| URL/端点 | registry base_url 与官方一致(Anthropic 面);**注意 OpenAI 面是 `https://api.z.ai/api/paas/v4`,非此端点** | `POST https://api.z.ai/api/anthropic/v1/messages` | C | https://docs.z.ai/devpack/tool/claude |\n| 模型 ID | `glm-4.7`、`glm-5.2[1m]`(带 `[1m]` 长上下文后缀) | - | C | https://docs.z.ai/devpack/tool/claude |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(协议不匹配)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2221)\n- **差距说明**:registry 以 OpenAICompatProfile::full() + Anthropic 端点声明,aimux 的 OpenAI 请求体(顶层 messages + system 作为消息)发往 `/api/anthropic` 会与 Anthropic Messages 协议冲突。要么改用 OpenAI 面 base_url(`https://api.z.ai/api/paas/v4`),要么用 anthropic 协议实现。\n- **建议动作**:与维护者确认意图:若走 OpenAI 协议,base_url 改 `https://api.z.ai/api/paas/v4`(高优先);若保留 Anthropic 端点,需单独的 Anthropic 适配(超出 OpenAICompat 范围)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无(协议差异证据充分)\n\n### zeldoc — Zeldoc\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.zeldoc.ai/v1` · env=`ZELDOC_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(@ai-sdk/openai-compatible,单模型) | - | C | https://models.dev/providers/zeldoc |\n| 思考机制 | 无差异(无证据) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`ZELDOC_API_KEY` 与 registry 一致) | - | C | https://models.dev/providers/zeldoc |\n| URL/端点 | 无差异 | - | C | https://models.dev/providers/zeldoc |\n| 模型 ID | 单模型(models.dev 表未展示 ID,证据不足)⚠️ | - | C(⚠️) | https://models.dev/providers/zeldoc |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2230)\n- **差距说明**:无。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:模型 ID 细节证据不足\n\n### zenmux — ZenMux\n\n- **registry 现状**:profile=`full()` · base_url=`https://zenmux.ai/api/v1` · env=`ZENMUX_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(OpenAI Chat Completions 全兼容) | - | C | https://zenmux.ai/docs/guide/quickstart.html |\n| 思考机制 | 无差异(透传上游) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://zenmux.ai/docs/guide/quickstart.html |\n| URL/端点 | 无差异(同时提供 Responses `/api/v1`、Anthropic `/api/anthropic`、Gemini `/api/vertex-ai` 面,协议互通) | - | C | https://zenmux.ai/docs/guide/quickstart.html |\n| 模型 ID | 平台模型 slug(如 `google/gemini-3.1-pro-preview` 格式,按 Models 页) | - | C | https://zenmux.ai/docs/guide/quickstart.html |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2239)\n- **差距说明**:无。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### zhipu_v4 — ZhipuV4 (GLM 开放平台)\n\n- **registry 现状**:profile=`full()` · base_url=`https://open.bigmodel.cn` · env=`ZHIPU_API_KEY`\n- **变体**:无(zhipuai_coding_plan 为订阅套餐,见下条)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(Function Calling、流式、视觉多模态 image_url) | - | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 思考机制 | **`thinking` 对象开关**(同 z.ai):`{\"type\":\"enabled\"}`;深度思考可关 | `{\"model\":\"glm-4.6v\",\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"image_url\",...},{\"type\":\"text\",\"text\":\"...\"}]}],\"thinking\":{\"type\":\"enabled\"}}` | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 流式/usage | 无差异(stream 标准;深度思考输出经 reasoning 通道) | - | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 消息格式 | 无差异(多模态标准 image_url;支持视频/文件) | - | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 特殊字段 | 无差异(上下文缓存服务端处理) | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| URL/端点 | **registry 缺路径**:官方 OpenAI 兼容 base 为 `https://open.bigmodel.cn/api/paas/v4`(registry 只写 host) | `POST https://open.bigmodel.cn/api/paas/v4/chat/completions` | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 模型 ID | `glm-4.6v`、`glm-4.6`、`glm-4.6v-flash` 等 `glm-*` | - | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 缺路径)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2248)\n- **差距说明**:当前拼接 `https://open.bigmodel.cn/chat/completions` 缺 `/api/paas/v4`,必 404(高优先修正);`thinking` 字段需 bodyOverrides。\n- **建议动作**:registry base_url 改为 `https://open.bigmodel.cn/api/paas/v4`;thinking 覆盖同 zai 条目。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### zhipuai_coding_plan — Zhipu AI Coding Plan\n\n- **registry 现状**:profile=`full()` · base_url=`https://docs.bigmodel.cn/cn/coding-plan/quick-start` · env=`ZHIPU_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 面标准;Anthropic 面用顶层 system/max_tokens) | - | C | https://docs.bigmodel.cn/cn/coding-plan/quick-start |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 套餐内 GLM 模型沿用 `thinking` 对象(同 zhipu_v4),官方未在 Coding Plan 页单列 ⚠️ | `{\"model\":\"glm-4.6\",\"messages\":[...],\"thinking\":{\"type\":\"enabled\"}}`(推断) | C(⚠️) | https://docs.bigmodel.cn/cn/coding-plan/quick-start |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer;**团队版套餐 Key 与开放平台其他 Key 不通用**) | - | C | https://docs.bigmodel.cn/cn/coding-plan/quick-start |\n| URL/端点 | **registry base_url 是 docs 页面**:真实 OpenAI 面为 `https://open.bigmodel.cn/api/coding/paas/v4`,Anthropic 面 `https://open.bigmodel.cn/api/anthropic` | `POST https://open.bigmodel.cn/api/coding/paas/v4/chat/completions` | C | https://docs.bigmodel.cn/cn/coding-plan/quick-start |\n| 模型 ID | `glm-4.6`、`glm-4.7`、`glm-5.x` 等套餐内模型 | - | C | https://docs.bigmodel.cn/cn/coding-plan/quick-start |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 错误)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2257)\n- **差距说明**:registry 的 base_url 是文档页面 URL,非 API 端点;应改为 `https://open.bigmodel.cn/api/coding/paas/v4`(Coding Plan 专用 OpenAI 面,非普通 /api/paas/v4)。\n- **建议动作**:修正 base_url(高优先);思考覆盖同 zhipu_v4。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制推断 ⚠️\n"}, "d4bfcae94f036812a833dbb6ddb703136eed4760": {"t": 1785809855.2852638, "n": 66188, "h": "829fcf6c360c19ed", "c": "# Batch 06 — Model Request Config 调研\n\n> 状态: ✅ 已完成(2026-08-01 调研)· 厂商数: 40\n> 模板见 [_template.md](_template.md) · 方法论见 [README.md](README.md)\n> 证据硬性要求: 每条目必须有例子或证明(A/B/C 级),禁止编造来源。\n\n## 厂商清单\n\n| # | id | display | base_url | env_var | profile |\n|---|---|---|---|---|---|\n| 1 | tencent | Tencent (混元/Hunyuan) | https://api.hunyuan.cloud.tencent.com/v1 | TENCENT_API_KEY | OpenAICompatProfile::full() |\n| 2 | tencent_coding_plan | Tencent Coding Plan (China) | https://api.lkeap.cloud.tencent.com/coding/v3 | TENCENT_CODING_PLAN_API_KEY | OpenAICompatProfile::full() |\n| 3 | tencent_token_plan | Tencent Token Plan | https://api.lkeap.cloud.tencent.com/plan/v3 | TENCENT_TOKEN_PLAN_API_KEY | OpenAICompatProfile::full() |\n| 4 | tencent_token_plan_enterprise_auto | 腾讯云 Token Plan / Token Plan 企业版轻享套餐 | https://tokenhub.tencentmaas.com/plan/v3 | TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY | OpenAICompatProfile::full() |\n| 5 | tencent_token_plan_enterprise_pro | 腾讯云 Token Plan / Token Plan 企业版专业套餐 | https://tokenhub.tencentmaas.com/plan/v3 | TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY | OpenAICompatProfile::full() |\n| 6 | tencent_token_plan_general_personal | 腾讯云 Token Plan / 通用 Token Plan(个人版) | https://api.lkeap.cloud.tencent.com/plan/v3 | TENCENT_TOKEN_PLAN_API_KEY | OpenAICompatProfile::full() |\n| 7 | tencent_token_plan_hy_personal | 腾讯云 Token Plan / Hy Token Plan(个人版) | https://api.lkeap.cloud.tencent.com/plan/v3 | TENCENT_TOKEN_PLAN_API_KEY | OpenAICompatProfile::full() |\n| 8 | tencent_tokenhub | Tencent TokenHub | https://tokenhub.tencentmaas.com/v1 | TENCENT_TOKENHUB_API_KEY | OpenAICompatProfile::full() |\n| 9 | tensormesh | Tensormesh | https://serverless.tensormesh.ai | YOUR_API_KEY | OpenAICompatProfile::full() |\n| 10 | the_grid_ai | The Grid AI | https://thegrid.ai/docs | THEGRIDAI_API_KEY | OpenAICompatProfile::full() |\n| 11 | thinkingmachines | Thinking Machines | https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1 | TINKER_API_KEY | OpenAICompatProfile::full() |\n| 12 | tinfoil | Tinfoil | https://inference.tinfoil.sh/v1 | TINFOIL_API_KEY | OpenAICompatProfile::full() |\n| 13 | togetherai | Together AI | https://api.together.xyz/v1 | TOGETHER_API_KEY | OpenAICompatProfile::full() |\n| 14 | tokenflux | Tokenflux | https://tokenflux.ai/v1 | TOKENFLUX_API_KEY | OpenAICompatProfile::full() |\n| 15 | tokenpony | TokenPony | https://api.tokenpony.com/v1 | TOKENPONY_API_KEY | OpenAICompatProfile::full() |\n| 16 | trustedrouter | TrustedRouter | https://api.trustedrouter.com/v1 | TRUSTEDROUTER_API_KEY | OpenAICompatProfile::full() |\n| 17 | tundra | Tundra | https://api.tundra.ai/v1 | TUNDRA_API_KEY | OpenAICompatProfile::full() |\n| 18 | umans_ai | Umans AI | https://api.code.umans.ai/v1 | UMANS_AI_API_KEY | OpenAICompatProfile::full() |\n| 19 | unorouter | UnoRouter | https://unorouter.com/en | UNOROUTER_API_KEY | OpenAICompatProfile::full() |\n| 20 | upstage | Upstage | https://api.upstage.ai/v1 | UPSTAGE_API_KEY | OpenAICompatProfile::full() |\n| 21 | v0 | v0 (Vercel) | https://api.v0.dev/v1 | V0_API_KEY | OpenAICompatProfile::full() |\n| 22 | venice | Venice | https://api.venice.ai/api/v1 | VENICE_API_KEY | OpenAICompatProfile::full() |\n| 23 | vercel | Vercel | https://api.v0.dev/v1 | VERCEL_API_KEY | OpenAICompatProfile::full() |\n| 24 | vivgrid | Vivgrid | https://api.vivgrid.com/v1 | VIVGRID_API_KEY | OpenAICompatProfile::full() |\n| 25 | volc_engine | VolcEngine | https://ark.cn-beijing.volces.com | ARK_API_KEY | OpenAICompatProfile::full() |\n| 26 | vultr | Vultr | https://api.vultrinference.com/v1 | VULTR_API_KEY | OpenAICompatProfile::full() |\n| 27 | wafer | Wafer | https://api.wafer.ai/v1 | WAFER_API_KEY | OpenAICompatProfile::full() |\n| 28 | wandb | Weights & Biases | https://api.inference.wandb.ai/v1 | WANDB_API_KEY | OpenAICompatProfile::full() |\n| 29 | xiaomi_token_plan_ams | Xiaomi Token Plan (Europe) | https://token-plan-ams.xiaomimimo.com/v1 | MIMO_API_KEY | OpenAICompatProfile::full() |\n| 30 | xiaomi_token_plan_cn | Xiaomi Token Plan (China) | https://token-plan-cn.xiaomimimo.com/v1 | MIMO_API_KEY | OpenAICompatProfile::full() |\n| 31 | xiaomi_token_plan_sgp | Xiaomi Token Plan (Singapore) | https://token-plan-sgp.xiaomimimo.com/v1 | MIMO_API_KEY | OpenAICompatProfile::full() |\n| 32 | xiaomimimo | Xiaomi MiMo | https://mimo.xiaomi.com/v1 | XIAOMI_API_KEY | OpenAICompatProfile::full() |\n| 33 | xpersona | Xpersona | /v1 | XPERSONA_API_KEY | OpenAICompatProfile::full() |\n| 34 | xunfei | Xunfei | https://spark-api-open.xf-yun.com/v1 | XUNFEI_API_PASSWORD | OpenAICompatProfile::full() |\n| 35 | zai | Zai | https://api.z.ai/api/paas/v4 | ZAI_API_KEY | OpenAICompatProfile::full() |\n| 36 | zai_coding_plan | Z.AI Coding Plan | https://api.z.ai/api/anthropic | ZHIPU_API_KEY | OpenAICompatProfile::full() |\n| 37 | zeldoc | Zeldoc | https://api.zeldoc.ai/v1 | ZELDOC_API_KEY | OpenAICompatProfile::full() |\n| 38 | zenmux | ZenMux | https://zenmux.ai/api/v1 | ZENMUX_API_KEY | OpenAICompatProfile::full() |\n| 39 | zhipu_v4 | ZhipuV4 | https://open.bigmodel.cn | ZHIPU_API_KEY | OpenAICompatProfile::full() |\n| 40 | zhipuai_coding_plan | Zhipu AI Coding Plan | https://docs.bigmodel.cn/cn/coding-plan/quick-start | ZHIPU_API_KEY | OpenAICompatProfile::full() |\n\n---\n\n## 条目\n\n### tencent — Tencent (混元/Hunyuan)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.hunyuan.cloud.tencent.com/v1` · env=`TENCENT_API_KEY`\n- **变体**:tencent_coding_plan / tencent_token_plan / tencent_tokenhub(同厂商不同入口,各自成条目)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(vision 走标准 `image_url`,支持 base64) | - | C | https://cloud.tencent.com/document/product/1729/111007 |\n| 思考机制 | TokenHub 侧 hy3/hy3-preview 支持深度思考:请求体 `thinking` 对象 + `reasoning_effort`(默认 `low`;带 tools 时 low 自动映射 high);响应含 `reasoning_content`。独立混元 API(api.hunyuan.cloud.tencent.com)文档未见 thinking 字段 | `{\"model\":\"hy3\",\"messages\":[...],\"thinking\":{\"type\":\"enabled\"}}`;响应 `\"message\":{\"content\":\"...\",\"reasoning_content\":\"...\"}` | C | https://cloud.tencent.com/document/product/1823/132252 |\n| 流式/usage | 无差异(标准 `stream_options:{\"include_usage\":true}`,usage 含 `prompt_tokens_details.cached_tokens` / `completion_tokens_details.reasoning_tokens`) | - | C | https://cloud.tencent.com/document/product/1823/132252 |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 混元独立 API 支持自定义参数 `enable_enhancement`(增强) | `{\"model\":\"hunyuan-turbos-latest\",\"messages\":[...],\"enable_enhancement\":true}` | C | https://cloud.tencent.com/document/product/1729/111007 |\n| headers/认证 | 无差异(`Authorization: Bearer $HUNYUAN_API_KEY`) | - | C | https://cloud.tencent.com/document/product/1729/111007 |\n| URL/端点 | 无差异(base_url 与官方一致) | - | C | https://cloud.tencent.com/document/product/1729/111007 |\n| 模型 ID | 版本代号:`hunyuan-turbos-latest`、`hunyuan-vision`;TokenHub 侧 `hy3` / `hy3-preview` | - | C | https://cloud.tencent.com/document/product/1823/132252 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[convert.rs](aimux-providers/src/openai/convert.rs#L1485)(apply_deepseek_override 仅按 provider_options[\"deepseek\"] 注入 thinking)\n- **差距说明**:`thinking` 对象(hy3 深度思考)与 `enable_enhancement` 无内置支持;reasoning_content 响应已支持([model.rs](aimux-providers/src/openai/model.rs#L558))。\n- **建议动作**:thinking 字段可先用 bodyOverrides 兜底;若 hy3 成为主模型,评估通用 `thinking` override(GLM 系同款,见 zai/zhipu_v4)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### tencent_coding_plan — Tencent Coding Plan (China)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.lkeap.cloud.tencent.com/coding/v3` · env=`TENCENT_CODING_PLAN_API_KEY`\n- **变体**:无(与 tencent_token_plan 并列,Coding Plan 偏编程场景)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 套餐内模型(hy3 系)沿用 TokenHub 深度思考机制(`thinking.type.enabled`),未见独立文档,标 ⚠️ | 同 tencent 条目 `{\"thinking\":{\"type\":\"enabled\"}}` | C(⚠️) | https://cloud.tencent.com/document/product/1823/130092 |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + Coding Plan 专用 API Key) | - | C | https://cloud.tencent.com/document/product/1823/130092 |\n| URL/端点 | 无差异(`https://api.lkeap.cloud.tencent.com/coding/v3` 与官方一致;另提供 Anthropic 兼容端点 `/coding/anthropic`) | - | C | https://cloud.tencent.com/document/product/1823/130092 |\n| 模型 ID | 套餐配额制模型(hy3 等),未见独立代号 | - | C | https://cloud.tencent.com/document/product/1823/130092 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(除 thinking 字段,同 tencent)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1915)\n- **差距说明**:无独立差距;thinking 覆盖见 tencent 条目。\n- **建议动作**:无需动作(bodyOverrides 兜底 thinking)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:thinking 机制 ⚠️(推断自 TokenHub hy3 文档,套餐内模型清单未单独确认)\n\n### tencent_token_plan — Tencent Token Plan\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.lkeap.cloud.tencent.com/plan/v3` · env=`TENCENT_TOKEN_PLAN_API_KEY`\n- **变体**:tencent_token_plan_general_personal / tencent_token_plan_hy_personal(个人版,同 base_url);tencent_token_plan_enterprise_auto / tencent_token_plan_enterprise_pro(企业版,base_url=`https://tokenhub.tencentmaas.com/plan/v3`,env=`TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY`)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 套餐内模型沿用 TokenHub 深度思考(`thinking.type.enabled` / `enable_thinking` 按模型族),未单列文档 ⚠️ | 同 tencent 条目 | C(⚠️) | https://cloud.tencent.com/developer/article/2675771 |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + Token Plan 专用 API Key) | - | C | https://intl.cloud.tencent.com/document/product/1300/81317 |\n| URL/端点 | 无差异(`/plan/v3` 与官方一致;另支持 Anthropic 兼容接口) | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| 模型 ID | 套餐内多模型(qwen/hy3/deepseek 等),按网关路由 | - | C | https://cloud.tencent.com/developer/article/2675771 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(除 thinking 字段,同 tencent)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1924)\n- **差距说明**:企业版两个条目仅套餐差异,request 层无差别,可合并。\n- **建议动作**:无需动作;思考类字段 bodyOverrides 兜底。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制 ⚠️(推断)\n\n### tencent_token_plan_enterprise_auto — Tencent Token Plan 企业版轻享套餐\n\n- **registry 现状**:profile=`full()` · base_url=`https://tokenhub.tencentmaas.com/plan/v3` · env=`TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY`\n- **变体**:无(**并入主条目 tencent_token_plan**——同套餐体系,仅 base_url 指向 tokenhub.tencentmaas.com 子路径 `/plan/v3`,request 构造差异与主条目一致)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(并入主条目) | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 同主条目(TokenHub 深度思考 `thinking.type.enabled` / `enable_thinking` by-model,⚠️ 推断) | - | C(⚠️) | 见 tencent_tokenhub |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + 企业版专用 Key) | - | C | https://cloud.tencent.com/document/product/1823/130092 |\n| URL/端点 | 无差异(`/plan/v3` 子路径为套餐入口) | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| 模型 ID | 同主条目 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1933)\n- **差距说明**:与 tencent_token_plan 仅套餐/额度差异,request 层相同。\n- **建议动作**:无需动作(可与主条目合并声明)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制 ⚠️(推断)\n\n### tencent_token_plan_enterprise_pro — Tencent Token Plan 企业版专业套餐\n\n- **registry 现状**:profile=`full()` · base_url=`https://tokenhub.tencentmaas.com/plan/v3` · env=`TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY`\n- **变体**:无(**并入主条目 tencent_token_plan**,与 enterprise_auto 仅套餐档位差异)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(并入主条目) | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 同主条目(⚠️ 推断) | - | C(⚠️) | 见 tencent_tokenhub |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + 企业版专用 Key) | - | C | https://cloud.tencent.com/document/product/1823/130092 |\n| URL/端点 | 无差异 | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| 模型 ID | 同主条目 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1942)\n- **差距说明**:无独立差距。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制 ⚠️(推断)\n\n### tencent_token_plan_general_personal — Tencent Token Plan 通用(个人版)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.lkeap.cloud.tencent.com/plan/v3` · env=`TENCENT_TOKEN_PLAN_API_KEY`\n- **变体**:无(**并入主条目 tencent_token_plan**,同 base_url 与 env)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(并入主条目) | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 同主条目(⚠️ 推断) | - | C(⚠️) | 见 tencent_tokenhub |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + 个人版 Key) | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| URL/端点 | 无差异 | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| 模型 ID | 同主条目 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1951)\n- **差距说明**:与 tencent_token_plan 完全同构。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制 ⚠️(推断)\n\n### tencent_token_plan_hy_personal — Tencent Token Plan Hy(个人版)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.lkeap.cloud.tencent.com/plan/v3` · env=`TENCENT_TOKEN_PLAN_API_KEY`\n- **变体**:无(**并入主条目 tencent_token_plan**;\"Hy\" 指套餐内主推混元 hy3 模型)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(并入主条目) | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 套餐主打 hy3,深度思考 `thinking.type.enabled` 直接适用(⚠️ 推断) | `{\"model\":\"hy3\",\"messages\":[...],\"thinking\":{\"type\":\"enabled\"}}` | C(⚠️) | https://cloud.tencent.com/document/product/1823/132252 |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + 个人版 Key) | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| URL/端点 | 无差异 | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| 模型 ID | 同主条目(hy3 系) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(thinking 同 tencent)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1960)\n- **差距说明**:无独立差距。\n- **建议动作**:无需动作(bodyOverrides 兜底 thinking)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制 ⚠️(推断)\n\n### tencent_tokenhub — Tencent TokenHub\n\n- **registry 现状**:profile=`full()` · base_url=`https://tokenhub.tencentmaas.com/v1` · env=`TENCENT_TOKENHUB_API_KEY`\n- **变体**:无(网关本体;token_plan_enterprise_* 走 `/plan/v3` 子路径)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | **by-model 两套思考开关**:Qwen3.5 系用顶层布尔 `enable_thinking`(默认开启)+ `preserve_thinking` + 消息内 `/think`、`/no_think` prompt 开关;hy3 系用 `thinking` 对象 | `{\"model\":\"qwen3.5-plus\",\"messages\":[...],\"enable_thinking\":false}`(可关);`{\"model\":\"hy3\",\"messages\":[...],\"thinking\":{\"type\":\"enabled\"}}` | C | https://cloud.tencent.com/document/product/1823/132247 ;https://cloud.tencent.com/document/product/1823/132252 |\n| 流式/usage | 无差异(标准 include_usage) | - | C | https://cloud.tencent.com/document/product/1823/132252 |\n| 消息格式 | 推理过程统一 `reasoning_content` 字段 | - | C | https://cloud.tencent.com/document/product/1823/132247 |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + TokenHub API Key) | - | C | https://cloud.tencent.com/document/product/1823/132247 |\n| URL/端点 | 无差异(`/v1` 与官方一致;hy3 同时兼容 Responses / Anthropic 协议) | - | C | https://cloud.tencent.com/document/product/1823/132252 |\n| 模型 ID | 网关聚合多模型族:`qwen3.5-plus`、`hy3`、`hy3-preview` 等 | - | C | https://cloud.tencent.com/document/product/1823/132247 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1969)\n- **差距说明**:`enable_thinking`/`thinking` 均需 bodyOverrides;`/think`、`/no_think` 是消息内容层面的协议,aimux 无内置(需用户拼进 prompt)。\n- **建议动作**:bodyOverrides 兜底;若做 reasoningMap,TokenHub 是\"一网关双机制\"的典型样例,需要 by-model 映射。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### tensormesh — Tensormesh\n\n- **registry 现状**:profile=`full()` · base_url=`https://serverless.tensormesh.ai` · env=`YOUR_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | tools 支持但**每个 tool 必须带非空 description**,否则 400 | `{\"tools\":[{\"type\":\"function\",\"function\":{\"name\":\"get_weather\",\"description\":\"...\",\"parameters\":{...}}}]}` | C | https://docs.litellm.ai/docs/providers/tensormesh |\n| 思考机制 | 思考模式走 **vLLM chat-template 控制**:`chat_template_kwargs` 传 `thinking` + `reasoning_effort`;输出在 `reasoning_content` | `extra_body={\"chat_template_kwargs\":{\"thinking\":true,\"reasoning_effort\":\"high\"}}` | C | https://docs.litellm.ai/docs/providers/tensormesh |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer);litellm 侧 env 名为 `TENSORMESH_INFERENCE_API_KEY`,registry 的 `YOUR_API_KEY` 是占位符 | - | C | https://docs.litellm.ai/docs/providers/tensormesh |\n| URL/端点 | **registry 缺 `/v1` 后缀**:litellm/官方默认 `https://serverless.tensormesh.ai/v1` | `POST https://serverless.tensormesh.ai/v1/chat/completions` | C | https://docs.litellm.ai/docs/providers/tensormesh |\n| 模型 ID | catalog 式前缀模型:`openai/gpt-oss-120b`、`MiniMaxAI/MiniMax-M2.5`、`deepseek-ai/DeepSeek-V4-Flash` | - | C | https://docs.litellm.ai/docs/providers/tensormesh |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1978)\n- **差距说明**:base_url 少 `/v1`([model.rs](aimux-providers/src/openai/model.rs#L73) 拼接后变 `.../chat/completions`,非 `.../v1/chat/completions`);`chat_template_kwargs` 思考开关需 bodyOverrides。\n- **建议动作**:registry base_url 补 `/v1`;思考用 bodyOverrides。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### the_grid_ai — The Grid AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://thegrid.ai/docs` · env=`THEGRIDAI_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_tokens` 已废弃,建议 `max_completion_tokens`) | - | C | https://thegrid.ai/docs/api-reference/consumption-api |\n| 能力支持 | 无差异(tools/tool_choice/response_format/logprobs/seed 全支持) | - | C | https://thegrid.ai/docs/api-reference/consumption-api |\n| 思考机制 | `reasoning_effort`(none/minimal/low/medium/high/xhigh)标准透传 | `{\"model\":\"text-prime\",\"messages\":[...],\"reasoning_effort\":\"high\"}` | C | https://thegrid.ai/docs/api-reference/consumption-api |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | **OpenRouter 风格路由字段**:`provider` 对象、`route:\"fallback\"`、`safety_identifier`、`prompt_cache_key`、`prompt_cache_retention`、`service_tier`(auto/default/flex/scale/priority)、`web_search_options`、`verbosity` | `{\"model\":\"text-prime\",\"provider\":{\"allow_fallbacks\":true},\"route\":\"fallback\",\"safety_identifier\":\"...\"}` | C | https://thegrid.ai/docs/api-reference/consumption-api |\n| headers/认证 | OpenAI 面 `Authorization: Bearer`;Anthropic 面(`https://messages-beta.api.thegrid.ai/v1`)用 `x-api-key` | - | C | https://thegrid.ai/docs/api-reference/consumption-api |\n| URL/端点 | **registry base_url 是 docs 页面**;真实 API 为 `https://api.thegrid.ai/v1` | `POST https://api.thegrid.ai/v1/chat/completions` | C | https://thegrid.ai/docs/api-reference/consumption-api |\n| 模型 ID | 模型=instrument 代号:`text-prime`、`code-max`、`claude-opus-latest`(非 org 前缀) | - | C | https://thegrid.ai/docs/api-reference/consumption-api |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1987)\n- **差距说明**:base_url 错误(docs 页不是 API 端点);provider/route/safety_identifier 等路由字段无内置(bodyOverrides 可兜底)。\n- **建议动作**:registry base_url 改为 `https://api.thegrid.ai/v1`;特殊字段文档化走 bodyOverrides。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### thinkingmachines — Thinking Machines (Tinker)\n\n- **registry 现状**:profile=`full()` · base_url=`https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1` · env=`TINKER_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 训练/推理 API,思考行为取决于权重路径(sampler weight),无独立开关字段证据 | - | C(⚠️) | https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/openai/ |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer,`{env:TINKER_API_KEY}` 官方示例) | - | C | https://tinker-docs.thinkingmachines.ai/tutorials/deployment/opencode/ |\n| URL/端点 | 无差异(registry 与官方 OAI 端点完全一致) | `POST https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1/chat/completions` | C | https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/openai/ |\n| 模型 ID | **模型名 = Tinker 采样器权重路径**:`tinker://0034d8c9...`(非普通模型代号) | `{\"model\":\"tinker://0034d8c9...\",\"messages\":[...]}` | C | https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/openai/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1996)\n- **差距说明**:无(模型 ID 特殊但 aimux 直接透传 model 字段,无需转换)。\n- **建议动作**:补文档说明模型名须为 `tinker://` 权重路径;无需代码改动。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制无直接证据(本厂商为训练 API,chat 面用于权重推理)\n\n### tinfoil — Tinfoil\n\n- **registry 现状**:profile=`full()` · base_url=`https://inference.tinfoil.sh/v1` · env=`TINFOIL_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(tool calling、structured outputs、多模态 base64、文档处理均 OpenAI 兼容) | - | C | https://docs.tinfoil.sh/introduction |\n| 思考机制 | 无差异(无独立开关证据) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | SDK 额外做远端 attestation 验证(传输层,非请求体字段),请求体无特殊字段 | - | C | https://docs.tinfoil.sh/introduction |\n| headers/认证 | 无差异(Bearer;SDK 同时校验 enclave 证明) | `curl -X POST https://inference.tinfoil.sh/v1/chat/completions -H \"Content-Type...\"` | C | https://tinfoil.sh/inference |\n| URL/端点 | 无差异 | - | C | https://tinfoil.sh/inference |\n| 模型 ID | 未确认模型清单 ⚠️(docs 未列出 model ID 表) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2005)\n- **差距说明**:无 request 层差距(attestation 属传输层,不在 aimux 范围)。\n- **建议动作**:无需动作;模型 ID 待补。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:模型 ID 清单证据不足\n\n### togetherai — Together AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.together.xyz/v1` · env=`TOGETHER_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_tokens` 标准用法;支持 `stop`) | - | C | https://docs.together.ai/docs/inference/chat/parameters |\n| 能力支持 | 无差异(temperature/top_p/**top_k**/seed/repetition_penalty;`response_format` json_schema 结构化输出;tools/logprobs 均支持) | `{\"model\":\"meta-llama/Llama-3.3-70B-Instruct-Turbo\",\"messages\":[...],\"max_tokens\":100,\"stop\":[\"\\n\\n\"],\"seed\":42,\"top_k\":40}` | C | https://docs.together.ai/docs/inference/chat/parameters |\n| 思考机制 | 推理模型(如 DeepSeek-R1)无独立开关字段证据;输出 reasoning_content 标准 | - | - | - |\n| 流式/usage | 无差异(标准 SSE) | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | - | - |\n| URL/端点 | 无差异 | - | C | https://docs.together.ai/docs/inference/chat/overview |\n| 模型 ID | **org 前缀模型名**:`meta-llama/Llama-3.3-70B-Instruct-Turbo`、`deepseek-ai/DeepSeek-R1` 等(直接透传即可) | - | C | https://docs.together.ai/docs/inference/chat/parameters |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2014);top_k 白名单 [convert.rs](aimux-providers/src/openai/convert.rs#L1111)\n- **差距说明**:无(full() 已覆盖 top_k/tools/response_format/usage)。\n- **建议动作**:补一条结构化输出 + top_k 的 cassette 测试即可。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### tokenflux — TokenFlux\n\n- **registry 现状**:profile=`full()` · base_url=`https://tokenflux.ai/v1` · env=`TOKENFLUX_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(Models/Chat Completions/Messages/Embeddings/Images API 齐备) | - | C | https://tokenflux.ai/docs/introduction |\n| 思考机制 | 无差异(未见独立开关文档) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 管理面用 `X-Api-Key`(projects 接口);模型推理面 OpenAI 兼容 Bearer ⚠️ 推理面 header 细节未逐条确认 | - | C(⚠️) | https://tokenflux.ai/ |\n| URL/端点 | **双 base URL**:推荐 `https://tokenflux.ai/openai/v1`(drop-in),`https://tokenflux.ai/v1` 亦可;registry 用后者 | `POST https://tokenflux.ai/openai/v1/chat/completions` | C | https://tokenflux.ai/docs/api-reference/embeddings |\n| 模型 ID | 未逐一确认 ⚠️ | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2024)\n- **差距说明**:无 request 构造差距。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:推理面认证 header 细节、模型 ID 清单证据不足\n\n### tokenpony — TokenPony(小马算力)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.tokenpony.com/v1` · env=`TOKENPONY_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(DeepSeek/GLM/MiniMax 等聚合,兼容 OpenAI 规范) | - | C | https://www.tokenpony.cn/ |\n| 思考机制 | 透传上游(deepseek 系 reasoning),无独立开关文档 ⚠️ | - | C(⚠️) | https://www.tokenpony.cn/ |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer 聚合网关) | - | C | https://www.tokenpony.cn/ |\n| URL/端点 | **registry 域名存疑**:官方为 `www.tokenpony.cn` / `api.tokenpony.cn/v1`(chats 项目同);registry 写 `api.tokenpony.com` ⚠️ | `https://api.tokenpony.cn/v1/chat/completions` | B | [chats/doc/zh-CN/release-notes/1.8.1.md](reference/chats/doc/zh-CN/release-notes/1.8.1.md#L151) ;https://www.tokenpony.cn/ |\n| 模型 ID | 上游模型直通(`deepseek-v3.*` 等,chats 1.9.1 提及) | - | B | [chats/doc/zh-CN/release-notes/1.9.1.md](reference/chats/doc/zh-CN/release-notes/1.9.1.md#L126) |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 域名待核)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2032)\n- **差距说明**:`.com` vs `.cn` 域名差异需实测确认哪个可解析/可服务;若 `.cn` 为真则 registry 需修正。\n- **建议动作**:实测两个域名连通性后修正 base_url。\n\n#### 3. 证据与验证\n\n- **证据等级**:B+C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:base_url 域名 ⚠️\n\n### trustedrouter — TrustedRouter\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.trustedrouter.com/v1` · env=`TRUSTEDROUTER_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异(透传上游) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | **OpenRouter 风格 `provider` 路由对象**:`min_privacy`(\"zdr\"/\"confidential\",fail-closed 硬约束)、`data_collection:\"deny\"`;x402 自动充值 | `{\"model\":\"your/model\",\"provider\":{\"min_privacy\":\"zdr\"}}` | C | https://trustedrouter.com/docs |\n| headers/认证 | 无差异(Bearer,`TRUSTEDROUTER_API_KEY` 与 registry env 一致) | - | C | https://trustedrouter.com/docs |\n| URL/端点 | 无差异 | - | C | https://trustedrouter.com/docs |\n| 模型 ID | **preset 路由模型**:`trustedrouter/auto`(failover)、`trustedrouter/eu`、`trustedrouter/socrates`、Synth presets(`trustedrouter/iris-2.0` 等) | - | C | https://trustedrouter.com/docs |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2041)\n- **差距说明**:`provider` 路由对象需 bodyOverrides;其余标准。\n- **建议动作**:bodyOverrides 兜底;模型 ID 约定写进厂商文档。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### tundra — Tundra\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.tundra.ai/v1` · env=`TUNDRA_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(证据不足) | - | - | - |\n| 能力支持 | 无差异(证据不足) | - | - | - |\n| 思考机制 | 无差异(证据不足) | - | - | - |\n| 流式/usage | 无差异(证据不足) | - | - | - |\n| 消息格式 | 无差异(证据不足) | - | - | - |\n| 特殊字段 | 无差异(证据不足) | - | - | - |\n| headers/认证 | 无差异(证据不足) | - | - | - |\n| URL/端点 | 无法确认 ⚠️(公开检索未命中 api.tundra.ai 有效文档/服务) | - | - | - |\n| 模型 ID | 无法确认 ⚠️ | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:❓ 无法判断(证据不足)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2050)\n- **差距说明**:未找到该厂商任何可验证的 API 文档/集成代码。\n- **建议动作**:保留 full() 默认假设,标记\"证据不足\",后续有实测再补。\n\n#### 3. 证据与验证\n\n- **证据等级**:无\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 全条目存疑(无任何公开证据)\n\n### umans_ai — Umans AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.code.umans.ai/v1` · env=`UMANS_AI_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | **Coding Plan 走 Anthropic Messages 协议,thinking 用 Anthropic budget 模式**:`{\"thinking\":{\"mode\":\"budget\",\"efforts\":[\"minimal\",\"low\",\"medium\",\"high\",\"xhigh\"]}}`;OpenAI 面(`/v1`)无独立文档 ⚠️ | 见左(Anthropic 面) | C(⚠️) | https://github.com/can1357/oh-my-pi/issues/3286 |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | Anthropic 面 `x-api-key`;OpenAI 面假设 Bearer ⚠️ | - | C(⚠️) | https://github.com/can1357/oh-my-pi/issues/3192 |\n| URL/端点 | 官方公开 base `https://api.code.umans.ai`(HF inference-providers 收录为 OpenAI 兼容);registry 的 `/v1` 子路径未经官方文档确认 ⚠️ | `https://api.code.umans.ai/v1/chat/completions`(推断) | C(⚠️) | https://huggingface.co/spaces/huggingface/HuggingDiscussions/discussions/49 |\n| 模型 ID | `umans-glm-5.2` 等 `umans-*` 前缀模型 | - | C | https://github.com/can1357/oh-my-pi/issues/3192 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(协议面存疑)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2059)\n- **差距说明**:官方主推 Coding Plan(Anthropic 协议);OpenAI 兼容面是否存在 `/v1` 需实测。若仅 Anthropic,aimux OpenAI 请求会失败。\n- **建议动作**:实测 `https://api.code.umans.ai/v1/chat/completions` 连通性;确认前标注存疑。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:OpenAI 面/认证 header ⚠️\n\n### unorouter — UnoRouter\n\n- **registry 现状**:profile=`full()` · base_url=`https://unorouter.com/en` · env=`UNOROUTER_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(200+ 模型 OpenAI 兼容网关) | - | C | https://sourceforge.net/software/product/UnoRouter/ |\n| 思考机制 | 无差异(透传上游) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://unorouter.com/en |\n| URL/端点 | **registry base_url 是官网路径**;API 端点为 `https://api.unorouter.com/v1` | `curl -X POST https://api.unorouter.com/v1/chat/completions` | C | https://unorouter.com/en/docs/integrations/sillytavern |\n| 模型 ID | 平台模型 slug(未逐一确认) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 错误)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2068)\n- **差距说明**:`unorouter.com/en` 是营销页,请求必然 404;应改为 `https://api.unorouter.com/v1`。\n- **建议动作**:修正 registry base_url。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### upstage — Upstage\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.upstage.ai/v1` · env=`UPSTAGE_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(官方 OpenAI SDK 直连示例:stream/messages 标准) | - | C | https://console.upstage.ai/api-keys |\n| 思考机制 | 无差异(Solar 推理为模型内建,无独立开关字段证据) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异(Document AI 是独立产品线,不走 chat 请求体) | - | - | - |\n| 特殊字段 | 旧版 RAG 曾传 `document` 参数,当前版本未见官方文档,⚠️ 不采信 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://console.upstage.ai/api-keys |\n| URL/端点 | 无差异 | - | C | https://console.upstage.ai/api-keys |\n| 模型 ID | `solar-pro-3`、`solar-mini`、`solar-pro` 等 `solar-*` 代号(非 org 前缀) | - | C | https://openrouter.ai/upstage/solar-pro-3 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2077)\n- **差距说明**:无。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无(旧版 `document` 参数未采信)\n\n### v0 — v0 (Vercel)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.v0.dev/v1` · env=`V0_API_KEY`\n- **变体**:vercel(Vercel AI Gateway,见 vercel 条目)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(function/tool calls、多模态 base64 图片、低延迟流式均支持;限流 200 消息/天、上下文 128K) | `POST https://api.v0.dev/v1/chat/completions` + Bearer | C | https://apidog.com/blog/vercel-v0-1-0-md-api/ |\n| 思考机制 | 无差异(v0 模型无公开 thinking 开关) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异(image base64) | - | C | https://apidog.com/blog/vercel-v0-1-0-md-api/ |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + v0.dev API key) | - | C | https://apidog.com/blog/vercel-v0-1-0-md-api/ |\n| URL/端点 | 无差异(registry 与官方一致) | - | C | https://v0.app/docs/api/platform/overview |\n| 模型 ID | v0 专有模型:`v0-1.0-md`、`v0-1.0`、`v0-1.1` 等 | - | C | https://apidog.com/blog/vercel-v0-1-0-md-api/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2086)\n- **差距说明**:无。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### venice — Venice\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.venice.ai/api/v1` · env=`VENICE_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | `max_tokens` 已废弃(建议 `max_completion_tokens`);`user` 字段被丢弃仅兼容 | - | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| 能力支持 | 富参数:`top_k`、`logprobs`/`top_logprobs`、`min_p`、`min_temp`/`max_temp`(动态温控)、`repetition_penalty`、`stop_token_ids`、`seed`、tools/response_format json_schema | `{\"model\":\"zai-org-glm-5-1\",\"top_k\":40,\"min_p\":0.05,\"repetition_penalty\":1.2,\"stop_token_ids\":[151643]}` | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| 思考机制 | 双通道:`reasoning_effort`(none/minimal/low/medium/high/xhigh/max)+ `reasoning` 对象(`effort`/`summary`);`venice_parameters.disable_thinking` / `strip_thinking_response` 控制开关与剥离;响应 `reasoning_content` | `{\"reasoning\":{\"effort\":\"medium\",\"summary\":\"auto\"},\"venice_parameters\":{\"disable_thinking\":false,\"strip_thinking_response\":false}}` | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| 流式/usage | 无差异(标准 `stream_options.include_usage`) | - | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| 消息格式 | 无差异(text/image/audio/video/file 多模态) | - | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| 特殊字段 | **`venice_parameters` 对象**:`enable_web_search`、`enable_web_citations`、`enable_web_scraping`、`include_venice_system_prompt`、`character_slug`、`enable_e2ee`、`include_search_results_in_stream`、`return_search_results_as_documents`;另有 `prompt_cache_key`、`prompt_cache_retention`(\"default\"/\"extended\"/\"24h\")、`verbosity`/`text.verbosity`;`store` 字段被接受但忽略 | `{\"venice_parameters\":{\"enable_web_search\":\"auto\",\"include_venice_system_prompt\":true,\"character_slug\":\"venice\",\"enable_e2ee\":true}}` | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| headers/认证 | Bearer 或 `SIGN-IN-WITH-X`(x402 钱包认证,`X-Sign-In-With-X` 为迁移期别名);402 响应=余额不足 | - | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| URL/端点 | 无差异(`/api/v1` 与官方一致) | - | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| 模型 ID | 模型 ID 或 **feature suffix**(如追加后缀启用 web search/角色人设),可替代 venice_parameters | - | C | https://docs.venice.ai/api-reference/endpoint/chat/model_feature_suffix |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2095)\n- **差距说明**:`venice_parameters`/`prompt_cache_key`/`min_p`/`min_temp`/`max_temp`/`stop_token_ids` 等均需 bodyOverrides(convert.rs 白名单无这些键);`reasoning` 对象需 bodyOverrides;`max_completion_tokens` 已有([convert.rs](aimux-providers/src/openai/convert.rs#L1119))。\n- **建议动作**:venice_parameters 是封闭厂商专属字段,建议文档化走 bodyOverrides;无需 profile 扩展(除非要内置 web search)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### vercel — Vercel (AI Gateway)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.v0.dev/v1` · env=`VERCEL_API_KEY`\n- **变体**:v0(同 host 不同产品线,见 v0 条目)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(chat/completions、embeddings、reasoning 控制、file attachments、tool calling、structured outputs) | - | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions |\n| 思考机制 | 有独立 Reasoning 文档(控制思考量),字段与 OpenAI 标准 reasoning_effort 一致 | - | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异(支持图片与 PDF 附件) | - | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions |\n| 特殊字段 | 网关扩展:`provider` 选项、模型 fallback、BYOK、prompt caching(advanced 文档) | - | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced |\n| headers/认证 | Bearer(AI Gateway API key 或 **OIDC token**) | - | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions |\n| URL/端点 | **registry base_url 存疑**:官方 AI Gateway 为 `https://ai-gateway.vercel.sh/v1`(registry 复用 v0 的 `api.v0.dev/v1`)⚠️ | `POST https://ai-gateway.vercel.sh/v1/chat/completions` | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions |\n| 模型 ID | **provider 前缀**:`anthropic/claude-opus-5`、`openai/gpt-5.6-sol` | - | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 存疑)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2104)\n- **差距说明**:registry 的 vercel 与 v0 共用 `api.v0.dev/v1`,但 Vercel AI Gateway 官方端点是 `ai-gateway.vercel.sh/v1`,两者模型清单/配额体系不同;需确认 registry 意图(也许指向 v0 的 Vercel 通道)。\n- **建议动作**:与仓库维护者确认意图后修正 base_url;若走 AI Gateway,`ai-gateway.vercel.sh/v1` 为标准 OpenAI 兼容,full() 适用。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:base_url ⚠️\n\n### vivgrid — Vivgrid\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.vivgrid.com/v1` · env=`VIVGRID_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(OpenAI `/chat/completions` 端点) | - | C | https://vivgrid.com/docs/quick-start |\n| 思考机制 | 无差异(透传上游) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer,`VIVGRID_API_KEY` 与 registry 一致) | - | C | https://mastra.ai/models/providers/vivgrid |\n| URL/端点 | 无差异 | - | C | https://vivgrid.com/blog/decoupling-prompts-tools-models-from-agent-client |\n| 模型 ID | **org 前缀**:`vivgrid/deepseek-v3.2`、`vivgrid/gemini-3.1-pro-preview`、`vivgrid/gpt-5.6-sol` 等 | - | C | https://mastra.ai/models/providers/vivgrid |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2113)\n- **差距说明**:无。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### volc_engine — VolcEngine (火山方舟)\n\n- **registry 现状**:profile=`full()` · base_url=`https://ark.cn-beijing.volces.com` · env=`ARK_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(OpenAI 兼容 /api/v3;支持工具调用) | - | C | https://www.volcengine.com/docs/82379/1298459 |\n| 思考机制 | 推理模型(豆包/DeepSeek 系)无统一开关字段证据(按模型走 enable_thinking 或 thinking 需实测)⚠️ | - | - | - |\n| 流式/usage | 无差异(标准) | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | **官方推荐 IAM(AccessKey/SecretKey)签名鉴权**;OpenAI 兼容面也可 API Key Bearer(ARK_API_KEY) | - | B/C | https://www.volcengine.com/docs/82379/1263279 ;[simple-one-api 接入指南](reference/simple-one-api/docs/火山方舟大模型接入指南.md#L7) |\n| URL/端点 | **registry 缺 `/api/v3` 路径**:官方 OpenAI 兼容 base 为 `https://ark.cn-beijing.volces.com/api/v3` | `POST https://ark.cn-beijing.volces.com/api/v3/chat/completions` | B | [simple-one-api/docs/火山方舟大模型接入指南.md](reference/simple-one-api/docs/火山方舟大模型接入指南.md#L24) ;[uni-api/README.md](reference/uni-api/README.md#L233) |\n| 模型 ID | **推理接入点 ID**:`ep-xxxxxxxxxx-yyyy`(endpoint 格式)或 `doubao-*` 模型名 | `{\"model\":\"ep-20240612090709-hzjz5\",\"messages\":[...]}` | B | [simple-one-api/docs/火山方舟大模型接入指南.md](reference/simple-one-api/docs/火山方舟大模型接入指南.md#L18) |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 缺 `/api/v3`)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2122);端点拼接 [model.rs](aimux-providers/src/openai/model.rs#L73)\n- **差距说明**:当前拼接结果为 `https://ark.cn-beijing.volces.com/chat/completions`,缺少 `/api/v3` 路径段,必 404;Bearer 认证可用(免 IAM 签名,官方兼容面接受 API Key)。\n- **建议动作**:registry base_url 改为 `https://ark.cn-beijing.volces.com/api/v3`(高优先)。\n\n#### 3. 证据与验证\n\n- **证据等级**:B(本地 reference 配置)+C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无(base_url 结论强)\n\n### vultr — Vultr (Inference)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.vultrinference.com/v1` · env=`VULTR_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_tokens` 默认 4096;`stop`、`seed` 标准) | - | C | https://api.vultrinference.com/ |\n| 能力支持 | 无差异(logprobs/top_logprobs/tools/tool_choice 标准) | - | C | https://api.vultrinference.com/ |\n| 思考机制 | 无差异(raw 端点透传上游 `reasoning_content`;**normalize 模式可改写为 `reasoning`**,见下) | - | C | https://api.vultrinference.com/ |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | raw 端点可能返回非标准字段(content=None + tool_calls 等),normalize 模式修正 | - | C | https://api.vultrinference.com/ |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer *API Key*) | - | C | https://api.vultrinference.com/ |\n| URL/端点 | 无差异 | - | C | https://api.vultrinference.com/ |\n| 模型 ID | **org 前缀 + `-normalize` 后缀约定**:`deepseek-ai/DeepSeek-V4-Pro` / `deepseek-ai/DeepSeek-V4-Pro-normalize`(normalizer 修正 `reasoning_content`→`reasoning`、工具调用 ID 等非标准响应) | `{\"model\":\"deepseek-ai/DeepSeek-V4-Pro-normalize\",\"messages\":[...]}` | C | https://api.vultrinference.com/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2131)\n- **差距说明**:aimux 已兼容 `reasoning_content`([model.rs](aimux-providers/src/openai/model.rs#L558) 优先读它),与 raw 端点兼容良好;`-normalize` 只是用户可选模型名后缀,无需代码改动;但需在文档提示 deepseek 系模型加 `-normalize` 以获得标准响应。\n- **建议动作**:补文档说明,无需 profile 改动。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### wafer — Wafer\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.wafer.ai/v1` · env=`WAFER_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(OpenAI 兼容 `/chat/completions`) | - | C | https://www.truefoundry.com/docs/ai-gateway/wafer |\n| 思考机制 | 无差异(透传上游;模型表带 Reasoning 列) | - | C | https://mastra.ai/models/providers/wafer.ai |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer,`WAFER_API_KEY` 与 registry 一致) | - | C | https://mastra.ai/models/providers/wafer.ai |\n| URL/端点 | **registry 域名存疑**:TrueFoundry/Mastra 官方 base 为 `https://pass.wafer.ai/v1`(Wafer Pass 产品);registry 写 `api.wafer.ai` ⚠️ | `POST https://pass.wafer.ai/v1/chat/completions` | C(⚠️) | https://www.truefoundry.com/docs/ai-gateway/wafer ;https://mastra.ai/models/providers/wafer.ai |\n| 模型 ID | **org 前缀**:`wafer.ai/GLM-5.1`、`wafer.ai/Kimi-K2.6`、`wafer.ai/MiniMax-M3` | - | C | https://mastra.ai/models/providers/wafer.ai |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 域名待核)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2140)\n- **差距说明**:`api.wafer.ai` vs 官方 `pass.wafer.ai`;需实测 api.wafer.ai 是否解析/转发。\n- **建议动作**:实测后修正 registry base_url。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:base_url 域名 ⚠️\n\n### wandb — Weights & Biases (Serverless Inference)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.inference.wandb.ai/v1` · env=`WANDB_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(标准 chat/completions,模型清单由 W&B 托管) | - | C | https://docs.wandb.ai/inference/api-reference/chat-completions |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer);**可选 `OpenAI-Project: [YOUR-TEAM]/[YOUR-PROJECT]` 头**做 usage 追踪 | `curl .../chat/completions -H \"Authorization: Bearer [YOUR-API-KEY]\" -H \"OpenAI-Project: [YOUR-TEAM]/[YOUR-PROJECT]\"` | C | https://docs.wandb.ai/inference/api-reference/chat-completions |\n| URL/端点 | 无差异 | - | C | https://docs.wandb.ai/inference/api-reference/chat-completions |\n| 模型 ID | **org 前缀**:`meta-llama/Llama-3.1-8B-Instruct` 等托管模型 | - | C | https://docs.wandb.ai/inference/api-reference/chat-completions |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2149);`OpenAI-Project` 头已有 [mod.rs](aimux-providers/src/openai/mod.rs#L101)(`with_project`)\n- **差距说明**:`OpenAI-Project` 头需要用户显式 `with_project(\"team/project\")` 配置,默认不发送——符合可选语义。\n- **建议动作**:厂商文档提示设置 project 头以启用 usage 追踪。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### xiaomi_token_plan_ams — Xiaomi Token Plan(欧洲区)\n\n- **registry 现状**:profile=`full()` · base_url=`https://token-plan-ams.xiaomimimo.com/v1` · env=`MIMO_API_KEY`\n- **变体**:无(**并入主条目 xiaomi_token_plan_cn**——同一 Token Plan 产品,区域镜像域名 `token-plan-ams.xiaomimimo.com`)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(并入主条目,`max_completion_tokens`) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异(同主条目,无独立开关文档) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | **`api-key` 头**(同主条目,Key 格式 `tp-xxxxx`) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| URL/端点 | 无差异(区域子域) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 模型 ID | 同主条目(`mimo-v2.5-pro` 等) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(同主条目:`api-key` 头需 with_headers)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2158)\n- **差距说明**:无独立差距。\n- **建议动作**:与主条目一并处理认证头问题。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:区域域名是否真实开通未实测\n\n### xiaomi_token_plan_sgp — Xiaomi Token Plan(新加坡区)\n\n- **registry 现状**:profile=`full()` · base_url=`https://token-plan-sgp.xiaomimimo.com/v1` · env=`MIMO_API_KEY`\n- **变体**:无(**并入主条目 xiaomi_token_plan_cn**,区域镜像 `token-plan-sgp.xiaomimimo.com`)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(并入主条目) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | **`api-key` 头**(同主条目) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| URL/端点 | 无差异(区域子域) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 模型 ID | 同主条目 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(同主条目)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2176)\n- **差距说明**:无独立差距。\n- **建议动作**:与主条目一并处理认证头问题。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:区域域名是否真实开通未实测\n\n### xiaomi_token_plan_cn — Xiaomi Token Plan(中国区)\n\n- **registry 现状**:profile=`full()` · base_url=`https://token-plan-cn.xiaomimimo.com/v1` · env=`MIMO_API_KEY`\n- **变体**:xiaomi_token_plan_ams(`token-plan-ams.xiaomimimo.com/v1`)/ xiaomi_token_plan_sgp(`token-plan-sgp.xiaomimimo.com/v1`),区域镜像同协议\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_completion_tokens` 官方示例) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 能力支持 | 无差异(temperature/top_p/frequency_penalty/presence_penalty/stop/stream 标准) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 思考机制 | MiMo 推理模型无独立开关字段证据(reasoning 模型按权重)⚠️ | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | **认证头是 `api-key`(非 `Authorization: Bearer`)**:官方 curl 用 `--header \"api-key: $MIMO_API_KEY\"`;Key 格式 `tp-xxxxx`(Token Plan) | `curl ... 'https://token-plan-cn.xiaomimimo.com/v1/chat/completions' --header \"api-key: $MIMO_API_KEY\"` | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| URL/端点 | 无差异(cn 区与官方一致;另提供 Anthropic 面 `/anthropic`) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 模型 ID | `mimo-v2.5-pro`、`mimo-v2.5` 等 `mimo-*` 代号 | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2158)\n- **差距说明**:aimux 默认发送 `Authorization: Bearer`;若 MiMo 拒绝 Bearer 只认 `api-key`,则请求 401——需用户 `with_headers` 注入 `api-key` 头([mod.rs](aimux-providers/src/openai/mod.rs#L155) 支持自定义 headers,可兜底但非零配置)。\n- **建议动作**:实测 `api-key` vs `Authorization` 兼容性;若不兼容,考虑在 profile 增加 auth 头选项或在厂商文档注明 with_headers 用法。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:是否同时接受 Bearer 未确认(官方只示范 `api-key`)\n\n### xiaomimimo — Xiaomi MiMo(按量计费)\n\n- **registry 现状**:profile=`full()` · base_url=`https://mimo.xiaomi.com/v1` · env=`XIAOMI_API_KEY`\n- **变体**:无(与 xiaomi_token_plan_* 是同一平台两种计费方式)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_completion_tokens`) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 能力支持 | 无差异 | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 思考机制 | 无差异(无独立开关文档) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | **认证头 `api-key`**(同 Token Plan);Key 格式 `sk-xxxxx` | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| URL/端点 | **registry 域名存疑**:官方按量计费 base 为 `https://api.xiaomimimo.com/v1`(registry 写 `mimo.xiaomi.com/v1`,后者是官网站)⚠️ | `POST https://api.xiaomimimo.com/v1/chat/completions` | C(⚠️) | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 模型 ID | `mimo-v2.5-pro` 等(同 Token Plan) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url + 认证头)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2185)\n- **差距说明**:base_url 需按官方改为 `api.xiaomimimo.com/v1`(或实测 mimo.xiaomi.com 是否通 API);认证头 `api-key` 需 with_headers。\n- **建议动作**:修正 base_url;认证头问题与 xiaomi_token_plan_cn 一并处理。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:base_url 域名 ⚠️\n\n### xpersona — Xpersona\n\n- **registry 现状**:profile=`full()` · base_url=`/v1` · env=`XPERSONA_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(OpenAI 兼容 `/chat/completions`) | - | C | https://mastra.ai/models/providers/xpersona |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://www.xpersona.co/ |\n| URL/端点 | **registry base_url 只有 `/v1` 相对路径(缺 host)**:官方为 `https://www.xpersona.co/v1`(Mastra 配置) | `POST https://www.xpersona.co/v1/chat/completions` | C(⚠️) | https://mastra.ai/models/providers/xpersona |\n| 模型 ID | **org 前缀**:`xpersona/claude-fable-5` 等(聚合 GPT/Claude/Gemini) | - | C | https://mastra.ai/models/providers/xpersona |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 缺 host)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2194)\n- **差距说明**:`/v1` 相对路径无法发起请求,需补全 host。\n- **建议动作**:registry base_url 改为 `https://www.xpersona.co/v1`(或官方 API 域名,以实测为准)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:官方 API 域名(www vs 裸域)⚠️\n\n### xunfei — Xunfei(讯飞星火)\n\n- **registry 现状**:profile=`full()` · base_url=`https://spark-api-open.xf-yun.com/v1` · env=`XUNFEI_API_PASSWORD`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_tokens`、`user`、`presence_penalty`、`frequency_penalty` 标准;temperature 建议 1.2) | - | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n| 能力支持 | **支持 `top_k`**;`response_format:{\"type\":\"json_object\"}`;tools 支持 function 与 **`web_search` 类型内置工具** | `{\"tools\":[{\"type\":\"function\",\"function\":{...}},{\"type\":\"web_search\",\"web_search\":{\"enable\":true,\"show_ref_label\":true,\"search_mode\":\"deep\"}}]}` | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n| 思考机制 | Ultra 已升级 X1.5 快思考;X1/X2 深度思考模型存在(另册 X1 HTTP 文档),OpenAI 兼容面无统一 thinking 开关证据 ⚠️ | - | C(⚠️) | https://www.xfyun.cn/doc/spark/X1http.html |\n| 流式/usage | 无差异(stream 标准 SSE) | - | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | **`suppress_plugin` 数组**:抑制内置插件(如 knowledge 搜索插件) | `{\"suppress_plugin\":[\"knowledge\"]}` | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n| headers/认证 | 无差异(`Authorization: Bearer `,env 名与 registry 的 XUNFEI_API_PASSWORD 语义一致) | `--header 'Authorization: Bearer 123456'` | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n| URL/端点 | 无差异(`/v1/chat/completions` 官方一致) | - | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n| 模型 ID | **版本码约定**:`4.0Ultra` / `generalv3.5`(Max) / `max-32k` / `generalv3`(Pro) / `pro-128k` / `lite`(非 OpenAI 式命名) | `{\"model\":\"generalv3.5\",\"messages\":[...]}` | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2203)\n- **差距说明**:`suppress_plugin` 不在 convert.rs 白名单(需 bodyOverrides);`web_search` 类型 tool 不在 aimux `Tool` 枚举([convert.rs](aimux-providers/src/openai/convert.rs#L1374) 只处理 Function 类型,Provider 类型被丢弃并 warn)——星火内置搜索工具无法透传;top_k/response_format/tools(function) 均 ✅。\n- **建议动作**:`web_search` 工具透传可评估(低优先);suppress_plugin 文档化走 bodyOverrides。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:X1 思考开关字段未确认\n\n### zai — Z.AI (GLM)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.z.ai/api/paas/v4` · env=`ZAI_API_KEY`\n- **变体**:zai_coding_plan(订阅套餐,见下条)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(官方 GLM-5 示例用 `max_tokens` + `temperature`) | - | C | https://docs.z.ai/guides/llm/glm-5 |\n| 能力支持 | 无差异(Function Call、Structured Output、streaming、上下文缓存) | - | C | https://docs.z.ai/guides/llm/glm-5 |\n| 思考机制 | **`thinking` 对象开关**:`{\"type\":\"enabled\"}`(GLM-5/4.6V 官方示例);GLM-5 提供多种 thinking mode 档位;响应含 reasoning 输出 | `{\"model\":\"glm-5\",\"messages\":[...],\"thinking\":{\"type\":\"enabled\"},\"max_tokens\":4096,\"temperature\":1.0}` | C | https://docs.z.ai/guides/llm/glm-5 ;https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异(多模态走标准 image_url) | - | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 特殊字段 | 无差异(上下文缓存为服务端行为) | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://docs.z.ai/guides/llm/glm-5 |\n| URL/端点 | 无差异(`/api/paas/v4` 与官方一致) | - | C | https://docs.z.ai/guides/llm/glm-5 |\n| 模型 ID | `glm-5`、`glm-5.2`、`glm-4.6v` 等 `glm-*` 系列 | - | C | https://docs.z.ai/guides/llm/glm-5 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2212)\n- **差距说明**:`thinking` 对象需 bodyOverrides(现有 DeepSeek override 的 thinking 注入绑定 provider_options[\"deepseek\"],不通用);其余 ✅。\n- **建议动作**:若 GLM 成为主流,建议在 RequestBodyOverride 增加 GLM 变体(thinking 透传 + reasoning_effort 可选)或 profile 增加 `thinking_field` 通用支持。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### zai_coding_plan — Z.AI Coding Plan\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.z.ai/api/anthropic` · env=`ZHIPU_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | **协议级差异**:该端点是 Anthropic Messages 协议,无 `messages.role=system` 顶层数组,改用顶层 `system` + `max_tokens` 必填 | `{\"model\":\"glm-5.2[1m]\",\"max_tokens\":... ,\"system\":\"...\",\"messages\":[...]}` | C | https://docs.z.ai/devpack/tool/claude |\n| 能力支持 | Anthropic 面(tool_use/tool_result、thinking budget 模式) | - | C | https://docs.z.ai/devpack/tool/claude |\n| 思考机制 | Claude Code 集成:`ANTHROPIC_AUTH_TOKEN`=ZHIPU_API_KEY,模型 `glm-4.7` / `glm-5.2[1m]`;thinking 走 Anthropic budget 模式 | `\"env\":{\"ANTHROPIC_AUTH_TOKEN\":\"your_zai_api_key\",\"ANTHROPIC_BASE_URL\":\"https://api.z.ai/api/anthropic\",\"ANTHROPIC_DEFAULT_OPUS_MODEL\":\"glm-5.2[1m]\"}` | C | https://docs.z.ai/devpack/tool/claude |\n| 流式/usage | Anthropic SSE 格式(event: message_start/content_block_delta 等) | - | C | https://docs.z.ai/devpack/tool/claude |\n| 消息格式 | Anthropic 消息格式(顶层 system,tool_result 角色) | - | C | https://docs.z.ai/devpack/tool/claude |\n| 特殊字段 | Anthropic 专属(`thinking` budget、`metadata` 等) | - | C | https://docs.z.ai/devpack/tool/claude |\n| headers/认证 | `x-api-key` + `anthropic-version` 头(非 OpenAI Bearer) | - | C | https://docs.z.ai/devpack/tool/claude |\n| URL/端点 | registry base_url 与官方一致(Anthropic 面);**注意 OpenAI 面是 `https://api.z.ai/api/paas/v4`,非此端点** | `POST https://api.z.ai/api/anthropic/v1/messages` | C | https://docs.z.ai/devpack/tool/claude |\n| 模型 ID | `glm-4.7`、`glm-5.2[1m]`(带 `[1m]` 长上下文后缀) | - | C | https://docs.z.ai/devpack/tool/claude |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(协议不匹配)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2221)\n- **差距说明**:registry 以 OpenAICompatProfile::full() + Anthropic 端点声明,aimux 的 OpenAI 请求体(顶层 messages + system 作为消息)发往 `/api/anthropic` 会与 Anthropic Messages 协议冲突。要么改用 OpenAI 面 base_url(`https://api.z.ai/api/paas/v4`),要么用 anthropic 协议实现。\n- **建议动作**:与维护者确认意图:若走 OpenAI 协议,base_url 改 `https://api.z.ai/api/paas/v4`(高优先);若保留 Anthropic 端点,需单独的 Anthropic 适配(超出 OpenAICompat 范围)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无(协议差异证据充分)\n\n### zeldoc — Zeldoc\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.zeldoc.ai/v1` · env=`ZELDOC_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(@ai-sdk/openai-compatible,单模型) | - | C | https://models.dev/providers/zeldoc |\n| 思考机制 | 无差异(无证据) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`ZELDOC_API_KEY` 与 registry 一致) | - | C | https://models.dev/providers/zeldoc |\n| URL/端点 | 无差异 | - | C | https://models.dev/providers/zeldoc |\n| 模型 ID | 单模型(models.dev 表未展示 ID,证据不足)⚠️ | - | C(⚠️) | https://models.dev/providers/zeldoc |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2230)\n- **差距说明**:无。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:模型 ID 细节证据不足\n\n### zenmux — ZenMux\n\n- **registry 现状**:profile=`full()` · base_url=`https://zenmux.ai/api/v1` · env=`ZENMUX_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(OpenAI Chat Completions 全兼容) | - | C | https://zenmux.ai/docs/guide/quickstart.html |\n| 思考机制 | 无差异(透传上游) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://zenmux.ai/docs/guide/quickstart.html |\n| URL/端点 | 无差异(同时提供 Responses `/api/v1`、Anthropic `/api/anthropic`、Gemini `/api/vertex-ai` 面,协议互通) | - | C | https://zenmux.ai/docs/guide/quickstart.html |\n| 模型 ID | 平台模型 slug(如 `google/gemini-3.1-pro-preview` 格式,按 Models 页) | - | C | https://zenmux.ai/docs/guide/quickstart.html |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2239)\n- **差距说明**:无。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### zhipu_v4 — ZhipuV4 (GLM 开放平台)\n\n- **registry 现状**:profile=`full()` · base_url=`https://open.bigmodel.cn` · env=`ZHIPU_API_KEY`\n- **变体**:无(zhipuai_coding_plan 为订阅套餐,见下条)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(Function Calling、流式、视觉多模态 image_url) | - | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 思考机制 | **`thinking` 对象开关**(同 z.ai):`{\"type\":\"enabled\"}`;深度思考可关 | `{\"model\":\"glm-4.6v\",\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"image_url\",...},{\"type\":\"text\",\"text\":\"...\"}]}],\"thinking\":{\"type\":\"enabled\"}}` | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 流式/usage | 无差异(stream 标准;深度思考输出经 reasoning 通道) | - | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 消息格式 | 无差异(多模态标准 image_url;支持视频/文件) | - | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 特殊字段 | 无差异(上下文缓存服务端处理) | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| URL/端点 | **registry 缺路径**:官方 OpenAI 兼容 base 为 `https://open.bigmodel.cn/api/paas/v4`(registry 只写 host) | `POST https://open.bigmodel.cn/api/paas/v4/chat/completions` | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 模型 ID | `glm-4.6v`、`glm-4.6`、`glm-4.6v-flash` 等 `glm-*` | - | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 缺路径)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2248)\n- **差距说明**:当前拼接 `https://open.bigmodel.cn/chat/completions` 缺 `/api/paas/v4`,必 404(高优先修正);`thinking` 字段需 bodyOverrides。\n- **建议动作**:registry base_url 改为 `https://open.bigmodel.cn/api/paas/v4`;thinking 覆盖同 zai 条目。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### zhipuai_coding_plan — Zhipu AI Coding Plan\n\n- **registry 现状**:profile=`full()` · base_url=`https://docs.bigmodel.cn/cn/coding-plan/quick-start` · env=`ZHIPU_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 面标准;Anthropic 面用顶层 system/max_tokens) | - | C | https://docs.bigmodel.cn/cn/coding-plan/quick-start |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 套餐内 GLM 模型沿用 `thinking` 对象(同 zhipu_v4),官方未在 Coding Plan 页单列 ⚠️ | `{\"model\":\"glm-4.6\",\"messages\":[...],\"thinking\":{\"type\":\"enabled\"}}`(推断) | C(⚠️) | https://docs.bigmodel.cn/cn/coding-plan/quick-start |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer;**团队版套餐 Key 与开放平台其他 Key 不通用**) | - | C | https://docs.bigmodel.cn/cn/coding-plan/quick-start |\n| URL/端点 | **registry base_url 是 docs 页面**:真实 OpenAI 面为 `https://open.bigmodel.cn/api/coding/paas/v4`,Anthropic 面 `https://open.bigmodel.cn/api/anthropic` | `POST https://open.bigmodel.cn/api/coding/paas/v4/chat/completions` | C | https://docs.bigmodel.cn/cn/coding-plan/quick-start |\n| 模型 ID | `glm-4.6`、`glm-4.7`、`glm-5.x` 等套餐内模型 | - | C | https://docs.bigmodel.cn/cn/coding-plan/quick-start |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 错误)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2257)\n- **差距说明**:registry 的 base_url 是文档页面 URL,非 API 端点;应改为 `https://open.bigmodel.cn/api/coding/paas/v4`(Coding Plan 专用 OpenAI 面,非普通 /api/paas/v4)。\n- **建议动作**:修正 base_url(高优先);思考覆盖同 zhipu_v4。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制推断 ⚠️\n"}, "7c6283c8ba6e91e6ce380cb9e8a13b99e27431ed": {"t": 1785846962.125781, "n": 66188, "h": "829fcf6c360c19ed", "c": "# Batch 06 — Model Request Config 调研\n\n> 状态: ✅ 已完成(2026-08-01 调研)· 厂商数: 40\n> 模板见 [_template.md](_template.md) · 方法论见 [README.md](README.md)\n> 证据硬性要求: 每条目必须有例子或证明(A/B/C 级),禁止编造来源。\n\n## 厂商清单\n\n| # | id | display | base_url | env_var | profile |\n|---|---|---|---|---|---|\n| 1 | tencent | Tencent (混元/Hunyuan) | https://api.hunyuan.cloud.tencent.com/v1 | TENCENT_API_KEY | OpenAICompatProfile::full() |\n| 2 | tencent_coding_plan | Tencent Coding Plan (China) | https://api.lkeap.cloud.tencent.com/coding/v3 | TENCENT_CODING_PLAN_API_KEY | OpenAICompatProfile::full() |\n| 3 | tencent_token_plan | Tencent Token Plan | https://api.lkeap.cloud.tencent.com/plan/v3 | TENCENT_TOKEN_PLAN_API_KEY | OpenAICompatProfile::full() |\n| 4 | tencent_token_plan_enterprise_auto | 腾讯云 Token Plan / Token Plan 企业版轻享套餐 | https://tokenhub.tencentmaas.com/plan/v3 | TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY | OpenAICompatProfile::full() |\n| 5 | tencent_token_plan_enterprise_pro | 腾讯云 Token Plan / Token Plan 企业版专业套餐 | https://tokenhub.tencentmaas.com/plan/v3 | TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY | OpenAICompatProfile::full() |\n| 6 | tencent_token_plan_general_personal | 腾讯云 Token Plan / 通用 Token Plan(个人版) | https://api.lkeap.cloud.tencent.com/plan/v3 | TENCENT_TOKEN_PLAN_API_KEY | OpenAICompatProfile::full() |\n| 7 | tencent_token_plan_hy_personal | 腾讯云 Token Plan / Hy Token Plan(个人版) | https://api.lkeap.cloud.tencent.com/plan/v3 | TENCENT_TOKEN_PLAN_API_KEY | OpenAICompatProfile::full() |\n| 8 | tencent_tokenhub | Tencent TokenHub | https://tokenhub.tencentmaas.com/v1 | TENCENT_TOKENHUB_API_KEY | OpenAICompatProfile::full() |\n| 9 | tensormesh | Tensormesh | https://serverless.tensormesh.ai | YOUR_API_KEY | OpenAICompatProfile::full() |\n| 10 | the_grid_ai | The Grid AI | https://thegrid.ai/docs | THEGRIDAI_API_KEY | OpenAICompatProfile::full() |\n| 11 | thinkingmachines | Thinking Machines | https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1 | TINKER_API_KEY | OpenAICompatProfile::full() |\n| 12 | tinfoil | Tinfoil | https://inference.tinfoil.sh/v1 | TINFOIL_API_KEY | OpenAICompatProfile::full() |\n| 13 | togetherai | Together AI | https://api.together.xyz/v1 | TOGETHER_API_KEY | OpenAICompatProfile::full() |\n| 14 | tokenflux | Tokenflux | https://tokenflux.ai/v1 | TOKENFLUX_API_KEY | OpenAICompatProfile::full() |\n| 15 | tokenpony | TokenPony | https://api.tokenpony.com/v1 | TOKENPONY_API_KEY | OpenAICompatProfile::full() |\n| 16 | trustedrouter | TrustedRouter | https://api.trustedrouter.com/v1 | TRUSTEDROUTER_API_KEY | OpenAICompatProfile::full() |\n| 17 | tundra | Tundra | https://api.tundra.ai/v1 | TUNDRA_API_KEY | OpenAICompatProfile::full() |\n| 18 | umans_ai | Umans AI | https://api.code.umans.ai/v1 | UMANS_AI_API_KEY | OpenAICompatProfile::full() |\n| 19 | unorouter | UnoRouter | https://unorouter.com/en | UNOROUTER_API_KEY | OpenAICompatProfile::full() |\n| 20 | upstage | Upstage | https://api.upstage.ai/v1 | UPSTAGE_API_KEY | OpenAICompatProfile::full() |\n| 21 | v0 | v0 (Vercel) | https://api.v0.dev/v1 | V0_API_KEY | OpenAICompatProfile::full() |\n| 22 | venice | Venice | https://api.venice.ai/api/v1 | VENICE_API_KEY | OpenAICompatProfile::full() |\n| 23 | vercel | Vercel | https://api.v0.dev/v1 | VERCEL_API_KEY | OpenAICompatProfile::full() |\n| 24 | vivgrid | Vivgrid | https://api.vivgrid.com/v1 | VIVGRID_API_KEY | OpenAICompatProfile::full() |\n| 25 | volc_engine | VolcEngine | https://ark.cn-beijing.volces.com | ARK_API_KEY | OpenAICompatProfile::full() |\n| 26 | vultr | Vultr | https://api.vultrinference.com/v1 | VULTR_API_KEY | OpenAICompatProfile::full() |\n| 27 | wafer | Wafer | https://api.wafer.ai/v1 | WAFER_API_KEY | OpenAICompatProfile::full() |\n| 28 | wandb | Weights & Biases | https://api.inference.wandb.ai/v1 | WANDB_API_KEY | OpenAICompatProfile::full() |\n| 29 | xiaomi_token_plan_ams | Xiaomi Token Plan (Europe) | https://token-plan-ams.xiaomimimo.com/v1 | MIMO_API_KEY | OpenAICompatProfile::full() |\n| 30 | xiaomi_token_plan_cn | Xiaomi Token Plan (China) | https://token-plan-cn.xiaomimimo.com/v1 | MIMO_API_KEY | OpenAICompatProfile::full() |\n| 31 | xiaomi_token_plan_sgp | Xiaomi Token Plan (Singapore) | https://token-plan-sgp.xiaomimimo.com/v1 | MIMO_API_KEY | OpenAICompatProfile::full() |\n| 32 | xiaomimimo | Xiaomi MiMo | https://mimo.xiaomi.com/v1 | XIAOMI_API_KEY | OpenAICompatProfile::full() |\n| 33 | xpersona | Xpersona | /v1 | XPERSONA_API_KEY | OpenAICompatProfile::full() |\n| 34 | xunfei | Xunfei | https://spark-api-open.xf-yun.com/v1 | XUNFEI_API_PASSWORD | OpenAICompatProfile::full() |\n| 35 | zai | Zai | https://api.z.ai/api/paas/v4 | ZAI_API_KEY | OpenAICompatProfile::full() |\n| 36 | zai_coding_plan | Z.AI Coding Plan | https://api.z.ai/api/anthropic | ZHIPU_API_KEY | OpenAICompatProfile::full() |\n| 37 | zeldoc | Zeldoc | https://api.zeldoc.ai/v1 | ZELDOC_API_KEY | OpenAICompatProfile::full() |\n| 38 | zenmux | ZenMux | https://zenmux.ai/api/v1 | ZENMUX_API_KEY | OpenAICompatProfile::full() |\n| 39 | zhipu_v4 | ZhipuV4 | https://open.bigmodel.cn | ZHIPU_API_KEY | OpenAICompatProfile::full() |\n| 40 | zhipuai_coding_plan | Zhipu AI Coding Plan | https://docs.bigmodel.cn/cn/coding-plan/quick-start | ZHIPU_API_KEY | OpenAICompatProfile::full() |\n\n---\n\n## 条目\n\n### tencent — Tencent (混元/Hunyuan)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.hunyuan.cloud.tencent.com/v1` · env=`TENCENT_API_KEY`\n- **变体**:tencent_coding_plan / tencent_token_plan / tencent_tokenhub(同厂商不同入口,各自成条目)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(vision 走标准 `image_url`,支持 base64) | - | C | https://cloud.tencent.com/document/product/1729/111007 |\n| 思考机制 | TokenHub 侧 hy3/hy3-preview 支持深度思考:请求体 `thinking` 对象 + `reasoning_effort`(默认 `low`;带 tools 时 low 自动映射 high);响应含 `reasoning_content`。独立混元 API(api.hunyuan.cloud.tencent.com)文档未见 thinking 字段 | `{\"model\":\"hy3\",\"messages\":[...],\"thinking\":{\"type\":\"enabled\"}}`;响应 `\"message\":{\"content\":\"...\",\"reasoning_content\":\"...\"}` | C | https://cloud.tencent.com/document/product/1823/132252 |\n| 流式/usage | 无差异(标准 `stream_options:{\"include_usage\":true}`,usage 含 `prompt_tokens_details.cached_tokens` / `completion_tokens_details.reasoning_tokens`) | - | C | https://cloud.tencent.com/document/product/1823/132252 |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 混元独立 API 支持自定义参数 `enable_enhancement`(增强) | `{\"model\":\"hunyuan-turbos-latest\",\"messages\":[...],\"enable_enhancement\":true}` | C | https://cloud.tencent.com/document/product/1729/111007 |\n| headers/认证 | 无差异(`Authorization: Bearer $HUNYUAN_API_KEY`) | - | C | https://cloud.tencent.com/document/product/1729/111007 |\n| URL/端点 | 无差异(base_url 与官方一致) | - | C | https://cloud.tencent.com/document/product/1729/111007 |\n| 模型 ID | 版本代号:`hunyuan-turbos-latest`、`hunyuan-vision`;TokenHub 侧 `hy3` / `hy3-preview` | - | C | https://cloud.tencent.com/document/product/1823/132252 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[convert.rs](aimux-providers/src/openai/convert.rs#L1485)(apply_deepseek_override 仅按 provider_options[\"deepseek\"] 注入 thinking)\n- **差距说明**:`thinking` 对象(hy3 深度思考)与 `enable_enhancement` 无内置支持;reasoning_content 响应已支持([model.rs](aimux-providers/src/openai/model.rs#L558))。\n- **建议动作**:thinking 字段可先用 bodyOverrides 兜底;若 hy3 成为主模型,评估通用 `thinking` override(GLM 系同款,见 zai/zhipu_v4)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### tencent_coding_plan — Tencent Coding Plan (China)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.lkeap.cloud.tencent.com/coding/v3` · env=`TENCENT_CODING_PLAN_API_KEY`\n- **变体**:无(与 tencent_token_plan 并列,Coding Plan 偏编程场景)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 套餐内模型(hy3 系)沿用 TokenHub 深度思考机制(`thinking.type.enabled`),未见独立文档,标 ⚠️ | 同 tencent 条目 `{\"thinking\":{\"type\":\"enabled\"}}` | C(⚠️) | https://cloud.tencent.com/document/product/1823/130092 |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + Coding Plan 专用 API Key) | - | C | https://cloud.tencent.com/document/product/1823/130092 |\n| URL/端点 | 无差异(`https://api.lkeap.cloud.tencent.com/coding/v3` 与官方一致;另提供 Anthropic 兼容端点 `/coding/anthropic`) | - | C | https://cloud.tencent.com/document/product/1823/130092 |\n| 模型 ID | 套餐配额制模型(hy3 等),未见独立代号 | - | C | https://cloud.tencent.com/document/product/1823/130092 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(除 thinking 字段,同 tencent)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1915)\n- **差距说明**:无独立差距;thinking 覆盖见 tencent 条目。\n- **建议动作**:无需动作(bodyOverrides 兜底 thinking)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:thinking 机制 ⚠️(推断自 TokenHub hy3 文档,套餐内模型清单未单独确认)\n\n### tencent_token_plan — Tencent Token Plan\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.lkeap.cloud.tencent.com/plan/v3` · env=`TENCENT_TOKEN_PLAN_API_KEY`\n- **变体**:tencent_token_plan_general_personal / tencent_token_plan_hy_personal(个人版,同 base_url);tencent_token_plan_enterprise_auto / tencent_token_plan_enterprise_pro(企业版,base_url=`https://tokenhub.tencentmaas.com/plan/v3`,env=`TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY`)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 套餐内模型沿用 TokenHub 深度思考(`thinking.type.enabled` / `enable_thinking` 按模型族),未单列文档 ⚠️ | 同 tencent 条目 | C(⚠️) | https://cloud.tencent.com/developer/article/2675771 |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + Token Plan 专用 API Key) | - | C | https://intl.cloud.tencent.com/document/product/1300/81317 |\n| URL/端点 | 无差异(`/plan/v3` 与官方一致;另支持 Anthropic 兼容接口) | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| 模型 ID | 套餐内多模型(qwen/hy3/deepseek 等),按网关路由 | - | C | https://cloud.tencent.com/developer/article/2675771 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(除 thinking 字段,同 tencent)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1924)\n- **差距说明**:企业版两个条目仅套餐差异,request 层无差别,可合并。\n- **建议动作**:无需动作;思考类字段 bodyOverrides 兜底。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制 ⚠️(推断)\n\n### tencent_token_plan_enterprise_auto — Tencent Token Plan 企业版轻享套餐\n\n- **registry 现状**:profile=`full()` · base_url=`https://tokenhub.tencentmaas.com/plan/v3` · env=`TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY`\n- **变体**:无(**并入主条目 tencent_token_plan**——同套餐体系,仅 base_url 指向 tokenhub.tencentmaas.com 子路径 `/plan/v3`,request 构造差异与主条目一致)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(并入主条目) | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 同主条目(TokenHub 深度思考 `thinking.type.enabled` / `enable_thinking` by-model,⚠️ 推断) | - | C(⚠️) | 见 tencent_tokenhub |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + 企业版专用 Key) | - | C | https://cloud.tencent.com/document/product/1823/130092 |\n| URL/端点 | 无差异(`/plan/v3` 子路径为套餐入口) | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| 模型 ID | 同主条目 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1933)\n- **差距说明**:与 tencent_token_plan 仅套餐/额度差异,request 层相同。\n- **建议动作**:无需动作(可与主条目合并声明)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制 ⚠️(推断)\n\n### tencent_token_plan_enterprise_pro — Tencent Token Plan 企业版专业套餐\n\n- **registry 现状**:profile=`full()` · base_url=`https://tokenhub.tencentmaas.com/plan/v3` · env=`TENCENT_TOKEN_PLAN_ENTERPRISE_API_KEY`\n- **变体**:无(**并入主条目 tencent_token_plan**,与 enterprise_auto 仅套餐档位差异)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(并入主条目) | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 同主条目(⚠️ 推断) | - | C(⚠️) | 见 tencent_tokenhub |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + 企业版专用 Key) | - | C | https://cloud.tencent.com/document/product/1823/130092 |\n| URL/端点 | 无差异 | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| 模型 ID | 同主条目 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1942)\n- **差距说明**:无独立差距。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制 ⚠️(推断)\n\n### tencent_token_plan_general_personal — Tencent Token Plan 通用(个人版)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.lkeap.cloud.tencent.com/plan/v3` · env=`TENCENT_TOKEN_PLAN_API_KEY`\n- **变体**:无(**并入主条目 tencent_token_plan**,同 base_url 与 env)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(并入主条目) | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 同主条目(⚠️ 推断) | - | C(⚠️) | 见 tencent_tokenhub |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + 个人版 Key) | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| URL/端点 | 无差异 | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| 模型 ID | 同主条目 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1951)\n- **差距说明**:与 tencent_token_plan 完全同构。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制 ⚠️(推断)\n\n### tencent_token_plan_hy_personal — Tencent Token Plan Hy(个人版)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.lkeap.cloud.tencent.com/plan/v3` · env=`TENCENT_TOKEN_PLAN_API_KEY`\n- **变体**:无(**并入主条目 tencent_token_plan**;\"Hy\" 指套餐内主推混元 hy3 模型)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(并入主条目) | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 套餐主打 hy3,深度思考 `thinking.type.enabled` 直接适用(⚠️ 推断) | `{\"model\":\"hy3\",\"messages\":[...],\"thinking\":{\"type\":\"enabled\"}}` | C(⚠️) | https://cloud.tencent.com/document/product/1823/132252 |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + 个人版 Key) | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| URL/端点 | 无差异 | - | C | https://cloud.tencent.com/developer/article/2675771 |\n| 模型 ID | 同主条目(hy3 系) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(thinking 同 tencent)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1960)\n- **差距说明**:无独立差距。\n- **建议动作**:无需动作(bodyOverrides 兜底 thinking)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制 ⚠️(推断)\n\n### tencent_tokenhub — Tencent TokenHub\n\n- **registry 现状**:profile=`full()` · base_url=`https://tokenhub.tencentmaas.com/v1` · env=`TENCENT_TOKENHUB_API_KEY`\n- **变体**:无(网关本体;token_plan_enterprise_* 走 `/plan/v3` 子路径)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | **by-model 两套思考开关**:Qwen3.5 系用顶层布尔 `enable_thinking`(默认开启)+ `preserve_thinking` + 消息内 `/think`、`/no_think` prompt 开关;hy3 系用 `thinking` 对象 | `{\"model\":\"qwen3.5-plus\",\"messages\":[...],\"enable_thinking\":false}`(可关);`{\"model\":\"hy3\",\"messages\":[...],\"thinking\":{\"type\":\"enabled\"}}` | C | https://cloud.tencent.com/document/product/1823/132247 ;https://cloud.tencent.com/document/product/1823/132252 |\n| 流式/usage | 无差异(标准 include_usage) | - | C | https://cloud.tencent.com/document/product/1823/132252 |\n| 消息格式 | 推理过程统一 `reasoning_content` 字段 | - | C | https://cloud.tencent.com/document/product/1823/132247 |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + TokenHub API Key) | - | C | https://cloud.tencent.com/document/product/1823/132247 |\n| URL/端点 | 无差异(`/v1` 与官方一致;hy3 同时兼容 Responses / Anthropic 协议) | - | C | https://cloud.tencent.com/document/product/1823/132252 |\n| 模型 ID | 网关聚合多模型族:`qwen3.5-plus`、`hy3`、`hy3-preview` 等 | - | C | https://cloud.tencent.com/document/product/1823/132247 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1969)\n- **差距说明**:`enable_thinking`/`thinking` 均需 bodyOverrides;`/think`、`/no_think` 是消息内容层面的协议,aimux 无内置(需用户拼进 prompt)。\n- **建议动作**:bodyOverrides 兜底;若做 reasoningMap,TokenHub 是\"一网关双机制\"的典型样例,需要 by-model 映射。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### tensormesh — Tensormesh\n\n- **registry 现状**:profile=`full()` · base_url=`https://serverless.tensormesh.ai` · env=`YOUR_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | tools 支持但**每个 tool 必须带非空 description**,否则 400 | `{\"tools\":[{\"type\":\"function\",\"function\":{\"name\":\"get_weather\",\"description\":\"...\",\"parameters\":{...}}}]}` | C | https://docs.litellm.ai/docs/providers/tensormesh |\n| 思考机制 | 思考模式走 **vLLM chat-template 控制**:`chat_template_kwargs` 传 `thinking` + `reasoning_effort`;输出在 `reasoning_content` | `extra_body={\"chat_template_kwargs\":{\"thinking\":true,\"reasoning_effort\":\"high\"}}` | C | https://docs.litellm.ai/docs/providers/tensormesh |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer);litellm 侧 env 名为 `TENSORMESH_INFERENCE_API_KEY`,registry 的 `YOUR_API_KEY` 是占位符 | - | C | https://docs.litellm.ai/docs/providers/tensormesh |\n| URL/端点 | **registry 缺 `/v1` 后缀**:litellm/官方默认 `https://serverless.tensormesh.ai/v1` | `POST https://serverless.tensormesh.ai/v1/chat/completions` | C | https://docs.litellm.ai/docs/providers/tensormesh |\n| 模型 ID | catalog 式前缀模型:`openai/gpt-oss-120b`、`MiniMaxAI/MiniMax-M2.5`、`deepseek-ai/DeepSeek-V4-Flash` | - | C | https://docs.litellm.ai/docs/providers/tensormesh |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1978)\n- **差距说明**:base_url 少 `/v1`([model.rs](aimux-providers/src/openai/model.rs#L73) 拼接后变 `.../chat/completions`,非 `.../v1/chat/completions`);`chat_template_kwargs` 思考开关需 bodyOverrides。\n- **建议动作**:registry base_url 补 `/v1`;思考用 bodyOverrides。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### the_grid_ai — The Grid AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://thegrid.ai/docs` · env=`THEGRIDAI_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_tokens` 已废弃,建议 `max_completion_tokens`) | - | C | https://thegrid.ai/docs/api-reference/consumption-api |\n| 能力支持 | 无差异(tools/tool_choice/response_format/logprobs/seed 全支持) | - | C | https://thegrid.ai/docs/api-reference/consumption-api |\n| 思考机制 | `reasoning_effort`(none/minimal/low/medium/high/xhigh)标准透传 | `{\"model\":\"text-prime\",\"messages\":[...],\"reasoning_effort\":\"high\"}` | C | https://thegrid.ai/docs/api-reference/consumption-api |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | **OpenRouter 风格路由字段**:`provider` 对象、`route:\"fallback\"`、`safety_identifier`、`prompt_cache_key`、`prompt_cache_retention`、`service_tier`(auto/default/flex/scale/priority)、`web_search_options`、`verbosity` | `{\"model\":\"text-prime\",\"provider\":{\"allow_fallbacks\":true},\"route\":\"fallback\",\"safety_identifier\":\"...\"}` | C | https://thegrid.ai/docs/api-reference/consumption-api |\n| headers/认证 | OpenAI 面 `Authorization: Bearer`;Anthropic 面(`https://messages-beta.api.thegrid.ai/v1`)用 `x-api-key` | - | C | https://thegrid.ai/docs/api-reference/consumption-api |\n| URL/端点 | **registry base_url 是 docs 页面**;真实 API 为 `https://api.thegrid.ai/v1` | `POST https://api.thegrid.ai/v1/chat/completions` | C | https://thegrid.ai/docs/api-reference/consumption-api |\n| 模型 ID | 模型=instrument 代号:`text-prime`、`code-max`、`claude-opus-latest`(非 org 前缀) | - | C | https://thegrid.ai/docs/api-reference/consumption-api |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1987)\n- **差距说明**:base_url 错误(docs 页不是 API 端点);provider/route/safety_identifier 等路由字段无内置(bodyOverrides 可兜底)。\n- **建议动作**:registry base_url 改为 `https://api.thegrid.ai/v1`;特殊字段文档化走 bodyOverrides。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### thinkingmachines — Thinking Machines (Tinker)\n\n- **registry 现状**:profile=`full()` · base_url=`https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1` · env=`TINKER_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 训练/推理 API,思考行为取决于权重路径(sampler weight),无独立开关字段证据 | - | C(⚠️) | https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/openai/ |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer,`{env:TINKER_API_KEY}` 官方示例) | - | C | https://tinker-docs.thinkingmachines.ai/tutorials/deployment/opencode/ |\n| URL/端点 | 无差异(registry 与官方 OAI 端点完全一致) | `POST https://tinker.thinkingmachines.dev/services/tinker-prod/oai/api/v1/chat/completions` | C | https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/openai/ |\n| 模型 ID | **模型名 = Tinker 采样器权重路径**:`tinker://0034d8c9...`(非普通模型代号) | `{\"model\":\"tinker://0034d8c9...\",\"messages\":[...]}` | C | https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/openai/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L1996)\n- **差距说明**:无(模型 ID 特殊但 aimux 直接透传 model 字段,无需转换)。\n- **建议动作**:补文档说明模型名须为 `tinker://` 权重路径;无需代码改动。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制无直接证据(本厂商为训练 API,chat 面用于权重推理)\n\n### tinfoil — Tinfoil\n\n- **registry 现状**:profile=`full()` · base_url=`https://inference.tinfoil.sh/v1` · env=`TINFOIL_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(tool calling、structured outputs、多模态 base64、文档处理均 OpenAI 兼容) | - | C | https://docs.tinfoil.sh/introduction |\n| 思考机制 | 无差异(无独立开关证据) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | SDK 额外做远端 attestation 验证(传输层,非请求体字段),请求体无特殊字段 | - | C | https://docs.tinfoil.sh/introduction |\n| headers/认证 | 无差异(Bearer;SDK 同时校验 enclave 证明) | `curl -X POST https://inference.tinfoil.sh/v1/chat/completions -H \"Content-Type...\"` | C | https://tinfoil.sh/inference |\n| URL/端点 | 无差异 | - | C | https://tinfoil.sh/inference |\n| 模型 ID | 未确认模型清单 ⚠️(docs 未列出 model ID 表) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2005)\n- **差距说明**:无 request 层差距(attestation 属传输层,不在 aimux 范围)。\n- **建议动作**:无需动作;模型 ID 待补。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:模型 ID 清单证据不足\n\n### togetherai — Together AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.together.xyz/v1` · env=`TOGETHER_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_tokens` 标准用法;支持 `stop`) | - | C | https://docs.together.ai/docs/inference/chat/parameters |\n| 能力支持 | 无差异(temperature/top_p/**top_k**/seed/repetition_penalty;`response_format` json_schema 结构化输出;tools/logprobs 均支持) | `{\"model\":\"meta-llama/Llama-3.3-70B-Instruct-Turbo\",\"messages\":[...],\"max_tokens\":100,\"stop\":[\"\\n\\n\"],\"seed\":42,\"top_k\":40}` | C | https://docs.together.ai/docs/inference/chat/parameters |\n| 思考机制 | 推理模型(如 DeepSeek-R1)无独立开关字段证据;输出 reasoning_content 标准 | - | - | - |\n| 流式/usage | 无差异(标准 SSE) | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | - | - |\n| URL/端点 | 无差异 | - | C | https://docs.together.ai/docs/inference/chat/overview |\n| 模型 ID | **org 前缀模型名**:`meta-llama/Llama-3.3-70B-Instruct-Turbo`、`deepseek-ai/DeepSeek-R1` 等(直接透传即可) | - | C | https://docs.together.ai/docs/inference/chat/parameters |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2014);top_k 白名单 [convert.rs](aimux-providers/src/openai/convert.rs#L1111)\n- **差距说明**:无(full() 已覆盖 top_k/tools/response_format/usage)。\n- **建议动作**:补一条结构化输出 + top_k 的 cassette 测试即可。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### tokenflux — TokenFlux\n\n- **registry 现状**:profile=`full()` · base_url=`https://tokenflux.ai/v1` · env=`TOKENFLUX_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(Models/Chat Completions/Messages/Embeddings/Images API 齐备) | - | C | https://tokenflux.ai/docs/introduction |\n| 思考机制 | 无差异(未见独立开关文档) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 管理面用 `X-Api-Key`(projects 接口);模型推理面 OpenAI 兼容 Bearer ⚠️ 推理面 header 细节未逐条确认 | - | C(⚠️) | https://tokenflux.ai/ |\n| URL/端点 | **双 base URL**:推荐 `https://tokenflux.ai/openai/v1`(drop-in),`https://tokenflux.ai/v1` 亦可;registry 用后者 | `POST https://tokenflux.ai/openai/v1/chat/completions` | C | https://tokenflux.ai/docs/api-reference/embeddings |\n| 模型 ID | 未逐一确认 ⚠️ | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2024)\n- **差距说明**:无 request 构造差距。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:推理面认证 header 细节、模型 ID 清单证据不足\n\n### tokenpony — TokenPony(小马算力)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.tokenpony.com/v1` · env=`TOKENPONY_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(DeepSeek/GLM/MiniMax 等聚合,兼容 OpenAI 规范) | - | C | https://www.tokenpony.cn/ |\n| 思考机制 | 透传上游(deepseek 系 reasoning),无独立开关文档 ⚠️ | - | C(⚠️) | https://www.tokenpony.cn/ |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer 聚合网关) | - | C | https://www.tokenpony.cn/ |\n| URL/端点 | **registry 域名存疑**:官方为 `www.tokenpony.cn` / `api.tokenpony.cn/v1`(chats 项目同);registry 写 `api.tokenpony.com` ⚠️ | `https://api.tokenpony.cn/v1/chat/completions` | B | [chats/doc/zh-CN/release-notes/1.8.1.md](reference/chats/doc/zh-CN/release-notes/1.8.1.md#L151) ;https://www.tokenpony.cn/ |\n| 模型 ID | 上游模型直通(`deepseek-v3.*` 等,chats 1.9.1 提及) | - | B | [chats/doc/zh-CN/release-notes/1.9.1.md](reference/chats/doc/zh-CN/release-notes/1.9.1.md#L126) |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 域名待核)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2032)\n- **差距说明**:`.com` vs `.cn` 域名差异需实测确认哪个可解析/可服务;若 `.cn` 为真则 registry 需修正。\n- **建议动作**:实测两个域名连通性后修正 base_url。\n\n#### 3. 证据与验证\n\n- **证据等级**:B+C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:base_url 域名 ⚠️\n\n### trustedrouter — TrustedRouter\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.trustedrouter.com/v1` · env=`TRUSTEDROUTER_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异(透传上游) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | **OpenRouter 风格 `provider` 路由对象**:`min_privacy`(\"zdr\"/\"confidential\",fail-closed 硬约束)、`data_collection:\"deny\"`;x402 自动充值 | `{\"model\":\"your/model\",\"provider\":{\"min_privacy\":\"zdr\"}}` | C | https://trustedrouter.com/docs |\n| headers/认证 | 无差异(Bearer,`TRUSTEDROUTER_API_KEY` 与 registry env 一致) | - | C | https://trustedrouter.com/docs |\n| URL/端点 | 无差异 | - | C | https://trustedrouter.com/docs |\n| 模型 ID | **preset 路由模型**:`trustedrouter/auto`(failover)、`trustedrouter/eu`、`trustedrouter/socrates`、Synth presets(`trustedrouter/iris-2.0` 等) | - | C | https://trustedrouter.com/docs |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2041)\n- **差距说明**:`provider` 路由对象需 bodyOverrides;其余标准。\n- **建议动作**:bodyOverrides 兜底;模型 ID 约定写进厂商文档。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### tundra — Tundra\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.tundra.ai/v1` · env=`TUNDRA_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(证据不足) | - | - | - |\n| 能力支持 | 无差异(证据不足) | - | - | - |\n| 思考机制 | 无差异(证据不足) | - | - | - |\n| 流式/usage | 无差异(证据不足) | - | - | - |\n| 消息格式 | 无差异(证据不足) | - | - | - |\n| 特殊字段 | 无差异(证据不足) | - | - | - |\n| headers/认证 | 无差异(证据不足) | - | - | - |\n| URL/端点 | 无法确认 ⚠️(公开检索未命中 api.tundra.ai 有效文档/服务) | - | - | - |\n| 模型 ID | 无法确认 ⚠️ | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:❓ 无法判断(证据不足)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2050)\n- **差距说明**:未找到该厂商任何可验证的 API 文档/集成代码。\n- **建议动作**:保留 full() 默认假设,标记\"证据不足\",后续有实测再补。\n\n#### 3. 证据与验证\n\n- **证据等级**:无\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 全条目存疑(无任何公开证据)\n\n### umans_ai — Umans AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.code.umans.ai/v1` · env=`UMANS_AI_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | **Coding Plan 走 Anthropic Messages 协议,thinking 用 Anthropic budget 模式**:`{\"thinking\":{\"mode\":\"budget\",\"efforts\":[\"minimal\",\"low\",\"medium\",\"high\",\"xhigh\"]}}`;OpenAI 面(`/v1`)无独立文档 ⚠️ | 见左(Anthropic 面) | C(⚠️) | https://github.com/can1357/oh-my-pi/issues/3286 |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | Anthropic 面 `x-api-key`;OpenAI 面假设 Bearer ⚠️ | - | C(⚠️) | https://github.com/can1357/oh-my-pi/issues/3192 |\n| URL/端点 | 官方公开 base `https://api.code.umans.ai`(HF inference-providers 收录为 OpenAI 兼容);registry 的 `/v1` 子路径未经官方文档确认 ⚠️ | `https://api.code.umans.ai/v1/chat/completions`(推断) | C(⚠️) | https://huggingface.co/spaces/huggingface/HuggingDiscussions/discussions/49 |\n| 模型 ID | `umans-glm-5.2` 等 `umans-*` 前缀模型 | - | C | https://github.com/can1357/oh-my-pi/issues/3192 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(协议面存疑)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2059)\n- **差距说明**:官方主推 Coding Plan(Anthropic 协议);OpenAI 兼容面是否存在 `/v1` 需实测。若仅 Anthropic,aimux OpenAI 请求会失败。\n- **建议动作**:实测 `https://api.code.umans.ai/v1/chat/completions` 连通性;确认前标注存疑。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:OpenAI 面/认证 header ⚠️\n\n### unorouter — UnoRouter\n\n- **registry 现状**:profile=`full()` · base_url=`https://unorouter.com/en` · env=`UNOROUTER_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(200+ 模型 OpenAI 兼容网关) | - | C | https://sourceforge.net/software/product/UnoRouter/ |\n| 思考机制 | 无差异(透传上游) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://unorouter.com/en |\n| URL/端点 | **registry base_url 是官网路径**;API 端点为 `https://api.unorouter.com/v1` | `curl -X POST https://api.unorouter.com/v1/chat/completions` | C | https://unorouter.com/en/docs/integrations/sillytavern |\n| 模型 ID | 平台模型 slug(未逐一确认) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 错误)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2068)\n- **差距说明**:`unorouter.com/en` 是营销页,请求必然 404;应改为 `https://api.unorouter.com/v1`。\n- **建议动作**:修正 registry base_url。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### upstage — Upstage\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.upstage.ai/v1` · env=`UPSTAGE_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(官方 OpenAI SDK 直连示例:stream/messages 标准) | - | C | https://console.upstage.ai/api-keys |\n| 思考机制 | 无差异(Solar 推理为模型内建,无独立开关字段证据) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异(Document AI 是独立产品线,不走 chat 请求体) | - | - | - |\n| 特殊字段 | 旧版 RAG 曾传 `document` 参数,当前版本未见官方文档,⚠️ 不采信 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://console.upstage.ai/api-keys |\n| URL/端点 | 无差异 | - | C | https://console.upstage.ai/api-keys |\n| 模型 ID | `solar-pro-3`、`solar-mini`、`solar-pro` 等 `solar-*` 代号(非 org 前缀) | - | C | https://openrouter.ai/upstage/solar-pro-3 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2077)\n- **差距说明**:无。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无(旧版 `document` 参数未采信)\n\n### v0 — v0 (Vercel)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.v0.dev/v1` · env=`V0_API_KEY`\n- **变体**:vercel(Vercel AI Gateway,见 vercel 条目)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(function/tool calls、多模态 base64 图片、低延迟流式均支持;限流 200 消息/天、上下文 128K) | `POST https://api.v0.dev/v1/chat/completions` + Bearer | C | https://apidog.com/blog/vercel-v0-1-0-md-api/ |\n| 思考机制 | 无差异(v0 模型无公开 thinking 开关) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异(image base64) | - | C | https://apidog.com/blog/vercel-v0-1-0-md-api/ |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer + v0.dev API key) | - | C | https://apidog.com/blog/vercel-v0-1-0-md-api/ |\n| URL/端点 | 无差异(registry 与官方一致) | - | C | https://v0.app/docs/api/platform/overview |\n| 模型 ID | v0 专有模型:`v0-1.0-md`、`v0-1.0`、`v0-1.1` 等 | - | C | https://apidog.com/blog/vercel-v0-1-0-md-api/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2086)\n- **差距说明**:无。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### venice — Venice\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.venice.ai/api/v1` · env=`VENICE_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | `max_tokens` 已废弃(建议 `max_completion_tokens`);`user` 字段被丢弃仅兼容 | - | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| 能力支持 | 富参数:`top_k`、`logprobs`/`top_logprobs`、`min_p`、`min_temp`/`max_temp`(动态温控)、`repetition_penalty`、`stop_token_ids`、`seed`、tools/response_format json_schema | `{\"model\":\"zai-org-glm-5-1\",\"top_k\":40,\"min_p\":0.05,\"repetition_penalty\":1.2,\"stop_token_ids\":[151643]}` | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| 思考机制 | 双通道:`reasoning_effort`(none/minimal/low/medium/high/xhigh/max)+ `reasoning` 对象(`effort`/`summary`);`venice_parameters.disable_thinking` / `strip_thinking_response` 控制开关与剥离;响应 `reasoning_content` | `{\"reasoning\":{\"effort\":\"medium\",\"summary\":\"auto\"},\"venice_parameters\":{\"disable_thinking\":false,\"strip_thinking_response\":false}}` | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| 流式/usage | 无差异(标准 `stream_options.include_usage`) | - | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| 消息格式 | 无差异(text/image/audio/video/file 多模态) | - | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| 特殊字段 | **`venice_parameters` 对象**:`enable_web_search`、`enable_web_citations`、`enable_web_scraping`、`include_venice_system_prompt`、`character_slug`、`enable_e2ee`、`include_search_results_in_stream`、`return_search_results_as_documents`;另有 `prompt_cache_key`、`prompt_cache_retention`(\"default\"/\"extended\"/\"24h\")、`verbosity`/`text.verbosity`;`store` 字段被接受但忽略 | `{\"venice_parameters\":{\"enable_web_search\":\"auto\",\"include_venice_system_prompt\":true,\"character_slug\":\"venice\",\"enable_e2ee\":true}}` | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| headers/认证 | Bearer 或 `SIGN-IN-WITH-X`(x402 钱包认证,`X-Sign-In-With-X` 为迁移期别名);402 响应=余额不足 | - | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| URL/端点 | 无差异(`/api/v1` 与官方一致) | - | C | https://docs.venice.ai/api-reference/endpoint/chat/completions |\n| 模型 ID | 模型 ID 或 **feature suffix**(如追加后缀启用 web search/角色人设),可替代 venice_parameters | - | C | https://docs.venice.ai/api-reference/endpoint/chat/model_feature_suffix |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2095)\n- **差距说明**:`venice_parameters`/`prompt_cache_key`/`min_p`/`min_temp`/`max_temp`/`stop_token_ids` 等均需 bodyOverrides(convert.rs 白名单无这些键);`reasoning` 对象需 bodyOverrides;`max_completion_tokens` 已有([convert.rs](aimux-providers/src/openai/convert.rs#L1119))。\n- **建议动作**:venice_parameters 是封闭厂商专属字段,建议文档化走 bodyOverrides;无需 profile 扩展(除非要内置 web search)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### vercel — Vercel (AI Gateway)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.v0.dev/v1` · env=`VERCEL_API_KEY`\n- **变体**:v0(同 host 不同产品线,见 v0 条目)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(chat/completions、embeddings、reasoning 控制、file attachments、tool calling、structured outputs) | - | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions |\n| 思考机制 | 有独立 Reasoning 文档(控制思考量),字段与 OpenAI 标准 reasoning_effort 一致 | - | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异(支持图片与 PDF 附件) | - | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions |\n| 特殊字段 | 网关扩展:`provider` 选项、模型 fallback、BYOK、prompt caching(advanced 文档) | - | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced |\n| headers/认证 | Bearer(AI Gateway API key 或 **OIDC token**) | - | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions |\n| URL/端点 | **registry base_url 存疑**:官方 AI Gateway 为 `https://ai-gateway.vercel.sh/v1`(registry 复用 v0 的 `api.v0.dev/v1`)⚠️ | `POST https://ai-gateway.vercel.sh/v1/chat/completions` | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions |\n| 模型 ID | **provider 前缀**:`anthropic/claude-opus-5`、`openai/gpt-5.6-sol` | - | C | https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 存疑)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2104)\n- **差距说明**:registry 的 vercel 与 v0 共用 `api.v0.dev/v1`,但 Vercel AI Gateway 官方端点是 `ai-gateway.vercel.sh/v1`,两者模型清单/配额体系不同;需确认 registry 意图(也许指向 v0 的 Vercel 通道)。\n- **建议动作**:与仓库维护者确认意图后修正 base_url;若走 AI Gateway,`ai-gateway.vercel.sh/v1` 为标准 OpenAI 兼容,full() 适用。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:base_url ⚠️\n\n### vivgrid — Vivgrid\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.vivgrid.com/v1` · env=`VIVGRID_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(OpenAI `/chat/completions` 端点) | - | C | https://vivgrid.com/docs/quick-start |\n| 思考机制 | 无差异(透传上游) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer,`VIVGRID_API_KEY` 与 registry 一致) | - | C | https://mastra.ai/models/providers/vivgrid |\n| URL/端点 | 无差异 | - | C | https://vivgrid.com/blog/decoupling-prompts-tools-models-from-agent-client |\n| 模型 ID | **org 前缀**:`vivgrid/deepseek-v3.2`、`vivgrid/gemini-3.1-pro-preview`、`vivgrid/gpt-5.6-sol` 等 | - | C | https://mastra.ai/models/providers/vivgrid |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2113)\n- **差距说明**:无。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### volc_engine — VolcEngine (火山方舟)\n\n- **registry 现状**:profile=`full()` · base_url=`https://ark.cn-beijing.volces.com` · env=`ARK_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(OpenAI 兼容 /api/v3;支持工具调用) | - | C | https://www.volcengine.com/docs/82379/1298459 |\n| 思考机制 | 推理模型(豆包/DeepSeek 系)无统一开关字段证据(按模型走 enable_thinking 或 thinking 需实测)⚠️ | - | - | - |\n| 流式/usage | 无差异(标准) | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | **官方推荐 IAM(AccessKey/SecretKey)签名鉴权**;OpenAI 兼容面也可 API Key Bearer(ARK_API_KEY) | - | B/C | https://www.volcengine.com/docs/82379/1263279 ;[simple-one-api 接入指南](reference/simple-one-api/docs/火山方舟大模型接入指南.md#L7) |\n| URL/端点 | **registry 缺 `/api/v3` 路径**:官方 OpenAI 兼容 base 为 `https://ark.cn-beijing.volces.com/api/v3` | `POST https://ark.cn-beijing.volces.com/api/v3/chat/completions` | B | [simple-one-api/docs/火山方舟大模型接入指南.md](reference/simple-one-api/docs/火山方舟大模型接入指南.md#L24) ;[uni-api/README.md](reference/uni-api/README.md#L233) |\n| 模型 ID | **推理接入点 ID**:`ep-xxxxxxxxxx-yyyy`(endpoint 格式)或 `doubao-*` 模型名 | `{\"model\":\"ep-20240612090709-hzjz5\",\"messages\":[...]}` | B | [simple-one-api/docs/火山方舟大模型接入指南.md](reference/simple-one-api/docs/火山方舟大模型接入指南.md#L18) |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 缺 `/api/v3`)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2122);端点拼接 [model.rs](aimux-providers/src/openai/model.rs#L73)\n- **差距说明**:当前拼接结果为 `https://ark.cn-beijing.volces.com/chat/completions`,缺少 `/api/v3` 路径段,必 404;Bearer 认证可用(免 IAM 签名,官方兼容面接受 API Key)。\n- **建议动作**:registry base_url 改为 `https://ark.cn-beijing.volces.com/api/v3`(高优先)。\n\n#### 3. 证据与验证\n\n- **证据等级**:B(本地 reference 配置)+C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无(base_url 结论强)\n\n### vultr — Vultr (Inference)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.vultrinference.com/v1` · env=`VULTR_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_tokens` 默认 4096;`stop`、`seed` 标准) | - | C | https://api.vultrinference.com/ |\n| 能力支持 | 无差异(logprobs/top_logprobs/tools/tool_choice 标准) | - | C | https://api.vultrinference.com/ |\n| 思考机制 | 无差异(raw 端点透传上游 `reasoning_content`;**normalize 模式可改写为 `reasoning`**,见下) | - | C | https://api.vultrinference.com/ |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | raw 端点可能返回非标准字段(content=None + tool_calls 等),normalize 模式修正 | - | C | https://api.vultrinference.com/ |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer *API Key*) | - | C | https://api.vultrinference.com/ |\n| URL/端点 | 无差异 | - | C | https://api.vultrinference.com/ |\n| 模型 ID | **org 前缀 + `-normalize` 后缀约定**:`deepseek-ai/DeepSeek-V4-Pro` / `deepseek-ai/DeepSeek-V4-Pro-normalize`(normalizer 修正 `reasoning_content`→`reasoning`、工具调用 ID 等非标准响应) | `{\"model\":\"deepseek-ai/DeepSeek-V4-Pro-normalize\",\"messages\":[...]}` | C | https://api.vultrinference.com/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2131)\n- **差距说明**:aimux 已兼容 `reasoning_content`([model.rs](aimux-providers/src/openai/model.rs#L558) 优先读它),与 raw 端点兼容良好;`-normalize` 只是用户可选模型名后缀,无需代码改动;但需在文档提示 deepseek 系模型加 `-normalize` 以获得标准响应。\n- **建议动作**:补文档说明,无需 profile 改动。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### wafer — Wafer\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.wafer.ai/v1` · env=`WAFER_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(OpenAI 兼容 `/chat/completions`) | - | C | https://www.truefoundry.com/docs/ai-gateway/wafer |\n| 思考机制 | 无差异(透传上游;模型表带 Reasoning 列) | - | C | https://mastra.ai/models/providers/wafer.ai |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer,`WAFER_API_KEY` 与 registry 一致) | - | C | https://mastra.ai/models/providers/wafer.ai |\n| URL/端点 | **registry 域名存疑**:TrueFoundry/Mastra 官方 base 为 `https://pass.wafer.ai/v1`(Wafer Pass 产品);registry 写 `api.wafer.ai` ⚠️ | `POST https://pass.wafer.ai/v1/chat/completions` | C(⚠️) | https://www.truefoundry.com/docs/ai-gateway/wafer ;https://mastra.ai/models/providers/wafer.ai |\n| 模型 ID | **org 前缀**:`wafer.ai/GLM-5.1`、`wafer.ai/Kimi-K2.6`、`wafer.ai/MiniMax-M3` | - | C | https://mastra.ai/models/providers/wafer.ai |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 域名待核)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2140)\n- **差距说明**:`api.wafer.ai` vs 官方 `pass.wafer.ai`;需实测 api.wafer.ai 是否解析/转发。\n- **建议动作**:实测后修正 registry base_url。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:base_url 域名 ⚠️\n\n### wandb — Weights & Biases (Serverless Inference)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.inference.wandb.ai/v1` · env=`WANDB_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(标准 chat/completions,模型清单由 W&B 托管) | - | C | https://docs.wandb.ai/inference/api-reference/chat-completions |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer);**可选 `OpenAI-Project: [YOUR-TEAM]/[YOUR-PROJECT]` 头**做 usage 追踪 | `curl .../chat/completions -H \"Authorization: Bearer [YOUR-API-KEY]\" -H \"OpenAI-Project: [YOUR-TEAM]/[YOUR-PROJECT]\"` | C | https://docs.wandb.ai/inference/api-reference/chat-completions |\n| URL/端点 | 无差异 | - | C | https://docs.wandb.ai/inference/api-reference/chat-completions |\n| 模型 ID | **org 前缀**:`meta-llama/Llama-3.1-8B-Instruct` 等托管模型 | - | C | https://docs.wandb.ai/inference/api-reference/chat-completions |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2149);`OpenAI-Project` 头已有 [mod.rs](aimux-providers/src/openai/mod.rs#L101)(`with_project`)\n- **差距说明**:`OpenAI-Project` 头需要用户显式 `with_project(\"team/project\")` 配置,默认不发送——符合可选语义。\n- **建议动作**:厂商文档提示设置 project 头以启用 usage 追踪。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### xiaomi_token_plan_ams — Xiaomi Token Plan(欧洲区)\n\n- **registry 现状**:profile=`full()` · base_url=`https://token-plan-ams.xiaomimimo.com/v1` · env=`MIMO_API_KEY`\n- **变体**:无(**并入主条目 xiaomi_token_plan_cn**——同一 Token Plan 产品,区域镜像域名 `token-plan-ams.xiaomimimo.com`)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(并入主条目,`max_completion_tokens`) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异(同主条目,无独立开关文档) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | **`api-key` 头**(同主条目,Key 格式 `tp-xxxxx`) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| URL/端点 | 无差异(区域子域) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 模型 ID | 同主条目(`mimo-v2.5-pro` 等) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(同主条目:`api-key` 头需 with_headers)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2158)\n- **差距说明**:无独立差距。\n- **建议动作**:与主条目一并处理认证头问题。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:区域域名是否真实开通未实测\n\n### xiaomi_token_plan_sgp — Xiaomi Token Plan(新加坡区)\n\n- **registry 现状**:profile=`full()` · base_url=`https://token-plan-sgp.xiaomimimo.com/v1` · env=`MIMO_API_KEY`\n- **变体**:无(**并入主条目 xiaomi_token_plan_cn**,区域镜像 `token-plan-sgp.xiaomimimo.com`)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(并入主条目) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | **`api-key` 头**(同主条目) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| URL/端点 | 无差异(区域子域) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 模型 ID | 同主条目 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(同主条目)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2176)\n- **差距说明**:无独立差距。\n- **建议动作**:与主条目一并处理认证头问题。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:区域域名是否真实开通未实测\n\n### xiaomi_token_plan_cn — Xiaomi Token Plan(中国区)\n\n- **registry 现状**:profile=`full()` · base_url=`https://token-plan-cn.xiaomimimo.com/v1` · env=`MIMO_API_KEY`\n- **变体**:xiaomi_token_plan_ams(`token-plan-ams.xiaomimimo.com/v1`)/ xiaomi_token_plan_sgp(`token-plan-sgp.xiaomimimo.com/v1`),区域镜像同协议\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_completion_tokens` 官方示例) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 能力支持 | 无差异(temperature/top_p/frequency_penalty/presence_penalty/stop/stream 标准) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 思考机制 | MiMo 推理模型无独立开关字段证据(reasoning 模型按权重)⚠️ | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | **认证头是 `api-key`(非 `Authorization: Bearer`)**:官方 curl 用 `--header \"api-key: $MIMO_API_KEY\"`;Key 格式 `tp-xxxxx`(Token Plan) | `curl ... 'https://token-plan-cn.xiaomimimo.com/v1/chat/completions' --header \"api-key: $MIMO_API_KEY\"` | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| URL/端点 | 无差异(cn 区与官方一致;另提供 Anthropic 面 `/anthropic`) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 模型 ID | `mimo-v2.5-pro`、`mimo-v2.5` 等 `mimo-*` 代号 | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2158)\n- **差距说明**:aimux 默认发送 `Authorization: Bearer`;若 MiMo 拒绝 Bearer 只认 `api-key`,则请求 401——需用户 `with_headers` 注入 `api-key` 头([mod.rs](aimux-providers/src/openai/mod.rs#L155) 支持自定义 headers,可兜底但非零配置)。\n- **建议动作**:实测 `api-key` vs `Authorization` 兼容性;若不兼容,考虑在 profile 增加 auth 头选项或在厂商文档注明 with_headers 用法。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:是否同时接受 Bearer 未确认(官方只示范 `api-key`)\n\n### xiaomimimo — Xiaomi MiMo(按量计费)\n\n- **registry 现状**:profile=`full()` · base_url=`https://mimo.xiaomi.com/v1` · env=`XIAOMI_API_KEY`\n- **变体**:无(与 xiaomi_token_plan_* 是同一平台两种计费方式)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_completion_tokens`) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 能力支持 | 无差异 | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 思考机制 | 无差异(无独立开关文档) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | **认证头 `api-key`**(同 Token Plan);Key 格式 `sk-xxxxx` | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| URL/端点 | **registry 域名存疑**:官方按量计费 base 为 `https://api.xiaomimimo.com/v1`(registry 写 `mimo.xiaomi.com/v1`,后者是官网站)⚠️ | `POST https://api.xiaomimimo.com/v1/chat/completions` | C(⚠️) | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n| 模型 ID | `mimo-v2.5-pro` 等(同 Token Plan) | - | C | https://mimo.mi.com/docs/en-US/quick-start/summary/first-api-call |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url + 认证头)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2185)\n- **差距说明**:base_url 需按官方改为 `api.xiaomimimo.com/v1`(或实测 mimo.xiaomi.com 是否通 API);认证头 `api-key` 需 with_headers。\n- **建议动作**:修正 base_url;认证头问题与 xiaomi_token_plan_cn 一并处理。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:base_url 域名 ⚠️\n\n### xpersona — Xpersona\n\n- **registry 现状**:profile=`full()` · base_url=`/v1` · env=`XPERSONA_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(OpenAI 兼容 `/chat/completions`) | - | C | https://mastra.ai/models/providers/xpersona |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://www.xpersona.co/ |\n| URL/端点 | **registry base_url 只有 `/v1` 相对路径(缺 host)**:官方为 `https://www.xpersona.co/v1`(Mastra 配置) | `POST https://www.xpersona.co/v1/chat/completions` | C(⚠️) | https://mastra.ai/models/providers/xpersona |\n| 模型 ID | **org 前缀**:`xpersona/claude-fable-5` 等(聚合 GPT/Claude/Gemini) | - | C | https://mastra.ai/models/providers/xpersona |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 缺 host)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2194)\n- **差距说明**:`/v1` 相对路径无法发起请求,需补全 host。\n- **建议动作**:registry base_url 改为 `https://www.xpersona.co/v1`(或官方 API 域名,以实测为准)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:官方 API 域名(www vs 裸域)⚠️\n\n### xunfei — Xunfei(讯飞星火)\n\n- **registry 现状**:profile=`full()` · base_url=`https://spark-api-open.xf-yun.com/v1` · env=`XUNFEI_API_PASSWORD`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_tokens`、`user`、`presence_penalty`、`frequency_penalty` 标准;temperature 建议 1.2) | - | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n| 能力支持 | **支持 `top_k`**;`response_format:{\"type\":\"json_object\"}`;tools 支持 function 与 **`web_search` 类型内置工具** | `{\"tools\":[{\"type\":\"function\",\"function\":{...}},{\"type\":\"web_search\",\"web_search\":{\"enable\":true,\"show_ref_label\":true,\"search_mode\":\"deep\"}}]}` | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n| 思考机制 | Ultra 已升级 X1.5 快思考;X1/X2 深度思考模型存在(另册 X1 HTTP 文档),OpenAI 兼容面无统一 thinking 开关证据 ⚠️ | - | C(⚠️) | https://www.xfyun.cn/doc/spark/X1http.html |\n| 流式/usage | 无差异(stream 标准 SSE) | - | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | **`suppress_plugin` 数组**:抑制内置插件(如 knowledge 搜索插件) | `{\"suppress_plugin\":[\"knowledge\"]}` | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n| headers/认证 | 无差异(`Authorization: Bearer `,env 名与 registry 的 XUNFEI_API_PASSWORD 语义一致) | `--header 'Authorization: Bearer 123456'` | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n| URL/端点 | 无差异(`/v1/chat/completions` 官方一致) | - | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n| 模型 ID | **版本码约定**:`4.0Ultra` / `generalv3.5`(Max) / `max-32k` / `generalv3`(Pro) / `pro-128k` / `lite`(非 OpenAI 式命名) | `{\"model\":\"generalv3.5\",\"messages\":[...]}` | C | https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2203)\n- **差距说明**:`suppress_plugin` 不在 convert.rs 白名单(需 bodyOverrides);`web_search` 类型 tool 不在 aimux `Tool` 枚举([convert.rs](aimux-providers/src/openai/convert.rs#L1374) 只处理 Function 类型,Provider 类型被丢弃并 warn)——星火内置搜索工具无法透传;top_k/response_format/tools(function) 均 ✅。\n- **建议动作**:`web_search` 工具透传可评估(低优先);suppress_plugin 文档化走 bodyOverrides。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:X1 思考开关字段未确认\n\n### zai — Z.AI (GLM)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.z.ai/api/paas/v4` · env=`ZAI_API_KEY`\n- **变体**:zai_coding_plan(订阅套餐,见下条)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(官方 GLM-5 示例用 `max_tokens` + `temperature`) | - | C | https://docs.z.ai/guides/llm/glm-5 |\n| 能力支持 | 无差异(Function Call、Structured Output、streaming、上下文缓存) | - | C | https://docs.z.ai/guides/llm/glm-5 |\n| 思考机制 | **`thinking` 对象开关**:`{\"type\":\"enabled\"}`(GLM-5/4.6V 官方示例);GLM-5 提供多种 thinking mode 档位;响应含 reasoning 输出 | `{\"model\":\"glm-5\",\"messages\":[...],\"thinking\":{\"type\":\"enabled\"},\"max_tokens\":4096,\"temperature\":1.0}` | C | https://docs.z.ai/guides/llm/glm-5 ;https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异(多模态走标准 image_url) | - | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 特殊字段 | 无差异(上下文缓存为服务端行为) | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://docs.z.ai/guides/llm/glm-5 |\n| URL/端点 | 无差异(`/api/paas/v4` 与官方一致) | - | C | https://docs.z.ai/guides/llm/glm-5 |\n| 模型 ID | `glm-5`、`glm-5.2`、`glm-4.6v` 等 `glm-*` 系列 | - | C | https://docs.z.ai/guides/llm/glm-5 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2212)\n- **差距说明**:`thinking` 对象需 bodyOverrides(现有 DeepSeek override 的 thinking 注入绑定 provider_options[\"deepseek\"],不通用);其余 ✅。\n- **建议动作**:若 GLM 成为主流,建议在 RequestBodyOverride 增加 GLM 变体(thinking 透传 + reasoning_effort 可选)或 profile 增加 `thinking_field` 通用支持。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### zai_coding_plan — Z.AI Coding Plan\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.z.ai/api/anthropic` · env=`ZHIPU_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | **协议级差异**:该端点是 Anthropic Messages 协议,无 `messages.role=system` 顶层数组,改用顶层 `system` + `max_tokens` 必填 | `{\"model\":\"glm-5.2[1m]\",\"max_tokens\":... ,\"system\":\"...\",\"messages\":[...]}` | C | https://docs.z.ai/devpack/tool/claude |\n| 能力支持 | Anthropic 面(tool_use/tool_result、thinking budget 模式) | - | C | https://docs.z.ai/devpack/tool/claude |\n| 思考机制 | Claude Code 集成:`ANTHROPIC_AUTH_TOKEN`=ZHIPU_API_KEY,模型 `glm-4.7` / `glm-5.2[1m]`;thinking 走 Anthropic budget 模式 | `\"env\":{\"ANTHROPIC_AUTH_TOKEN\":\"your_zai_api_key\",\"ANTHROPIC_BASE_URL\":\"https://api.z.ai/api/anthropic\",\"ANTHROPIC_DEFAULT_OPUS_MODEL\":\"glm-5.2[1m]\"}` | C | https://docs.z.ai/devpack/tool/claude |\n| 流式/usage | Anthropic SSE 格式(event: message_start/content_block_delta 等) | - | C | https://docs.z.ai/devpack/tool/claude |\n| 消息格式 | Anthropic 消息格式(顶层 system,tool_result 角色) | - | C | https://docs.z.ai/devpack/tool/claude |\n| 特殊字段 | Anthropic 专属(`thinking` budget、`metadata` 等) | - | C | https://docs.z.ai/devpack/tool/claude |\n| headers/认证 | `x-api-key` + `anthropic-version` 头(非 OpenAI Bearer) | - | C | https://docs.z.ai/devpack/tool/claude |\n| URL/端点 | registry base_url 与官方一致(Anthropic 面);**注意 OpenAI 面是 `https://api.z.ai/api/paas/v4`,非此端点** | `POST https://api.z.ai/api/anthropic/v1/messages` | C | https://docs.z.ai/devpack/tool/claude |\n| 模型 ID | `glm-4.7`、`glm-5.2[1m]`(带 `[1m]` 长上下文后缀) | - | C | https://docs.z.ai/devpack/tool/claude |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(协议不匹配)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2221)\n- **差距说明**:registry 以 OpenAICompatProfile::full() + Anthropic 端点声明,aimux 的 OpenAI 请求体(顶层 messages + system 作为消息)发往 `/api/anthropic` 会与 Anthropic Messages 协议冲突。要么改用 OpenAI 面 base_url(`https://api.z.ai/api/paas/v4`),要么用 anthropic 协议实现。\n- **建议动作**:与维护者确认意图:若走 OpenAI 协议,base_url 改 `https://api.z.ai/api/paas/v4`(高优先);若保留 Anthropic 端点,需单独的 Anthropic 适配(超出 OpenAICompat 范围)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无(协议差异证据充分)\n\n### zeldoc — Zeldoc\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.zeldoc.ai/v1` · env=`ZELDOC_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(@ai-sdk/openai-compatible,单模型) | - | C | https://models.dev/providers/zeldoc |\n| 思考机制 | 无差异(无证据) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`ZELDOC_API_KEY` 与 registry 一致) | - | C | https://models.dev/providers/zeldoc |\n| URL/端点 | 无差异 | - | C | https://models.dev/providers/zeldoc |\n| 模型 ID | 单模型(models.dev 表未展示 ID,证据不足)⚠️ | - | C(⚠️) | https://models.dev/providers/zeldoc |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2230)\n- **差距说明**:无。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:模型 ID 细节证据不足\n\n### zenmux — ZenMux\n\n- **registry 现状**:profile=`full()` · base_url=`https://zenmux.ai/api/v1` · env=`ZENMUX_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(OpenAI Chat Completions 全兼容) | - | C | https://zenmux.ai/docs/guide/quickstart.html |\n| 思考机制 | 无差异(透传上游) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://zenmux.ai/docs/guide/quickstart.html |\n| URL/端点 | 无差异(同时提供 Responses `/api/v1`、Anthropic `/api/anthropic`、Gemini `/api/vertex-ai` 面,协议互通) | - | C | https://zenmux.ai/docs/guide/quickstart.html |\n| 模型 ID | 平台模型 slug(如 `google/gemini-3.1-pro-preview` 格式,按 Models 页) | - | C | https://zenmux.ai/docs/guide/quickstart.html |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2239)\n- **差距说明**:无。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### zhipu_v4 — ZhipuV4 (GLM 开放平台)\n\n- **registry 现状**:profile=`full()` · base_url=`https://open.bigmodel.cn` · env=`ZHIPU_API_KEY`\n- **变体**:无(zhipuai_coding_plan 为订阅套餐,见下条)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(Function Calling、流式、视觉多模态 image_url) | - | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 思考机制 | **`thinking` 对象开关**(同 z.ai):`{\"type\":\"enabled\"}`;深度思考可关 | `{\"model\":\"glm-4.6v\",\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"image_url\",...},{\"type\":\"text\",\"text\":\"...\"}]}],\"thinking\":{\"type\":\"enabled\"}}` | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 流式/usage | 无差异(stream 标准;深度思考输出经 reasoning 通道) | - | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 消息格式 | 无差异(多模态标准 image_url;支持视频/文件) | - | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 特殊字段 | 无差异(上下文缓存服务端处理) | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| URL/端点 | **registry 缺路径**:官方 OpenAI 兼容 base 为 `https://open.bigmodel.cn/api/paas/v4`(registry 只写 host) | `POST https://open.bigmodel.cn/api/paas/v4/chat/completions` | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n| 模型 ID | `glm-4.6v`、`glm-4.6`、`glm-4.6v-flash` 等 `glm-*` | - | C | https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 缺路径)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2248)\n- **差距说明**:当前拼接 `https://open.bigmodel.cn/chat/completions` 缺 `/api/paas/v4`,必 404(高优先修正);`thinking` 字段需 bodyOverrides。\n- **建议动作**:registry base_url 改为 `https://open.bigmodel.cn/api/paas/v4`;thinking 覆盖同 zai 条目。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:无\n\n### zhipuai_coding_plan — Zhipu AI Coding Plan\n\n- **registry 现状**:profile=`full()` · base_url=`https://docs.bigmodel.cn/cn/coding-plan/quick-start` · env=`ZHIPU_API_KEY`\n- **变体**:无\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 面标准;Anthropic 面用顶层 system/max_tokens) | - | C | https://docs.bigmodel.cn/cn/coding-plan/quick-start |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 套餐内 GLM 模型沿用 `thinking` 对象(同 zhipu_v4),官方未在 Coding Plan 页单列 ⚠️ | `{\"model\":\"glm-4.6\",\"messages\":[...],\"thinking\":{\"type\":\"enabled\"}}`(推断) | C(⚠️) | https://docs.bigmodel.cn/cn/coding-plan/quick-start |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer;**团队版套餐 Key 与开放平台其他 Key 不通用**) | - | C | https://docs.bigmodel.cn/cn/coding-plan/quick-start |\n| URL/端点 | **registry base_url 是 docs 页面**:真实 OpenAI 面为 `https://open.bigmodel.cn/api/coding/paas/v4`,Anthropic 面 `https://open.bigmodel.cn/api/anthropic` | `POST https://open.bigmodel.cn/api/coding/paas/v4/chat/completions` | C | https://docs.bigmodel.cn/cn/coding-plan/quick-start |\n| 模型 ID | `glm-4.6`、`glm-4.7`、`glm-5.x` 等套餐内模型 | - | C | https://docs.bigmodel.cn/cn/coding-plan/quick-start |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(base_url 错误)\n- **aimux 代码位置**:[openai_compat_registry.rs](aimux-providers/src/openai_compat_registry.rs#L2257)\n- **差距说明**:registry 的 base_url 是文档页面 URL,非 API 端点;应改为 `https://open.bigmodel.cn/api/coding/paas/v4`(Coding Plan 专用 OpenAI 面,非普通 /api/paas/v4)。\n- **建议动作**:修正 base_url(高优先);思考覆盖同 zhipu_v4。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:思考机制推断 ⚠️\n"}}, "docs/internal/provider-research/batches/batch-11.json": {"d4bfcae94f036812a833dbb6ddb703136eed4760": {"t": 1785809848.0328212, "n": 10286, "h": "ba7653faadebfcaf", "c": "{\n \"batch\": 11,\n \"count\": 14,\n \"providers\": [\n {\n \"id\": \"suno_api\",\n \"display_name\": \"SunoAPI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"tencent_coding_plan\",\n \"display_name\": \"Tencent Coding Plan (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/coding/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1772/128947\"\n ],\n \"api_key_env_vars\": [\n \"TENCENT_CODING_PLAN_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"glm-5\",\n \"hunyuan-2.0-instruct\",\n \"hunyuan-2.0-thinking\",\n \"hunyuan-t1\",\n \"hunyuan-turbos\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan\",\n \"display_name\": \"Tencent Token Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130060\"\n ],\n \"api_key_env_vars\": [\n \"TENCENT_TOKEN_PLAN_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"hy3\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_enterprise_auto\",\n \"display_name\": \"腾讯云 Token Plan / Token Plan 企业版轻享套餐\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tokenhub.tencentmaas.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130660\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"auto\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_enterprise_pro\",\n \"display_name\": \"腾讯云 Token Plan / Token Plan 企业版专业套餐\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tokenhub.tencentmaas.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130660\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 16,\n \"model_sample\": [\n \"auto\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-flash-202605\",\n \"deepseek-v4-pro\",\n \"deepseek-v4-pro-202606\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_general_personal\",\n \"display_name\": \"腾讯云 Token Plan / 通用 Token Plan(个人版)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130060\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 8,\n \"model_sample\": [\n \"deepseek-v4-flash-202605\",\n \"deepseek-v4-pro-202606\",\n \"glm-5\",\n \"glm-5.1\",\n \"kimi-k2.5\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_hy_personal\",\n \"display_name\": \"腾讯云 Token Plan / Hy Token Plan(个人版)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130060\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"hy3\",\n \"hy3-preview\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_tokenhub\",\n \"display_name\": \"Tencent TokenHub\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tokenhub.tencentmaas.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130050\"\n ],\n \"api_key_env_vars\": [\n \"TENCENT_TOKENHUB_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"hy3\",\n \"hy3-preview\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"the_grid_ai\",\n \"display_name\": \"The Grid AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.thegrid.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://thegrid.ai/docs\"\n ],\n \"api_key_env_vars\": [\n \"THEGRIDAI_API_KEY\"\n ],\n \"model_count\": 9,\n \"model_sample\": [\n \"agent-max\",\n \"agent-prime\",\n \"agent-standard\",\n \"code-max\",\n \"code-prime\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"thinkingmachines\",\n \"display_name\": \"Thinking Machines\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tinker.thinkingmachines.dev/services/tinker-prod/anthropic/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/anthropic\"\n ],\n \"api_key_env_vars\": [\n \"TINKER_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"thinkingmachines/Inkling\",\n \"thinkingmachines/Inkling:peft:262144\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"tinfoil\",\n \"display_name\": \"Tinfoil\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://inference.tinfoil.sh/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.tinfoil.sh\"\n ],\n \"api_key_env_vars\": [\n \"TINFOIL_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"gemma4-31b\",\n \"glm-5-2\",\n \"gpt-oss-120b\",\n \"gpt-oss-safeguard-120b\",\n \"kimi-k2-6\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"tokenflux\",\n \"display_name\": \"Tokenflux\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 164,\n \"model_sample\": [\n \"anthropic/claude-3-haiku\",\n \"anthropic/claude-3.5-haiku\",\n \"anthropic/claude-3.5-sonnet\",\n \"anthropic/claude-3.7-sonnet\",\n \"anthropic/claude-haiku-4.5\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"triton\",\n \"display_name\": \"Triton\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"trustedrouter\",\n \"display_name\": \"TrustedRouter\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.trustedrouter.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://trustedrouter.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"TRUSTEDROUTER_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"auto\",\n \"cheap\",\n \"e2e\",\n \"fast\",\n \"synth\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n }\n ]\n}"}, "7c6283c8ba6e91e6ce380cb9e8a13b99e27431ed": {"t": 1785846967.1178594, "n": 10286, "h": "ba7653faadebfcaf", "c": "{\n \"batch\": 11,\n \"count\": 14,\n \"providers\": [\n {\n \"id\": \"suno_api\",\n \"display_name\": \"SunoAPI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"tencent_coding_plan\",\n \"display_name\": \"Tencent Coding Plan (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/coding/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1772/128947\"\n ],\n \"api_key_env_vars\": [\n \"TENCENT_CODING_PLAN_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"glm-5\",\n \"hunyuan-2.0-instruct\",\n \"hunyuan-2.0-thinking\",\n \"hunyuan-t1\",\n \"hunyuan-turbos\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan\",\n \"display_name\": \"Tencent Token Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130060\"\n ],\n \"api_key_env_vars\": [\n \"TENCENT_TOKEN_PLAN_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"hy3\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_enterprise_auto\",\n \"display_name\": \"腾讯云 Token Plan / Token Plan 企业版轻享套餐\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tokenhub.tencentmaas.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130660\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"auto\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_enterprise_pro\",\n \"display_name\": \"腾讯云 Token Plan / Token Plan 企业版专业套餐\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tokenhub.tencentmaas.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130660\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 16,\n \"model_sample\": [\n \"auto\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-flash-202605\",\n \"deepseek-v4-pro\",\n \"deepseek-v4-pro-202606\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_general_personal\",\n \"display_name\": \"腾讯云 Token Plan / 通用 Token Plan(个人版)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130060\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 8,\n \"model_sample\": [\n \"deepseek-v4-flash-202605\",\n \"deepseek-v4-pro-202606\",\n \"glm-5\",\n \"glm-5.1\",\n \"kimi-k2.5\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_hy_personal\",\n \"display_name\": \"腾讯云 Token Plan / Hy Token Plan(个人版)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130060\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"hy3\",\n \"hy3-preview\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_tokenhub\",\n \"display_name\": \"Tencent TokenHub\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tokenhub.tencentmaas.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130050\"\n ],\n \"api_key_env_vars\": [\n \"TENCENT_TOKENHUB_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"hy3\",\n \"hy3-preview\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"the_grid_ai\",\n \"display_name\": \"The Grid AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.thegrid.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://thegrid.ai/docs\"\n ],\n \"api_key_env_vars\": [\n \"THEGRIDAI_API_KEY\"\n ],\n \"model_count\": 9,\n \"model_sample\": [\n \"agent-max\",\n \"agent-prime\",\n \"agent-standard\",\n \"code-max\",\n \"code-prime\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"thinkingmachines\",\n \"display_name\": \"Thinking Machines\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tinker.thinkingmachines.dev/services/tinker-prod/anthropic/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/anthropic\"\n ],\n \"api_key_env_vars\": [\n \"TINKER_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"thinkingmachines/Inkling\",\n \"thinkingmachines/Inkling:peft:262144\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"tinfoil\",\n \"display_name\": \"Tinfoil\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://inference.tinfoil.sh/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.tinfoil.sh\"\n ],\n \"api_key_env_vars\": [\n \"TINFOIL_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"gemma4-31b\",\n \"glm-5-2\",\n \"gpt-oss-120b\",\n \"gpt-oss-safeguard-120b\",\n \"kimi-k2-6\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"tokenflux\",\n \"display_name\": \"Tokenflux\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 164,\n \"model_sample\": [\n \"anthropic/claude-3-haiku\",\n \"anthropic/claude-3.5-haiku\",\n \"anthropic/claude-3.5-sonnet\",\n \"anthropic/claude-3.7-sonnet\",\n \"anthropic/claude-haiku-4.5\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"triton\",\n \"display_name\": \"Triton\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"trustedrouter\",\n \"display_name\": \"TrustedRouter\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.trustedrouter.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://trustedrouter.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"TRUSTEDROUTER_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"auto\",\n \"cheap\",\n \"e2e\",\n \"fast\",\n \"synth\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n }\n ]\n}"}}, "docs/internal/provider-research/_research-input.json": {"d4bfcae94f036812a833dbb6ddb703136eed4760": {"t": 1785809849.789589, "n": 150679, "h": "422fb146edb5e618", "c": "{\n \"total\": 209,\n \"providers\": [\n {\n \"id\": \"abacus\",\n \"display_name\": \"Abacus\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://routellm.abacus.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://abacus.ai/help/api\"\n ],\n \"api_key_env_vars\": [\n \"ABACUS_API_KEY\"\n ],\n \"model_count\": 100,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.7\",\n \"MiniMaxAI/MiniMax-M3\",\n \"Qwen/QwQ-32B\",\n \"Qwen/Qwen2.5-72B-Instruct\",\n \"Qwen/Qwen3-235B-A22B-Instruct-2507\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"abliteration_ai\",\n \"display_name\": \"abliteration.ai\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.abliteration.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.abliteration.ai/models\"\n ],\n \"api_key_env_vars\": [\n \"ABLIT_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"abliterated-model\",\n \"abliterated-model-large\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"advanced_custom\",\n \"display_name\": \"Advanced Custom\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"ai_router\",\n \"display_name\": \"AI-ROUTER\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.ai-router.dev/v1\"\n ],\n \"documentation_urls\": [\n \"https://ai-router.dev/openai-compatible-api-gateway\"\n ],\n \"api_key_env_vars\": [\n \"AI_ROUTER_API_KEY\"\n ],\n \"model_count\": 5,\n \"model_sample\": [\n \"gpt-5.4\",\n \"gpt-5.5\",\n \"gpt-5.6-luna\",\n \"gpt-5.6-sol\",\n \"gpt-5.6-terra\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"aiand\",\n \"display_name\": \"ai&\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.aiand.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.aiand.com\"\n ],\n \"api_key_env_vars\": [\n \"AIAND_API_KEY\"\n ],\n \"model_count\": 10,\n \"model_sample\": [\n \"deepseek-ai/deepseek-v4-flash\",\n \"deepseek-ai/deepseek-v4-pro\",\n \"google/gemma-4-31b-it\",\n \"moonshotai/kimi-k2.6\",\n \"moonshotai/kimi-k2.7-code\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"aiproxy\",\n \"display_name\": \"AIProxy\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.aiproxy.io\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"aiproxy_library\",\n \"display_name\": \"AIProxyLibrary\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.aiproxy.io\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"aki_io\",\n \"display_name\": \"AKI.IO\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://aki.io/v1\"\n ],\n \"documentation_urls\": [\n \"https://aki.io/docs\"\n ],\n \"api_key_env_vars\": [\n \"AKI_IO_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"gemma4-26b\",\n \"gpt-oss-120b\",\n \"kimi-k2.7-code-1100b\",\n \"minimax-m2.5-230b\",\n \"mistral4-119b\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"ali\",\n \"display_name\": \"Ali\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://dashscope.aliyuncs.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"alibaba_cn\",\n \"display_name\": \"Alibaba (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://dashscope.aliyuncs.com/compatible-mode/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.alibabacloud.com/help/en/model-studio/models\"\n ],\n \"api_key_env_vars\": [\n \"DASHSCOPE_API_KEY\"\n ],\n \"model_count\": 112,\n \"model_sample\": [\n \"MiniMax-M2.5\",\n \"MiniMax/MiniMax-M2.7\",\n \"deepseek-r1\",\n \"deepseek-r1-0528\",\n \"deepseek-r1-distill-llama-70b\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"alibaba_coding_plan\",\n \"display_name\": \"Alibaba Coding Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://coding-intl.dashscope.aliyuncs.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.alibabacloud.com/help/en/model-studio/coding-plan\"\n ],\n \"api_key_env_vars\": [\n \"ALIBABA_CODING_PLAN_API_KEY\"\n ],\n \"model_count\": 12,\n \"model_sample\": [\n \"MiniMax-M2.5\",\n \"glm-4.7\",\n \"glm-5\",\n \"kimi-k2.5\",\n \"qwen3-coder-next\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"alibaba_coding_plan_cn\",\n \"display_name\": \"Alibaba Coding Plan (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://coding.dashscope.aliyuncs.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://help.aliyun.com/zh/model-studio/coding-plan\"\n ],\n \"api_key_env_vars\": [\n \"ALIBABA_CODING_PLAN_API_KEY\"\n ],\n \"model_count\": 12,\n \"model_sample\": [\n \"MiniMax-M2.5\",\n \"glm-4.7\",\n \"glm-5\",\n \"kimi-k2.5\",\n \"qwen3-coder-next\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"alibaba_token_plan\",\n \"display_name\": \"Alibaba Token Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"image_generation\"\n ],\n \"base_urls\": [\n \"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.alibabacloud.com/help/en/model-studio/token-plan-overview\"\n ],\n \"api_key_env_vars\": [\n \"ALIBABA_TOKEN_PLAN_API_KEY\"\n ],\n \"model_count\": 22,\n \"model_sample\": [\n \"MiniMax-M2.5\",\n \"deepseek-v3.2\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\",\n \"glm-5\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"alibaba_token_plan_cn\",\n \"display_name\": \"Alibaba Token Plan (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"image_generation\"\n ],\n \"base_urls\": [\n \"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview\"\n ],\n \"api_key_env_vars\": [\n \"ALIBABA_TOKEN_PLAN_API_KEY\"\n ],\n \"model_count\": 22,\n \"model_sample\": [\n \"MiniMax-M2.5\",\n \"deepseek-v3.2\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\",\n \"glm-5\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"ambient\",\n \"display_name\": \"Ambient\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.ambient.xyz/v1\"\n ],\n \"documentation_urls\": [\n \"https://ambient.xyz\"\n ],\n \"api_key_env_vars\": [\n \"AMBIENT_API_KEY\"\n ],\n \"model_count\": 9,\n \"model_sample\": [\n \"ambient/large\",\n \"deepseek/deepseek-v4-flash\",\n \"moonshotai/kimi-k2.6\",\n \"moonshotai/kimi-k2.7-code\",\n \"stepfun/step-3.7-flash\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"anthropic_text\",\n \"display_name\": \"Anthropic Text\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"anyapi\",\n \"display_name\": \"AnyAPI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.anyapi.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.anyapi.ai\"\n ],\n \"api_key_env_vars\": [\n \"ANYAPI_API_KEY\"\n ],\n \"model_count\": 30,\n \"model_sample\": [\n \"anthropic/claude-haiku-4-5\",\n \"anthropic/claude-opus-4-6\",\n \"anthropic/claude-opus-4-7\",\n \"anthropic/claude-sonnet-4-5\",\n \"anthropic/claude-sonnet-4-6\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"apertis\",\n \"display_name\": \"Apertis\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.65,\n \"capabilities\": [],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"atomic_chat\",\n \"display_name\": \"Atomic Chat\",\n \"aliases\": [],\n \"provider_kind\": \"local_runtime\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"http://127.0.0.1:1337/v1\"\n ],\n \"documentation_urls\": [\n \"https://atomic.chat\"\n ],\n \"api_key_env_vars\": [\n \"ATOMIC_CHAT_API_KEY\"\n ],\n \"model_count\": 5,\n \"model_sample\": [\n \"Meta-Llama-3_1-8B-Instruct-GGUF\",\n \"Qwen3_5-9B-MLX-4bit\",\n \"Qwen3_5-9B-Q4_K_M\",\n \"gemma-4-E4B-it-IQ4_XS\",\n \"gemma-4-E4B-it-MLX-4bit\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"auriko\",\n \"display_name\": \"Auriko\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.auriko.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.auriko.ai\"\n ],\n \"api_key_env_vars\": [\n \"AURIKO_API_KEY\"\n ],\n \"model_count\": 15,\n \"model_sample\": [\n \"claude-opus-4-6\",\n \"claude-opus-4-7\",\n \"claude-sonnet-4-6\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"aws\",\n \"display_name\": \"AWS\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"aws_polly\",\n \"display_name\": \"AWS Polly\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"audio_speech\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 4,\n \"model_sample\": [\n \"aws_polly/generative\",\n \"aws_polly/long-form\",\n \"aws_polly/neural\",\n \"aws_polly/standard\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"azure_cognitive_services\",\n \"display_name\": \"Azure Cognitive Services\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 94,\n \"model_sample\": [\n \"claude-haiku-4-5\",\n \"claude-opus-4-1\",\n \"claude-opus-4-5\",\n \"claude-opus-4-6\",\n \"claude-sonnet-4-5\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"azure_text\",\n \"display_name\": \"Azure Text\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\",\n \"completion\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 3,\n \"model_sample\": [\n \"azure/gpt-3.5-turbo-instruct-0914\",\n \"azure/gpt-35-turbo-instruct\",\n \"azure/gpt-35-turbo-instruct-0914\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"baidu_v2\",\n \"display_name\": \"BaiduV2\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://qianfan.baidubce.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"bailing\",\n \"display_name\": \"Bailing\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.tbox.cn/api/llm/v1/chat/completions\"\n ],\n \"documentation_urls\": [\n \"https://alipaytbox.yuque.com/sxs0ba/ling/intro\"\n ],\n \"api_key_env_vars\": [\n \"BAILING_API_TOKEN\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"Ling-1T\",\n \"Ring-1T\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"bedrock_mantle\",\n \"display_name\": \"Bedrock Mantle\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\",\n \"responses\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 24,\n \"model_sample\": [\n \"bedrock_mantle/google.gemma-4-26b-a4b\",\n \"bedrock_mantle/google.gemma-4-31b\",\n \"bedrock_mantle/google.gemma-4-e2b\",\n \"bedrock_mantle/openai.gpt-5.4\",\n \"bedrock_mantle/openai.gpt-5.5\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_prices\",\n \"pydantic_ai\"\n ]\n },\n {\n \"id\": \"berget\",\n \"display_name\": \"Berget.AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.berget.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://api.berget.ai\"\n ],\n \"api_key_env_vars\": [\n \"BERGET_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"google/gemma-4-31B-it\",\n \"meta-llama/Llama-3.3-70B-Instruct\",\n \"mistralai/Mistral-Medium-3.5-128B\",\n \"mistralai/Mistral-Small-3.2-24B-Instruct-2506\",\n \"moonshotai/Kimi-K2.6\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"blueclaw\",\n \"display_name\": \"Blue Claw\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://openai.blueclaw.network/v1\"\n ],\n \"documentation_urls\": [\n \"https://blueclaw.network\"\n ],\n \"api_key_env_vars\": [\n \"BLUECLAW_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"Qwen/Qwen3.6-35B-A3B-FP8\",\n \"Qwen3.6-27B\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"burncloud\",\n \"display_name\": \"burncloud\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"audio_speech\",\n \"chat\",\n \"image_generation\",\n \"video_generation\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 34,\n \"model_sample\": [\n \"anthropic/claude-3.5-haiku\",\n \"anthropic/claude-3.7-sonnet\",\n \"anthropic/claude-opus-4\",\n \"anthropic/claude-sonnet-4\",\n \"deepseek/deepseek-chat\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"chat_gpt_subscription_codex\",\n \"display_name\": \"ChatGPT Subscription (Codex)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://chatgpt.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 0,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"cherryin\",\n \"display_name\": \"cherryin\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"completion\",\n \"embedding\",\n \"image_generation\",\n \"rerank\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 125,\n \"model_sample\": [\n \"BAAI/bge-reranker-v2-m3(free)\",\n \"agent/deepseek-v3.1-terminus(free)\",\n \"agent/deepseek-v3.2-exp(free)\",\n \"agent/glm-4.6(free)\",\n \"agent/kimi-k2-0905(free)\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"chutes\",\n \"display_name\": \"Chutes\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 1.0,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://llm.chutes.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://llm.chutes.ai/v1/models\"\n ],\n \"api_key_env_vars\": [\n \"CHUTES_API_KEY\"\n ],\n \"model_count\": 43,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.5-TEE\",\n \"Nemotron-3-Nano-Omni-30B-TEE\",\n \"NousResearch/DeepHermes-3-Mistral-24B-Preview\",\n \"NousResearch/Hermes-4-14B\",\n \"Qwen/Qwen2.5-72B-Instruct\"\n ],\n \"trust_score\": 86,\n \"source_ids\": [\n \"litellm_constants\",\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"claudinio\",\n \"display_name\": \"Claudinio\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.claudin.io/v1\"\n ],\n \"documentation_urls\": [\n \"https://claudin.io\"\n ],\n \"api_key_env_vars\": [\n \"CLAUDINIO_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"claudinio\",\n \"claudius\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"cloudferro_sherlock\",\n \"display_name\": \"CloudFerro Sherlock\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api-sherlock.cloudferro.com/openai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.sherlock.cloudferro.com\"\n ],\n \"api_key_env_vars\": [\n \"CLOUDFERRO_SHERLOCK_API_KEY\"\n ],\n \"model_count\": 5,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.5\",\n \"meta-llama/Llama-3.3-70B-Instruct\",\n \"openai/gpt-oss-120b\",\n \"speakleash/Bielik-11B-v2.6-Instruct\",\n \"speakleash/Bielik-11B-v3.0-Instruct\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"cloudflare\",\n \"display_name\": \"Cloudflare\",\n \"aliases\": [],\n \"provider_kind\": \"cloud_platform\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.cloudflare.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 30,\n \"model_sample\": [\n \"cloudflare/@cf/aisingapore/gemma-sea-lion-v4-27b-it\",\n \"cloudflare/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b\",\n \"cloudflare/@cf/google/gemma-2b-it-lora\",\n \"cloudflare/@cf/google/gemma-4-26b-a4b-it\",\n \"cloudflare/@cf/google/gemma-7b-it-lora\"\n ],\n \"trust_score\": 66,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\",\n \"new_api\"\n ]\n },\n {\n \"id\": \"cloudflare_ai_gateway\",\n \"display_name\": \"Cloudflare AI Gateway\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"rerank\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://developers.cloudflare.com/ai-gateway\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 77,\n \"model_sample\": [\n \"anthropic/claude-3-5-haiku\",\n \"anthropic/claude-3-haiku\",\n \"anthropic/claude-3-opus\",\n \"anthropic/claude-3-sonnet\",\n \"anthropic/claude-3.5-haiku\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"cloudflare_workers_ai\",\n \"display_name\": \"Cloudflare Workers AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://developers.cloudflare.com/workers-ai/models\"\n ],\n \"api_key_env_vars\": [\n \"CLOUDFLARE_API_KEY\"\n ],\n \"model_count\": 22,\n \"model_sample\": [\n \"@cf/aisingapore/gemma-sea-lion-v4-27b-it\",\n \"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b\",\n \"@cf/google/gemma-4-26b-a4b-it\",\n \"@cf/ibm-granite/granite-4.0-h-micro\",\n \"@cf/meta/llama-3.1-8b-instruct-fp8\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"cohere_chat\",\n \"display_name\": \"Cohere Chat\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 7,\n \"model_sample\": [\n \"command-a-03-2025\",\n \"command-light\",\n \"command-r\",\n \"command-r-08-2024\",\n \"command-r-plus\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"cortecs\",\n \"display_name\": \"Cortecs\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.cortecs.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://api.cortecs.ai/v1/models\"\n ],\n \"api_key_env_vars\": [\n \"CORTECS_API_KEY\"\n ],\n \"model_count\": 58,\n \"model_sample\": [\n \"claude-4-5-sonnet\",\n \"claude-4-6-sonnet\",\n \"claude-haiku-4-5\",\n \"claude-opus4-5\",\n \"claude-opus4-6\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"crof\",\n \"display_name\": \"CrofAI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://crof.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://crof.ai/docs\"\n ],\n \"api_key_env_vars\": [\n \"CROF_API_KEY\"\n ],\n \"model_count\": 26,\n \"model_sample\": [\n \"deepseek-v3.2\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\",\n \"deepseek-v4-pro-lightning\",\n \"gemma-4-31b-it\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"crossmodel\",\n \"display_name\": \"CrossModel\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.crossmodel.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.crossmodel.ai/docs\"\n ],\n \"api_key_env_vars\": [\n \"CROSSMODEL_API_KEY\"\n ],\n \"model_count\": 46,\n \"model_sample\": [\n \"anthropic/claude-fable-5\",\n \"anthropic/claude-haiku-4-5\",\n \"anthropic/claude-opus-4-7\",\n \"anthropic/claude-opus-4-8\",\n \"anthropic/claude-opus-5\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"crusoe\",\n \"display_name\": \"Crusoe\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 7,\n \"model_sample\": [\n \"crusoe/Qwen/Qwen3-235B-A22B-Instruct-2507\",\n \"crusoe/deepseek-ai/DeepSeek-R1-0528\",\n \"crusoe/deepseek-ai/DeepSeek-V3-0324\",\n \"crusoe/google/gemma-3-12b-it\",\n \"crusoe/meta-llama/Llama-3.3-70B-Instruct\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"custom_provider\",\n \"display_name\": \"custom provider\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 30,\n \"model_sample\": [\n \"MiniMax-M2.5\",\n \"MiniMax-M2.5-highspeed\",\n \"MiniMax-M2.7\",\n \"claude-haiku-4-5\",\n \"claude-opus-4-7\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"daoxe\",\n \"display_name\": \"DaoXE\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://daoxe.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://daoxe.com/pricing\"\n ],\n \"api_key_env_vars\": [\n \"DAOXE_API_KEY\"\n ],\n \"model_count\": 9,\n \"model_sample\": [\n \"claude-haiku-4-5-20251001\",\n \"claude-opus-4-8\",\n \"claude-sonnet-4-6\",\n \"gemini-3.1-pro-preview\",\n \"gpt-5.4\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"darkbloom\",\n \"display_name\": \"Darkbloom\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.85,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"darkbloom/gemma-4-26b\",\n \"darkbloom/gpt-oss-20b\"\n ],\n \"trust_score\": 59,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"dataforseo\",\n \"display_name\": \"Dataforseo\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"dataforseo/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"dify\",\n \"display_name\": \"Dify\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.dify.ai\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"digitalocean\",\n \"display_name\": \"DigitalOcean\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"rerank\"\n ],\n \"base_urls\": [\n \"https://inference.do-ai.run/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.digitalocean.com/products/gradient-ai-platform/details/models\"\n ],\n \"api_key_env_vars\": [\n \"DIGITALOCEAN_ACCESS_TOKEN\"\n ],\n \"model_count\": 82,\n \"model_sample\": [\n \"alibaba-qwen3-32b\",\n \"all-mini-lm-l6-v2\",\n \"anthropic-claude-3-opus\",\n \"anthropic-claude-3.5-haiku\",\n \"anthropic-claude-3.5-sonnet\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"dinference\",\n \"display_name\": \"DInference\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.dinference.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://dinference.com\"\n ],\n \"api_key_env_vars\": [\n \"DINFERENCE_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"glm-4.7\",\n \"glm-5\",\n \"glm-5.1\",\n \"glm-5.2\",\n \"gpt-oss-120b\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"doubao\",\n \"display_name\": \"Doubao\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"image_generation\",\n \"video_generation\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://www.volcengine.com/docs/82379/1330310\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 33,\n \"model_sample\": [\n \"deepseek-v3-2-251201\",\n \"deepseek-v4-flash-260425\",\n \"deepseek-v4-pro-260425\",\n \"doubao-1-5-lite-32k-250115\",\n \"doubao-1-5-pro-32k-250115\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"doubao_video\",\n \"display_name\": \"DoubaoVideo\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://ark.cn-beijing.volces.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"drun\",\n \"display_name\": \"D.Run (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://chat.d.run/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.d.run\"\n ],\n \"api_key_env_vars\": [\n \"DRUN_API_KEY\"\n ],\n \"model_count\": 3,\n \"model_sample\": [\n \"public/deepseek-r1\",\n \"public/deepseek-v3\",\n \"public/minimax-m25\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"duckduckgo\",\n \"display_name\": \"Duckduckgo\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"duckduckgo/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"ebcloud\",\n \"display_name\": \"EBCloud\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://maas-api.ebcloud.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.ebtech.com/ai/model-api.html\"\n ],\n \"api_key_env_vars\": [\n \"EBCLOUD_API_KEY\"\n ],\n \"model_count\": 4,\n \"model_sample\": [\n \"DeepSeek-V4-Flash\",\n \"DeepSeek-V4-Pro\",\n \"GLM-5.1\",\n \"Kimi-K2.6\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"empiriolabs\",\n \"display_name\": \"EmpirioLabs AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.empiriolabs.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.empiriolabs.ai\"\n ],\n \"api_key_env_vars\": [\n \"EMPIRIOLABS_API_KEY\"\n ],\n \"model_count\": 36,\n \"model_sample\": [\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\",\n \"gemma-4-26b-a4b\",\n \"glm-4-5-flash\",\n \"glm-4-7-flash\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"empower\",\n \"display_name\": \"Empower\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"evroc\",\n \"display_name\": \"evroc\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [\n \"https://models.think.evroc.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.evroc.com/products/think/overview.html\"\n ],\n \"api_key_env_vars\": [\n \"EVROC_API_KEY\"\n ],\n \"model_count\": 21,\n \"model_sample\": [\n \"KBLab/kb-whisper-large\",\n \"Qwen/Qwen3-30B-A3B-Instruct-2507-FP8\",\n \"Qwen/Qwen3-Embedding-8B\",\n \"Qwen/Qwen3-Reranker-4B\",\n \"Qwen/Qwen3-VL-30B-A3B-Instruct\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"exa_ai\",\n \"display_name\": \"EXA AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"exa_ai/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"firecrawl\",\n \"display_name\": \"Firecrawl\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"firecrawl/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"firepass\",\n \"display_name\": \"Fireworks (Firepass)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.fireworks.ai/inference/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.fireworks.ai/firepass\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"accounts/fireworks/routers/kimi-k2p6-turbo\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"freemodel\",\n \"display_name\": \"FreeModel\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://cc.freemodel.dev/v1\"\n ],\n \"documentation_urls\": [\n \"https://freemodel.dev\"\n ],\n \"api_key_env_vars\": [\n \"FREEMODEL_API_KEY\"\n ],\n \"model_count\": 10,\n \"model_sample\": [\n \"claude-fable-5\",\n \"claude-haiku-4-5-20251001\",\n \"claude-opus-4-6\",\n \"claude-opus-4-7\",\n \"claude-opus-4-8\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"frogbot\",\n \"display_name\": \"FrogBot\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://app.frogbot.ai/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.frogbot.ai\"\n ],\n \"api_key_env_vars\": [\n \"FROGBOT_API_KEY\"\n ],\n \"model_count\": 26,\n \"model_sample\": [\n \"claude-haiku-4-5\",\n \"claude-opus-4-6\",\n \"claude-opus-4-7\",\n \"claude-sonnet-4-6\",\n \"deepseek-v4-pro\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"gitlab\",\n \"display_name\": \"GitLab Duo\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://docs.gitlab.com/user/duo_agent_platform\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 18,\n \"model_sample\": [\n \"duo-chat-fable-5\",\n \"duo-chat-gpt-5-1\",\n \"duo-chat-gpt-5-2\",\n \"duo-chat-gpt-5-2-codex\",\n \"duo-chat-gpt-5-3-codex\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"gmi\",\n \"display_name\": \"GMI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 17,\n \"model_sample\": [\n \"gmi/MiniMaxAI/MiniMax-M2.1\",\n \"gmi/Qwen/Qwen3-VL-235B-A22B-Instruct-FP8\",\n \"gmi/anthropic/claude-opus-4\",\n \"gmi/anthropic/claude-opus-4.5\",\n \"gmi/anthropic/claude-sonnet-4\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"gmicloud\",\n \"display_name\": \"GMI Cloud\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.gmi-serving.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.gmicloud.ai/inference-engine/api-reference/llm-api-reference\"\n ],\n \"api_key_env_vars\": [\n \"GMICLOUD_API_KEY\"\n ],\n \"model_count\": 13,\n \"model_sample\": [\n \"Qwen/Qwen3.7-Max\",\n \"anthropic/claude-opus-4.6\",\n \"anthropic/claude-opus-4.7\",\n \"anthropic/claude-opus-4.8\",\n \"anthropic/claude-sonnet-4.6\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"google_pse\",\n \"display_name\": \"Google PSE\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"google_pse/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"google_vertex\",\n \"display_name\": \"Vertex\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://cloud.google.com/vertex-ai/generative-ai/docs/models\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 35,\n \"model_sample\": [\n \"claude-3-5-haiku@20241022\",\n \"claude-haiku-4-5@20251001\",\n \"claude-opus-4-1@20250805\",\n \"claude-opus-4-5@20251101\",\n \"claude-opus-4-6@default\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"google_vertex_anthropic\",\n \"display_name\": \"Vertex (Anthropic)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 11,\n \"model_sample\": [\n \"claude-3-5-haiku@20241022\",\n \"claude-haiku-4-5@20251001\",\n \"claude-opus-4-1@20250805\",\n \"claude-opus-4-5@20251101\",\n \"claude-opus-4-6@default\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"hetzner\",\n \"display_name\": \"Hetzner\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://inference.hetzner.com/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://experiments.hetzner.com/docs/inference\"\n ],\n \"api_key_env_vars\": [\n \"HETZNER_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"Qwen/Qwen3.6-35B-A3B-FP8\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"hpc_ai\",\n \"display_name\": \"HPC-AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.hpc-ai.com/inference/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.hpc-ai.com/doc/docs/quickstart\"\n ],\n \"api_key_env_vars\": [\n \"HPC_AI_API_KEY\"\n ],\n \"model_count\": 9,\n \"model_sample\": [\n \"anthropic/claude-opus-4.7\",\n \"deepseek/deepseek-v4-flash\",\n \"deepseek/deepseek-v4-pro\",\n \"minimax/minimax-m2.5\",\n \"moonshotai/kimi-k2.5\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"hyper\",\n \"display_name\": \"Charm Hyper\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://hyper.charm.land/v1\"\n ],\n \"documentation_urls\": [\n \"https://hyper.charm.land\"\n ],\n \"api_key_env_vars\": [\n \"HYPER_API_KEY\"\n ],\n \"model_count\": 20,\n \"model_sample\": [\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\",\n \"gemma-4-26b-a4b-it\",\n \"glm-5\",\n \"glm-5.1\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"iflowcn\",\n \"display_name\": \"iFlow\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://apis.iflow.cn/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.iflow.cn/en/docs\"\n ],\n \"api_key_env_vars\": [\n \"IFLOW_API_KEY\"\n ],\n \"model_count\": 14,\n \"model_sample\": [\n \"deepseek-r1\",\n \"deepseek-v3\",\n \"deepseek-v3.2\",\n \"glm-4.6\",\n \"kimi-k2\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"inceptron\",\n \"display_name\": \"Inceptron\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.inceptron.io/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.inceptron.io\"\n ],\n \"api_key_env_vars\": [\n \"INCEPTRON_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.5\",\n \"moonshotai/Kimi-K2.6\",\n \"moonshotai/Kimi-K2.6-Fast\",\n \"moonshotai/Kimi-K2.7-Code\",\n \"nvidia/llama-3.3-70b-instruct-fp8\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"inferx\",\n \"display_name\": \"InferX\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://model.inferx.net/endpoints/v1\"\n ],\n \"documentation_urls\": [\n \"https://model.inferx.net/endpoints\"\n ],\n \"api_key_env_vars\": [\n \"INFERX_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"google/gemma-4-31b-it-fp8\",\n \"qwen/qwen3.5-122b-a10b-nvfp4\",\n \"qwen/qwen3.6-27b-fp8\",\n \"qwen/qwen3.6-35b-a3b-fp8\",\n \"qwen3-coder-next-fp8\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"io_net\",\n \"display_name\": \"IO.NET\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.intelligence.io.solutions/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://io.net/docs/guides/intelligence/io-intelligence\"\n ],\n \"api_key_env_vars\": [\n \"IOINTELLIGENCE_API_KEY\"\n ],\n \"model_count\": 17,\n \"model_sample\": [\n \"Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar\",\n \"Qwen/Qwen2.5-VL-32B-Instruct\",\n \"Qwen/Qwen3-235B-A22B-Thinking-2507\",\n \"Qwen/Qwen3-Next-80B-A3B-Instruct\",\n \"deepseek-ai/DeepSeek-R1-0528\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"jiekou\",\n \"display_name\": \"Jiekou.AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.jiekou.ai/openai\"\n ],\n \"documentation_urls\": [\n \"https://docs.jiekou.ai/docs/support/quickstart\"\n ],\n \"api_key_env_vars\": [\n \"JIEKOU_API_KEY\"\n ],\n \"model_count\": 153,\n \"model_sample\": [\n \"Sao10K/L3-8B-Stheno-v3.2\",\n \"baidu/ernie-4.5-300b-a47b-paddle\",\n \"baidu/ernie-4.5-vl-424b-a47b\",\n \"claude-haiku-4-5-20251001\",\n \"claude-haiku-4-5-20251001-dd\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"jimeng\",\n \"display_name\": \"Jimeng\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://visual.volcengineapi.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"jina\",\n \"display_name\": \"Jina\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.jina.ai\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"jina_ai\",\n \"display_name\": \"Jina AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"rerank\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"jina-reranker-v2-base-multilingual\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"kenari\",\n \"display_name\": \"Kenari\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://kenari.id/v1\"\n ],\n \"documentation_urls\": [\n \"https://kenari.id/docs\"\n ],\n \"api_key_env_vars\": [\n \"KENARI_API_KEY\"\n ],\n \"model_count\": 38,\n \"model_sample\": [\n \"claude-fable-5\",\n \"claude-opus-4-7\",\n \"claude-opus-4-8\",\n \"claude-sonnet-5\",\n \"deepseek-v4-flash\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"kimi\",\n \"display_name\": \"Kimi\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"rust_genai\"\n ]\n },\n {\n \"id\": \"kimi_for_coding\",\n \"display_name\": \"Kimi For Coding\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.kimi.com/coding/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.kimi.com/code/docs/en/third-party-tools/other-coding-agents.html\"\n ],\n \"api_key_env_vars\": [\n \"KIMI_API_KEY\"\n ],\n \"model_count\": 4,\n \"model_sample\": [\n \"k3\",\n \"k3-256k\",\n \"kimi-for-coding\",\n \"kimi-for-coding-highspeed\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"kling\",\n \"display_name\": \"Kling\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.klingai.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"kuae_cloud_coding_plan\",\n \"display_name\": \"KUAE Cloud Coding Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://coding-plan-endpoint.kuaecloud.net/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.mthreads.com/kuaecloud/kuaecloud-doc-online/coding_plan\"\n ],\n \"api_key_env_vars\": [\n \"KUAE_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"GLM-4.7\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"lemonade\",\n \"display_name\": \"Lemonade\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 5,\n \"model_sample\": [\n \"lemonade/Gemma-3-4b-it-GGUF\",\n \"lemonade/Qwen3-4B-Instruct-2507-GGUF\",\n \"lemonade/Qwen3-Coder-30B-A3B-Instruct-GGUF\",\n \"lemonade/gpt-oss-120b-mxfp-GGUF\",\n \"lemonade/gpt-oss-20b-mxfp4-GGUF\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"libertai\",\n \"display_name\": \"Libertai\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.85,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 12,\n \"model_sample\": [\n \"libertai/bge-m3\",\n \"libertai/deepseek-v4-flash\",\n \"libertai/deepseek-v4-flash-thinking\",\n \"libertai/gemma-4-31b-it\",\n \"libertai/gemma-4-31b-it-thinking\"\n ],\n \"trust_score\": 59,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"lilac\",\n \"display_name\": \"Lilac\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.getlilac.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.getlilac.com/inference/models\"\n ],\n \"api_key_env_vars\": [\n \"LILAC_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"google/gemma-4-31b-it\",\n \"minimaxai/minimax-m2.7\",\n \"minimaxai/minimax-m3\",\n \"moonshotai/kimi-k2.6\",\n \"zai-org/glm-5.1\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"linkup\",\n \"display_name\": \"Linkup\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"linkup/search\",\n \"linkup/search-deep\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"llama\",\n \"display_name\": \"Llama\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.llama.com/compat/v1\"\n ],\n \"documentation_urls\": [\n \"https://llama.developer.meta.com/docs/models\"\n ],\n \"api_key_env_vars\": [\n \"LLAMA_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"cerebras-llama-4-maverick-17b-128e-instruct\",\n \"cerebras-llama-4-scout-17b-16e-instruct\",\n \"groq-llama-4-maverick-17b-128e-instruct\",\n \"llama-3.3-70b-instruct\",\n \"llama-3.3-8b-instruct\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"llamagate\",\n \"display_name\": \"Llamagate\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 16,\n \"model_sample\": [\n \"llamagate/codellama-7b\",\n \"llamagate/deepseek-coder-6.7b\",\n \"llamagate/deepseek-r1-7b-qwen\",\n \"llamagate/deepseek-r1-8b\",\n \"llamagate/dolphin3-8b\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"llmgateway\",\n \"display_name\": \"LLM Gateway\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.llmgateway.io/v1\"\n ],\n \"documentation_urls\": [\n \"https://llmgateway.io/docs\"\n ],\n \"api_key_env_vars\": [\n \"LLMGATEWAY_API_KEY\"\n ],\n \"model_count\": 224,\n \"model_sample\": [\n \"auto\",\n \"claude-3-5-haiku\",\n \"claude-3-5-sonnet-20241022\",\n \"claude-3-7-sonnet\",\n \"claude-3-7-sonnet-20250219\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"llmtr\",\n \"display_name\": \"LLMTR\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://llmtr.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://llmtr.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"LLMTR_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"gemma-4\",\n \"magibu-11b-v8\",\n \"medgemma-4b\",\n \"qwen3-6-35b\",\n \"sincap\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"lucidquery\",\n \"display_name\": \"LucidQuery\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lucidquery.com/v1\",\n \"https://lucidquery.com/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://lucidquery.com/api/docs\",\n \"https://lucidquery.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"LUCIDQUERY_API_KEY\"\n ],\n \"model_count\": 4,\n \"model_sample\": [\n \"lucidnova-rf1-100b\",\n \"lucidquery-agi-01-frontier\",\n \"lucidquery-agi-01-swift\",\n \"lucidquery-nexus-coder\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"lynkr\",\n \"display_name\": \"Lynkr\",\n \"aliases\": [],\n \"provider_kind\": \"local_runtime\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"http://127.0.0.1:8081/v1\"\n ],\n \"documentation_urls\": [\n \"https://github.com/Fast-Editor/Lynkr\"\n ],\n \"api_key_env_vars\": [\n \"LYNKR_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"lynkr-auto\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"maritalk\",\n \"display_name\": \"Maritalk\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"meganova\",\n \"display_name\": \"Meganova\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.meganova.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.meganova.ai\"\n ],\n \"api_key_env_vars\": [\n \"MEGANOVA_API_KEY\"\n ],\n \"model_count\": 19,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.1\",\n \"MiniMaxAI/MiniMax-M2.5\",\n \"Qwen/Qwen2.5-VL-32B-Instruct\",\n \"Qwen/Qwen3-235B-A22B-Instruct-2507\",\n \"Qwen/Qwen3.5-Plus\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"merge_gateway\",\n \"display_name\": \"Merge Gateway\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://docs.merge.dev/merge-gateway\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 83,\n \"model_sample\": [\n \"anthropic/claude-haiku-4-5-20251001\",\n \"anthropic/claude-opus-4-1-20250805\",\n \"anthropic/claude-opus-4-20250514\",\n \"anthropic/claude-opus-4-5-20251101\",\n \"anthropic/claude-opus-4-6\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"meta\",\n \"display_name\": \"Meta\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 1.0,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.meta.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://dev.meta.ai/docs\"\n ],\n \"api_key_env_vars\": [\n \"META_MODEL_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"meta/muse-spark-1.1\",\n \"muse-spark-1.1\"\n ],\n \"trust_score\": 86,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\",\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"midjourney\",\n \"display_name\": \"Midjourney\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://oa.api2d.net\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"midjourney_plus\",\n \"display_name\": \"MidjourneyPlus\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.openai-sb.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"mimo\",\n \"display_name\": \"Mimo\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"rust_genai\"\n ]\n },\n {\n \"id\": \"minimax_cn\",\n \"display_name\": \"MiniMax (minimaxi.com)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.minimaxi.com/anthropic/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.minimaxi.com/docs/guides/quickstart\"\n ],\n \"api_key_env_vars\": [\n \"MINIMAX_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"MiniMax-M2\",\n \"MiniMax-M2.1\",\n \"MiniMax-M2.5\",\n \"MiniMax-M2.5-highspeed\",\n \"MiniMax-M2.7\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"minimax_cn_coding_plan\",\n \"display_name\": \"MiniMax Token Plan (minimaxi.com)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.minimaxi.com/anthropic/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.minimaxi.com/docs/token-plan/intro\"\n ],\n \"api_key_env_vars\": [\n \"MINIMAX_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"MiniMax-M2\",\n \"MiniMax-M2.1\",\n \"MiniMax-M2.5\",\n \"MiniMax-M2.5-highspeed\",\n \"MiniMax-M2.7\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"minimax_coding_plan\",\n \"display_name\": \"MiniMax Token Plan (minimax.io)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.minimax.io/anthropic/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.minimax.io/docs/token-plan/intro\"\n ],\n \"api_key_env_vars\": [\n \"MINIMAX_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"MiniMax-M2\",\n \"MiniMax-M2.1\",\n \"MiniMax-M2.5\",\n \"MiniMax-M2.5-highspeed\",\n \"MiniMax-M2.7\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"mixlayer\",\n \"display_name\": \"Mixlayer\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://models.mixlayer.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.mixlayer.com\"\n ],\n \"api_key_env_vars\": [\n \"MIXLAYER_API_KEY\"\n ],\n \"model_count\": 5,\n \"model_sample\": [\n \"qwen/qwen3.5-122b-a10b\",\n \"qwen/qwen3.5-27b\",\n \"qwen/qwen3.5-35b-a3b\",\n \"qwen/qwen3.5-397b-a17b\",\n \"qwen/qwen3.5-9b\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"moark\",\n \"display_name\": \"Moark\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://moark.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://moark.com/docs/openapi/v1\"\n ],\n \"api_key_env_vars\": [\n \"MOARK_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"GLM-4.7\",\n \"MiniMax-M2.1\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"model_oracle_ai\",\n \"display_name\": \"Model Oracle AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.modeloracle.com/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://modeloracle.com/setup\"\n ],\n \"api_key_env_vars\": [\n \"MODEL_ORACLE_API_KEY\"\n ],\n \"model_count\": 15,\n \"model_sample\": [\n \"auto\",\n \"claude-fable-5\",\n \"claude-haiku-4.5\",\n \"claude-opus-4.8\",\n \"claude-sonnet-5\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"moka_ai\",\n \"display_name\": \"MokaAI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.moka.ai\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"moonshotai_cn\",\n \"display_name\": \"Moonshot AI (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.moonshot.cn/anthropic/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.moonshot.cn/docs/api/chat\"\n ],\n \"api_key_env_vars\": [\n \"MOONSHOT_API_KEY\"\n ],\n \"model_count\": 10,\n \"model_sample\": [\n \"kimi-k2-0711-preview\",\n \"kimi-k2-0905-preview\",\n \"kimi-k2-thinking\",\n \"kimi-k2-thinking-turbo\",\n \"kimi-k2-turbo-preview\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"nearai\",\n \"display_name\": \"NEAR AI Cloud\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"rerank\"\n ],\n \"base_urls\": [\n \"https://cloud-api.near.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.near.ai\"\n ],\n \"api_key_env_vars\": [\n \"NEARAI_API_KEY\"\n ],\n \"model_count\": 37,\n \"model_sample\": [\n \"Qwen/Qwen3-30B-A3B-Instruct-2507\",\n \"Qwen/Qwen3-Embedding-0.6B\",\n \"Qwen/Qwen3-Reranker-0.6B\",\n \"Qwen/Qwen3-VL-30B-A3B-Instruct\",\n \"Qwen/Qwen3.5-122B-A10B\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"neon\",\n \"display_name\": \"Neon\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://neon.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"NEON_AI_GATEWAY_TOKEN\"\n ],\n \"model_count\": 37,\n \"model_sample\": [\n \"claude-haiku-4-5\",\n \"claude-opus-4-1\",\n \"claude-opus-4-5\",\n \"claude-opus-4-6\",\n \"claude-opus-4-7\"\n ],\n \"trust_score\": 59,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"netlify\",\n \"display_name\": \"Netlify\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://docs.netlify.com/build/ai-gateway/overview\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 68,\n \"model_sample\": [\n \"anthropic/claude-fable-5\",\n \"anthropic/claude-haiku-4-5\",\n \"anthropic/claude-haiku-4-5-20251001\",\n \"anthropic/claude-opus-4-1-20250805\",\n \"anthropic/claude-opus-4-5\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"neuralwatt\",\n \"display_name\": \"Neuralwatt\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.neuralwatt.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://portal.neuralwatt.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"NEURALWATT_API_KEY\"\n ],\n \"model_count\": 24,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.5\",\n \"Qwen/Qwen3.5-397B-A17B-FP8\",\n \"Qwen/Qwen3.6-35B-A3B\",\n \"glm-5-fast\",\n \"glm-5.1-fast\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"new_api\",\n \"display_name\": \"New API\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"nova\",\n \"display_name\": \"Nova\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.nova.amazon.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://nova.amazon.com/dev/documentation\"\n ],\n \"api_key_env_vars\": [\n \"NOVA_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"nova-2-lite-v1\",\n \"nova-2-pro-v1\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"oci\",\n \"display_name\": \"OCI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 44,\n \"model_sample\": [\n \"oci/cohere.command-a-03-2025\",\n \"oci/cohere.command-a-reasoning\",\n \"oci/cohere.command-a-reasoning-08-2025\",\n \"oci/cohere.command-a-translate-08-2025\",\n \"oci/cohere.command-a-vision\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"ofox\",\n \"display_name\": \"Ofox\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.ofox.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://ofox.ai/docs\"\n ],\n \"api_key_env_vars\": [\n \"OFOX_API_KEY\"\n ],\n \"model_count\": 13,\n \"model_sample\": [\n \"anthropic/claude-fable-5\",\n \"anthropic/claude-opus-4.8\",\n \"anthropic/claude-sonnet-5\",\n \"bailian/qwen3.7-max\",\n \"deepseek/deepseek-v4-pro\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"ollama_chat\",\n \"display_name\": \"Ollama Chat\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"oobabooga\",\n \"display_name\": \"Oobabooga\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"opencode\",\n \"display_name\": \"OpenCode Zen\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://opencode.ai/zen/v1\"\n ],\n \"documentation_urls\": [\n \"https://opencode.ai/docs/zen\"\n ],\n \"api_key_env_vars\": [\n \"OPENCODE_API_KEY\"\n ],\n \"model_count\": 85,\n \"model_sample\": [\n \"big-pickle\",\n \"claude-3-5-haiku\",\n \"claude-fable-5\",\n \"claude-haiku-4-5\",\n \"claude-opus-4-1\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"pa_lm\",\n \"display_name\": \"PaLM\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"palm\",\n \"display_name\": \"Palm\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"completion\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 6,\n \"model_sample\": [\n \"palm/chat-bison\",\n \"palm/chat-bison-001\",\n \"palm/text-bison\",\n \"palm/text-bison-001\",\n \"palm/text-bison-safety-off\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"parallel_ai\",\n \"display_name\": \"Parallel AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"parallel_ai/search\",\n \"parallel_ai/search-pro\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"perplexity_agent\",\n \"display_name\": \"Perplexity Agent\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.perplexity.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.perplexity.ai/docs/agent-api/models\"\n ],\n \"api_key_env_vars\": [\n \"PERPLEXITY_API_KEY\"\n ],\n \"model_count\": 18,\n \"model_sample\": [\n \"anthropic/claude-haiku-4-5\",\n \"anthropic/claude-opus-4-5\",\n \"anthropic/claude-opus-4-6\",\n \"anthropic/claude-opus-4-7\",\n \"anthropic/claude-sonnet-4-5\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"pinstripes\",\n \"display_name\": \"Pinstripes\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.85,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 6,\n \"model_sample\": [\n \"pinstripes/ps/deepseek-v4-flash\",\n \"pinstripes/ps/glm-4.5-air\",\n \"pinstripes/ps/minimax-m2.7\",\n \"pinstripes/ps/qwen3-30b-a3b\",\n \"pinstripes/ps/qwen3-coder-30b-a3b\"\n ],\n \"trust_score\": 59,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"poe\",\n \"display_name\": \"Poe\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 1.0,\n \"capabilities\": [\n \"chat\",\n \"image_generation\"\n ],\n \"base_urls\": [\n \"https://api.poe.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://creator.poe.com/docs/external-applications/openai-compatible-api\"\n ],\n \"api_key_env_vars\": [\n \"POE_API_KEY\"\n ],\n \"model_count\": 137,\n \"model_sample\": [\n \"anthropic/claude-haiku-3\",\n \"anthropic/claude-haiku-3.5\",\n \"anthropic/claude-haiku-4.5\",\n \"anthropic/claude-opus-4\",\n \"anthropic/claude-opus-4.1\"\n ],\n \"trust_score\": 86,\n \"source_ids\": [\n \"litellm_constants\",\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"poolside\",\n \"display_name\": \"Poolside\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://inference.poolside.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.poolside.ai\"\n ],\n \"api_key_env_vars\": [\n \"POOLSIDE_API_KEY\"\n ],\n \"model_count\": 4,\n \"model_sample\": [\n \"poolside/laguna-m.1\",\n \"poolside/laguna-s-2.1\",\n \"poolside/laguna-xs-2.1\",\n \"poolside/laguna-xs.2\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"ppinfra\",\n \"display_name\": \"PPInfra\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 101,\n \"model_sample\": [\n \"ai_infer_test_2\",\n \"ai_infer_test_3\",\n \"baidu/ernie-4.5-0.3b\",\n \"baidu/ernie-4.5-21B-a3b\",\n \"baidu/ernie-4.5-21b-a3b-thinking\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"privatemode_ai\",\n \"display_name\": \"Privatemode AI\",\n \"aliases\": [],\n \"provider_kind\": \"local_runtime\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [\n \"http://localhost:8080/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.privatemode.ai/api/overview\"\n ],\n \"api_key_env_vars\": [\n \"PRIVATEMODE_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"gemma-3-27b\",\n \"gpt-oss-120b\",\n \"kimi-k2.6\",\n \"qwen3-coder-30b-a3b\",\n \"qwen3-embedding-4b\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"publicai\",\n \"display_name\": \"Publicai\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.85,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 9,\n \"model_sample\": [\n \"publicai/BSC-LT/ALIA-40b-instruct_Q8_0\",\n \"publicai/BSC-LT/salamandra-7b-instruct-tools-16k\",\n \"publicai/aisingapore/Gemma-SEA-LION-v4-27B-IT\",\n \"publicai/aisingapore/Qwen-SEA-LION-v4-32B-IT\",\n \"publicai/allenai/Olmo-3-32B-Think\"\n ],\n \"trust_score\": 59,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"qihang_ai\",\n \"display_name\": \"QiHang\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.qhaigc.net/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.qhaigc.net/docs\"\n ],\n \"api_key_env_vars\": [\n \"QIHANG_API_KEY\"\n ],\n \"model_count\": 9,\n \"model_sample\": [\n \"claude-haiku-4-5-20251001\",\n \"claude-opus-4-5-20251101\",\n \"claude-sonnet-4-5-20250929\",\n \"gemini-2.5-flash\",\n \"gemini-3-flash-preview\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"ragflow\",\n \"display_name\": \"Ragflow\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.65,\n \"capabilities\": [],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"recraft\",\n \"display_name\": \"Recraft\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"image_generation\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"recraft/recraftv2\",\n \"recraft/recraftv3\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"reducto\",\n \"display_name\": \"Reducto\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"other\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"reducto/parse-legacy\",\n \"reducto/parse-v3\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"regolo_ai\",\n \"display_name\": \"Regolo AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"image_generation\",\n \"rerank\"\n ],\n \"base_urls\": [\n \"https://api.regolo.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.regolo.ai\"\n ],\n \"api_key_env_vars\": [\n \"REGOLO_API_KEY\"\n ],\n \"model_count\": 13,\n \"model_sample\": [\n \"gpt-oss-120b\",\n \"gpt-oss-20b\",\n \"llama-3.1-8b-instruct\",\n \"llama-3.3-70b-instruct\",\n \"minimax-m2.5\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"routing_run\",\n \"display_name\": \"routing.run\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://ai.routing.sh/v1\",\n \"https://api.routing.run/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.routing.run/api-reference/models\"\n ],\n \"api_key_env_vars\": [\n \"ROUTING_RUN_API_KEY\"\n ],\n \"model_count\": 41,\n \"model_sample\": [\n \"claude-opus-4-8\",\n \"claude-sonnet-4-6\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\",\n \"glm-5.2\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"runwayml\",\n \"display_name\": \"Runwayml\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"audio_speech\",\n \"image_generation\",\n \"video_generation\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 6,\n \"model_sample\": [\n \"runwayml/eleven_multilingual_v2\",\n \"runwayml/gen3a_turbo\",\n \"runwayml/gen4_aleph\",\n \"runwayml/gen4_image\",\n \"runwayml/gen4_image_turbo\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"sagemaker\",\n \"display_name\": \"Sagemaker\",\n \"aliases\": [],\n \"provider_kind\": \"cloud_platform\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\",\n \"completion\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 6,\n \"model_sample\": [\n \"sagemaker/meta-textgeneration-llama-2-13b\",\n \"sagemaker/meta-textgeneration-llama-2-13b-f\",\n \"sagemaker/meta-textgeneration-llama-2-70b\",\n \"sagemaker/meta-textgeneration-llama-2-70b-b-f\",\n \"sagemaker/meta-textgeneration-llama-2-7b\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"sagemaker_chat\",\n \"display_name\": \"Sagemaker Chat\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"sagemaker_nova\",\n \"display_name\": \"Sagemaker Nova\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"sap_ai_core\",\n \"display_name\": \"SAP AI Core\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://help.sap.com/docs/sap-ai-core\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 26,\n \"model_sample\": [\n \"anthropic--claude-3-haiku\",\n \"anthropic--claude-3-opus\",\n \"anthropic--claude-3-sonnet\",\n \"anthropic--claude-3.5-sonnet\",\n \"anthropic--claude-3.7-sonnet\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"searxng\",\n \"display_name\": \"Searxng\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"searxng/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"serper\",\n \"display_name\": \"Serper\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"serper/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"snowflake\",\n \"display_name\": \"Snowflake\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 37,\n \"model_sample\": [\n \"snowflake/claude-3-5-sonnet\",\n \"snowflake/claude-3-7-sonnet\",\n \"snowflake/claude-4-opus\",\n \"snowflake/claude-4-sonnet\",\n \"snowflake/claude-haiku-4-5\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"snowflake_cortex\",\n \"display_name\": \"Snowflake Cortex\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://${snowflake_account}.snowflakecomputing.com/api/v2/cortex/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-rest-api\"\n ],\n \"api_key_env_vars\": [\n \"SNOWFLAKE_CORTEX_PAT\"\n ],\n \"model_count\": 21,\n \"model_sample\": [\n \"claude-fable-5\",\n \"claude-haiku-4-5\",\n \"claude-opus-4-7\",\n \"claude-opus-4-8\",\n \"claude-sonnet-4-5\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"soniox\",\n \"display_name\": \"Soniox\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"audio_transcription\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"soniox/stt-async-v4\",\n \"soniox/stt-async-v5\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"sora\",\n \"display_name\": \"Sora\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.openai.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"stability\",\n \"display_name\": \"Stability\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"image_edit\",\n \"image_generation\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 23,\n \"model_sample\": [\n \"stability/conservative\",\n \"stability/creative\",\n \"stability/erase\",\n \"stability/fast\",\n \"stability/inpaint\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"stackit\",\n \"display_name\": \"STACKIT\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.stackit.cloud/products/data-and-ai/ai-model-serving/basics/available-shared-models\"\n ],\n \"api_key_env_vars\": [\n \"STACKIT_API_KEY\"\n ],\n \"model_count\": 10,\n \"model_sample\": [\n \"Qwen/Qwen3-VL-235B-A22B-Instruct-FP8\",\n \"Qwen/Qwen3-VL-Embedding-8B\",\n \"Qwen/Qwen3.6-27B\",\n \"cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic\",\n \"google/gemma-3-27b-it\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"stepfun_ai_step_plan\",\n \"display_name\": \"StepFun Step Plan (Global)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.stepfun.ai/step_plan/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.stepfun.ai/docs/en/step-plan/integrations/reasoning-api\"\n ],\n \"api_key_env_vars\": [\n \"STEPFUN_API_KEY\"\n ],\n \"model_count\": 3,\n \"model_sample\": [\n \"step-3.5-flash\",\n \"step-3.5-flash-2603\",\n \"step-3.7-flash\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"stepfun_step_plan\",\n \"display_name\": \"StepFun Step Plan (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.stepfun.com/step_plan/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.stepfun.com/docs/zh/step-plan/integrations/reasoning-api\"\n ],\n \"api_key_env_vars\": [\n \"STEPFUN_API_KEY\"\n ],\n \"model_count\": 4,\n \"model_sample\": [\n \"step-3.5-flash\",\n \"step-3.5-flash-2603\",\n \"step-3.7-flash\",\n \"step-router-v1\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"sub2_api\",\n \"display_name\": \"Sub2API\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"subconscious\",\n \"display_name\": \"Subconscious\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.subconscious.dev/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.subconscious.dev\"\n ],\n \"api_key_env_vars\": [\n \"SUBCONSCIOUS_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"subconscious/glm-5.2\",\n \"subconscious/tim-qwen3.6-27b\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"suno_api\",\n \"display_name\": \"SunoAPI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"synthetic\",\n \"display_name\": \"Synthetic\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 1.0,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.synthetic.new/openai/v1\"\n ],\n \"documentation_urls\": [\n \"https://synthetic.new/pricing\"\n ],\n \"api_key_env_vars\": [\n \"SYNTHETIC_API_KEY\"\n ],\n \"model_count\": 38,\n \"model_sample\": [\n \"hf:MiniMaxAI/MiniMax-M2\",\n \"hf:MiniMaxAI/MiniMax-M2.1\",\n \"hf:MiniMaxAI/MiniMax-M2.5\",\n \"hf:MiniMaxAI/MiniMax-M3\",\n \"hf:Qwen/Qwen2.5-Coder-32B-Instruct\"\n ],\n \"trust_score\": 86,\n \"source_ids\": [\n \"litellm_constants\",\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tavily\",\n \"display_name\": \"Tavily\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"tavily/search\",\n \"tavily/search-advanced\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"tencent_coding_plan\",\n \"display_name\": \"Tencent Coding Plan (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/coding/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1772/128947\"\n ],\n \"api_key_env_vars\": [\n \"TENCENT_CODING_PLAN_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"glm-5\",\n \"hunyuan-2.0-instruct\",\n \"hunyuan-2.0-thinking\",\n \"hunyuan-t1\",\n \"hunyuan-turbos\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan\",\n \"display_name\": \"Tencent Token Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130060\"\n ],\n \"api_key_env_vars\": [\n \"TENCENT_TOKEN_PLAN_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"hy3\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_enterprise_auto\",\n \"display_name\": \"腾讯云 Token Plan / Token Plan 企业版轻享套餐\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tokenhub.tencentmaas.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130660\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"auto\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_enterprise_pro\",\n \"display_name\": \"腾讯云 Token Plan / Token Plan 企业版专业套餐\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tokenhub.tencentmaas.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130660\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 16,\n \"model_sample\": [\n \"auto\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-flash-202605\",\n \"deepseek-v4-pro\",\n \"deepseek-v4-pro-202606\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_general_personal\",\n \"display_name\": \"腾讯云 Token Plan / 通用 Token Plan(个人版)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130060\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 8,\n \"model_sample\": [\n \"deepseek-v4-flash-202605\",\n \"deepseek-v4-pro-202606\",\n \"glm-5\",\n \"glm-5.1\",\n \"kimi-k2.5\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_hy_personal\",\n \"display_name\": \"腾讯云 Token Plan / Hy Token Plan(个人版)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130060\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"hy3\",\n \"hy3-preview\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_tokenhub\",\n \"display_name\": \"Tencent TokenHub\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tokenhub.tencentmaas.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130050\"\n ],\n \"api_key_env_vars\": [\n \"TENCENT_TOKENHUB_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"hy3\",\n \"hy3-preview\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tensormesh\",\n \"display_name\": \"Tensormesh\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.85,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 10,\n \"model_sample\": [\n \"tensormesh/MiniMaxAI/MiniMax-M2.5\",\n \"tensormesh/Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8\",\n \"tensormesh/Qwen/Qwen3.5-397B-A17B-FP8\",\n \"tensormesh/Qwen/Qwen3.6-27B-FP8\",\n \"tensormesh/deepseek-ai/DeepSeek-V4-Flash\"\n ],\n \"trust_score\": 59,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"text_completion_codestral\",\n \"display_name\": \"Text Completion Codestral\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\",\n \"completion\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"text-completion-codestral/codestral-2405\",\n \"text-completion-codestral/codestral-latest\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"text_completion_inception\",\n \"display_name\": \"Text Completion Inception\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\",\n \"completion\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"text-completion-inception/mercury-edit-2\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"the_grid_ai\",\n \"display_name\": \"The Grid AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.thegrid.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://thegrid.ai/docs\"\n ],\n \"api_key_env_vars\": [\n \"THEGRIDAI_API_KEY\"\n ],\n \"model_count\": 9,\n \"model_sample\": [\n \"agent-max\",\n \"agent-prime\",\n \"agent-standard\",\n \"code-max\",\n \"code-prime\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"thinkingmachines\",\n \"display_name\": \"Thinking Machines\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tinker.thinkingmachines.dev/services/tinker-prod/anthropic/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/anthropic\"\n ],\n \"api_key_env_vars\": [\n \"TINKER_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"thinkingmachines/Inkling\",\n \"thinkingmachines/Inkling:peft:262144\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"tinfoil\",\n \"display_name\": \"Tinfoil\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://inference.tinfoil.sh/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.tinfoil.sh\"\n ],\n \"api_key_env_vars\": [\n \"TINFOIL_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"gemma4-31b\",\n \"glm-5-2\",\n \"gpt-oss-120b\",\n \"gpt-oss-safeguard-120b\",\n \"kimi-k2-6\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"tinyfish\",\n \"display_name\": \"Tinyfish\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"tinyfish/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"tokenflux\",\n \"display_name\": \"Tokenflux\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 164,\n \"model_sample\": [\n \"anthropic/claude-3-haiku\",\n \"anthropic/claude-3.5-haiku\",\n \"anthropic/claude-3.5-sonnet\",\n \"anthropic/claude-3.7-sonnet\",\n \"anthropic/claude-haiku-4.5\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"triton\",\n \"display_name\": \"Triton\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"trustedrouter\",\n \"display_name\": \"TrustedRouter\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.trustedrouter.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://trustedrouter.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"TRUSTEDROUTER_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"auto\",\n \"cheap\",\n \"e2e\",\n \"fast\",\n \"synth\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"umans_ai\",\n \"display_name\": \"Umans AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.code.umans.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://app.umans.ai/offers/code/docs/orgs\"\n ],\n \"api_key_env_vars\": [\n \"UMANS_AI_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"umans-coder\",\n \"umans-flash\",\n \"umans-glm-5.1\",\n \"umans-glm-5.2\",\n \"umans-kimi-k2.6\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"umans_ai_coding_plan\",\n \"display_name\": \"Umans AI Coding Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.code.umans.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://app.umans.ai/offers/code/docs\"\n ],\n \"api_key_env_vars\": [\n \"UMANS_AI_CODING_PLAN_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"umans-coder\",\n \"umans-flash\",\n \"umans-glm-5.1\",\n \"umans-glm-5.2\",\n \"umans-kimi-k2.6\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"unorouter\",\n \"display_name\": \"UnoRouter\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.unorouter.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://unorouter.com/models\"\n ],\n \"api_key_env_vars\": [\n \"UNOROUTER_API_KEY\"\n ],\n \"model_count\": 23,\n \"model_sample\": [\n \"claude-haiku-4-5-20251001\",\n \"claude-opus-4-8\",\n \"claude-sonnet-5\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-flash:free\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"venice\",\n \"display_name\": \"Venice AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://docs.venice.ai\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 75,\n \"model_sample\": [\n \"aion-labs-aion-2-0\",\n \"arcee-trinity-large-thinking\",\n \"claude-fable-5\",\n \"claude-opus-4-5\",\n \"claude-opus-4-6\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"vertex_ai_ai21_models\",\n \"display_name\": \"Vertex AI Ai21 Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 5,\n \"model_sample\": [\n \"vertex_ai/jamba-1.5\",\n \"vertex_ai/jamba-1.5-large\",\n \"vertex_ai/jamba-1.5-large@001\",\n \"vertex_ai/jamba-1.5-mini\",\n \"vertex_ai/jamba-1.5-mini@001\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_anthropic_models\",\n \"display_name\": \"Vertex AI Anthropic Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 37,\n \"model_sample\": [\n \"vertex_ai/claude-3-5-haiku\",\n \"vertex_ai/claude-3-5-haiku@20241022\",\n \"vertex_ai/claude-3-5-sonnet\",\n \"vertex_ai/claude-3-5-sonnet@20240620\",\n \"vertex_ai/claude-3-7-sonnet@20250219\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_deepseek_models\",\n \"display_name\": \"Vertex AI Deepseek Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 3,\n \"model_sample\": [\n \"vertex_ai/deepseek-ai/deepseek-r1-0528-maas\",\n \"vertex_ai/deepseek-ai/deepseek-v3.1-maas\",\n \"vertex_ai/deepseek-ai/deepseek-v3.2-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_language_models\",\n \"display_name\": \"Vertex AI Language Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"image_generation\",\n \"realtime\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 42,\n \"model_sample\": [\n \"deep-research-pro-preview-12-2025\",\n \"gemini-2.0-flash\",\n \"gemini-2.0-flash-001\",\n \"gemini-2.0-flash-lite\",\n \"gemini-2.0-flash-lite-001\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_llama_models\",\n \"display_name\": \"Vertex AI Llama Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 11,\n \"model_sample\": [\n \"vertex_ai/meta/llama-3.1-405b-instruct-maas\",\n \"vertex_ai/meta/llama-3.1-70b-instruct-maas\",\n \"vertex_ai/meta/llama-3.1-8b-instruct-maas\",\n \"vertex_ai/meta/llama-3.2-90b-vision-instruct-maas\",\n \"vertex_ai/meta/llama-4-maverick-17b-128e-instruct-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_minimax_models\",\n \"display_name\": \"Vertex AI Minimax Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"vertex_ai/minimaxai/minimax-m2-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_mistral_models\",\n \"display_name\": \"Vertex AI Mistral Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 19,\n \"model_sample\": [\n \"vertex_ai/codestral-2\",\n \"vertex_ai/codestral-2501\",\n \"vertex_ai/codestral-2@001\",\n \"vertex_ai/codestral@2405\",\n \"vertex_ai/codestral@latest\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_moonshot_models\",\n \"display_name\": \"Vertex AI Moonshot Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"vertex_ai/moonshotai/kimi-k2-thinking-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_openai_models\",\n \"display_name\": \"Vertex AI Openai Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 3,\n \"model_sample\": [\n \"vertex_ai/google/gemma-4-26b-a4b-it-maas\",\n \"vertex_ai/openai/gpt-oss-120b-maas\",\n \"vertex_ai/openai/gpt-oss-20b-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_qwen_models\",\n \"display_name\": \"Vertex AI Qwen Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 4,\n \"model_sample\": [\n \"vertex_ai/qwen/qwen3-235b-a22b-instruct-2507-maas\",\n \"vertex_ai/qwen/qwen3-coder-480b-a35b-instruct-maas\",\n \"vertex_ai/qwen/qwen3-next-80b-a3b-instruct-maas\",\n \"vertex_ai/qwen/qwen3-next-80b-a3b-thinking-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_text_models\",\n \"display_name\": \"Vertex AI Text Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"completion\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"text-unicorn\",\n \"text-unicorn@001\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_zai_models\",\n \"display_name\": \"Vertex AI ZAI Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"vertex_ai/zai-org/glm-4.7-maas\",\n \"vertex_ai/zai-org/glm-5-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vidu\",\n \"display_name\": \"Vidu\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.vidu.cn\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"vivgrid\",\n \"display_name\": \"Vivgrid\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.vivgrid.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.vivgrid.com/models\"\n ],\n \"api_key_env_vars\": [\n \"VIVGRID_API_KEY\"\n ],\n \"model_count\": 17,\n \"model_sample\": [\n \"deepseek-v3.2\",\n \"deepseek-v4-pro\",\n \"gemini-3.1-flash-lite-preview\",\n \"gemini-3.1-pro-preview\",\n \"glm-5.2\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"volc_engine\",\n \"display_name\": \"VolcEngine\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://ark.cn-beijing.volces.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"vultr\",\n \"display_name\": \"Vultr\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.vultrinference.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://api.vultrinference.com\"\n ],\n \"api_key_env_vars\": [\n \"VULTR_API_KEY\"\n ],\n \"model_count\": 12,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.7\",\n \"Qwen/Qwen3.5-397B-A17B\",\n \"Qwen/Qwen3.6-27B\",\n \"XiaomiMiMo/MiMo-V2.5-Pro\",\n \"deepseek-ai/DeepSeek-V4-Flash\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"wandb\",\n \"display_name\": \"Weights & Biases\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 1.0,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.inference.wandb.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.wandb.ai/guides/integrations/inference\"\n ],\n \"api_key_env_vars\": [\n \"WANDB_API_KEY\"\n ],\n \"model_count\": 48,\n \"model_sample\": [\n \"JetBrains/Mellum2-12B-A2.5B-Instruct\",\n \"MiniMaxAI/MiniMax-M2.5\",\n \"MiniMaxAI/MiniMax-M3\",\n \"OpenPipe/Qwen3-14B-Instruct\",\n \"Qwen/Qwen3-235B-A22B-Instruct-2507\"\n ],\n \"trust_score\": 98,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\",\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"watsonx\",\n \"display_name\": \"Watsonx\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"audio_transcription\",\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 29,\n \"model_sample\": [\n \"watsonx/bigscience/mt0-xxl-13b\",\n \"watsonx/core42/jais-13b-chat\",\n \"watsonx/google/flan-t5-xl-3b\",\n \"watsonx/ibm/granite-13b-chat-v2\",\n \"watsonx/ibm/granite-13b-instruct-v2\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"watsonx_text\",\n \"display_name\": \"Watsonx Text\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"xiaomi_token_plan_ams\",\n \"display_name\": \"Xiaomi Token Plan (Europe)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://token-plan-ams.xiaomimimo.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.xiaomimimo.com\"\n ],\n \"api_key_env_vars\": [\n \"XIAOMI_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"mimo-v2-omni\",\n \"mimo-v2-pro\",\n \"mimo-v2-tts\",\n \"mimo-v2.5\",\n \"mimo-v2.5-pro\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"xiaomi_token_plan_cn\",\n \"display_name\": \"Xiaomi Token Plan (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://token-plan-cn.xiaomimimo.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.xiaomimimo.com\"\n ],\n \"api_key_env_vars\": [\n \"XIAOMI_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"mimo-v2-omni\",\n \"mimo-v2-pro\",\n \"mimo-v2-tts\",\n \"mimo-v2.5\",\n \"mimo-v2.5-pro\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"xiaomi_token_plan_sgp\",\n \"display_name\": \"Xiaomi Token Plan (Singapore)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://token-plan-sgp.xiaomimimo.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.xiaomimimo.com\"\n ],\n \"api_key_env_vars\": [\n \"XIAOMI_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"mimo-v2-omni\",\n \"mimo-v2-pro\",\n \"mimo-v2-tts\",\n \"mimo-v2.5\",\n \"mimo-v2.5-pro\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"xpersona\",\n \"display_name\": \"Xpersona\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://www.xpersona.co/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.xpersona.co/docs\"\n ],\n \"api_key_env_vars\": [\n \"XPERSONA_API_KEY\"\n ],\n \"model_count\": 3,\n \"model_sample\": [\n \"claude-fable-5\",\n \"xpersona-frieren-coder\",\n \"xpersona-gpt-5.5\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"xunfei\",\n \"display_name\": \"Xunfei\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"you_com\",\n \"display_name\": \"YOU COM\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"you_com/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"zai_coding_plan\",\n \"display_name\": \"Z.AI Coding Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.z.ai/api/coding/paas/v4\"\n ],\n \"documentation_urls\": [\n \"https://docs.z.ai/devpack/overview\"\n ],\n \"api_key_env_vars\": [\n \"ZHIPU_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"glm-4.5-air\",\n \"glm-4.7\",\n \"glm-5-turbo\",\n \"glm-5.1\",\n \"glm-5.2\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"zeldoc\",\n \"display_name\": \"Zeldoc\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.zeldoc.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.zeldoc.ai\"\n ],\n \"api_key_env_vars\": [\n \"ZELDOC_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"z-code\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"zenifra\",\n \"display_name\": \"Zenifra\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://ai.zenifra.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.zenifra.com\"\n ],\n \"api_key_env_vars\": [\n \"ZENIFRA_AI_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"alibaba/qwen3.6-35b-a3b\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"zenmux\",\n \"display_name\": \"ZenMux\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"image_generation\"\n ],\n \"base_urls\": [\n \"https://zenmux.ai/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.zenmux.ai\"\n ],\n \"api_key_env_vars\": [\n \"ZENMUX_API_KEY\"\n ],\n \"model_count\": 164,\n \"model_sample\": [\n \"anthropic/claude-3.5-haiku\",\n \"anthropic/claude-3.7-sonnet\",\n \"anthropic/claude-fable-5\",\n \"anthropic/claude-haiku-4.5\",\n \"anthropic/claude-opus-4\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"zhipu_v4\",\n \"display_name\": \"ZhipuV4\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://open.bigmodel.cn\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"zhipuai_coding_plan\",\n \"display_name\": \"Zhipu AI Coding Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://open.bigmodel.cn/api/coding/paas/v4\"\n ],\n \"documentation_urls\": [\n \"https://docs.bigmodel.cn/cn/coding-plan/overview\"\n ],\n \"api_key_env_vars\": [\n \"ZHIPU_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"glm-4.5-air\",\n \"glm-4.6v\",\n \"glm-4.7\",\n \"glm-5-turbo\",\n \"glm-5.1\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n }\n ]\n}"}, "7c6283c8ba6e91e6ce380cb9e8a13b99e27431ed": {"t": 1785846967.569134, "n": 150679, "h": "422fb146edb5e618", "c": "{\n \"total\": 209,\n \"providers\": [\n {\n \"id\": \"abacus\",\n \"display_name\": \"Abacus\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://routellm.abacus.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://abacus.ai/help/api\"\n ],\n \"api_key_env_vars\": [\n \"ABACUS_API_KEY\"\n ],\n \"model_count\": 100,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.7\",\n \"MiniMaxAI/MiniMax-M3\",\n \"Qwen/QwQ-32B\",\n \"Qwen/Qwen2.5-72B-Instruct\",\n \"Qwen/Qwen3-235B-A22B-Instruct-2507\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"abliteration_ai\",\n \"display_name\": \"abliteration.ai\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.abliteration.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.abliteration.ai/models\"\n ],\n \"api_key_env_vars\": [\n \"ABLIT_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"abliterated-model\",\n \"abliterated-model-large\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"advanced_custom\",\n \"display_name\": \"Advanced Custom\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"ai_router\",\n \"display_name\": \"AI-ROUTER\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.ai-router.dev/v1\"\n ],\n \"documentation_urls\": [\n \"https://ai-router.dev/openai-compatible-api-gateway\"\n ],\n \"api_key_env_vars\": [\n \"AI_ROUTER_API_KEY\"\n ],\n \"model_count\": 5,\n \"model_sample\": [\n \"gpt-5.4\",\n \"gpt-5.5\",\n \"gpt-5.6-luna\",\n \"gpt-5.6-sol\",\n \"gpt-5.6-terra\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"aiand\",\n \"display_name\": \"ai&\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.aiand.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.aiand.com\"\n ],\n \"api_key_env_vars\": [\n \"AIAND_API_KEY\"\n ],\n \"model_count\": 10,\n \"model_sample\": [\n \"deepseek-ai/deepseek-v4-flash\",\n \"deepseek-ai/deepseek-v4-pro\",\n \"google/gemma-4-31b-it\",\n \"moonshotai/kimi-k2.6\",\n \"moonshotai/kimi-k2.7-code\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"aiproxy\",\n \"display_name\": \"AIProxy\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.aiproxy.io\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"aiproxy_library\",\n \"display_name\": \"AIProxyLibrary\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.aiproxy.io\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"aki_io\",\n \"display_name\": \"AKI.IO\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://aki.io/v1\"\n ],\n \"documentation_urls\": [\n \"https://aki.io/docs\"\n ],\n \"api_key_env_vars\": [\n \"AKI_IO_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"gemma4-26b\",\n \"gpt-oss-120b\",\n \"kimi-k2.7-code-1100b\",\n \"minimax-m2.5-230b\",\n \"mistral4-119b\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"ali\",\n \"display_name\": \"Ali\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://dashscope.aliyuncs.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"alibaba_cn\",\n \"display_name\": \"Alibaba (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://dashscope.aliyuncs.com/compatible-mode/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.alibabacloud.com/help/en/model-studio/models\"\n ],\n \"api_key_env_vars\": [\n \"DASHSCOPE_API_KEY\"\n ],\n \"model_count\": 112,\n \"model_sample\": [\n \"MiniMax-M2.5\",\n \"MiniMax/MiniMax-M2.7\",\n \"deepseek-r1\",\n \"deepseek-r1-0528\",\n \"deepseek-r1-distill-llama-70b\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"alibaba_coding_plan\",\n \"display_name\": \"Alibaba Coding Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://coding-intl.dashscope.aliyuncs.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.alibabacloud.com/help/en/model-studio/coding-plan\"\n ],\n \"api_key_env_vars\": [\n \"ALIBABA_CODING_PLAN_API_KEY\"\n ],\n \"model_count\": 12,\n \"model_sample\": [\n \"MiniMax-M2.5\",\n \"glm-4.7\",\n \"glm-5\",\n \"kimi-k2.5\",\n \"qwen3-coder-next\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"alibaba_coding_plan_cn\",\n \"display_name\": \"Alibaba Coding Plan (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://coding.dashscope.aliyuncs.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://help.aliyun.com/zh/model-studio/coding-plan\"\n ],\n \"api_key_env_vars\": [\n \"ALIBABA_CODING_PLAN_API_KEY\"\n ],\n \"model_count\": 12,\n \"model_sample\": [\n \"MiniMax-M2.5\",\n \"glm-4.7\",\n \"glm-5\",\n \"kimi-k2.5\",\n \"qwen3-coder-next\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"alibaba_token_plan\",\n \"display_name\": \"Alibaba Token Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"image_generation\"\n ],\n \"base_urls\": [\n \"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.alibabacloud.com/help/en/model-studio/token-plan-overview\"\n ],\n \"api_key_env_vars\": [\n \"ALIBABA_TOKEN_PLAN_API_KEY\"\n ],\n \"model_count\": 22,\n \"model_sample\": [\n \"MiniMax-M2.5\",\n \"deepseek-v3.2\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\",\n \"glm-5\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"alibaba_token_plan_cn\",\n \"display_name\": \"Alibaba Token Plan (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"image_generation\"\n ],\n \"base_urls\": [\n \"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview\"\n ],\n \"api_key_env_vars\": [\n \"ALIBABA_TOKEN_PLAN_API_KEY\"\n ],\n \"model_count\": 22,\n \"model_sample\": [\n \"MiniMax-M2.5\",\n \"deepseek-v3.2\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\",\n \"glm-5\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"ambient\",\n \"display_name\": \"Ambient\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.ambient.xyz/v1\"\n ],\n \"documentation_urls\": [\n \"https://ambient.xyz\"\n ],\n \"api_key_env_vars\": [\n \"AMBIENT_API_KEY\"\n ],\n \"model_count\": 9,\n \"model_sample\": [\n \"ambient/large\",\n \"deepseek/deepseek-v4-flash\",\n \"moonshotai/kimi-k2.6\",\n \"moonshotai/kimi-k2.7-code\",\n \"stepfun/step-3.7-flash\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"anthropic_text\",\n \"display_name\": \"Anthropic Text\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"anyapi\",\n \"display_name\": \"AnyAPI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.anyapi.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.anyapi.ai\"\n ],\n \"api_key_env_vars\": [\n \"ANYAPI_API_KEY\"\n ],\n \"model_count\": 30,\n \"model_sample\": [\n \"anthropic/claude-haiku-4-5\",\n \"anthropic/claude-opus-4-6\",\n \"anthropic/claude-opus-4-7\",\n \"anthropic/claude-sonnet-4-5\",\n \"anthropic/claude-sonnet-4-6\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"apertis\",\n \"display_name\": \"Apertis\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.65,\n \"capabilities\": [],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"atomic_chat\",\n \"display_name\": \"Atomic Chat\",\n \"aliases\": [],\n \"provider_kind\": \"local_runtime\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"http://127.0.0.1:1337/v1\"\n ],\n \"documentation_urls\": [\n \"https://atomic.chat\"\n ],\n \"api_key_env_vars\": [\n \"ATOMIC_CHAT_API_KEY\"\n ],\n \"model_count\": 5,\n \"model_sample\": [\n \"Meta-Llama-3_1-8B-Instruct-GGUF\",\n \"Qwen3_5-9B-MLX-4bit\",\n \"Qwen3_5-9B-Q4_K_M\",\n \"gemma-4-E4B-it-IQ4_XS\",\n \"gemma-4-E4B-it-MLX-4bit\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"auriko\",\n \"display_name\": \"Auriko\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.auriko.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.auriko.ai\"\n ],\n \"api_key_env_vars\": [\n \"AURIKO_API_KEY\"\n ],\n \"model_count\": 15,\n \"model_sample\": [\n \"claude-opus-4-6\",\n \"claude-opus-4-7\",\n \"claude-sonnet-4-6\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"aws\",\n \"display_name\": \"AWS\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"aws_polly\",\n \"display_name\": \"AWS Polly\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"audio_speech\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 4,\n \"model_sample\": [\n \"aws_polly/generative\",\n \"aws_polly/long-form\",\n \"aws_polly/neural\",\n \"aws_polly/standard\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"azure_cognitive_services\",\n \"display_name\": \"Azure Cognitive Services\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 94,\n \"model_sample\": [\n \"claude-haiku-4-5\",\n \"claude-opus-4-1\",\n \"claude-opus-4-5\",\n \"claude-opus-4-6\",\n \"claude-sonnet-4-5\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"azure_text\",\n \"display_name\": \"Azure Text\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\",\n \"completion\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 3,\n \"model_sample\": [\n \"azure/gpt-3.5-turbo-instruct-0914\",\n \"azure/gpt-35-turbo-instruct\",\n \"azure/gpt-35-turbo-instruct-0914\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"baidu_v2\",\n \"display_name\": \"BaiduV2\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://qianfan.baidubce.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"bailing\",\n \"display_name\": \"Bailing\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.tbox.cn/api/llm/v1/chat/completions\"\n ],\n \"documentation_urls\": [\n \"https://alipaytbox.yuque.com/sxs0ba/ling/intro\"\n ],\n \"api_key_env_vars\": [\n \"BAILING_API_TOKEN\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"Ling-1T\",\n \"Ring-1T\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"bedrock_mantle\",\n \"display_name\": \"Bedrock Mantle\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\",\n \"responses\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 24,\n \"model_sample\": [\n \"bedrock_mantle/google.gemma-4-26b-a4b\",\n \"bedrock_mantle/google.gemma-4-31b\",\n \"bedrock_mantle/google.gemma-4-e2b\",\n \"bedrock_mantle/openai.gpt-5.4\",\n \"bedrock_mantle/openai.gpt-5.5\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_prices\",\n \"pydantic_ai\"\n ]\n },\n {\n \"id\": \"berget\",\n \"display_name\": \"Berget.AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.berget.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://api.berget.ai\"\n ],\n \"api_key_env_vars\": [\n \"BERGET_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"google/gemma-4-31B-it\",\n \"meta-llama/Llama-3.3-70B-Instruct\",\n \"mistralai/Mistral-Medium-3.5-128B\",\n \"mistralai/Mistral-Small-3.2-24B-Instruct-2506\",\n \"moonshotai/Kimi-K2.6\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"blueclaw\",\n \"display_name\": \"Blue Claw\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://openai.blueclaw.network/v1\"\n ],\n \"documentation_urls\": [\n \"https://blueclaw.network\"\n ],\n \"api_key_env_vars\": [\n \"BLUECLAW_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"Qwen/Qwen3.6-35B-A3B-FP8\",\n \"Qwen3.6-27B\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"burncloud\",\n \"display_name\": \"burncloud\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"audio_speech\",\n \"chat\",\n \"image_generation\",\n \"video_generation\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 34,\n \"model_sample\": [\n \"anthropic/claude-3.5-haiku\",\n \"anthropic/claude-3.7-sonnet\",\n \"anthropic/claude-opus-4\",\n \"anthropic/claude-sonnet-4\",\n \"deepseek/deepseek-chat\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"chat_gpt_subscription_codex\",\n \"display_name\": \"ChatGPT Subscription (Codex)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://chatgpt.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 0,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"cherryin\",\n \"display_name\": \"cherryin\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"completion\",\n \"embedding\",\n \"image_generation\",\n \"rerank\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 125,\n \"model_sample\": [\n \"BAAI/bge-reranker-v2-m3(free)\",\n \"agent/deepseek-v3.1-terminus(free)\",\n \"agent/deepseek-v3.2-exp(free)\",\n \"agent/glm-4.6(free)\",\n \"agent/kimi-k2-0905(free)\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"chutes\",\n \"display_name\": \"Chutes\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 1.0,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://llm.chutes.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://llm.chutes.ai/v1/models\"\n ],\n \"api_key_env_vars\": [\n \"CHUTES_API_KEY\"\n ],\n \"model_count\": 43,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.5-TEE\",\n \"Nemotron-3-Nano-Omni-30B-TEE\",\n \"NousResearch/DeepHermes-3-Mistral-24B-Preview\",\n \"NousResearch/Hermes-4-14B\",\n \"Qwen/Qwen2.5-72B-Instruct\"\n ],\n \"trust_score\": 86,\n \"source_ids\": [\n \"litellm_constants\",\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"claudinio\",\n \"display_name\": \"Claudinio\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.claudin.io/v1\"\n ],\n \"documentation_urls\": [\n \"https://claudin.io\"\n ],\n \"api_key_env_vars\": [\n \"CLAUDINIO_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"claudinio\",\n \"claudius\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"cloudferro_sherlock\",\n \"display_name\": \"CloudFerro Sherlock\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api-sherlock.cloudferro.com/openai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.sherlock.cloudferro.com\"\n ],\n \"api_key_env_vars\": [\n \"CLOUDFERRO_SHERLOCK_API_KEY\"\n ],\n \"model_count\": 5,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.5\",\n \"meta-llama/Llama-3.3-70B-Instruct\",\n \"openai/gpt-oss-120b\",\n \"speakleash/Bielik-11B-v2.6-Instruct\",\n \"speakleash/Bielik-11B-v3.0-Instruct\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"cloudflare\",\n \"display_name\": \"Cloudflare\",\n \"aliases\": [],\n \"provider_kind\": \"cloud_platform\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.cloudflare.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 30,\n \"model_sample\": [\n \"cloudflare/@cf/aisingapore/gemma-sea-lion-v4-27b-it\",\n \"cloudflare/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b\",\n \"cloudflare/@cf/google/gemma-2b-it-lora\",\n \"cloudflare/@cf/google/gemma-4-26b-a4b-it\",\n \"cloudflare/@cf/google/gemma-7b-it-lora\"\n ],\n \"trust_score\": 66,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\",\n \"new_api\"\n ]\n },\n {\n \"id\": \"cloudflare_ai_gateway\",\n \"display_name\": \"Cloudflare AI Gateway\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"rerank\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://developers.cloudflare.com/ai-gateway\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 77,\n \"model_sample\": [\n \"anthropic/claude-3-5-haiku\",\n \"anthropic/claude-3-haiku\",\n \"anthropic/claude-3-opus\",\n \"anthropic/claude-3-sonnet\",\n \"anthropic/claude-3.5-haiku\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"cloudflare_workers_ai\",\n \"display_name\": \"Cloudflare Workers AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://developers.cloudflare.com/workers-ai/models\"\n ],\n \"api_key_env_vars\": [\n \"CLOUDFLARE_API_KEY\"\n ],\n \"model_count\": 22,\n \"model_sample\": [\n \"@cf/aisingapore/gemma-sea-lion-v4-27b-it\",\n \"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b\",\n \"@cf/google/gemma-4-26b-a4b-it\",\n \"@cf/ibm-granite/granite-4.0-h-micro\",\n \"@cf/meta/llama-3.1-8b-instruct-fp8\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"cohere_chat\",\n \"display_name\": \"Cohere Chat\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 7,\n \"model_sample\": [\n \"command-a-03-2025\",\n \"command-light\",\n \"command-r\",\n \"command-r-08-2024\",\n \"command-r-plus\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"cortecs\",\n \"display_name\": \"Cortecs\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.cortecs.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://api.cortecs.ai/v1/models\"\n ],\n \"api_key_env_vars\": [\n \"CORTECS_API_KEY\"\n ],\n \"model_count\": 58,\n \"model_sample\": [\n \"claude-4-5-sonnet\",\n \"claude-4-6-sonnet\",\n \"claude-haiku-4-5\",\n \"claude-opus4-5\",\n \"claude-opus4-6\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"crof\",\n \"display_name\": \"CrofAI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://crof.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://crof.ai/docs\"\n ],\n \"api_key_env_vars\": [\n \"CROF_API_KEY\"\n ],\n \"model_count\": 26,\n \"model_sample\": [\n \"deepseek-v3.2\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\",\n \"deepseek-v4-pro-lightning\",\n \"gemma-4-31b-it\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"crossmodel\",\n \"display_name\": \"CrossModel\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.crossmodel.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.crossmodel.ai/docs\"\n ],\n \"api_key_env_vars\": [\n \"CROSSMODEL_API_KEY\"\n ],\n \"model_count\": 46,\n \"model_sample\": [\n \"anthropic/claude-fable-5\",\n \"anthropic/claude-haiku-4-5\",\n \"anthropic/claude-opus-4-7\",\n \"anthropic/claude-opus-4-8\",\n \"anthropic/claude-opus-5\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"crusoe\",\n \"display_name\": \"Crusoe\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 7,\n \"model_sample\": [\n \"crusoe/Qwen/Qwen3-235B-A22B-Instruct-2507\",\n \"crusoe/deepseek-ai/DeepSeek-R1-0528\",\n \"crusoe/deepseek-ai/DeepSeek-V3-0324\",\n \"crusoe/google/gemma-3-12b-it\",\n \"crusoe/meta-llama/Llama-3.3-70B-Instruct\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"custom_provider\",\n \"display_name\": \"custom provider\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 30,\n \"model_sample\": [\n \"MiniMax-M2.5\",\n \"MiniMax-M2.5-highspeed\",\n \"MiniMax-M2.7\",\n \"claude-haiku-4-5\",\n \"claude-opus-4-7\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"daoxe\",\n \"display_name\": \"DaoXE\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://daoxe.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://daoxe.com/pricing\"\n ],\n \"api_key_env_vars\": [\n \"DAOXE_API_KEY\"\n ],\n \"model_count\": 9,\n \"model_sample\": [\n \"claude-haiku-4-5-20251001\",\n \"claude-opus-4-8\",\n \"claude-sonnet-4-6\",\n \"gemini-3.1-pro-preview\",\n \"gpt-5.4\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"darkbloom\",\n \"display_name\": \"Darkbloom\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.85,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"darkbloom/gemma-4-26b\",\n \"darkbloom/gpt-oss-20b\"\n ],\n \"trust_score\": 59,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"dataforseo\",\n \"display_name\": \"Dataforseo\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"dataforseo/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"dify\",\n \"display_name\": \"Dify\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.dify.ai\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"digitalocean\",\n \"display_name\": \"DigitalOcean\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"rerank\"\n ],\n \"base_urls\": [\n \"https://inference.do-ai.run/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.digitalocean.com/products/gradient-ai-platform/details/models\"\n ],\n \"api_key_env_vars\": [\n \"DIGITALOCEAN_ACCESS_TOKEN\"\n ],\n \"model_count\": 82,\n \"model_sample\": [\n \"alibaba-qwen3-32b\",\n \"all-mini-lm-l6-v2\",\n \"anthropic-claude-3-opus\",\n \"anthropic-claude-3.5-haiku\",\n \"anthropic-claude-3.5-sonnet\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"dinference\",\n \"display_name\": \"DInference\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.dinference.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://dinference.com\"\n ],\n \"api_key_env_vars\": [\n \"DINFERENCE_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"glm-4.7\",\n \"glm-5\",\n \"glm-5.1\",\n \"glm-5.2\",\n \"gpt-oss-120b\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"doubao\",\n \"display_name\": \"Doubao\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"image_generation\",\n \"video_generation\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://www.volcengine.com/docs/82379/1330310\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 33,\n \"model_sample\": [\n \"deepseek-v3-2-251201\",\n \"deepseek-v4-flash-260425\",\n \"deepseek-v4-pro-260425\",\n \"doubao-1-5-lite-32k-250115\",\n \"doubao-1-5-pro-32k-250115\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"doubao_video\",\n \"display_name\": \"DoubaoVideo\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://ark.cn-beijing.volces.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"drun\",\n \"display_name\": \"D.Run (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://chat.d.run/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.d.run\"\n ],\n \"api_key_env_vars\": [\n \"DRUN_API_KEY\"\n ],\n \"model_count\": 3,\n \"model_sample\": [\n \"public/deepseek-r1\",\n \"public/deepseek-v3\",\n \"public/minimax-m25\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"duckduckgo\",\n \"display_name\": \"Duckduckgo\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"duckduckgo/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"ebcloud\",\n \"display_name\": \"EBCloud\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://maas-api.ebcloud.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.ebtech.com/ai/model-api.html\"\n ],\n \"api_key_env_vars\": [\n \"EBCLOUD_API_KEY\"\n ],\n \"model_count\": 4,\n \"model_sample\": [\n \"DeepSeek-V4-Flash\",\n \"DeepSeek-V4-Pro\",\n \"GLM-5.1\",\n \"Kimi-K2.6\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"empiriolabs\",\n \"display_name\": \"EmpirioLabs AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.empiriolabs.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.empiriolabs.ai\"\n ],\n \"api_key_env_vars\": [\n \"EMPIRIOLABS_API_KEY\"\n ],\n \"model_count\": 36,\n \"model_sample\": [\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\",\n \"gemma-4-26b-a4b\",\n \"glm-4-5-flash\",\n \"glm-4-7-flash\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"empower\",\n \"display_name\": \"Empower\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"evroc\",\n \"display_name\": \"evroc\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [\n \"https://models.think.evroc.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.evroc.com/products/think/overview.html\"\n ],\n \"api_key_env_vars\": [\n \"EVROC_API_KEY\"\n ],\n \"model_count\": 21,\n \"model_sample\": [\n \"KBLab/kb-whisper-large\",\n \"Qwen/Qwen3-30B-A3B-Instruct-2507-FP8\",\n \"Qwen/Qwen3-Embedding-8B\",\n \"Qwen/Qwen3-Reranker-4B\",\n \"Qwen/Qwen3-VL-30B-A3B-Instruct\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"exa_ai\",\n \"display_name\": \"EXA AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"exa_ai/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"firecrawl\",\n \"display_name\": \"Firecrawl\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"firecrawl/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"firepass\",\n \"display_name\": \"Fireworks (Firepass)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.fireworks.ai/inference/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.fireworks.ai/firepass\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"accounts/fireworks/routers/kimi-k2p6-turbo\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"freemodel\",\n \"display_name\": \"FreeModel\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://cc.freemodel.dev/v1\"\n ],\n \"documentation_urls\": [\n \"https://freemodel.dev\"\n ],\n \"api_key_env_vars\": [\n \"FREEMODEL_API_KEY\"\n ],\n \"model_count\": 10,\n \"model_sample\": [\n \"claude-fable-5\",\n \"claude-haiku-4-5-20251001\",\n \"claude-opus-4-6\",\n \"claude-opus-4-7\",\n \"claude-opus-4-8\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"frogbot\",\n \"display_name\": \"FrogBot\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://app.frogbot.ai/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.frogbot.ai\"\n ],\n \"api_key_env_vars\": [\n \"FROGBOT_API_KEY\"\n ],\n \"model_count\": 26,\n \"model_sample\": [\n \"claude-haiku-4-5\",\n \"claude-opus-4-6\",\n \"claude-opus-4-7\",\n \"claude-sonnet-4-6\",\n \"deepseek-v4-pro\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"gitlab\",\n \"display_name\": \"GitLab Duo\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://docs.gitlab.com/user/duo_agent_platform\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 18,\n \"model_sample\": [\n \"duo-chat-fable-5\",\n \"duo-chat-gpt-5-1\",\n \"duo-chat-gpt-5-2\",\n \"duo-chat-gpt-5-2-codex\",\n \"duo-chat-gpt-5-3-codex\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"gmi\",\n \"display_name\": \"GMI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 17,\n \"model_sample\": [\n \"gmi/MiniMaxAI/MiniMax-M2.1\",\n \"gmi/Qwen/Qwen3-VL-235B-A22B-Instruct-FP8\",\n \"gmi/anthropic/claude-opus-4\",\n \"gmi/anthropic/claude-opus-4.5\",\n \"gmi/anthropic/claude-sonnet-4\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"gmicloud\",\n \"display_name\": \"GMI Cloud\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.gmi-serving.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.gmicloud.ai/inference-engine/api-reference/llm-api-reference\"\n ],\n \"api_key_env_vars\": [\n \"GMICLOUD_API_KEY\"\n ],\n \"model_count\": 13,\n \"model_sample\": [\n \"Qwen/Qwen3.7-Max\",\n \"anthropic/claude-opus-4.6\",\n \"anthropic/claude-opus-4.7\",\n \"anthropic/claude-opus-4.8\",\n \"anthropic/claude-sonnet-4.6\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"google_pse\",\n \"display_name\": \"Google PSE\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"google_pse/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"google_vertex\",\n \"display_name\": \"Vertex\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://cloud.google.com/vertex-ai/generative-ai/docs/models\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 35,\n \"model_sample\": [\n \"claude-3-5-haiku@20241022\",\n \"claude-haiku-4-5@20251001\",\n \"claude-opus-4-1@20250805\",\n \"claude-opus-4-5@20251101\",\n \"claude-opus-4-6@default\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"google_vertex_anthropic\",\n \"display_name\": \"Vertex (Anthropic)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 11,\n \"model_sample\": [\n \"claude-3-5-haiku@20241022\",\n \"claude-haiku-4-5@20251001\",\n \"claude-opus-4-1@20250805\",\n \"claude-opus-4-5@20251101\",\n \"claude-opus-4-6@default\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"hetzner\",\n \"display_name\": \"Hetzner\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://inference.hetzner.com/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://experiments.hetzner.com/docs/inference\"\n ],\n \"api_key_env_vars\": [\n \"HETZNER_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"Qwen/Qwen3.6-35B-A3B-FP8\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"hpc_ai\",\n \"display_name\": \"HPC-AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.hpc-ai.com/inference/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.hpc-ai.com/doc/docs/quickstart\"\n ],\n \"api_key_env_vars\": [\n \"HPC_AI_API_KEY\"\n ],\n \"model_count\": 9,\n \"model_sample\": [\n \"anthropic/claude-opus-4.7\",\n \"deepseek/deepseek-v4-flash\",\n \"deepseek/deepseek-v4-pro\",\n \"minimax/minimax-m2.5\",\n \"moonshotai/kimi-k2.5\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"hyper\",\n \"display_name\": \"Charm Hyper\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://hyper.charm.land/v1\"\n ],\n \"documentation_urls\": [\n \"https://hyper.charm.land\"\n ],\n \"api_key_env_vars\": [\n \"HYPER_API_KEY\"\n ],\n \"model_count\": 20,\n \"model_sample\": [\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\",\n \"gemma-4-26b-a4b-it\",\n \"glm-5\",\n \"glm-5.1\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"iflowcn\",\n \"display_name\": \"iFlow\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://apis.iflow.cn/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.iflow.cn/en/docs\"\n ],\n \"api_key_env_vars\": [\n \"IFLOW_API_KEY\"\n ],\n \"model_count\": 14,\n \"model_sample\": [\n \"deepseek-r1\",\n \"deepseek-v3\",\n \"deepseek-v3.2\",\n \"glm-4.6\",\n \"kimi-k2\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"inceptron\",\n \"display_name\": \"Inceptron\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.inceptron.io/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.inceptron.io\"\n ],\n \"api_key_env_vars\": [\n \"INCEPTRON_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.5\",\n \"moonshotai/Kimi-K2.6\",\n \"moonshotai/Kimi-K2.6-Fast\",\n \"moonshotai/Kimi-K2.7-Code\",\n \"nvidia/llama-3.3-70b-instruct-fp8\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"inferx\",\n \"display_name\": \"InferX\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://model.inferx.net/endpoints/v1\"\n ],\n \"documentation_urls\": [\n \"https://model.inferx.net/endpoints\"\n ],\n \"api_key_env_vars\": [\n \"INFERX_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"google/gemma-4-31b-it-fp8\",\n \"qwen/qwen3.5-122b-a10b-nvfp4\",\n \"qwen/qwen3.6-27b-fp8\",\n \"qwen/qwen3.6-35b-a3b-fp8\",\n \"qwen3-coder-next-fp8\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"io_net\",\n \"display_name\": \"IO.NET\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.intelligence.io.solutions/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://io.net/docs/guides/intelligence/io-intelligence\"\n ],\n \"api_key_env_vars\": [\n \"IOINTELLIGENCE_API_KEY\"\n ],\n \"model_count\": 17,\n \"model_sample\": [\n \"Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar\",\n \"Qwen/Qwen2.5-VL-32B-Instruct\",\n \"Qwen/Qwen3-235B-A22B-Thinking-2507\",\n \"Qwen/Qwen3-Next-80B-A3B-Instruct\",\n \"deepseek-ai/DeepSeek-R1-0528\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"jiekou\",\n \"display_name\": \"Jiekou.AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.jiekou.ai/openai\"\n ],\n \"documentation_urls\": [\n \"https://docs.jiekou.ai/docs/support/quickstart\"\n ],\n \"api_key_env_vars\": [\n \"JIEKOU_API_KEY\"\n ],\n \"model_count\": 153,\n \"model_sample\": [\n \"Sao10K/L3-8B-Stheno-v3.2\",\n \"baidu/ernie-4.5-300b-a47b-paddle\",\n \"baidu/ernie-4.5-vl-424b-a47b\",\n \"claude-haiku-4-5-20251001\",\n \"claude-haiku-4-5-20251001-dd\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"jimeng\",\n \"display_name\": \"Jimeng\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://visual.volcengineapi.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"jina\",\n \"display_name\": \"Jina\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.jina.ai\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"jina_ai\",\n \"display_name\": \"Jina AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"rerank\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"jina-reranker-v2-base-multilingual\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"kenari\",\n \"display_name\": \"Kenari\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://kenari.id/v1\"\n ],\n \"documentation_urls\": [\n \"https://kenari.id/docs\"\n ],\n \"api_key_env_vars\": [\n \"KENARI_API_KEY\"\n ],\n \"model_count\": 38,\n \"model_sample\": [\n \"claude-fable-5\",\n \"claude-opus-4-7\",\n \"claude-opus-4-8\",\n \"claude-sonnet-5\",\n \"deepseek-v4-flash\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"kimi\",\n \"display_name\": \"Kimi\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"rust_genai\"\n ]\n },\n {\n \"id\": \"kimi_for_coding\",\n \"display_name\": \"Kimi For Coding\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.kimi.com/coding/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.kimi.com/code/docs/en/third-party-tools/other-coding-agents.html\"\n ],\n \"api_key_env_vars\": [\n \"KIMI_API_KEY\"\n ],\n \"model_count\": 4,\n \"model_sample\": [\n \"k3\",\n \"k3-256k\",\n \"kimi-for-coding\",\n \"kimi-for-coding-highspeed\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"kling\",\n \"display_name\": \"Kling\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.klingai.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"kuae_cloud_coding_plan\",\n \"display_name\": \"KUAE Cloud Coding Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://coding-plan-endpoint.kuaecloud.net/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.mthreads.com/kuaecloud/kuaecloud-doc-online/coding_plan\"\n ],\n \"api_key_env_vars\": [\n \"KUAE_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"GLM-4.7\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"lemonade\",\n \"display_name\": \"Lemonade\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 5,\n \"model_sample\": [\n \"lemonade/Gemma-3-4b-it-GGUF\",\n \"lemonade/Qwen3-4B-Instruct-2507-GGUF\",\n \"lemonade/Qwen3-Coder-30B-A3B-Instruct-GGUF\",\n \"lemonade/gpt-oss-120b-mxfp-GGUF\",\n \"lemonade/gpt-oss-20b-mxfp4-GGUF\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"libertai\",\n \"display_name\": \"Libertai\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.85,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 12,\n \"model_sample\": [\n \"libertai/bge-m3\",\n \"libertai/deepseek-v4-flash\",\n \"libertai/deepseek-v4-flash-thinking\",\n \"libertai/gemma-4-31b-it\",\n \"libertai/gemma-4-31b-it-thinking\"\n ],\n \"trust_score\": 59,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"lilac\",\n \"display_name\": \"Lilac\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.getlilac.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.getlilac.com/inference/models\"\n ],\n \"api_key_env_vars\": [\n \"LILAC_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"google/gemma-4-31b-it\",\n \"minimaxai/minimax-m2.7\",\n \"minimaxai/minimax-m3\",\n \"moonshotai/kimi-k2.6\",\n \"zai-org/glm-5.1\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"linkup\",\n \"display_name\": \"Linkup\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"linkup/search\",\n \"linkup/search-deep\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"llama\",\n \"display_name\": \"Llama\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.llama.com/compat/v1\"\n ],\n \"documentation_urls\": [\n \"https://llama.developer.meta.com/docs/models\"\n ],\n \"api_key_env_vars\": [\n \"LLAMA_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"cerebras-llama-4-maverick-17b-128e-instruct\",\n \"cerebras-llama-4-scout-17b-16e-instruct\",\n \"groq-llama-4-maverick-17b-128e-instruct\",\n \"llama-3.3-70b-instruct\",\n \"llama-3.3-8b-instruct\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"llamagate\",\n \"display_name\": \"Llamagate\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 16,\n \"model_sample\": [\n \"llamagate/codellama-7b\",\n \"llamagate/deepseek-coder-6.7b\",\n \"llamagate/deepseek-r1-7b-qwen\",\n \"llamagate/deepseek-r1-8b\",\n \"llamagate/dolphin3-8b\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"llmgateway\",\n \"display_name\": \"LLM Gateway\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.llmgateway.io/v1\"\n ],\n \"documentation_urls\": [\n \"https://llmgateway.io/docs\"\n ],\n \"api_key_env_vars\": [\n \"LLMGATEWAY_API_KEY\"\n ],\n \"model_count\": 224,\n \"model_sample\": [\n \"auto\",\n \"claude-3-5-haiku\",\n \"claude-3-5-sonnet-20241022\",\n \"claude-3-7-sonnet\",\n \"claude-3-7-sonnet-20250219\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"llmtr\",\n \"display_name\": \"LLMTR\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://llmtr.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://llmtr.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"LLMTR_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"gemma-4\",\n \"magibu-11b-v8\",\n \"medgemma-4b\",\n \"qwen3-6-35b\",\n \"sincap\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"lucidquery\",\n \"display_name\": \"LucidQuery\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lucidquery.com/v1\",\n \"https://lucidquery.com/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://lucidquery.com/api/docs\",\n \"https://lucidquery.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"LUCIDQUERY_API_KEY\"\n ],\n \"model_count\": 4,\n \"model_sample\": [\n \"lucidnova-rf1-100b\",\n \"lucidquery-agi-01-frontier\",\n \"lucidquery-agi-01-swift\",\n \"lucidquery-nexus-coder\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"lynkr\",\n \"display_name\": \"Lynkr\",\n \"aliases\": [],\n \"provider_kind\": \"local_runtime\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"http://127.0.0.1:8081/v1\"\n ],\n \"documentation_urls\": [\n \"https://github.com/Fast-Editor/Lynkr\"\n ],\n \"api_key_env_vars\": [\n \"LYNKR_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"lynkr-auto\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"maritalk\",\n \"display_name\": \"Maritalk\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"meganova\",\n \"display_name\": \"Meganova\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.meganova.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.meganova.ai\"\n ],\n \"api_key_env_vars\": [\n \"MEGANOVA_API_KEY\"\n ],\n \"model_count\": 19,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.1\",\n \"MiniMaxAI/MiniMax-M2.5\",\n \"Qwen/Qwen2.5-VL-32B-Instruct\",\n \"Qwen/Qwen3-235B-A22B-Instruct-2507\",\n \"Qwen/Qwen3.5-Plus\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"merge_gateway\",\n \"display_name\": \"Merge Gateway\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://docs.merge.dev/merge-gateway\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 83,\n \"model_sample\": [\n \"anthropic/claude-haiku-4-5-20251001\",\n \"anthropic/claude-opus-4-1-20250805\",\n \"anthropic/claude-opus-4-20250514\",\n \"anthropic/claude-opus-4-5-20251101\",\n \"anthropic/claude-opus-4-6\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"meta\",\n \"display_name\": \"Meta\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 1.0,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.meta.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://dev.meta.ai/docs\"\n ],\n \"api_key_env_vars\": [\n \"META_MODEL_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"meta/muse-spark-1.1\",\n \"muse-spark-1.1\"\n ],\n \"trust_score\": 86,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\",\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"midjourney\",\n \"display_name\": \"Midjourney\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://oa.api2d.net\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"midjourney_plus\",\n \"display_name\": \"MidjourneyPlus\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.openai-sb.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"mimo\",\n \"display_name\": \"Mimo\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"rust_genai\"\n ]\n },\n {\n \"id\": \"minimax_cn\",\n \"display_name\": \"MiniMax (minimaxi.com)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.minimaxi.com/anthropic/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.minimaxi.com/docs/guides/quickstart\"\n ],\n \"api_key_env_vars\": [\n \"MINIMAX_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"MiniMax-M2\",\n \"MiniMax-M2.1\",\n \"MiniMax-M2.5\",\n \"MiniMax-M2.5-highspeed\",\n \"MiniMax-M2.7\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"minimax_cn_coding_plan\",\n \"display_name\": \"MiniMax Token Plan (minimaxi.com)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.minimaxi.com/anthropic/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.minimaxi.com/docs/token-plan/intro\"\n ],\n \"api_key_env_vars\": [\n \"MINIMAX_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"MiniMax-M2\",\n \"MiniMax-M2.1\",\n \"MiniMax-M2.5\",\n \"MiniMax-M2.5-highspeed\",\n \"MiniMax-M2.7\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"minimax_coding_plan\",\n \"display_name\": \"MiniMax Token Plan (minimax.io)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.minimax.io/anthropic/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.minimax.io/docs/token-plan/intro\"\n ],\n \"api_key_env_vars\": [\n \"MINIMAX_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"MiniMax-M2\",\n \"MiniMax-M2.1\",\n \"MiniMax-M2.5\",\n \"MiniMax-M2.5-highspeed\",\n \"MiniMax-M2.7\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"mixlayer\",\n \"display_name\": \"Mixlayer\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://models.mixlayer.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.mixlayer.com\"\n ],\n \"api_key_env_vars\": [\n \"MIXLAYER_API_KEY\"\n ],\n \"model_count\": 5,\n \"model_sample\": [\n \"qwen/qwen3.5-122b-a10b\",\n \"qwen/qwen3.5-27b\",\n \"qwen/qwen3.5-35b-a3b\",\n \"qwen/qwen3.5-397b-a17b\",\n \"qwen/qwen3.5-9b\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"moark\",\n \"display_name\": \"Moark\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://moark.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://moark.com/docs/openapi/v1\"\n ],\n \"api_key_env_vars\": [\n \"MOARK_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"GLM-4.7\",\n \"MiniMax-M2.1\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"model_oracle_ai\",\n \"display_name\": \"Model Oracle AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.modeloracle.com/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://modeloracle.com/setup\"\n ],\n \"api_key_env_vars\": [\n \"MODEL_ORACLE_API_KEY\"\n ],\n \"model_count\": 15,\n \"model_sample\": [\n \"auto\",\n \"claude-fable-5\",\n \"claude-haiku-4.5\",\n \"claude-opus-4.8\",\n \"claude-sonnet-5\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"moka_ai\",\n \"display_name\": \"MokaAI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.moka.ai\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"moonshotai_cn\",\n \"display_name\": \"Moonshot AI (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.moonshot.cn/anthropic/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.moonshot.cn/docs/api/chat\"\n ],\n \"api_key_env_vars\": [\n \"MOONSHOT_API_KEY\"\n ],\n \"model_count\": 10,\n \"model_sample\": [\n \"kimi-k2-0711-preview\",\n \"kimi-k2-0905-preview\",\n \"kimi-k2-thinking\",\n \"kimi-k2-thinking-turbo\",\n \"kimi-k2-turbo-preview\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"nearai\",\n \"display_name\": \"NEAR AI Cloud\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"rerank\"\n ],\n \"base_urls\": [\n \"https://cloud-api.near.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.near.ai\"\n ],\n \"api_key_env_vars\": [\n \"NEARAI_API_KEY\"\n ],\n \"model_count\": 37,\n \"model_sample\": [\n \"Qwen/Qwen3-30B-A3B-Instruct-2507\",\n \"Qwen/Qwen3-Embedding-0.6B\",\n \"Qwen/Qwen3-Reranker-0.6B\",\n \"Qwen/Qwen3-VL-30B-A3B-Instruct\",\n \"Qwen/Qwen3.5-122B-A10B\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"neon\",\n \"display_name\": \"Neon\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://neon.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"NEON_AI_GATEWAY_TOKEN\"\n ],\n \"model_count\": 37,\n \"model_sample\": [\n \"claude-haiku-4-5\",\n \"claude-opus-4-1\",\n \"claude-opus-4-5\",\n \"claude-opus-4-6\",\n \"claude-opus-4-7\"\n ],\n \"trust_score\": 59,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"netlify\",\n \"display_name\": \"Netlify\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://docs.netlify.com/build/ai-gateway/overview\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 68,\n \"model_sample\": [\n \"anthropic/claude-fable-5\",\n \"anthropic/claude-haiku-4-5\",\n \"anthropic/claude-haiku-4-5-20251001\",\n \"anthropic/claude-opus-4-1-20250805\",\n \"anthropic/claude-opus-4-5\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"neuralwatt\",\n \"display_name\": \"Neuralwatt\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.neuralwatt.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://portal.neuralwatt.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"NEURALWATT_API_KEY\"\n ],\n \"model_count\": 24,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.5\",\n \"Qwen/Qwen3.5-397B-A17B-FP8\",\n \"Qwen/Qwen3.6-35B-A3B\",\n \"glm-5-fast\",\n \"glm-5.1-fast\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"new_api\",\n \"display_name\": \"New API\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"nova\",\n \"display_name\": \"Nova\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.nova.amazon.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://nova.amazon.com/dev/documentation\"\n ],\n \"api_key_env_vars\": [\n \"NOVA_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"nova-2-lite-v1\",\n \"nova-2-pro-v1\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"oci\",\n \"display_name\": \"OCI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 44,\n \"model_sample\": [\n \"oci/cohere.command-a-03-2025\",\n \"oci/cohere.command-a-reasoning\",\n \"oci/cohere.command-a-reasoning-08-2025\",\n \"oci/cohere.command-a-translate-08-2025\",\n \"oci/cohere.command-a-vision\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"ofox\",\n \"display_name\": \"Ofox\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.ofox.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://ofox.ai/docs\"\n ],\n \"api_key_env_vars\": [\n \"OFOX_API_KEY\"\n ],\n \"model_count\": 13,\n \"model_sample\": [\n \"anthropic/claude-fable-5\",\n \"anthropic/claude-opus-4.8\",\n \"anthropic/claude-sonnet-5\",\n \"bailian/qwen3.7-max\",\n \"deepseek/deepseek-v4-pro\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"ollama_chat\",\n \"display_name\": \"Ollama Chat\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"oobabooga\",\n \"display_name\": \"Oobabooga\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"opencode\",\n \"display_name\": \"OpenCode Zen\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://opencode.ai/zen/v1\"\n ],\n \"documentation_urls\": [\n \"https://opencode.ai/docs/zen\"\n ],\n \"api_key_env_vars\": [\n \"OPENCODE_API_KEY\"\n ],\n \"model_count\": 85,\n \"model_sample\": [\n \"big-pickle\",\n \"claude-3-5-haiku\",\n \"claude-fable-5\",\n \"claude-haiku-4-5\",\n \"claude-opus-4-1\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"pa_lm\",\n \"display_name\": \"PaLM\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"palm\",\n \"display_name\": \"Palm\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"completion\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 6,\n \"model_sample\": [\n \"palm/chat-bison\",\n \"palm/chat-bison-001\",\n \"palm/text-bison\",\n \"palm/text-bison-001\",\n \"palm/text-bison-safety-off\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"parallel_ai\",\n \"display_name\": \"Parallel AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"parallel_ai/search\",\n \"parallel_ai/search-pro\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"perplexity_agent\",\n \"display_name\": \"Perplexity Agent\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.perplexity.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.perplexity.ai/docs/agent-api/models\"\n ],\n \"api_key_env_vars\": [\n \"PERPLEXITY_API_KEY\"\n ],\n \"model_count\": 18,\n \"model_sample\": [\n \"anthropic/claude-haiku-4-5\",\n \"anthropic/claude-opus-4-5\",\n \"anthropic/claude-opus-4-6\",\n \"anthropic/claude-opus-4-7\",\n \"anthropic/claude-sonnet-4-5\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"pinstripes\",\n \"display_name\": \"Pinstripes\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.85,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 6,\n \"model_sample\": [\n \"pinstripes/ps/deepseek-v4-flash\",\n \"pinstripes/ps/glm-4.5-air\",\n \"pinstripes/ps/minimax-m2.7\",\n \"pinstripes/ps/qwen3-30b-a3b\",\n \"pinstripes/ps/qwen3-coder-30b-a3b\"\n ],\n \"trust_score\": 59,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"poe\",\n \"display_name\": \"Poe\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 1.0,\n \"capabilities\": [\n \"chat\",\n \"image_generation\"\n ],\n \"base_urls\": [\n \"https://api.poe.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://creator.poe.com/docs/external-applications/openai-compatible-api\"\n ],\n \"api_key_env_vars\": [\n \"POE_API_KEY\"\n ],\n \"model_count\": 137,\n \"model_sample\": [\n \"anthropic/claude-haiku-3\",\n \"anthropic/claude-haiku-3.5\",\n \"anthropic/claude-haiku-4.5\",\n \"anthropic/claude-opus-4\",\n \"anthropic/claude-opus-4.1\"\n ],\n \"trust_score\": 86,\n \"source_ids\": [\n \"litellm_constants\",\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"poolside\",\n \"display_name\": \"Poolside\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://inference.poolside.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.poolside.ai\"\n ],\n \"api_key_env_vars\": [\n \"POOLSIDE_API_KEY\"\n ],\n \"model_count\": 4,\n \"model_sample\": [\n \"poolside/laguna-m.1\",\n \"poolside/laguna-s-2.1\",\n \"poolside/laguna-xs-2.1\",\n \"poolside/laguna-xs.2\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"ppinfra\",\n \"display_name\": \"PPInfra\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 101,\n \"model_sample\": [\n \"ai_infer_test_2\",\n \"ai_infer_test_3\",\n \"baidu/ernie-4.5-0.3b\",\n \"baidu/ernie-4.5-21B-a3b\",\n \"baidu/ernie-4.5-21b-a3b-thinking\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"privatemode_ai\",\n \"display_name\": \"Privatemode AI\",\n \"aliases\": [],\n \"provider_kind\": \"local_runtime\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [\n \"http://localhost:8080/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.privatemode.ai/api/overview\"\n ],\n \"api_key_env_vars\": [\n \"PRIVATEMODE_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"gemma-3-27b\",\n \"gpt-oss-120b\",\n \"kimi-k2.6\",\n \"qwen3-coder-30b-a3b\",\n \"qwen3-embedding-4b\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"publicai\",\n \"display_name\": \"Publicai\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.85,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 9,\n \"model_sample\": [\n \"publicai/BSC-LT/ALIA-40b-instruct_Q8_0\",\n \"publicai/BSC-LT/salamandra-7b-instruct-tools-16k\",\n \"publicai/aisingapore/Gemma-SEA-LION-v4-27B-IT\",\n \"publicai/aisingapore/Qwen-SEA-LION-v4-32B-IT\",\n \"publicai/allenai/Olmo-3-32B-Think\"\n ],\n \"trust_score\": 59,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"qihang_ai\",\n \"display_name\": \"QiHang\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.qhaigc.net/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.qhaigc.net/docs\"\n ],\n \"api_key_env_vars\": [\n \"QIHANG_API_KEY\"\n ],\n \"model_count\": 9,\n \"model_sample\": [\n \"claude-haiku-4-5-20251001\",\n \"claude-opus-4-5-20251101\",\n \"claude-sonnet-4-5-20250929\",\n \"gemini-2.5-flash\",\n \"gemini-3-flash-preview\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"ragflow\",\n \"display_name\": \"Ragflow\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.65,\n \"capabilities\": [],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"recraft\",\n \"display_name\": \"Recraft\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"image_generation\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"recraft/recraftv2\",\n \"recraft/recraftv3\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"reducto\",\n \"display_name\": \"Reducto\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"other\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"reducto/parse-legacy\",\n \"reducto/parse-v3\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"regolo_ai\",\n \"display_name\": \"Regolo AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"image_generation\",\n \"rerank\"\n ],\n \"base_urls\": [\n \"https://api.regolo.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.regolo.ai\"\n ],\n \"api_key_env_vars\": [\n \"REGOLO_API_KEY\"\n ],\n \"model_count\": 13,\n \"model_sample\": [\n \"gpt-oss-120b\",\n \"gpt-oss-20b\",\n \"llama-3.1-8b-instruct\",\n \"llama-3.3-70b-instruct\",\n \"minimax-m2.5\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"routing_run\",\n \"display_name\": \"routing.run\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://ai.routing.sh/v1\",\n \"https://api.routing.run/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.routing.run/api-reference/models\"\n ],\n \"api_key_env_vars\": [\n \"ROUTING_RUN_API_KEY\"\n ],\n \"model_count\": 41,\n \"model_sample\": [\n \"claude-opus-4-8\",\n \"claude-sonnet-4-6\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\",\n \"glm-5.2\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"runwayml\",\n \"display_name\": \"Runwayml\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"audio_speech\",\n \"image_generation\",\n \"video_generation\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 6,\n \"model_sample\": [\n \"runwayml/eleven_multilingual_v2\",\n \"runwayml/gen3a_turbo\",\n \"runwayml/gen4_aleph\",\n \"runwayml/gen4_image\",\n \"runwayml/gen4_image_turbo\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"sagemaker\",\n \"display_name\": \"Sagemaker\",\n \"aliases\": [],\n \"provider_kind\": \"cloud_platform\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\",\n \"completion\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 6,\n \"model_sample\": [\n \"sagemaker/meta-textgeneration-llama-2-13b\",\n \"sagemaker/meta-textgeneration-llama-2-13b-f\",\n \"sagemaker/meta-textgeneration-llama-2-70b\",\n \"sagemaker/meta-textgeneration-llama-2-70b-b-f\",\n \"sagemaker/meta-textgeneration-llama-2-7b\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"sagemaker_chat\",\n \"display_name\": \"Sagemaker Chat\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"sagemaker_nova\",\n \"display_name\": \"Sagemaker Nova\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"sap_ai_core\",\n \"display_name\": \"SAP AI Core\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://help.sap.com/docs/sap-ai-core\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 26,\n \"model_sample\": [\n \"anthropic--claude-3-haiku\",\n \"anthropic--claude-3-opus\",\n \"anthropic--claude-3-sonnet\",\n \"anthropic--claude-3.5-sonnet\",\n \"anthropic--claude-3.7-sonnet\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"searxng\",\n \"display_name\": \"Searxng\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"searxng/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"serper\",\n \"display_name\": \"Serper\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"serper/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"snowflake\",\n \"display_name\": \"Snowflake\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 37,\n \"model_sample\": [\n \"snowflake/claude-3-5-sonnet\",\n \"snowflake/claude-3-7-sonnet\",\n \"snowflake/claude-4-opus\",\n \"snowflake/claude-4-sonnet\",\n \"snowflake/claude-haiku-4-5\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"snowflake_cortex\",\n \"display_name\": \"Snowflake Cortex\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://${snowflake_account}.snowflakecomputing.com/api/v2/cortex/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-rest-api\"\n ],\n \"api_key_env_vars\": [\n \"SNOWFLAKE_CORTEX_PAT\"\n ],\n \"model_count\": 21,\n \"model_sample\": [\n \"claude-fable-5\",\n \"claude-haiku-4-5\",\n \"claude-opus-4-7\",\n \"claude-opus-4-8\",\n \"claude-sonnet-4-5\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"soniox\",\n \"display_name\": \"Soniox\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"audio_transcription\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"soniox/stt-async-v4\",\n \"soniox/stt-async-v5\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"sora\",\n \"display_name\": \"Sora\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.openai.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"stability\",\n \"display_name\": \"Stability\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"image_edit\",\n \"image_generation\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 23,\n \"model_sample\": [\n \"stability/conservative\",\n \"stability/creative\",\n \"stability/erase\",\n \"stability/fast\",\n \"stability/inpaint\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"stackit\",\n \"display_name\": \"STACKIT\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.stackit.cloud/products/data-and-ai/ai-model-serving/basics/available-shared-models\"\n ],\n \"api_key_env_vars\": [\n \"STACKIT_API_KEY\"\n ],\n \"model_count\": 10,\n \"model_sample\": [\n \"Qwen/Qwen3-VL-235B-A22B-Instruct-FP8\",\n \"Qwen/Qwen3-VL-Embedding-8B\",\n \"Qwen/Qwen3.6-27B\",\n \"cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic\",\n \"google/gemma-3-27b-it\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"stepfun_ai_step_plan\",\n \"display_name\": \"StepFun Step Plan (Global)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.stepfun.ai/step_plan/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.stepfun.ai/docs/en/step-plan/integrations/reasoning-api\"\n ],\n \"api_key_env_vars\": [\n \"STEPFUN_API_KEY\"\n ],\n \"model_count\": 3,\n \"model_sample\": [\n \"step-3.5-flash\",\n \"step-3.5-flash-2603\",\n \"step-3.7-flash\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"stepfun_step_plan\",\n \"display_name\": \"StepFun Step Plan (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.stepfun.com/step_plan/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.stepfun.com/docs/zh/step-plan/integrations/reasoning-api\"\n ],\n \"api_key_env_vars\": [\n \"STEPFUN_API_KEY\"\n ],\n \"model_count\": 4,\n \"model_sample\": [\n \"step-3.5-flash\",\n \"step-3.5-flash-2603\",\n \"step-3.7-flash\",\n \"step-router-v1\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"sub2_api\",\n \"display_name\": \"Sub2API\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"subconscious\",\n \"display_name\": \"Subconscious\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.subconscious.dev/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.subconscious.dev\"\n ],\n \"api_key_env_vars\": [\n \"SUBCONSCIOUS_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"subconscious/glm-5.2\",\n \"subconscious/tim-qwen3.6-27b\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"suno_api\",\n \"display_name\": \"SunoAPI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"synthetic\",\n \"display_name\": \"Synthetic\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 1.0,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.synthetic.new/openai/v1\"\n ],\n \"documentation_urls\": [\n \"https://synthetic.new/pricing\"\n ],\n \"api_key_env_vars\": [\n \"SYNTHETIC_API_KEY\"\n ],\n \"model_count\": 38,\n \"model_sample\": [\n \"hf:MiniMaxAI/MiniMax-M2\",\n \"hf:MiniMaxAI/MiniMax-M2.1\",\n \"hf:MiniMaxAI/MiniMax-M2.5\",\n \"hf:MiniMaxAI/MiniMax-M3\",\n \"hf:Qwen/Qwen2.5-Coder-32B-Instruct\"\n ],\n \"trust_score\": 86,\n \"source_ids\": [\n \"litellm_constants\",\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tavily\",\n \"display_name\": \"Tavily\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"tavily/search\",\n \"tavily/search-advanced\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"tencent_coding_plan\",\n \"display_name\": \"Tencent Coding Plan (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/coding/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1772/128947\"\n ],\n \"api_key_env_vars\": [\n \"TENCENT_CODING_PLAN_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"glm-5\",\n \"hunyuan-2.0-instruct\",\n \"hunyuan-2.0-thinking\",\n \"hunyuan-t1\",\n \"hunyuan-turbos\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan\",\n \"display_name\": \"Tencent Token Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130060\"\n ],\n \"api_key_env_vars\": [\n \"TENCENT_TOKEN_PLAN_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"hy3\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_enterprise_auto\",\n \"display_name\": \"腾讯云 Token Plan / Token Plan 企业版轻享套餐\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tokenhub.tencentmaas.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130660\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"auto\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_enterprise_pro\",\n \"display_name\": \"腾讯云 Token Plan / Token Plan 企业版专业套餐\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tokenhub.tencentmaas.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130660\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 16,\n \"model_sample\": [\n \"auto\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-flash-202605\",\n \"deepseek-v4-pro\",\n \"deepseek-v4-pro-202606\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_general_personal\",\n \"display_name\": \"腾讯云 Token Plan / 通用 Token Plan(个人版)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130060\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 8,\n \"model_sample\": [\n \"deepseek-v4-flash-202605\",\n \"deepseek-v4-pro-202606\",\n \"glm-5\",\n \"glm-5.1\",\n \"kimi-k2.5\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_hy_personal\",\n \"display_name\": \"腾讯云 Token Plan / Hy Token Plan(个人版)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130060\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"hy3\",\n \"hy3-preview\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_tokenhub\",\n \"display_name\": \"Tencent TokenHub\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tokenhub.tencentmaas.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130050\"\n ],\n \"api_key_env_vars\": [\n \"TENCENT_TOKENHUB_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"hy3\",\n \"hy3-preview\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tensormesh\",\n \"display_name\": \"Tensormesh\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.85,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 10,\n \"model_sample\": [\n \"tensormesh/MiniMaxAI/MiniMax-M2.5\",\n \"tensormesh/Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8\",\n \"tensormesh/Qwen/Qwen3.5-397B-A17B-FP8\",\n \"tensormesh/Qwen/Qwen3.6-27B-FP8\",\n \"tensormesh/deepseek-ai/DeepSeek-V4-Flash\"\n ],\n \"trust_score\": 59,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"text_completion_codestral\",\n \"display_name\": \"Text Completion Codestral\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\",\n \"completion\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"text-completion-codestral/codestral-2405\",\n \"text-completion-codestral/codestral-latest\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"text_completion_inception\",\n \"display_name\": \"Text Completion Inception\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\",\n \"completion\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"text-completion-inception/mercury-edit-2\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"the_grid_ai\",\n \"display_name\": \"The Grid AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.thegrid.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://thegrid.ai/docs\"\n ],\n \"api_key_env_vars\": [\n \"THEGRIDAI_API_KEY\"\n ],\n \"model_count\": 9,\n \"model_sample\": [\n \"agent-max\",\n \"agent-prime\",\n \"agent-standard\",\n \"code-max\",\n \"code-prime\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"thinkingmachines\",\n \"display_name\": \"Thinking Machines\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tinker.thinkingmachines.dev/services/tinker-prod/anthropic/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/anthropic\"\n ],\n \"api_key_env_vars\": [\n \"TINKER_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"thinkingmachines/Inkling\",\n \"thinkingmachines/Inkling:peft:262144\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"tinfoil\",\n \"display_name\": \"Tinfoil\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://inference.tinfoil.sh/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.tinfoil.sh\"\n ],\n \"api_key_env_vars\": [\n \"TINFOIL_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"gemma4-31b\",\n \"glm-5-2\",\n \"gpt-oss-120b\",\n \"gpt-oss-safeguard-120b\",\n \"kimi-k2-6\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"tinyfish\",\n \"display_name\": \"Tinyfish\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"tinyfish/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"tokenflux\",\n \"display_name\": \"Tokenflux\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 164,\n \"model_sample\": [\n \"anthropic/claude-3-haiku\",\n \"anthropic/claude-3.5-haiku\",\n \"anthropic/claude-3.5-sonnet\",\n \"anthropic/claude-3.7-sonnet\",\n \"anthropic/claude-haiku-4.5\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"triton\",\n \"display_name\": \"Triton\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"trustedrouter\",\n \"display_name\": \"TrustedRouter\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.trustedrouter.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://trustedrouter.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"TRUSTEDROUTER_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"auto\",\n \"cheap\",\n \"e2e\",\n \"fast\",\n \"synth\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"umans_ai\",\n \"display_name\": \"Umans AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.code.umans.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://app.umans.ai/offers/code/docs/orgs\"\n ],\n \"api_key_env_vars\": [\n \"UMANS_AI_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"umans-coder\",\n \"umans-flash\",\n \"umans-glm-5.1\",\n \"umans-glm-5.2\",\n \"umans-kimi-k2.6\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"umans_ai_coding_plan\",\n \"display_name\": \"Umans AI Coding Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.code.umans.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://app.umans.ai/offers/code/docs\"\n ],\n \"api_key_env_vars\": [\n \"UMANS_AI_CODING_PLAN_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"umans-coder\",\n \"umans-flash\",\n \"umans-glm-5.1\",\n \"umans-glm-5.2\",\n \"umans-kimi-k2.6\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"unorouter\",\n \"display_name\": \"UnoRouter\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.unorouter.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://unorouter.com/models\"\n ],\n \"api_key_env_vars\": [\n \"UNOROUTER_API_KEY\"\n ],\n \"model_count\": 23,\n \"model_sample\": [\n \"claude-haiku-4-5-20251001\",\n \"claude-opus-4-8\",\n \"claude-sonnet-5\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-flash:free\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"venice\",\n \"display_name\": \"Venice AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://docs.venice.ai\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 75,\n \"model_sample\": [\n \"aion-labs-aion-2-0\",\n \"arcee-trinity-large-thinking\",\n \"claude-fable-5\",\n \"claude-opus-4-5\",\n \"claude-opus-4-6\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"vertex_ai_ai21_models\",\n \"display_name\": \"Vertex AI Ai21 Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 5,\n \"model_sample\": [\n \"vertex_ai/jamba-1.5\",\n \"vertex_ai/jamba-1.5-large\",\n \"vertex_ai/jamba-1.5-large@001\",\n \"vertex_ai/jamba-1.5-mini\",\n \"vertex_ai/jamba-1.5-mini@001\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_anthropic_models\",\n \"display_name\": \"Vertex AI Anthropic Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 37,\n \"model_sample\": [\n \"vertex_ai/claude-3-5-haiku\",\n \"vertex_ai/claude-3-5-haiku@20241022\",\n \"vertex_ai/claude-3-5-sonnet\",\n \"vertex_ai/claude-3-5-sonnet@20240620\",\n \"vertex_ai/claude-3-7-sonnet@20250219\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_deepseek_models\",\n \"display_name\": \"Vertex AI Deepseek Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 3,\n \"model_sample\": [\n \"vertex_ai/deepseek-ai/deepseek-r1-0528-maas\",\n \"vertex_ai/deepseek-ai/deepseek-v3.1-maas\",\n \"vertex_ai/deepseek-ai/deepseek-v3.2-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_language_models\",\n \"display_name\": \"Vertex AI Language Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"image_generation\",\n \"realtime\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 42,\n \"model_sample\": [\n \"deep-research-pro-preview-12-2025\",\n \"gemini-2.0-flash\",\n \"gemini-2.0-flash-001\",\n \"gemini-2.0-flash-lite\",\n \"gemini-2.0-flash-lite-001\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_llama_models\",\n \"display_name\": \"Vertex AI Llama Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 11,\n \"model_sample\": [\n \"vertex_ai/meta/llama-3.1-405b-instruct-maas\",\n \"vertex_ai/meta/llama-3.1-70b-instruct-maas\",\n \"vertex_ai/meta/llama-3.1-8b-instruct-maas\",\n \"vertex_ai/meta/llama-3.2-90b-vision-instruct-maas\",\n \"vertex_ai/meta/llama-4-maverick-17b-128e-instruct-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_minimax_models\",\n \"display_name\": \"Vertex AI Minimax Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"vertex_ai/minimaxai/minimax-m2-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_mistral_models\",\n \"display_name\": \"Vertex AI Mistral Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 19,\n \"model_sample\": [\n \"vertex_ai/codestral-2\",\n \"vertex_ai/codestral-2501\",\n \"vertex_ai/codestral-2@001\",\n \"vertex_ai/codestral@2405\",\n \"vertex_ai/codestral@latest\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_moonshot_models\",\n \"display_name\": \"Vertex AI Moonshot Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"vertex_ai/moonshotai/kimi-k2-thinking-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_openai_models\",\n \"display_name\": \"Vertex AI Openai Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 3,\n \"model_sample\": [\n \"vertex_ai/google/gemma-4-26b-a4b-it-maas\",\n \"vertex_ai/openai/gpt-oss-120b-maas\",\n \"vertex_ai/openai/gpt-oss-20b-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_qwen_models\",\n \"display_name\": \"Vertex AI Qwen Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 4,\n \"model_sample\": [\n \"vertex_ai/qwen/qwen3-235b-a22b-instruct-2507-maas\",\n \"vertex_ai/qwen/qwen3-coder-480b-a35b-instruct-maas\",\n \"vertex_ai/qwen/qwen3-next-80b-a3b-instruct-maas\",\n \"vertex_ai/qwen/qwen3-next-80b-a3b-thinking-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_text_models\",\n \"display_name\": \"Vertex AI Text Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"completion\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"text-unicorn\",\n \"text-unicorn@001\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_zai_models\",\n \"display_name\": \"Vertex AI ZAI Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"vertex_ai/zai-org/glm-4.7-maas\",\n \"vertex_ai/zai-org/glm-5-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vidu\",\n \"display_name\": \"Vidu\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.vidu.cn\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"vivgrid\",\n \"display_name\": \"Vivgrid\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.vivgrid.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.vivgrid.com/models\"\n ],\n \"api_key_env_vars\": [\n \"VIVGRID_API_KEY\"\n ],\n \"model_count\": 17,\n \"model_sample\": [\n \"deepseek-v3.2\",\n \"deepseek-v4-pro\",\n \"gemini-3.1-flash-lite-preview\",\n \"gemini-3.1-pro-preview\",\n \"glm-5.2\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"volc_engine\",\n \"display_name\": \"VolcEngine\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://ark.cn-beijing.volces.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"vultr\",\n \"display_name\": \"Vultr\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.vultrinference.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://api.vultrinference.com\"\n ],\n \"api_key_env_vars\": [\n \"VULTR_API_KEY\"\n ],\n \"model_count\": 12,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.7\",\n \"Qwen/Qwen3.5-397B-A17B\",\n \"Qwen/Qwen3.6-27B\",\n \"XiaomiMiMo/MiMo-V2.5-Pro\",\n \"deepseek-ai/DeepSeek-V4-Flash\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"wandb\",\n \"display_name\": \"Weights & Biases\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 1.0,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.inference.wandb.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.wandb.ai/guides/integrations/inference\"\n ],\n \"api_key_env_vars\": [\n \"WANDB_API_KEY\"\n ],\n \"model_count\": 48,\n \"model_sample\": [\n \"JetBrains/Mellum2-12B-A2.5B-Instruct\",\n \"MiniMaxAI/MiniMax-M2.5\",\n \"MiniMaxAI/MiniMax-M3\",\n \"OpenPipe/Qwen3-14B-Instruct\",\n \"Qwen/Qwen3-235B-A22B-Instruct-2507\"\n ],\n \"trust_score\": 98,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\",\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"watsonx\",\n \"display_name\": \"Watsonx\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"audio_transcription\",\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 29,\n \"model_sample\": [\n \"watsonx/bigscience/mt0-xxl-13b\",\n \"watsonx/core42/jais-13b-chat\",\n \"watsonx/google/flan-t5-xl-3b\",\n \"watsonx/ibm/granite-13b-chat-v2\",\n \"watsonx/ibm/granite-13b-instruct-v2\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"watsonx_text\",\n \"display_name\": \"Watsonx Text\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"xiaomi_token_plan_ams\",\n \"display_name\": \"Xiaomi Token Plan (Europe)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://token-plan-ams.xiaomimimo.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.xiaomimimo.com\"\n ],\n \"api_key_env_vars\": [\n \"XIAOMI_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"mimo-v2-omni\",\n \"mimo-v2-pro\",\n \"mimo-v2-tts\",\n \"mimo-v2.5\",\n \"mimo-v2.5-pro\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"xiaomi_token_plan_cn\",\n \"display_name\": \"Xiaomi Token Plan (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://token-plan-cn.xiaomimimo.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.xiaomimimo.com\"\n ],\n \"api_key_env_vars\": [\n \"XIAOMI_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"mimo-v2-omni\",\n \"mimo-v2-pro\",\n \"mimo-v2-tts\",\n \"mimo-v2.5\",\n \"mimo-v2.5-pro\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"xiaomi_token_plan_sgp\",\n \"display_name\": \"Xiaomi Token Plan (Singapore)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://token-plan-sgp.xiaomimimo.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.xiaomimimo.com\"\n ],\n \"api_key_env_vars\": [\n \"XIAOMI_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"mimo-v2-omni\",\n \"mimo-v2-pro\",\n \"mimo-v2-tts\",\n \"mimo-v2.5\",\n \"mimo-v2.5-pro\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"xpersona\",\n \"display_name\": \"Xpersona\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://www.xpersona.co/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.xpersona.co/docs\"\n ],\n \"api_key_env_vars\": [\n \"XPERSONA_API_KEY\"\n ],\n \"model_count\": 3,\n \"model_sample\": [\n \"claude-fable-5\",\n \"xpersona-frieren-coder\",\n \"xpersona-gpt-5.5\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"xunfei\",\n \"display_name\": \"Xunfei\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"you_com\",\n \"display_name\": \"YOU COM\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"you_com/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"zai_coding_plan\",\n \"display_name\": \"Z.AI Coding Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.z.ai/api/coding/paas/v4\"\n ],\n \"documentation_urls\": [\n \"https://docs.z.ai/devpack/overview\"\n ],\n \"api_key_env_vars\": [\n \"ZHIPU_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"glm-4.5-air\",\n \"glm-4.7\",\n \"glm-5-turbo\",\n \"glm-5.1\",\n \"glm-5.2\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"zeldoc\",\n \"display_name\": \"Zeldoc\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.zeldoc.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.zeldoc.ai\"\n ],\n \"api_key_env_vars\": [\n \"ZELDOC_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"z-code\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"zenifra\",\n \"display_name\": \"Zenifra\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://ai.zenifra.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.zenifra.com\"\n ],\n \"api_key_env_vars\": [\n \"ZENIFRA_AI_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"alibaba/qwen3.6-35b-a3b\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"zenmux\",\n \"display_name\": \"ZenMux\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"image_generation\"\n ],\n \"base_urls\": [\n \"https://zenmux.ai/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.zenmux.ai\"\n ],\n \"api_key_env_vars\": [\n \"ZENMUX_API_KEY\"\n ],\n \"model_count\": 164,\n \"model_sample\": [\n \"anthropic/claude-3.5-haiku\",\n \"anthropic/claude-3.7-sonnet\",\n \"anthropic/claude-fable-5\",\n \"anthropic/claude-haiku-4.5\",\n \"anthropic/claude-opus-4\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"zhipu_v4\",\n \"display_name\": \"ZhipuV4\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://open.bigmodel.cn\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"zhipuai_coding_plan\",\n \"display_name\": \"Zhipu AI Coding Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://open.bigmodel.cn/api/coding/paas/v4\"\n ],\n \"documentation_urls\": [\n \"https://docs.bigmodel.cn/cn/coding-plan/overview\"\n ],\n \"api_key_env_vars\": [\n \"ZHIPU_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"glm-4.5-air\",\n \"glm-4.6v\",\n \"glm-4.7\",\n \"glm-5-turbo\",\n \"glm-5.1\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n }\n ]\n}"}, "039a2a34372a6add580ee6121c703249d770d604": {"t": 1785846987.1987743, "n": 150679, "h": "422fb146edb5e618", "c": "{\n \"total\": 209,\n \"providers\": [\n {\n \"id\": \"abacus\",\n \"display_name\": \"Abacus\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://routellm.abacus.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://abacus.ai/help/api\"\n ],\n \"api_key_env_vars\": [\n \"ABACUS_API_KEY\"\n ],\n \"model_count\": 100,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.7\",\n \"MiniMaxAI/MiniMax-M3\",\n \"Qwen/QwQ-32B\",\n \"Qwen/Qwen2.5-72B-Instruct\",\n \"Qwen/Qwen3-235B-A22B-Instruct-2507\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"abliteration_ai\",\n \"display_name\": \"abliteration.ai\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.abliteration.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.abliteration.ai/models\"\n ],\n \"api_key_env_vars\": [\n \"ABLIT_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"abliterated-model\",\n \"abliterated-model-large\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"advanced_custom\",\n \"display_name\": \"Advanced Custom\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"ai_router\",\n \"display_name\": \"AI-ROUTER\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.ai-router.dev/v1\"\n ],\n \"documentation_urls\": [\n \"https://ai-router.dev/openai-compatible-api-gateway\"\n ],\n \"api_key_env_vars\": [\n \"AI_ROUTER_API_KEY\"\n ],\n \"model_count\": 5,\n \"model_sample\": [\n \"gpt-5.4\",\n \"gpt-5.5\",\n \"gpt-5.6-luna\",\n \"gpt-5.6-sol\",\n \"gpt-5.6-terra\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"aiand\",\n \"display_name\": \"ai&\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.aiand.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.aiand.com\"\n ],\n \"api_key_env_vars\": [\n \"AIAND_API_KEY\"\n ],\n \"model_count\": 10,\n \"model_sample\": [\n \"deepseek-ai/deepseek-v4-flash\",\n \"deepseek-ai/deepseek-v4-pro\",\n \"google/gemma-4-31b-it\",\n \"moonshotai/kimi-k2.6\",\n \"moonshotai/kimi-k2.7-code\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"aiproxy\",\n \"display_name\": \"AIProxy\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.aiproxy.io\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"aiproxy_library\",\n \"display_name\": \"AIProxyLibrary\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.aiproxy.io\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"aki_io\",\n \"display_name\": \"AKI.IO\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://aki.io/v1\"\n ],\n \"documentation_urls\": [\n \"https://aki.io/docs\"\n ],\n \"api_key_env_vars\": [\n \"AKI_IO_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"gemma4-26b\",\n \"gpt-oss-120b\",\n \"kimi-k2.7-code-1100b\",\n \"minimax-m2.5-230b\",\n \"mistral4-119b\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"ali\",\n \"display_name\": \"Ali\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://dashscope.aliyuncs.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"alibaba_cn\",\n \"display_name\": \"Alibaba (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://dashscope.aliyuncs.com/compatible-mode/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.alibabacloud.com/help/en/model-studio/models\"\n ],\n \"api_key_env_vars\": [\n \"DASHSCOPE_API_KEY\"\n ],\n \"model_count\": 112,\n \"model_sample\": [\n \"MiniMax-M2.5\",\n \"MiniMax/MiniMax-M2.7\",\n \"deepseek-r1\",\n \"deepseek-r1-0528\",\n \"deepseek-r1-distill-llama-70b\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"alibaba_coding_plan\",\n \"display_name\": \"Alibaba Coding Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://coding-intl.dashscope.aliyuncs.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.alibabacloud.com/help/en/model-studio/coding-plan\"\n ],\n \"api_key_env_vars\": [\n \"ALIBABA_CODING_PLAN_API_KEY\"\n ],\n \"model_count\": 12,\n \"model_sample\": [\n \"MiniMax-M2.5\",\n \"glm-4.7\",\n \"glm-5\",\n \"kimi-k2.5\",\n \"qwen3-coder-next\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"alibaba_coding_plan_cn\",\n \"display_name\": \"Alibaba Coding Plan (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://coding.dashscope.aliyuncs.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://help.aliyun.com/zh/model-studio/coding-plan\"\n ],\n \"api_key_env_vars\": [\n \"ALIBABA_CODING_PLAN_API_KEY\"\n ],\n \"model_count\": 12,\n \"model_sample\": [\n \"MiniMax-M2.5\",\n \"glm-4.7\",\n \"glm-5\",\n \"kimi-k2.5\",\n \"qwen3-coder-next\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"alibaba_token_plan\",\n \"display_name\": \"Alibaba Token Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"image_generation\"\n ],\n \"base_urls\": [\n \"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.alibabacloud.com/help/en/model-studio/token-plan-overview\"\n ],\n \"api_key_env_vars\": [\n \"ALIBABA_TOKEN_PLAN_API_KEY\"\n ],\n \"model_count\": 22,\n \"model_sample\": [\n \"MiniMax-M2.5\",\n \"deepseek-v3.2\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\",\n \"glm-5\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"alibaba_token_plan_cn\",\n \"display_name\": \"Alibaba Token Plan (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"image_generation\"\n ],\n \"base_urls\": [\n \"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview\"\n ],\n \"api_key_env_vars\": [\n \"ALIBABA_TOKEN_PLAN_API_KEY\"\n ],\n \"model_count\": 22,\n \"model_sample\": [\n \"MiniMax-M2.5\",\n \"deepseek-v3.2\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\",\n \"glm-5\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"ambient\",\n \"display_name\": \"Ambient\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.ambient.xyz/v1\"\n ],\n \"documentation_urls\": [\n \"https://ambient.xyz\"\n ],\n \"api_key_env_vars\": [\n \"AMBIENT_API_KEY\"\n ],\n \"model_count\": 9,\n \"model_sample\": [\n \"ambient/large\",\n \"deepseek/deepseek-v4-flash\",\n \"moonshotai/kimi-k2.6\",\n \"moonshotai/kimi-k2.7-code\",\n \"stepfun/step-3.7-flash\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"anthropic_text\",\n \"display_name\": \"Anthropic Text\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"anyapi\",\n \"display_name\": \"AnyAPI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.anyapi.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.anyapi.ai\"\n ],\n \"api_key_env_vars\": [\n \"ANYAPI_API_KEY\"\n ],\n \"model_count\": 30,\n \"model_sample\": [\n \"anthropic/claude-haiku-4-5\",\n \"anthropic/claude-opus-4-6\",\n \"anthropic/claude-opus-4-7\",\n \"anthropic/claude-sonnet-4-5\",\n \"anthropic/claude-sonnet-4-6\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"apertis\",\n \"display_name\": \"Apertis\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.65,\n \"capabilities\": [],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"atomic_chat\",\n \"display_name\": \"Atomic Chat\",\n \"aliases\": [],\n \"provider_kind\": \"local_runtime\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"http://127.0.0.1:1337/v1\"\n ],\n \"documentation_urls\": [\n \"https://atomic.chat\"\n ],\n \"api_key_env_vars\": [\n \"ATOMIC_CHAT_API_KEY\"\n ],\n \"model_count\": 5,\n \"model_sample\": [\n \"Meta-Llama-3_1-8B-Instruct-GGUF\",\n \"Qwen3_5-9B-MLX-4bit\",\n \"Qwen3_5-9B-Q4_K_M\",\n \"gemma-4-E4B-it-IQ4_XS\",\n \"gemma-4-E4B-it-MLX-4bit\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"auriko\",\n \"display_name\": \"Auriko\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.auriko.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.auriko.ai\"\n ],\n \"api_key_env_vars\": [\n \"AURIKO_API_KEY\"\n ],\n \"model_count\": 15,\n \"model_sample\": [\n \"claude-opus-4-6\",\n \"claude-opus-4-7\",\n \"claude-sonnet-4-6\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"aws\",\n \"display_name\": \"AWS\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"aws_polly\",\n \"display_name\": \"AWS Polly\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"audio_speech\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 4,\n \"model_sample\": [\n \"aws_polly/generative\",\n \"aws_polly/long-form\",\n \"aws_polly/neural\",\n \"aws_polly/standard\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"azure_cognitive_services\",\n \"display_name\": \"Azure Cognitive Services\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 94,\n \"model_sample\": [\n \"claude-haiku-4-5\",\n \"claude-opus-4-1\",\n \"claude-opus-4-5\",\n \"claude-opus-4-6\",\n \"claude-sonnet-4-5\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"azure_text\",\n \"display_name\": \"Azure Text\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\",\n \"completion\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 3,\n \"model_sample\": [\n \"azure/gpt-3.5-turbo-instruct-0914\",\n \"azure/gpt-35-turbo-instruct\",\n \"azure/gpt-35-turbo-instruct-0914\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"baidu_v2\",\n \"display_name\": \"BaiduV2\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://qianfan.baidubce.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"bailing\",\n \"display_name\": \"Bailing\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.tbox.cn/api/llm/v1/chat/completions\"\n ],\n \"documentation_urls\": [\n \"https://alipaytbox.yuque.com/sxs0ba/ling/intro\"\n ],\n \"api_key_env_vars\": [\n \"BAILING_API_TOKEN\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"Ling-1T\",\n \"Ring-1T\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"bedrock_mantle\",\n \"display_name\": \"Bedrock Mantle\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\",\n \"responses\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 24,\n \"model_sample\": [\n \"bedrock_mantle/google.gemma-4-26b-a4b\",\n \"bedrock_mantle/google.gemma-4-31b\",\n \"bedrock_mantle/google.gemma-4-e2b\",\n \"bedrock_mantle/openai.gpt-5.4\",\n \"bedrock_mantle/openai.gpt-5.5\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_prices\",\n \"pydantic_ai\"\n ]\n },\n {\n \"id\": \"berget\",\n \"display_name\": \"Berget.AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.berget.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://api.berget.ai\"\n ],\n \"api_key_env_vars\": [\n \"BERGET_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"google/gemma-4-31B-it\",\n \"meta-llama/Llama-3.3-70B-Instruct\",\n \"mistralai/Mistral-Medium-3.5-128B\",\n \"mistralai/Mistral-Small-3.2-24B-Instruct-2506\",\n \"moonshotai/Kimi-K2.6\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"blueclaw\",\n \"display_name\": \"Blue Claw\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://openai.blueclaw.network/v1\"\n ],\n \"documentation_urls\": [\n \"https://blueclaw.network\"\n ],\n \"api_key_env_vars\": [\n \"BLUECLAW_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"Qwen/Qwen3.6-35B-A3B-FP8\",\n \"Qwen3.6-27B\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"burncloud\",\n \"display_name\": \"burncloud\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"audio_speech\",\n \"chat\",\n \"image_generation\",\n \"video_generation\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 34,\n \"model_sample\": [\n \"anthropic/claude-3.5-haiku\",\n \"anthropic/claude-3.7-sonnet\",\n \"anthropic/claude-opus-4\",\n \"anthropic/claude-sonnet-4\",\n \"deepseek/deepseek-chat\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"chat_gpt_subscription_codex\",\n \"display_name\": \"ChatGPT Subscription (Codex)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://chatgpt.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 0,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"cherryin\",\n \"display_name\": \"cherryin\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"completion\",\n \"embedding\",\n \"image_generation\",\n \"rerank\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 125,\n \"model_sample\": [\n \"BAAI/bge-reranker-v2-m3(free)\",\n \"agent/deepseek-v3.1-terminus(free)\",\n \"agent/deepseek-v3.2-exp(free)\",\n \"agent/glm-4.6(free)\",\n \"agent/kimi-k2-0905(free)\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"chutes\",\n \"display_name\": \"Chutes\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 1.0,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://llm.chutes.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://llm.chutes.ai/v1/models\"\n ],\n \"api_key_env_vars\": [\n \"CHUTES_API_KEY\"\n ],\n \"model_count\": 43,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.5-TEE\",\n \"Nemotron-3-Nano-Omni-30B-TEE\",\n \"NousResearch/DeepHermes-3-Mistral-24B-Preview\",\n \"NousResearch/Hermes-4-14B\",\n \"Qwen/Qwen2.5-72B-Instruct\"\n ],\n \"trust_score\": 86,\n \"source_ids\": [\n \"litellm_constants\",\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"claudinio\",\n \"display_name\": \"Claudinio\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.claudin.io/v1\"\n ],\n \"documentation_urls\": [\n \"https://claudin.io\"\n ],\n \"api_key_env_vars\": [\n \"CLAUDINIO_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"claudinio\",\n \"claudius\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"cloudferro_sherlock\",\n \"display_name\": \"CloudFerro Sherlock\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api-sherlock.cloudferro.com/openai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.sherlock.cloudferro.com\"\n ],\n \"api_key_env_vars\": [\n \"CLOUDFERRO_SHERLOCK_API_KEY\"\n ],\n \"model_count\": 5,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.5\",\n \"meta-llama/Llama-3.3-70B-Instruct\",\n \"openai/gpt-oss-120b\",\n \"speakleash/Bielik-11B-v2.6-Instruct\",\n \"speakleash/Bielik-11B-v3.0-Instruct\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"cloudflare\",\n \"display_name\": \"Cloudflare\",\n \"aliases\": [],\n \"provider_kind\": \"cloud_platform\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.cloudflare.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 30,\n \"model_sample\": [\n \"cloudflare/@cf/aisingapore/gemma-sea-lion-v4-27b-it\",\n \"cloudflare/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b\",\n \"cloudflare/@cf/google/gemma-2b-it-lora\",\n \"cloudflare/@cf/google/gemma-4-26b-a4b-it\",\n \"cloudflare/@cf/google/gemma-7b-it-lora\"\n ],\n \"trust_score\": 66,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\",\n \"new_api\"\n ]\n },\n {\n \"id\": \"cloudflare_ai_gateway\",\n \"display_name\": \"Cloudflare AI Gateway\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"rerank\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://developers.cloudflare.com/ai-gateway\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 77,\n \"model_sample\": [\n \"anthropic/claude-3-5-haiku\",\n \"anthropic/claude-3-haiku\",\n \"anthropic/claude-3-opus\",\n \"anthropic/claude-3-sonnet\",\n \"anthropic/claude-3.5-haiku\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"cloudflare_workers_ai\",\n \"display_name\": \"Cloudflare Workers AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://developers.cloudflare.com/workers-ai/models\"\n ],\n \"api_key_env_vars\": [\n \"CLOUDFLARE_API_KEY\"\n ],\n \"model_count\": 22,\n \"model_sample\": [\n \"@cf/aisingapore/gemma-sea-lion-v4-27b-it\",\n \"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b\",\n \"@cf/google/gemma-4-26b-a4b-it\",\n \"@cf/ibm-granite/granite-4.0-h-micro\",\n \"@cf/meta/llama-3.1-8b-instruct-fp8\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"cohere_chat\",\n \"display_name\": \"Cohere Chat\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 7,\n \"model_sample\": [\n \"command-a-03-2025\",\n \"command-light\",\n \"command-r\",\n \"command-r-08-2024\",\n \"command-r-plus\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"cortecs\",\n \"display_name\": \"Cortecs\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.cortecs.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://api.cortecs.ai/v1/models\"\n ],\n \"api_key_env_vars\": [\n \"CORTECS_API_KEY\"\n ],\n \"model_count\": 58,\n \"model_sample\": [\n \"claude-4-5-sonnet\",\n \"claude-4-6-sonnet\",\n \"claude-haiku-4-5\",\n \"claude-opus4-5\",\n \"claude-opus4-6\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"crof\",\n \"display_name\": \"CrofAI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://crof.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://crof.ai/docs\"\n ],\n \"api_key_env_vars\": [\n \"CROF_API_KEY\"\n ],\n \"model_count\": 26,\n \"model_sample\": [\n \"deepseek-v3.2\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\",\n \"deepseek-v4-pro-lightning\",\n \"gemma-4-31b-it\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"crossmodel\",\n \"display_name\": \"CrossModel\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.crossmodel.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.crossmodel.ai/docs\"\n ],\n \"api_key_env_vars\": [\n \"CROSSMODEL_API_KEY\"\n ],\n \"model_count\": 46,\n \"model_sample\": [\n \"anthropic/claude-fable-5\",\n \"anthropic/claude-haiku-4-5\",\n \"anthropic/claude-opus-4-7\",\n \"anthropic/claude-opus-4-8\",\n \"anthropic/claude-opus-5\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"crusoe\",\n \"display_name\": \"Crusoe\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 7,\n \"model_sample\": [\n \"crusoe/Qwen/Qwen3-235B-A22B-Instruct-2507\",\n \"crusoe/deepseek-ai/DeepSeek-R1-0528\",\n \"crusoe/deepseek-ai/DeepSeek-V3-0324\",\n \"crusoe/google/gemma-3-12b-it\",\n \"crusoe/meta-llama/Llama-3.3-70B-Instruct\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"custom_provider\",\n \"display_name\": \"custom provider\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 30,\n \"model_sample\": [\n \"MiniMax-M2.5\",\n \"MiniMax-M2.5-highspeed\",\n \"MiniMax-M2.7\",\n \"claude-haiku-4-5\",\n \"claude-opus-4-7\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"daoxe\",\n \"display_name\": \"DaoXE\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://daoxe.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://daoxe.com/pricing\"\n ],\n \"api_key_env_vars\": [\n \"DAOXE_API_KEY\"\n ],\n \"model_count\": 9,\n \"model_sample\": [\n \"claude-haiku-4-5-20251001\",\n \"claude-opus-4-8\",\n \"claude-sonnet-4-6\",\n \"gemini-3.1-pro-preview\",\n \"gpt-5.4\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"darkbloom\",\n \"display_name\": \"Darkbloom\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.85,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"darkbloom/gemma-4-26b\",\n \"darkbloom/gpt-oss-20b\"\n ],\n \"trust_score\": 59,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"dataforseo\",\n \"display_name\": \"Dataforseo\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"dataforseo/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"dify\",\n \"display_name\": \"Dify\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.dify.ai\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"digitalocean\",\n \"display_name\": \"DigitalOcean\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"rerank\"\n ],\n \"base_urls\": [\n \"https://inference.do-ai.run/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.digitalocean.com/products/gradient-ai-platform/details/models\"\n ],\n \"api_key_env_vars\": [\n \"DIGITALOCEAN_ACCESS_TOKEN\"\n ],\n \"model_count\": 82,\n \"model_sample\": [\n \"alibaba-qwen3-32b\",\n \"all-mini-lm-l6-v2\",\n \"anthropic-claude-3-opus\",\n \"anthropic-claude-3.5-haiku\",\n \"anthropic-claude-3.5-sonnet\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"dinference\",\n \"display_name\": \"DInference\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.dinference.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://dinference.com\"\n ],\n \"api_key_env_vars\": [\n \"DINFERENCE_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"glm-4.7\",\n \"glm-5\",\n \"glm-5.1\",\n \"glm-5.2\",\n \"gpt-oss-120b\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"doubao\",\n \"display_name\": \"Doubao\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"image_generation\",\n \"video_generation\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://www.volcengine.com/docs/82379/1330310\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 33,\n \"model_sample\": [\n \"deepseek-v3-2-251201\",\n \"deepseek-v4-flash-260425\",\n \"deepseek-v4-pro-260425\",\n \"doubao-1-5-lite-32k-250115\",\n \"doubao-1-5-pro-32k-250115\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"doubao_video\",\n \"display_name\": \"DoubaoVideo\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://ark.cn-beijing.volces.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"drun\",\n \"display_name\": \"D.Run (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://chat.d.run/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.d.run\"\n ],\n \"api_key_env_vars\": [\n \"DRUN_API_KEY\"\n ],\n \"model_count\": 3,\n \"model_sample\": [\n \"public/deepseek-r1\",\n \"public/deepseek-v3\",\n \"public/minimax-m25\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"duckduckgo\",\n \"display_name\": \"Duckduckgo\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"duckduckgo/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"ebcloud\",\n \"display_name\": \"EBCloud\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://maas-api.ebcloud.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.ebtech.com/ai/model-api.html\"\n ],\n \"api_key_env_vars\": [\n \"EBCLOUD_API_KEY\"\n ],\n \"model_count\": 4,\n \"model_sample\": [\n \"DeepSeek-V4-Flash\",\n \"DeepSeek-V4-Pro\",\n \"GLM-5.1\",\n \"Kimi-K2.6\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"empiriolabs\",\n \"display_name\": \"EmpirioLabs AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.empiriolabs.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.empiriolabs.ai\"\n ],\n \"api_key_env_vars\": [\n \"EMPIRIOLABS_API_KEY\"\n ],\n \"model_count\": 36,\n \"model_sample\": [\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\",\n \"gemma-4-26b-a4b\",\n \"glm-4-5-flash\",\n \"glm-4-7-flash\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"empower\",\n \"display_name\": \"Empower\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"evroc\",\n \"display_name\": \"evroc\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [\n \"https://models.think.evroc.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.evroc.com/products/think/overview.html\"\n ],\n \"api_key_env_vars\": [\n \"EVROC_API_KEY\"\n ],\n \"model_count\": 21,\n \"model_sample\": [\n \"KBLab/kb-whisper-large\",\n \"Qwen/Qwen3-30B-A3B-Instruct-2507-FP8\",\n \"Qwen/Qwen3-Embedding-8B\",\n \"Qwen/Qwen3-Reranker-4B\",\n \"Qwen/Qwen3-VL-30B-A3B-Instruct\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"exa_ai\",\n \"display_name\": \"EXA AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"exa_ai/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"firecrawl\",\n \"display_name\": \"Firecrawl\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"firecrawl/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"firepass\",\n \"display_name\": \"Fireworks (Firepass)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.fireworks.ai/inference/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.fireworks.ai/firepass\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"accounts/fireworks/routers/kimi-k2p6-turbo\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"freemodel\",\n \"display_name\": \"FreeModel\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://cc.freemodel.dev/v1\"\n ],\n \"documentation_urls\": [\n \"https://freemodel.dev\"\n ],\n \"api_key_env_vars\": [\n \"FREEMODEL_API_KEY\"\n ],\n \"model_count\": 10,\n \"model_sample\": [\n \"claude-fable-5\",\n \"claude-haiku-4-5-20251001\",\n \"claude-opus-4-6\",\n \"claude-opus-4-7\",\n \"claude-opus-4-8\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"frogbot\",\n \"display_name\": \"FrogBot\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://app.frogbot.ai/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.frogbot.ai\"\n ],\n \"api_key_env_vars\": [\n \"FROGBOT_API_KEY\"\n ],\n \"model_count\": 26,\n \"model_sample\": [\n \"claude-haiku-4-5\",\n \"claude-opus-4-6\",\n \"claude-opus-4-7\",\n \"claude-sonnet-4-6\",\n \"deepseek-v4-pro\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"gitlab\",\n \"display_name\": \"GitLab Duo\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://docs.gitlab.com/user/duo_agent_platform\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 18,\n \"model_sample\": [\n \"duo-chat-fable-5\",\n \"duo-chat-gpt-5-1\",\n \"duo-chat-gpt-5-2\",\n \"duo-chat-gpt-5-2-codex\",\n \"duo-chat-gpt-5-3-codex\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"gmi\",\n \"display_name\": \"GMI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 17,\n \"model_sample\": [\n \"gmi/MiniMaxAI/MiniMax-M2.1\",\n \"gmi/Qwen/Qwen3-VL-235B-A22B-Instruct-FP8\",\n \"gmi/anthropic/claude-opus-4\",\n \"gmi/anthropic/claude-opus-4.5\",\n \"gmi/anthropic/claude-sonnet-4\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"gmicloud\",\n \"display_name\": \"GMI Cloud\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.gmi-serving.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.gmicloud.ai/inference-engine/api-reference/llm-api-reference\"\n ],\n \"api_key_env_vars\": [\n \"GMICLOUD_API_KEY\"\n ],\n \"model_count\": 13,\n \"model_sample\": [\n \"Qwen/Qwen3.7-Max\",\n \"anthropic/claude-opus-4.6\",\n \"anthropic/claude-opus-4.7\",\n \"anthropic/claude-opus-4.8\",\n \"anthropic/claude-sonnet-4.6\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"google_pse\",\n \"display_name\": \"Google PSE\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"google_pse/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"google_vertex\",\n \"display_name\": \"Vertex\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://cloud.google.com/vertex-ai/generative-ai/docs/models\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 35,\n \"model_sample\": [\n \"claude-3-5-haiku@20241022\",\n \"claude-haiku-4-5@20251001\",\n \"claude-opus-4-1@20250805\",\n \"claude-opus-4-5@20251101\",\n \"claude-opus-4-6@default\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"google_vertex_anthropic\",\n \"display_name\": \"Vertex (Anthropic)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 11,\n \"model_sample\": [\n \"claude-3-5-haiku@20241022\",\n \"claude-haiku-4-5@20251001\",\n \"claude-opus-4-1@20250805\",\n \"claude-opus-4-5@20251101\",\n \"claude-opus-4-6@default\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"hetzner\",\n \"display_name\": \"Hetzner\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://inference.hetzner.com/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://experiments.hetzner.com/docs/inference\"\n ],\n \"api_key_env_vars\": [\n \"HETZNER_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"Qwen/Qwen3.6-35B-A3B-FP8\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"hpc_ai\",\n \"display_name\": \"HPC-AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.hpc-ai.com/inference/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.hpc-ai.com/doc/docs/quickstart\"\n ],\n \"api_key_env_vars\": [\n \"HPC_AI_API_KEY\"\n ],\n \"model_count\": 9,\n \"model_sample\": [\n \"anthropic/claude-opus-4.7\",\n \"deepseek/deepseek-v4-flash\",\n \"deepseek/deepseek-v4-pro\",\n \"minimax/minimax-m2.5\",\n \"moonshotai/kimi-k2.5\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"hyper\",\n \"display_name\": \"Charm Hyper\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://hyper.charm.land/v1\"\n ],\n \"documentation_urls\": [\n \"https://hyper.charm.land\"\n ],\n \"api_key_env_vars\": [\n \"HYPER_API_KEY\"\n ],\n \"model_count\": 20,\n \"model_sample\": [\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\",\n \"gemma-4-26b-a4b-it\",\n \"glm-5\",\n \"glm-5.1\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"iflowcn\",\n \"display_name\": \"iFlow\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://apis.iflow.cn/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.iflow.cn/en/docs\"\n ],\n \"api_key_env_vars\": [\n \"IFLOW_API_KEY\"\n ],\n \"model_count\": 14,\n \"model_sample\": [\n \"deepseek-r1\",\n \"deepseek-v3\",\n \"deepseek-v3.2\",\n \"glm-4.6\",\n \"kimi-k2\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"inceptron\",\n \"display_name\": \"Inceptron\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.inceptron.io/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.inceptron.io\"\n ],\n \"api_key_env_vars\": [\n \"INCEPTRON_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.5\",\n \"moonshotai/Kimi-K2.6\",\n \"moonshotai/Kimi-K2.6-Fast\",\n \"moonshotai/Kimi-K2.7-Code\",\n \"nvidia/llama-3.3-70b-instruct-fp8\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"inferx\",\n \"display_name\": \"InferX\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://model.inferx.net/endpoints/v1\"\n ],\n \"documentation_urls\": [\n \"https://model.inferx.net/endpoints\"\n ],\n \"api_key_env_vars\": [\n \"INFERX_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"google/gemma-4-31b-it-fp8\",\n \"qwen/qwen3.5-122b-a10b-nvfp4\",\n \"qwen/qwen3.6-27b-fp8\",\n \"qwen/qwen3.6-35b-a3b-fp8\",\n \"qwen3-coder-next-fp8\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"io_net\",\n \"display_name\": \"IO.NET\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.intelligence.io.solutions/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://io.net/docs/guides/intelligence/io-intelligence\"\n ],\n \"api_key_env_vars\": [\n \"IOINTELLIGENCE_API_KEY\"\n ],\n \"model_count\": 17,\n \"model_sample\": [\n \"Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar\",\n \"Qwen/Qwen2.5-VL-32B-Instruct\",\n \"Qwen/Qwen3-235B-A22B-Thinking-2507\",\n \"Qwen/Qwen3-Next-80B-A3B-Instruct\",\n \"deepseek-ai/DeepSeek-R1-0528\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"jiekou\",\n \"display_name\": \"Jiekou.AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.jiekou.ai/openai\"\n ],\n \"documentation_urls\": [\n \"https://docs.jiekou.ai/docs/support/quickstart\"\n ],\n \"api_key_env_vars\": [\n \"JIEKOU_API_KEY\"\n ],\n \"model_count\": 153,\n \"model_sample\": [\n \"Sao10K/L3-8B-Stheno-v3.2\",\n \"baidu/ernie-4.5-300b-a47b-paddle\",\n \"baidu/ernie-4.5-vl-424b-a47b\",\n \"claude-haiku-4-5-20251001\",\n \"claude-haiku-4-5-20251001-dd\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"jimeng\",\n \"display_name\": \"Jimeng\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://visual.volcengineapi.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"jina\",\n \"display_name\": \"Jina\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.jina.ai\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"jina_ai\",\n \"display_name\": \"Jina AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"rerank\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"jina-reranker-v2-base-multilingual\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"kenari\",\n \"display_name\": \"Kenari\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://kenari.id/v1\"\n ],\n \"documentation_urls\": [\n \"https://kenari.id/docs\"\n ],\n \"api_key_env_vars\": [\n \"KENARI_API_KEY\"\n ],\n \"model_count\": 38,\n \"model_sample\": [\n \"claude-fable-5\",\n \"claude-opus-4-7\",\n \"claude-opus-4-8\",\n \"claude-sonnet-5\",\n \"deepseek-v4-flash\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"kimi\",\n \"display_name\": \"Kimi\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"rust_genai\"\n ]\n },\n {\n \"id\": \"kimi_for_coding\",\n \"display_name\": \"Kimi For Coding\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.kimi.com/coding/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.kimi.com/code/docs/en/third-party-tools/other-coding-agents.html\"\n ],\n \"api_key_env_vars\": [\n \"KIMI_API_KEY\"\n ],\n \"model_count\": 4,\n \"model_sample\": [\n \"k3\",\n \"k3-256k\",\n \"kimi-for-coding\",\n \"kimi-for-coding-highspeed\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"kling\",\n \"display_name\": \"Kling\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.klingai.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"kuae_cloud_coding_plan\",\n \"display_name\": \"KUAE Cloud Coding Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://coding-plan-endpoint.kuaecloud.net/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.mthreads.com/kuaecloud/kuaecloud-doc-online/coding_plan\"\n ],\n \"api_key_env_vars\": [\n \"KUAE_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"GLM-4.7\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"lemonade\",\n \"display_name\": \"Lemonade\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 5,\n \"model_sample\": [\n \"lemonade/Gemma-3-4b-it-GGUF\",\n \"lemonade/Qwen3-4B-Instruct-2507-GGUF\",\n \"lemonade/Qwen3-Coder-30B-A3B-Instruct-GGUF\",\n \"lemonade/gpt-oss-120b-mxfp-GGUF\",\n \"lemonade/gpt-oss-20b-mxfp4-GGUF\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"libertai\",\n \"display_name\": \"Libertai\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.85,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 12,\n \"model_sample\": [\n \"libertai/bge-m3\",\n \"libertai/deepseek-v4-flash\",\n \"libertai/deepseek-v4-flash-thinking\",\n \"libertai/gemma-4-31b-it\",\n \"libertai/gemma-4-31b-it-thinking\"\n ],\n \"trust_score\": 59,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"lilac\",\n \"display_name\": \"Lilac\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.getlilac.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.getlilac.com/inference/models\"\n ],\n \"api_key_env_vars\": [\n \"LILAC_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"google/gemma-4-31b-it\",\n \"minimaxai/minimax-m2.7\",\n \"minimaxai/minimax-m3\",\n \"moonshotai/kimi-k2.6\",\n \"zai-org/glm-5.1\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"linkup\",\n \"display_name\": \"Linkup\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"linkup/search\",\n \"linkup/search-deep\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"llama\",\n \"display_name\": \"Llama\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.llama.com/compat/v1\"\n ],\n \"documentation_urls\": [\n \"https://llama.developer.meta.com/docs/models\"\n ],\n \"api_key_env_vars\": [\n \"LLAMA_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"cerebras-llama-4-maverick-17b-128e-instruct\",\n \"cerebras-llama-4-scout-17b-16e-instruct\",\n \"groq-llama-4-maverick-17b-128e-instruct\",\n \"llama-3.3-70b-instruct\",\n \"llama-3.3-8b-instruct\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"llamagate\",\n \"display_name\": \"Llamagate\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 16,\n \"model_sample\": [\n \"llamagate/codellama-7b\",\n \"llamagate/deepseek-coder-6.7b\",\n \"llamagate/deepseek-r1-7b-qwen\",\n \"llamagate/deepseek-r1-8b\",\n \"llamagate/dolphin3-8b\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"llmgateway\",\n \"display_name\": \"LLM Gateway\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.llmgateway.io/v1\"\n ],\n \"documentation_urls\": [\n \"https://llmgateway.io/docs\"\n ],\n \"api_key_env_vars\": [\n \"LLMGATEWAY_API_KEY\"\n ],\n \"model_count\": 224,\n \"model_sample\": [\n \"auto\",\n \"claude-3-5-haiku\",\n \"claude-3-5-sonnet-20241022\",\n \"claude-3-7-sonnet\",\n \"claude-3-7-sonnet-20250219\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"llmtr\",\n \"display_name\": \"LLMTR\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://llmtr.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://llmtr.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"LLMTR_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"gemma-4\",\n \"magibu-11b-v8\",\n \"medgemma-4b\",\n \"qwen3-6-35b\",\n \"sincap\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"lucidquery\",\n \"display_name\": \"LucidQuery\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lucidquery.com/v1\",\n \"https://lucidquery.com/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://lucidquery.com/api/docs\",\n \"https://lucidquery.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"LUCIDQUERY_API_KEY\"\n ],\n \"model_count\": 4,\n \"model_sample\": [\n \"lucidnova-rf1-100b\",\n \"lucidquery-agi-01-frontier\",\n \"lucidquery-agi-01-swift\",\n \"lucidquery-nexus-coder\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"lynkr\",\n \"display_name\": \"Lynkr\",\n \"aliases\": [],\n \"provider_kind\": \"local_runtime\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"http://127.0.0.1:8081/v1\"\n ],\n \"documentation_urls\": [\n \"https://github.com/Fast-Editor/Lynkr\"\n ],\n \"api_key_env_vars\": [\n \"LYNKR_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"lynkr-auto\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"maritalk\",\n \"display_name\": \"Maritalk\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"meganova\",\n \"display_name\": \"Meganova\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.meganova.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.meganova.ai\"\n ],\n \"api_key_env_vars\": [\n \"MEGANOVA_API_KEY\"\n ],\n \"model_count\": 19,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.1\",\n \"MiniMaxAI/MiniMax-M2.5\",\n \"Qwen/Qwen2.5-VL-32B-Instruct\",\n \"Qwen/Qwen3-235B-A22B-Instruct-2507\",\n \"Qwen/Qwen3.5-Plus\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"merge_gateway\",\n \"display_name\": \"Merge Gateway\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://docs.merge.dev/merge-gateway\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 83,\n \"model_sample\": [\n \"anthropic/claude-haiku-4-5-20251001\",\n \"anthropic/claude-opus-4-1-20250805\",\n \"anthropic/claude-opus-4-20250514\",\n \"anthropic/claude-opus-4-5-20251101\",\n \"anthropic/claude-opus-4-6\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"meta\",\n \"display_name\": \"Meta\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 1.0,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.meta.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://dev.meta.ai/docs\"\n ],\n \"api_key_env_vars\": [\n \"META_MODEL_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"meta/muse-spark-1.1\",\n \"muse-spark-1.1\"\n ],\n \"trust_score\": 86,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\",\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"midjourney\",\n \"display_name\": \"Midjourney\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://oa.api2d.net\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"midjourney_plus\",\n \"display_name\": \"MidjourneyPlus\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.openai-sb.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"mimo\",\n \"display_name\": \"Mimo\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"rust_genai\"\n ]\n },\n {\n \"id\": \"minimax_cn\",\n \"display_name\": \"MiniMax (minimaxi.com)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.minimaxi.com/anthropic/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.minimaxi.com/docs/guides/quickstart\"\n ],\n \"api_key_env_vars\": [\n \"MINIMAX_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"MiniMax-M2\",\n \"MiniMax-M2.1\",\n \"MiniMax-M2.5\",\n \"MiniMax-M2.5-highspeed\",\n \"MiniMax-M2.7\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"minimax_cn_coding_plan\",\n \"display_name\": \"MiniMax Token Plan (minimaxi.com)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.minimaxi.com/anthropic/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.minimaxi.com/docs/token-plan/intro\"\n ],\n \"api_key_env_vars\": [\n \"MINIMAX_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"MiniMax-M2\",\n \"MiniMax-M2.1\",\n \"MiniMax-M2.5\",\n \"MiniMax-M2.5-highspeed\",\n \"MiniMax-M2.7\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"minimax_coding_plan\",\n \"display_name\": \"MiniMax Token Plan (minimax.io)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.minimax.io/anthropic/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.minimax.io/docs/token-plan/intro\"\n ],\n \"api_key_env_vars\": [\n \"MINIMAX_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"MiniMax-M2\",\n \"MiniMax-M2.1\",\n \"MiniMax-M2.5\",\n \"MiniMax-M2.5-highspeed\",\n \"MiniMax-M2.7\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"mixlayer\",\n \"display_name\": \"Mixlayer\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://models.mixlayer.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.mixlayer.com\"\n ],\n \"api_key_env_vars\": [\n \"MIXLAYER_API_KEY\"\n ],\n \"model_count\": 5,\n \"model_sample\": [\n \"qwen/qwen3.5-122b-a10b\",\n \"qwen/qwen3.5-27b\",\n \"qwen/qwen3.5-35b-a3b\",\n \"qwen/qwen3.5-397b-a17b\",\n \"qwen/qwen3.5-9b\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"moark\",\n \"display_name\": \"Moark\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://moark.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://moark.com/docs/openapi/v1\"\n ],\n \"api_key_env_vars\": [\n \"MOARK_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"GLM-4.7\",\n \"MiniMax-M2.1\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"model_oracle_ai\",\n \"display_name\": \"Model Oracle AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.modeloracle.com/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://modeloracle.com/setup\"\n ],\n \"api_key_env_vars\": [\n \"MODEL_ORACLE_API_KEY\"\n ],\n \"model_count\": 15,\n \"model_sample\": [\n \"auto\",\n \"claude-fable-5\",\n \"claude-haiku-4.5\",\n \"claude-opus-4.8\",\n \"claude-sonnet-5\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"moka_ai\",\n \"display_name\": \"MokaAI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.moka.ai\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"moonshotai_cn\",\n \"display_name\": \"Moonshot AI (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.moonshot.cn/anthropic/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.moonshot.cn/docs/api/chat\"\n ],\n \"api_key_env_vars\": [\n \"MOONSHOT_API_KEY\"\n ],\n \"model_count\": 10,\n \"model_sample\": [\n \"kimi-k2-0711-preview\",\n \"kimi-k2-0905-preview\",\n \"kimi-k2-thinking\",\n \"kimi-k2-thinking-turbo\",\n \"kimi-k2-turbo-preview\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"nearai\",\n \"display_name\": \"NEAR AI Cloud\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"rerank\"\n ],\n \"base_urls\": [\n \"https://cloud-api.near.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.near.ai\"\n ],\n \"api_key_env_vars\": [\n \"NEARAI_API_KEY\"\n ],\n \"model_count\": 37,\n \"model_sample\": [\n \"Qwen/Qwen3-30B-A3B-Instruct-2507\",\n \"Qwen/Qwen3-Embedding-0.6B\",\n \"Qwen/Qwen3-Reranker-0.6B\",\n \"Qwen/Qwen3-VL-30B-A3B-Instruct\",\n \"Qwen/Qwen3.5-122B-A10B\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"neon\",\n \"display_name\": \"Neon\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://neon.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"NEON_AI_GATEWAY_TOKEN\"\n ],\n \"model_count\": 37,\n \"model_sample\": [\n \"claude-haiku-4-5\",\n \"claude-opus-4-1\",\n \"claude-opus-4-5\",\n \"claude-opus-4-6\",\n \"claude-opus-4-7\"\n ],\n \"trust_score\": 59,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"netlify\",\n \"display_name\": \"Netlify\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://docs.netlify.com/build/ai-gateway/overview\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 68,\n \"model_sample\": [\n \"anthropic/claude-fable-5\",\n \"anthropic/claude-haiku-4-5\",\n \"anthropic/claude-haiku-4-5-20251001\",\n \"anthropic/claude-opus-4-1-20250805\",\n \"anthropic/claude-opus-4-5\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"neuralwatt\",\n \"display_name\": \"Neuralwatt\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.neuralwatt.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://portal.neuralwatt.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"NEURALWATT_API_KEY\"\n ],\n \"model_count\": 24,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.5\",\n \"Qwen/Qwen3.5-397B-A17B-FP8\",\n \"Qwen/Qwen3.6-35B-A3B\",\n \"glm-5-fast\",\n \"glm-5.1-fast\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"new_api\",\n \"display_name\": \"New API\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"nova\",\n \"display_name\": \"Nova\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.nova.amazon.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://nova.amazon.com/dev/documentation\"\n ],\n \"api_key_env_vars\": [\n \"NOVA_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"nova-2-lite-v1\",\n \"nova-2-pro-v1\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"oci\",\n \"display_name\": \"OCI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 44,\n \"model_sample\": [\n \"oci/cohere.command-a-03-2025\",\n \"oci/cohere.command-a-reasoning\",\n \"oci/cohere.command-a-reasoning-08-2025\",\n \"oci/cohere.command-a-translate-08-2025\",\n \"oci/cohere.command-a-vision\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"ofox\",\n \"display_name\": \"Ofox\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.ofox.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://ofox.ai/docs\"\n ],\n \"api_key_env_vars\": [\n \"OFOX_API_KEY\"\n ],\n \"model_count\": 13,\n \"model_sample\": [\n \"anthropic/claude-fable-5\",\n \"anthropic/claude-opus-4.8\",\n \"anthropic/claude-sonnet-5\",\n \"bailian/qwen3.7-max\",\n \"deepseek/deepseek-v4-pro\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"ollama_chat\",\n \"display_name\": \"Ollama Chat\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"oobabooga\",\n \"display_name\": \"Oobabooga\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"opencode\",\n \"display_name\": \"OpenCode Zen\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://opencode.ai/zen/v1\"\n ],\n \"documentation_urls\": [\n \"https://opencode.ai/docs/zen\"\n ],\n \"api_key_env_vars\": [\n \"OPENCODE_API_KEY\"\n ],\n \"model_count\": 85,\n \"model_sample\": [\n \"big-pickle\",\n \"claude-3-5-haiku\",\n \"claude-fable-5\",\n \"claude-haiku-4-5\",\n \"claude-opus-4-1\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"pa_lm\",\n \"display_name\": \"PaLM\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"palm\",\n \"display_name\": \"Palm\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"completion\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 6,\n \"model_sample\": [\n \"palm/chat-bison\",\n \"palm/chat-bison-001\",\n \"palm/text-bison\",\n \"palm/text-bison-001\",\n \"palm/text-bison-safety-off\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"parallel_ai\",\n \"display_name\": \"Parallel AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"parallel_ai/search\",\n \"parallel_ai/search-pro\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"perplexity_agent\",\n \"display_name\": \"Perplexity Agent\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.perplexity.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.perplexity.ai/docs/agent-api/models\"\n ],\n \"api_key_env_vars\": [\n \"PERPLEXITY_API_KEY\"\n ],\n \"model_count\": 18,\n \"model_sample\": [\n \"anthropic/claude-haiku-4-5\",\n \"anthropic/claude-opus-4-5\",\n \"anthropic/claude-opus-4-6\",\n \"anthropic/claude-opus-4-7\",\n \"anthropic/claude-sonnet-4-5\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"pinstripes\",\n \"display_name\": \"Pinstripes\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.85,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 6,\n \"model_sample\": [\n \"pinstripes/ps/deepseek-v4-flash\",\n \"pinstripes/ps/glm-4.5-air\",\n \"pinstripes/ps/minimax-m2.7\",\n \"pinstripes/ps/qwen3-30b-a3b\",\n \"pinstripes/ps/qwen3-coder-30b-a3b\"\n ],\n \"trust_score\": 59,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"poe\",\n \"display_name\": \"Poe\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 1.0,\n \"capabilities\": [\n \"chat\",\n \"image_generation\"\n ],\n \"base_urls\": [\n \"https://api.poe.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://creator.poe.com/docs/external-applications/openai-compatible-api\"\n ],\n \"api_key_env_vars\": [\n \"POE_API_KEY\"\n ],\n \"model_count\": 137,\n \"model_sample\": [\n \"anthropic/claude-haiku-3\",\n \"anthropic/claude-haiku-3.5\",\n \"anthropic/claude-haiku-4.5\",\n \"anthropic/claude-opus-4\",\n \"anthropic/claude-opus-4.1\"\n ],\n \"trust_score\": 86,\n \"source_ids\": [\n \"litellm_constants\",\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"poolside\",\n \"display_name\": \"Poolside\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://inference.poolside.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.poolside.ai\"\n ],\n \"api_key_env_vars\": [\n \"POOLSIDE_API_KEY\"\n ],\n \"model_count\": 4,\n \"model_sample\": [\n \"poolside/laguna-m.1\",\n \"poolside/laguna-s-2.1\",\n \"poolside/laguna-xs-2.1\",\n \"poolside/laguna-xs.2\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"ppinfra\",\n \"display_name\": \"PPInfra\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 101,\n \"model_sample\": [\n \"ai_infer_test_2\",\n \"ai_infer_test_3\",\n \"baidu/ernie-4.5-0.3b\",\n \"baidu/ernie-4.5-21B-a3b\",\n \"baidu/ernie-4.5-21b-a3b-thinking\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"privatemode_ai\",\n \"display_name\": \"Privatemode AI\",\n \"aliases\": [],\n \"provider_kind\": \"local_runtime\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [\n \"http://localhost:8080/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.privatemode.ai/api/overview\"\n ],\n \"api_key_env_vars\": [\n \"PRIVATEMODE_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"gemma-3-27b\",\n \"gpt-oss-120b\",\n \"kimi-k2.6\",\n \"qwen3-coder-30b-a3b\",\n \"qwen3-embedding-4b\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"publicai\",\n \"display_name\": \"Publicai\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.85,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 9,\n \"model_sample\": [\n \"publicai/BSC-LT/ALIA-40b-instruct_Q8_0\",\n \"publicai/BSC-LT/salamandra-7b-instruct-tools-16k\",\n \"publicai/aisingapore/Gemma-SEA-LION-v4-27B-IT\",\n \"publicai/aisingapore/Qwen-SEA-LION-v4-32B-IT\",\n \"publicai/allenai/Olmo-3-32B-Think\"\n ],\n \"trust_score\": 59,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"qihang_ai\",\n \"display_name\": \"QiHang\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.qhaigc.net/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.qhaigc.net/docs\"\n ],\n \"api_key_env_vars\": [\n \"QIHANG_API_KEY\"\n ],\n \"model_count\": 9,\n \"model_sample\": [\n \"claude-haiku-4-5-20251001\",\n \"claude-opus-4-5-20251101\",\n \"claude-sonnet-4-5-20250929\",\n \"gemini-2.5-flash\",\n \"gemini-3-flash-preview\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"ragflow\",\n \"display_name\": \"Ragflow\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.65,\n \"capabilities\": [],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"recraft\",\n \"display_name\": \"Recraft\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"image_generation\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"recraft/recraftv2\",\n \"recraft/recraftv3\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"reducto\",\n \"display_name\": \"Reducto\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"other\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"reducto/parse-legacy\",\n \"reducto/parse-v3\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"regolo_ai\",\n \"display_name\": \"Regolo AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"image_generation\",\n \"rerank\"\n ],\n \"base_urls\": [\n \"https://api.regolo.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.regolo.ai\"\n ],\n \"api_key_env_vars\": [\n \"REGOLO_API_KEY\"\n ],\n \"model_count\": 13,\n \"model_sample\": [\n \"gpt-oss-120b\",\n \"gpt-oss-20b\",\n \"llama-3.1-8b-instruct\",\n \"llama-3.3-70b-instruct\",\n \"minimax-m2.5\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"routing_run\",\n \"display_name\": \"routing.run\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://ai.routing.sh/v1\",\n \"https://api.routing.run/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.routing.run/api-reference/models\"\n ],\n \"api_key_env_vars\": [\n \"ROUTING_RUN_API_KEY\"\n ],\n \"model_count\": 41,\n \"model_sample\": [\n \"claude-opus-4-8\",\n \"claude-sonnet-4-6\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-pro\",\n \"glm-5.2\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"runwayml\",\n \"display_name\": \"Runwayml\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"audio_speech\",\n \"image_generation\",\n \"video_generation\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 6,\n \"model_sample\": [\n \"runwayml/eleven_multilingual_v2\",\n \"runwayml/gen3a_turbo\",\n \"runwayml/gen4_aleph\",\n \"runwayml/gen4_image\",\n \"runwayml/gen4_image_turbo\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"sagemaker\",\n \"display_name\": \"Sagemaker\",\n \"aliases\": [],\n \"provider_kind\": \"cloud_platform\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\",\n \"completion\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 6,\n \"model_sample\": [\n \"sagemaker/meta-textgeneration-llama-2-13b\",\n \"sagemaker/meta-textgeneration-llama-2-13b-f\",\n \"sagemaker/meta-textgeneration-llama-2-70b\",\n \"sagemaker/meta-textgeneration-llama-2-70b-b-f\",\n \"sagemaker/meta-textgeneration-llama-2-7b\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"sagemaker_chat\",\n \"display_name\": \"Sagemaker Chat\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"sagemaker_nova\",\n \"display_name\": \"Sagemaker Nova\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"sap_ai_core\",\n \"display_name\": \"SAP AI Core\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://help.sap.com/docs/sap-ai-core\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 26,\n \"model_sample\": [\n \"anthropic--claude-3-haiku\",\n \"anthropic--claude-3-opus\",\n \"anthropic--claude-3-sonnet\",\n \"anthropic--claude-3.5-sonnet\",\n \"anthropic--claude-3.7-sonnet\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"searxng\",\n \"display_name\": \"Searxng\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"searxng/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"serper\",\n \"display_name\": \"Serper\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"serper/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"snowflake\",\n \"display_name\": \"Snowflake\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 37,\n \"model_sample\": [\n \"snowflake/claude-3-5-sonnet\",\n \"snowflake/claude-3-7-sonnet\",\n \"snowflake/claude-4-opus\",\n \"snowflake/claude-4-sonnet\",\n \"snowflake/claude-haiku-4-5\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"snowflake_cortex\",\n \"display_name\": \"Snowflake Cortex\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://${snowflake_account}.snowflakecomputing.com/api/v2/cortex/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-rest-api\"\n ],\n \"api_key_env_vars\": [\n \"SNOWFLAKE_CORTEX_PAT\"\n ],\n \"model_count\": 21,\n \"model_sample\": [\n \"claude-fable-5\",\n \"claude-haiku-4-5\",\n \"claude-opus-4-7\",\n \"claude-opus-4-8\",\n \"claude-sonnet-4-5\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"soniox\",\n \"display_name\": \"Soniox\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"audio_transcription\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"soniox/stt-async-v4\",\n \"soniox/stt-async-v5\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"sora\",\n \"display_name\": \"Sora\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.openai.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"stability\",\n \"display_name\": \"Stability\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"image_edit\",\n \"image_generation\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 23,\n \"model_sample\": [\n \"stability/conservative\",\n \"stability/creative\",\n \"stability/erase\",\n \"stability/fast\",\n \"stability/inpaint\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"stackit\",\n \"display_name\": \"STACKIT\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.stackit.cloud/products/data-and-ai/ai-model-serving/basics/available-shared-models\"\n ],\n \"api_key_env_vars\": [\n \"STACKIT_API_KEY\"\n ],\n \"model_count\": 10,\n \"model_sample\": [\n \"Qwen/Qwen3-VL-235B-A22B-Instruct-FP8\",\n \"Qwen/Qwen3-VL-Embedding-8B\",\n \"Qwen/Qwen3.6-27B\",\n \"cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic\",\n \"google/gemma-3-27b-it\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"stepfun_ai_step_plan\",\n \"display_name\": \"StepFun Step Plan (Global)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.stepfun.ai/step_plan/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.stepfun.ai/docs/en/step-plan/integrations/reasoning-api\"\n ],\n \"api_key_env_vars\": [\n \"STEPFUN_API_KEY\"\n ],\n \"model_count\": 3,\n \"model_sample\": [\n \"step-3.5-flash\",\n \"step-3.5-flash-2603\",\n \"step-3.7-flash\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"stepfun_step_plan\",\n \"display_name\": \"StepFun Step Plan (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.stepfun.com/step_plan/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.stepfun.com/docs/zh/step-plan/integrations/reasoning-api\"\n ],\n \"api_key_env_vars\": [\n \"STEPFUN_API_KEY\"\n ],\n \"model_count\": 4,\n \"model_sample\": [\n \"step-3.5-flash\",\n \"step-3.5-flash-2603\",\n \"step-3.7-flash\",\n \"step-router-v1\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"sub2_api\",\n \"display_name\": \"Sub2API\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"subconscious\",\n \"display_name\": \"Subconscious\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.subconscious.dev/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.subconscious.dev\"\n ],\n \"api_key_env_vars\": [\n \"SUBCONSCIOUS_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"subconscious/glm-5.2\",\n \"subconscious/tim-qwen3.6-27b\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"suno_api\",\n \"display_name\": \"SunoAPI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"synthetic\",\n \"display_name\": \"Synthetic\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 1.0,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.synthetic.new/openai/v1\"\n ],\n \"documentation_urls\": [\n \"https://synthetic.new/pricing\"\n ],\n \"api_key_env_vars\": [\n \"SYNTHETIC_API_KEY\"\n ],\n \"model_count\": 38,\n \"model_sample\": [\n \"hf:MiniMaxAI/MiniMax-M2\",\n \"hf:MiniMaxAI/MiniMax-M2.1\",\n \"hf:MiniMaxAI/MiniMax-M2.5\",\n \"hf:MiniMaxAI/MiniMax-M3\",\n \"hf:Qwen/Qwen2.5-Coder-32B-Instruct\"\n ],\n \"trust_score\": 86,\n \"source_ids\": [\n \"litellm_constants\",\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tavily\",\n \"display_name\": \"Tavily\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"tavily/search\",\n \"tavily/search-advanced\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"tencent_coding_plan\",\n \"display_name\": \"Tencent Coding Plan (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/coding/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1772/128947\"\n ],\n \"api_key_env_vars\": [\n \"TENCENT_CODING_PLAN_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"glm-5\",\n \"hunyuan-2.0-instruct\",\n \"hunyuan-2.0-thinking\",\n \"hunyuan-t1\",\n \"hunyuan-turbos\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan\",\n \"display_name\": \"Tencent Token Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130060\"\n ],\n \"api_key_env_vars\": [\n \"TENCENT_TOKEN_PLAN_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"hy3\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_enterprise_auto\",\n \"display_name\": \"腾讯云 Token Plan / Token Plan 企业版轻享套餐\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tokenhub.tencentmaas.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130660\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"auto\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_enterprise_pro\",\n \"display_name\": \"腾讯云 Token Plan / Token Plan 企业版专业套餐\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tokenhub.tencentmaas.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130660\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 16,\n \"model_sample\": [\n \"auto\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-flash-202605\",\n \"deepseek-v4-pro\",\n \"deepseek-v4-pro-202606\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_general_personal\",\n \"display_name\": \"腾讯云 Token Plan / 通用 Token Plan(个人版)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130060\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 8,\n \"model_sample\": [\n \"deepseek-v4-flash-202605\",\n \"deepseek-v4-pro-202606\",\n \"glm-5\",\n \"glm-5.1\",\n \"kimi-k2.5\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_token_plan_hy_personal\",\n \"display_name\": \"腾讯云 Token Plan / Hy Token Plan(个人版)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lkeap.cloud.tencent.com/plan/v3\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130060\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"hy3\",\n \"hy3-preview\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tencent_tokenhub\",\n \"display_name\": \"Tencent TokenHub\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tokenhub.tencentmaas.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://cloud.tencent.com/document/product/1823/130050\"\n ],\n \"api_key_env_vars\": [\n \"TENCENT_TOKENHUB_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"hy3\",\n \"hy3-preview\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"tensormesh\",\n \"display_name\": \"Tensormesh\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 0.85,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 10,\n \"model_sample\": [\n \"tensormesh/MiniMaxAI/MiniMax-M2.5\",\n \"tensormesh/Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8\",\n \"tensormesh/Qwen/Qwen3.5-397B-A17B-FP8\",\n \"tensormesh/Qwen/Qwen3.6-27B-FP8\",\n \"tensormesh/deepseek-ai/DeepSeek-V4-Flash\"\n ],\n \"trust_score\": 59,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"text_completion_codestral\",\n \"display_name\": \"Text Completion Codestral\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\",\n \"completion\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"text-completion-codestral/codestral-2405\",\n \"text-completion-codestral/codestral-latest\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"text_completion_inception\",\n \"display_name\": \"Text Completion Inception\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"chat\",\n \"completion\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"text-completion-inception/mercury-edit-2\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"the_grid_ai\",\n \"display_name\": \"The Grid AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.thegrid.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://thegrid.ai/docs\"\n ],\n \"api_key_env_vars\": [\n \"THEGRIDAI_API_KEY\"\n ],\n \"model_count\": 9,\n \"model_sample\": [\n \"agent-max\",\n \"agent-prime\",\n \"agent-standard\",\n \"code-max\",\n \"code-prime\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"thinkingmachines\",\n \"display_name\": \"Thinking Machines\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://tinker.thinkingmachines.dev/services/tinker-prod/anthropic/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://tinker-docs.thinkingmachines.ai/tinker/compatible-apis/anthropic\"\n ],\n \"api_key_env_vars\": [\n \"TINKER_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"thinkingmachines/Inkling\",\n \"thinkingmachines/Inkling:peft:262144\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"tinfoil\",\n \"display_name\": \"Tinfoil\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://inference.tinfoil.sh/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.tinfoil.sh\"\n ],\n \"api_key_env_vars\": [\n \"TINFOIL_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"gemma4-31b\",\n \"glm-5-2\",\n \"gpt-oss-120b\",\n \"gpt-oss-safeguard-120b\",\n \"kimi-k2-6\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"tinyfish\",\n \"display_name\": \"Tinyfish\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"tinyfish/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"tokenflux\",\n \"display_name\": \"Tokenflux\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 164,\n \"model_sample\": [\n \"anthropic/claude-3-haiku\",\n \"anthropic/claude-3.5-haiku\",\n \"anthropic/claude-3.5-sonnet\",\n \"anthropic/claude-3.7-sonnet\",\n \"anthropic/claude-haiku-4.5\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"triton\",\n \"display_name\": \"Triton\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"trustedrouter\",\n \"display_name\": \"TrustedRouter\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.trustedrouter.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://trustedrouter.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"TRUSTEDROUTER_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"auto\",\n \"cheap\",\n \"e2e\",\n \"fast\",\n \"synth\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"umans_ai\",\n \"display_name\": \"Umans AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.code.umans.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://app.umans.ai/offers/code/docs/orgs\"\n ],\n \"api_key_env_vars\": [\n \"UMANS_AI_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"umans-coder\",\n \"umans-flash\",\n \"umans-glm-5.1\",\n \"umans-glm-5.2\",\n \"umans-kimi-k2.6\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"umans_ai_coding_plan\",\n \"display_name\": \"Umans AI Coding Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.code.umans.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://app.umans.ai/offers/code/docs\"\n ],\n \"api_key_env_vars\": [\n \"UMANS_AI_CODING_PLAN_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"umans-coder\",\n \"umans-flash\",\n \"umans-glm-5.1\",\n \"umans-glm-5.2\",\n \"umans-kimi-k2.6\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"unorouter\",\n \"display_name\": \"UnoRouter\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.unorouter.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://unorouter.com/models\"\n ],\n \"api_key_env_vars\": [\n \"UNOROUTER_API_KEY\"\n ],\n \"model_count\": 23,\n \"model_sample\": [\n \"claude-haiku-4-5-20251001\",\n \"claude-opus-4-8\",\n \"claude-sonnet-5\",\n \"deepseek-v4-flash\",\n \"deepseek-v4-flash:free\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"venice\",\n \"display_name\": \"Venice AI\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://docs.venice.ai\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 75,\n \"model_sample\": [\n \"aion-labs-aion-2-0\",\n \"arcee-trinity-large-thinking\",\n \"claude-fable-5\",\n \"claude-opus-4-5\",\n \"claude-opus-4-6\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"vertex_ai_ai21_models\",\n \"display_name\": \"Vertex AI Ai21 Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 5,\n \"model_sample\": [\n \"vertex_ai/jamba-1.5\",\n \"vertex_ai/jamba-1.5-large\",\n \"vertex_ai/jamba-1.5-large@001\",\n \"vertex_ai/jamba-1.5-mini\",\n \"vertex_ai/jamba-1.5-mini@001\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_anthropic_models\",\n \"display_name\": \"Vertex AI Anthropic Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 37,\n \"model_sample\": [\n \"vertex_ai/claude-3-5-haiku\",\n \"vertex_ai/claude-3-5-haiku@20241022\",\n \"vertex_ai/claude-3-5-sonnet\",\n \"vertex_ai/claude-3-5-sonnet@20240620\",\n \"vertex_ai/claude-3-7-sonnet@20250219\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_deepseek_models\",\n \"display_name\": \"Vertex AI Deepseek Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 3,\n \"model_sample\": [\n \"vertex_ai/deepseek-ai/deepseek-r1-0528-maas\",\n \"vertex_ai/deepseek-ai/deepseek-v3.1-maas\",\n \"vertex_ai/deepseek-ai/deepseek-v3.2-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_language_models\",\n \"display_name\": \"Vertex AI Language Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"image_generation\",\n \"realtime\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 42,\n \"model_sample\": [\n \"deep-research-pro-preview-12-2025\",\n \"gemini-2.0-flash\",\n \"gemini-2.0-flash-001\",\n \"gemini-2.0-flash-lite\",\n \"gemini-2.0-flash-lite-001\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_llama_models\",\n \"display_name\": \"Vertex AI Llama Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 11,\n \"model_sample\": [\n \"vertex_ai/meta/llama-3.1-405b-instruct-maas\",\n \"vertex_ai/meta/llama-3.1-70b-instruct-maas\",\n \"vertex_ai/meta/llama-3.1-8b-instruct-maas\",\n \"vertex_ai/meta/llama-3.2-90b-vision-instruct-maas\",\n \"vertex_ai/meta/llama-4-maverick-17b-128e-instruct-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_minimax_models\",\n \"display_name\": \"Vertex AI Minimax Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"vertex_ai/minimaxai/minimax-m2-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_mistral_models\",\n \"display_name\": \"Vertex AI Mistral Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 19,\n \"model_sample\": [\n \"vertex_ai/codestral-2\",\n \"vertex_ai/codestral-2501\",\n \"vertex_ai/codestral-2@001\",\n \"vertex_ai/codestral@2405\",\n \"vertex_ai/codestral@latest\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_moonshot_models\",\n \"display_name\": \"Vertex AI Moonshot Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"vertex_ai/moonshotai/kimi-k2-thinking-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_openai_models\",\n \"display_name\": \"Vertex AI Openai Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 3,\n \"model_sample\": [\n \"vertex_ai/google/gemma-4-26b-a4b-it-maas\",\n \"vertex_ai/openai/gpt-oss-120b-maas\",\n \"vertex_ai/openai/gpt-oss-20b-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_qwen_models\",\n \"display_name\": \"Vertex AI Qwen Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 4,\n \"model_sample\": [\n \"vertex_ai/qwen/qwen3-235b-a22b-instruct-2507-maas\",\n \"vertex_ai/qwen/qwen3-coder-480b-a35b-instruct-maas\",\n \"vertex_ai/qwen/qwen3-next-80b-a3b-instruct-maas\",\n \"vertex_ai/qwen/qwen3-next-80b-a3b-thinking-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_text_models\",\n \"display_name\": \"Vertex AI Text Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"completion\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"text-unicorn\",\n \"text-unicorn@001\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vertex_ai_zai_models\",\n \"display_name\": \"Vertex AI ZAI Models\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 2,\n \"model_sample\": [\n \"vertex_ai/zai-org/glm-4.7-maas\",\n \"vertex_ai/zai-org/glm-5-maas\"\n ],\n \"trust_score\": 37,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"vidu\",\n \"display_name\": \"Vidu\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.vidu.cn\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"vivgrid\",\n \"display_name\": \"Vivgrid\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.vivgrid.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.vivgrid.com/models\"\n ],\n \"api_key_env_vars\": [\n \"VIVGRID_API_KEY\"\n ],\n \"model_count\": 17,\n \"model_sample\": [\n \"deepseek-v3.2\",\n \"deepseek-v4-pro\",\n \"gemini-3.1-flash-lite-preview\",\n \"gemini-3.1-pro-preview\",\n \"glm-5.2\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"volc_engine\",\n \"display_name\": \"VolcEngine\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://ark.cn-beijing.volces.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"vultr\",\n \"display_name\": \"Vultr\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.vultrinference.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://api.vultrinference.com\"\n ],\n \"api_key_env_vars\": [\n \"VULTR_API_KEY\"\n ],\n \"model_count\": 12,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.7\",\n \"Qwen/Qwen3.5-397B-A17B\",\n \"Qwen/Qwen3.6-27B\",\n \"XiaomiMiMo/MiMo-V2.5-Pro\",\n \"deepseek-ai/DeepSeek-V4-Flash\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"wandb\",\n \"display_name\": \"Weights & Biases\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L2\",\n \"protocol\": \"openai\",\n \"openai_compatible\": true,\n \"confidence\": 1.0,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.inference.wandb.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.wandb.ai/guides/integrations/inference\"\n ],\n \"api_key_env_vars\": [\n \"WANDB_API_KEY\"\n ],\n \"model_count\": 48,\n \"model_sample\": [\n \"JetBrains/Mellum2-12B-A2.5B-Instruct\",\n \"MiniMaxAI/MiniMax-M2.5\",\n \"MiniMaxAI/MiniMax-M3\",\n \"OpenPipe/Qwen3-14B-Instruct\",\n \"Qwen/Qwen3-235B-A22B-Instruct-2507\"\n ],\n \"trust_score\": 98,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\",\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"watsonx\",\n \"display_name\": \"Watsonx\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.5,\n \"capabilities\": [\n \"audio_transcription\",\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 29,\n \"model_sample\": [\n \"watsonx/bigscience/mt0-xxl-13b\",\n \"watsonx/core42/jais-13b-chat\",\n \"watsonx/google/flan-t5-xl-3b\",\n \"watsonx/ibm/granite-13b-chat-v2\",\n \"watsonx/ibm/granite-13b-instruct-v2\"\n ],\n \"trust_score\": 49,\n \"source_ids\": [\n \"litellm_constants\",\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"watsonx_text\",\n \"display_name\": \"Watsonx Text\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"xiaomi_token_plan_ams\",\n \"display_name\": \"Xiaomi Token Plan (Europe)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://token-plan-ams.xiaomimimo.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.xiaomimimo.com\"\n ],\n \"api_key_env_vars\": [\n \"XIAOMI_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"mimo-v2-omni\",\n \"mimo-v2-pro\",\n \"mimo-v2-tts\",\n \"mimo-v2.5\",\n \"mimo-v2.5-pro\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"xiaomi_token_plan_cn\",\n \"display_name\": \"Xiaomi Token Plan (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://token-plan-cn.xiaomimimo.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.xiaomimimo.com\"\n ],\n \"api_key_env_vars\": [\n \"XIAOMI_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"mimo-v2-omni\",\n \"mimo-v2-pro\",\n \"mimo-v2-tts\",\n \"mimo-v2.5\",\n \"mimo-v2.5-pro\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"xiaomi_token_plan_sgp\",\n \"display_name\": \"Xiaomi Token Plan (Singapore)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://token-plan-sgp.xiaomimimo.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.xiaomimimo.com\"\n ],\n \"api_key_env_vars\": [\n \"XIAOMI_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"mimo-v2-omni\",\n \"mimo-v2-pro\",\n \"mimo-v2-tts\",\n \"mimo-v2.5\",\n \"mimo-v2.5-pro\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"xpersona\",\n \"display_name\": \"Xpersona\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://www.xpersona.co/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.xpersona.co/docs\"\n ],\n \"api_key_env_vars\": [\n \"XPERSONA_API_KEY\"\n ],\n \"model_count\": 3,\n \"model_sample\": [\n \"claude-fable-5\",\n \"xpersona-frieren-coder\",\n \"xpersona-gpt-5.5\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"xunfei\",\n \"display_name\": \"Xunfei\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"you_com\",\n \"display_name\": \"YOU COM\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"L3\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"search\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 1,\n \"model_sample\": [\n \"you_com/search\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"litellm_prices\"\n ]\n },\n {\n \"id\": \"zai_coding_plan\",\n \"display_name\": \"Z.AI Coding Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.z.ai/api/coding/paas/v4\"\n ],\n \"documentation_urls\": [\n \"https://docs.z.ai/devpack/overview\"\n ],\n \"api_key_env_vars\": [\n \"ZHIPU_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"glm-4.5-air\",\n \"glm-4.7\",\n \"glm-5-turbo\",\n \"glm-5.1\",\n \"glm-5.2\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"zeldoc\",\n \"display_name\": \"Zeldoc\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.zeldoc.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.zeldoc.ai\"\n ],\n \"api_key_env_vars\": [\n \"ZELDOC_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"z-code\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"zenifra\",\n \"display_name\": \"Zenifra\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://ai.zenifra.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.zenifra.com\"\n ],\n \"api_key_env_vars\": [\n \"ZENIFRA_AI_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"alibaba/qwen3.6-35b-a3b\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"zenmux\",\n \"display_name\": \"ZenMux\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\",\n \"embedding\",\n \"image_generation\"\n ],\n \"base_urls\": [\n \"https://zenmux.ai/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.zenmux.ai\"\n ],\n \"api_key_env_vars\": [\n \"ZENMUX_API_KEY\"\n ],\n \"model_count\": 164,\n \"model_sample\": [\n \"anthropic/claude-3.5-haiku\",\n \"anthropic/claude-3.7-sonnet\",\n \"anthropic/claude-fable-5\",\n \"anthropic/claude-haiku-4.5\",\n \"anthropic/claude-opus-4\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"zhipu_v4\",\n \"display_name\": \"ZhipuV4\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://open.bigmodel.cn\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"zhipuai_coding_plan\",\n \"display_name\": \"Zhipu AI Coding Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://open.bigmodel.cn/api/coding/paas/v4\"\n ],\n \"documentation_urls\": [\n \"https://docs.bigmodel.cn/cn/coding-plan/overview\"\n ],\n \"api_key_env_vars\": [\n \"ZHIPU_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"glm-4.5-air\",\n \"glm-4.6v\",\n \"glm-4.7\",\n \"glm-5-turbo\",\n \"glm-5.1\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n }\n ]\n}"}}, "docs/internal/provider-research/batch-13.md": {"d4bfcae94f036812a833dbb6ddb703136eed4760": {"t": 1785809856.3626792, "n": 23771, "h": "0e658eb8fcbff78d", "c": "# 第 13 批调研记录(14 个 provider)\n\n> 调研日期:2026-07-28。本批共 14 个 provider,按 canonical id 字母序排列。\n> 证据裁决遵循 RFC-0006 §2.1:官方 API 文档/SDK > 多来源一致 > 单一第三方。\n> inventory 的 tier/protocol/openai_compatible/confidence 字段仅作线索,不作依据。\n\n---\n\n### vidu — Vidu\n\n- **canonical ID**:vidu\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):inventory 标 chat,**实际为视频生成(text-to-video / image-to-video),chat 标注疑似错误**\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://platform.vidu.com/docs/text-to-video 、https://platform.vidu.com/docs/image-to-video 、https://platform.vidu.com/docs/vidu-s1\n- **核验来源**:官方 API 文档(platform.vidu.com,JS 渲染页面,部分内容经 WebSearch 片段确认)\n- **证据强度**:中(官方文档确认其为视频生成平台 + Token 鉴权 + 异步任务模型;但页面 JS 渲染,未能读取完整 endpoint 参数细节)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://api.vidu.cn\n- **鉴权**:方式=`Authorization: Token {api_key}`(示例 `Token vda_xxx`)/ 环境变量=未知(inventory 未给出)/ 是否必需=是\n- **endpoint 公式**:异步任务模式——POST 创建生成任务(需设置 `callback_url`),任务状态变化时 Vidu 回调;亦支持轮询查询。具体 path 未能从可读片段完整确认(疑似 `/ent/v2/...` 系列)\n- **协议类型**:专用模态(视频生成,原生异步任务协议,非 OpenAI Chat 格式)\n- **请求结构要点**:任务创建体含 prompt/图片输入、callback_url 等字段;非 messages 数组结构\n- **响应结构要点**:任务对象含 task_id、状态字段;视频产物通过回调或查询返回 URL\n- **流式**:未知(任务为异步回调/轮询;Vidu S1 实时交互为 session 模式)\n- **错误结构**:未知\n- **特有行为**:纯视频生成;S1 模型为实时交互式视频生成(session create API);与 chat completions 无关\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:模态专用\n- **依据**:Vidu 是视频生成平台,采用异步任务+回调协议,与 OpenAI Chat Completions 结构无关,inventory 的 chat 能力标注错误\n- **可复用模型 ID 样例**:未知(inventory model_sample 为空)\n- **是否需扩展共享层**:否(属于视频模态独立实现,不走 OpenAI 共享层)\n\n#### 4. 风险与限制\n\n- inventory 将能力标为 chat,与官方文档(视频生成)不符,需在 inventory 修正能力标注\n- 官方文档为 JS 渲染 SPA,endpoint 完整公式未完整读取,实现前需二次核验 `/ent/v2` 系列路径与请求/回调字段\n- 鉴权用 `Token` 前缀而非 `Bearer`,需注意 header 构造\n\n#### 5. 优先级建议\n\n- **优先级**:P2(后续)\n- **理由**:视频生成模态,非 chat 适配范畴;若 aimux 规划视频模态支持可纳入,否则暂缓\n\n---\n\n### vivgrid — Vivgrid\n\n- **canonical ID**:vivgrid\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat(聚合 GPT/Claude/Gemini/DeepSeek/GLM 等多家模型)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://vivgrid.com/docs/api/agent/completions 、https://docs.vivgrid.com/models\n- **核验来源**:官方 API 文档\n- **证据强度**:强(官方文档直接给出 OpenAI-compatible Chat Completions endpoint、请求体与响应体示例)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://api.vivgrid.com/v1\n- **鉴权**:方式=Bearer token(`Authorization: Bearer `)/ 环境变量=VIVGRID_API_KEY(inventory)/ 是否必需=是\n- **endpoint 公式**:`POST https://api.vivgrid.com/v1/chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI Chat Completions 体——`model`、`messages`、`stream`、`max_completion_tokens`;额外支持 `reasoning_effort`(medium 等)字段\n- **响应结构要点**:标准 `chat.completion` 对象——`id`、`object`、`created`、`model`、`choices[].message`、`finish_reason`、`usage{prompt_tokens,completion_tokens,total_tokens}`\n- **流式**:SSE(`stream: true`)\n- **错误结构**:返回 401/404/500 等状态码(具体 body 结构未在可读片段给出)\n- **特有行为**:模型可为 `managed`(由后端 Agent 设置管理);文档称 API 调用可不指定 model-name;`reasoning_effort` 为 OpenAI o-series 风格扩展\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装(`reasoning_effort` 字段属 OpenAI o-series 已有概念,可由共享层透传,无需单独扩展)\n- **依据**:官方文档明确标注 \"OpenAI-compatible Chat Completions endpoint\",请求/响应结构与 OpenAI 一致\n- **可复用模型 ID 样例**:glm-5.2、deepseek-v4-pro、gemini-3.1-pro-preview、claude-sonnet-5、gpt-5.5(聚合多家)\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- `model: \"managed\"` 特殊值与按 model-name 路由的语义不同,薄封装需保留透传模型字符串\n- 聚合网关,模型可用性与计费随上游变动\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:官方文档明确 OpenAI 兼容,薄封装成本低、模型覆盖广\n\n---\n\n### volc_engine — VolcEngine\n\n- **canonical ID**:volc_engine\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat(火山方舟 Ark 大模型推理)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://www.volcengine.com/docs/82379/2160841 (火山方舟接入三方工具,官方)\n- **核验来源**:官方 API 文档 + 多来源一致(GitHub hermes-agent、Dify marketplace 均一致)\n- **证据强度**:强(官方文档明确\"火山方舟兼容 OpenAI 和 Anthropic 接口协议\",多来源一致确认 endpoint 与鉴权)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://ark.cn-beijing.volces.com/api/v3 (inventory 给出根域 `https://ark.cn-beijing.volces.com`,实际 OpenAI 兼容路径为 `/api/v3`)\n- **鉴权**:方式=Bearer API Key(Ark API Key)/ 环境变量=未知(inventory 未给出,社区常用 `ARK_API_KEY` 或 `VOLC_API_KEY`)/ 是否必需=是\n- **endpoint 公式**:`POST https://ark.cn-beijing.volces.com/api/v3/chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI Chat Completions 体;`model` 字段填接入点 endpoint id(如 `ep-xxx`)而非模型名\n- **响应结构要点**:与 OpenAI Chat Completions 响应结构一致\n- **流式**:SSE(`stream: true`)\n- **错误结构**:与 OpenAI 共享结构基本一致(具体 body 未完整读取)\n- **特有行为**:同时兼容 Anthropic Messages 协议;模型通过 endpoint id 路由;地域为 cn-beijing\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方文档明确兼容 OpenAI 接口协议,请求/响应可由 OpenAI 共享层表达;endpoint id 作为 model 字符串透传即可\n- **可复用模型 ID 样例**:inventory 为空(实际使用 endpoint id,如 `ep-20240xxxxxxxx`)\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- base URL 需补 `/api/v3` 路径,inventory 根域不完整\n- 鉴权环境变量 inventory 缺失,需补 `ARK_API_KEY`\n- 模型以 endpoint id 而非模型名调用,文档/样例需说明\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:主流国内大模型网关,官方明确 OpenAI 兼容,薄封装成本低\n\n---\n\n### vultr — Vultr\n\n- **canonical ID**:vultr\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat(Vultr Inference,托管开源模型)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://api.vultrinference.com (官方 OpenAPI 1.1.3 规范)\n- **核验来源**:官方 OpenAPI 规范\n- **证据强度**:强(官方 OpenAPI 直接给出 `/chat/completions` 完整请求/响应 schema)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://api.vultrinference.com/v1\n- **鉴权**:方式=API Key(OpenAPI 标 `API Key` 鉴权,按惯例 `Authorization: Bearer`)/ 环境变量=VULTR_API_KEY / 是否必需=是\n- **endpoint 公式**:`POST /chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI 体——`model`、`messages`、`stream`、`max_tokens`、`n`、`seed`、`temperature`、`top_p`、`frequency_penalty`、`presence_penalty`、`stop`、`logprobs`、`top_logprobs`、`tool_choice`、`tools`;模型名形如 `deepseek-ai/DeepSeek-V4-Pro`\n- **响应结构要点**:标准 `chat.completion`——`id`、`created`、`model`、`choices[].message{role,content,reasoning,tool_calls}`、`logprobs`、`finish_reason`、`usage{completion_tokens,prompt_tokens,total_tokens}`\n- **流式**:SSE(`stream: true`)\n- **错误结构**:400 Bad Request / 401 Unauthorized / 422 Validation Error(标准 HTTP 状态码)\n- **特有行为**:提供 `-normalize` 后缀(如 `model-normalize`)走 normalizer 代理,修正非标准 OpenAI 响应(`reasoning_content`→`reasoning`、tool call id 格式化、`content=None`→`\"\"` 等);另有 RAG Chat Completion endpoint\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方 OpenAPI 规范确认请求/响应结构与 OpenAI Chat Completions 一致\n- **可复用模型 ID 样例**:deepseek-ai/DeepSeek-V4-Flash、Qwen/Qwen3.6-27B、MiniMaxAI/MiniMax-M2.7\n- **是否需扩展共享层**:否(`reasoning` 字段为非标准但可作为透传/兼容处理)\n\n#### 4. 风险与限制\n\n- `-normalize` 后缀语义非 OpenAI 标准,若需修正 reasoning_content 等需额外说明\n- 响应 `reasoning` 字段(非 OpenAI 标准 `reasoning_content`)需注意兼容映射\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:官方 OpenAPI 规范完整,OpenAI 兼容明确,薄封装成本低\n\n---\n\n### watsonx_text — Watsonx Text\n\n- **canonical ID**:watsonx_text\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.3\n- **能力**(本次调研覆盖):chat(IBM watsonx.ai 文本生成,对应 litellm 的 watsonx_text)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://www.ibm.com/docs/en/watsonx/saas?topic=code-text-generation\n- **核验来源**:官方 API 文档(IBM watsonx.ai docs)\n- **证据强度**:强(官方文档明确 endpoint、鉴权、请求体结构,并标注该 API 已废弃)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://.ml.cloud.ibm.com`(按区域,如 `us-south.ml.cloud.ibm.com`;inventory base_urls 为空)\n- **鉴权**:方式=Bearer token(IBM IAM access token,由 API key 换取,约每小时刷新)/ 环境变量=未知(inventory 为空;社区常用 `WATSONX_APIKEY`/`WATSONX_URL`/`WATSONX_PROJECT_ID`)/ 是否必需=是\n- **endpoint 公式**:`POST https://.ml.cloud.ibm.com/ml/v1/text/generation?version=2025-02-11`\n- **协议类型**:原生(非 OpenAI 兼容)\n- **请求结构要点**:`input`(纯文本字符串,非 messages 数组)、`parameters`(如 `max_new_tokens`)、`model_id`、`project_id`;结构与 OpenAI Chat Completions 完全不同\n- **响应结构要点**:返回 `results[]` 含 `generated_text` 等,非 `choices[].message`\n- **流式**:SSE(Infer text event stream,`text/event-stream`)\n- **错误结构**:厂商专属(IBM 标准错误响应)\n- **特有行为**:需 `project_id`;鉴权需先以 API key 调 IAM 换 bearer token;该 text generation API **已废弃**,将于 2027-03-14 移除,官方建议改用 Chat API\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:原生(若必须支持该 text generation 端点);**建议改用 watsonx Chat API 或 watsonx 的 OpenAI 兼容端点,另立 provider**\n- **依据**:请求体用 `input`+`parameters`+`project_id`,鉴权为 IAM token,与 OpenAI 共享层结构不兼容\n- **可复用模型 ID 样例**:ibm/granite-3-8b-instruct 等(inventory 为空)\n- **是否需扩展共享层**:否(原生路径,独立实现)\n\n#### 4. 风险与限制\n\n- 该 text generation API 已废弃(2027-03-14 移除),投入产出比低\n- 鉴权需两步(API key → IAM token),复杂度高\n- 需 `project_id` 与区域配置,与 aimux 单 base_url+key 模型有差异\n- inventory 无 base_url、无 env、无模型样例,元数据缺失严重\n\n#### 5. 优先级建议\n\n- **优先级**:P2(后续)——倾向于搁置该废弃端点,优先调研 watsonx Chat API / OpenAI 兼容端点\n- **理由**:原生协议且官方已废弃,实现成本高、价值递减;建议以 watsonx 新版 Chat/OpenAI 兼容端点替代\n\n---\n\n### xiaomi_token_plan_ams — Xiaomi Token Plan (Europe)\n\n- **canonical ID**:xiaomi_token_plan_ams\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat(Xiaomi MiMo 模型,token 套餐欧洲区域网关)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://mimo.mi.com/docs/en-US/api/chat/openai-api (MiMo 官方开发者文档,与 inventory 给出的 platform.xiaomimimo.com 同平台)\n- **核验来源**:官方 API 文档(协议与鉴权)+ 第三方 inventory(区域 base_url)\n- **证据强度**:中(官方文档确认平台为 OpenAI Chat Completions 兼容、鉴权方式与请求/响应结构;但官方可读文档仅确认通用 endpoint `https://api.xiaomimimo.com/v1/chat/completions`,本条目的区域网关 `token-plan-ams.xiaomimimo.com/v1` 来自 mastra/tokenhub inventory,未在官方文档直接确认)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://token-plan-ams.xiaomimimo.com/v1 (inventory;官方文档通用 base 为 https://api.xiaomimimo.com/v1)\n- **鉴权**:方式=支持两种——`api-key: $MIMO_API_KEY` 或 `Authorization: Bearer $MIMO_API_KEY` / 环境变量=官方 MIMO_API_KEY(inventory 标 XIAOMI_API_KEY)/ 是否必需=是\n- **endpoint 公式**:`POST /chat/completions`(区域网关沿用同一 path)\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI 体——`model`、`messages`、`max_completion_tokens`、`temperature`、`top_p`、`stream`、`stop`、`frequency_penalty`、`presence_penalty`;扩展 `thinking:{type}` 字段\n- **响应结构要点**:标准 `chat.completion`——`id`、`choices[].message{role,content,tool_calls}`、`finish_reason`、`created`、`model`、`object`、`usage{completion_tokens,prompt_tokens,total_tokens,completion_tokens_details}`\n- **流式**:SSE(`stream: true`)\n- **错误结构**:与 OpenAI 共享结构基本一致\n- **特有行为**:`thinking` 字段控制深度思考;平台另有 TTS(mimo-v2-tts)等模态;本条目为 token 套餐欧洲区域网关\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方文档明确 OpenAI Chat Completions 兼容;区域网关仅 base_url 不同,协议一致\n- **可复用模型 ID 样例**:mimo-v2.5-pro、mimo-v2.5、mimo-v2-pro、mimo-v2-omni\n- **是否需扩展共享层**:否(`thinking` 字段可透传)\n\n#### 4. 风险与限制\n\n- 区域网关 base_url 仅来自第三方 inventory,未在官方文档直接确认,实现前建议实测\n- 环境变量名不一致:官方 MIMO_API_KEY vs inventory XIAOMI_API_KEY\n- 与 xiaomi_token_plan_cn / xiaomi_token_plan_sgp 为同平台区域副本,建议合并为单一 provider + 区域配置\n\n#### 5. 优先级建议\n\n- **优先级**:P2(后续)\n- **理由**:协议已确认 OpenAI 兼容,但与 cn/sg 两个区域条目重复,建议合并实现\n\n---\n\n### xiaomi_token_plan_cn — Xiaomi Token Plan (China)\n\n- **canonical ID**:xiaomi_token_plan_cn\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat(Xiaomi MiMo 模型,token 套餐中国区域网关)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://mimo.mi.com/docs/en-US/api/chat/openai-api (同平台官方文档)\n- **核验来源**:官方 API 文档(协议与鉴权)+ 第三方 inventory(区域 base_url)\n- **证据强度**:中(同 xiaomi_token_plan_ams:官方确认平台 OpenAI 兼容;区域网关 `token-plan-cn.xiaomimimo.com/v1` 来自 inventory,未在官方文档直接确认)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://token-plan-cn.xiaomimimo.com/v1 (inventory;官方通用 base 为 https://api.xiaomimimo.com/v1)\n- **鉴权**:方式=`api-key: $MIMO_API_KEY` 或 `Authorization: Bearer $MIMO_API_KEY` / 环境变量=官方 MIMO_API_KEY(inventory 标 XIAOMI_API_KEY)/ 是否必需=是\n- **endpoint 公式**:`POST /chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:同 ams 条目——标准 OpenAI 体 + `thinking:{type}` 扩展\n- **响应结构要点**:标准 `chat.completion` 结构\n- **流式**:SSE\n- **错误结构**:与 OpenAI 共享结构基本一致\n- **特有行为**:中国区域网关;其余同 ams\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装(与 ams/sgp 合并为单一 provider + 区域 base_url 配置)\n- **依据**:官方文档确认 OpenAI 兼容,仅区域 base_url 不同\n- **可复用模型 ID 样例**:mimo-v2.5-pro、mimo-v2.5、mimo-v2-pro、mimo-v2-omni\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 区域网关 base_url 仅来自第三方 inventory,建议实测确认\n- 与 ams/sgp 重复,建议合并\n\n#### 5. 优先级建议\n\n- **优先级**:P2(后续)\n- **理由**:与 ams/sgp 同平台区域副本,合并实现即可\n\n---\n\n### xiaomi_token_plan_sgp — Xiaomi Token Plan (Singapore)\n\n- **canonical ID**:xiaomi_token_plan_sgp\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat(Xiaomi MiMo 模型,token 套餐新加坡区域网关)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://mimo.mi.com/docs/en-US/api/chat/openai-api (同平台官方文档)\n- **核验来源**:官方 API 文档(协议与鉴权)+ 第三方 inventory(区域 base_url)\n- **证据强度**:中(同上:官方确认平台 OpenAI 兼容;区域网关 `token-plan-sgp.xiaomimimo.com/v1` 来自 inventory,未在官方文档直接确认)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://token-plan-sgp.xiaomimimo.com/v1 (inventory;官方通用 base 为 https://api.xiaomimimo.com/v1)\n- **鉴权**:方式=`api-key: $MIMO_API_KEY` 或 `Authorization: Bearer $MIMO_API_KEY` / 环境变量=官方 MIMO_API_KEY(inventory 标 XIAOMI_API_KEY)/ 是否必需=是\n- **endpoint 公式**:`POST /chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:同 ams 条目——标准 OpenAI 体 + `thinking:{type}` 扩展\n- **响应结构要点**:标准 `chat.completion` 结构\n- **流式**:SSE\n- **错误结构**:与 OpenAI 共享结构基本一致\n- **特有行为**:新加坡区域网关;其余同 ams\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装(与 ams/cn 合并为单一 provider + 区域 base_url 配置)\n- **依据**:官方文档确认 OpenAI 兼容,仅区域 base_url 不同\n- **可复用模型 ID 样例**:mimo-v2.5-pro、mimo-v2.5、mimo-v2-pro、mimo-v2-omni\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 区域网关 base_url 仅来自第三方 inventory,建议实测确认\n- 与 ams/cn 重复,建议合并\n\n#### 5. 优先级建议\n\n- **优先级**:P2(后续)\n- **理由**:与 ams/cn 同平台区域副本,合并实现即可\n\n---\n\n### xpersona — Xpersona\n\n- **canonical ID**:xpersona\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://www.xpersona.co/docs 、https://www.xpersona.co/api/v1/openapi/ai-public (官方 OpenAPI)\n- **核验来源**:官方 API 文档 + 官方 OpenAPI\n- **证据强度**:强(官方文档直接给出 `/v1/chat/completions`、Bearer 鉴权与 curl 示例)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://www.xpersona.co (endpoint 在 `/v1` 下)\n- **鉴权**:方式=`Authorization: Bearer $XPERSONA_API_KEY` / 环境变量=XPERSONA_API_KEY / 是否必需=是\n- **endpoint 公式**:`POST /v1/chat/completions`;另有 `GET /v1/models`、`GET /v1/pricing`、`GET /v1/usage`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI 体——`model`、`messages`;扩展 `reasoning:{effort}` 字段\n- **响应结构要点**:与 OpenAI Chat Completions 一致(具体 schema 在 OpenAPI 中,未完整读取)\n- **流式**:未知(文档未在可读片段明确,按 OpenAI 兼容惯例应支持 SSE)\n- **错误结构**:与 OpenAI 共享结构基本一致(未完整读取)\n- **特有行为**:原生支持 OpenCode 路由;提供月度套餐(Builder/Pro/Studio)与 PAYG;有 pricing/usage 仪表盘 endpoint\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方文档与 curl 示例确认 OpenAI 兼容 `/v1/chat/completions` + Bearer 鉴权\n- **可复用模型 ID 样例**:claude-fable-5、xpersona-frieren-coder、xpersona-gpt-5.5\n- **是否需扩展共享层**:否(`reasoning.effort` 可透传)\n\n#### 4. 风险与限制\n\n- 模型数量少(3 个),含自研与聚合模型\n- 套餐模式下\"达到额度暂停请求\"行为需注意限流处理\n\n#### 5. 优先级建议\n\n- **优先级**:P2(后续)\n- **理由**:OpenAI 兼容明确,但规模较小、模型少,可后续纳入\n\n---\n\n### xunfei — Xunfei\n\n- **canonical ID**:xunfei\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.3\n- **能力**(本次调研覆盖):chat(科大讯飞星火认知大模型)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html (HTTP 接口官方文档)、https://www.xfyun.cn/doc/spark/Web.html (WebSocket 接口)\n- **核验来源**:官方 API 文档\n- **证据强度**:强(官方文档明确 HTTP 接口兼容 OpenAI SDK、请求地址、鉴权与请求/响应参数)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://spark-api-open.xf-yun.com/v1 (inventory base_urls 为空,需补此地址)\n- **鉴权**:方式=`Authorization: Bearer {APIPassword}`(控制台获取 APIPassword)/ 环境变量=未知(inventory 为空;社区常用 `IFLYTEK_API_PASSWORD` 或 `SPARK_API_PASSWORD`)/ 是否必需=是\n- **endpoint 公式**:`POST https://spark-api-open.xf-yun.com/v1/chat/completions`(官方注明兼容 OpenAI SDK,`base_url=https://spark-api-open.xf-yun.com/v1/`)\n- **协议类型**:OpenAI 兼容(HTTP 接口);另有 WebSocket 原生接口(`wss://spark-api.xf-yun.com/...`,需 APIKey/APISecret/AppID 签名鉴权,属原生协议)\n- **请求结构要点**:标准 OpenAI 体——`model`、`messages`、`stream`、`temperature`、`max_tokens`、`top_p`、`presence_penalty`、`frequency_penalty`、`tools`、`response_format`、`user`;扩展 `top_k`、`tools[].type=web_search` 等\n- **响应结构要点**:与 OpenAI Chat Completions 一致(流式用 SSE 推送)\n- **流式**:SSE(`stream: true`,服务端 SSE 推送)\n- **错误结构**:厂商专属(HTTP 状态码 + 错误信息,未完整读取 body 结构)\n- **特有行为**:模型版本映射——`4.0Ultra`/`generalv3.5`(Max)/`max-32k`/`generalv3`(Pro)/`pro-128k`/`lite`;支持 web_search 工具与内置插件;WebSocket 接口为另一套原生协议\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装(采用 HTTP OpenAI 兼容接口)\n- **依据**:官方 HTTP 文档明确兼容 OpenAI SDK,请求/响应结构与 OpenAI 一致;WebSocket 原生接口不必纳入 chat 适配\n- **可复用模型 ID 样例**:4.0Ultra、generalv3.5、generalv3、pro-128k、lite、max-32k\n- **是否需扩展共享层**:否(`top_k`、`web_search` 工具可透传)\n\n#### 4. 风险与限制\n\n- inventory 无 base_url、无 env、无模型样例,元数据缺失严重,需补全\n- 鉴权用 APIPassword(非 APIKey/APISecret),与 WebSocket 接口鉴权不同,易混淆\n- 模型版本字符串(generalv3.5 等)与版本名映射需文档说明\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:主流国内大模型,HTTP 接口官方明确 OpenAI 兼容,薄封装成本低;需补全 inventory 元数据\n\n---\n\n### zai_coding_plan — Z.AI Coding Plan\n\n- **canonical ID**:zai_coding_plan\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat(Z.AI / 智谱 GLM Coding Plan 订阅套餐,面向编码工具)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.z.ai/devpack/overview 、https://docs.z.ai/devpack/quick-start 、https://docs.z.ai/devpack/tool/others\n- **核验来源**:官方 API 文档\n- **证据强度**:强(官方文档明确支持 OpenAI 与 Anthropic 双协议,给出 OpenAI Chat Completions 的 base_url)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://api.z.ai/api/coding/paas/v4 (OpenAI Chat Completions 协议);Anthropic 协议为 `https://api.z.ai/api/anthropic`\n- **鉴权**:方式=API Key(Z.AI API Key,按 OpenAI 兼容惯例 `Authorization: Bearer`)/ 环境变量=ZHIPU_API_KEY(inventory)/ 是否必需=是\n- **endpoint 公式**:`POST https://api.z.ai/api/coding/paas/v4/chat/completions`(OpenAI 兼容 base_url 即 `.../paas/v4`)\n- **协议类型**:OpenAI 兼容(同时兼容 Anthropic Messages)\n- **请求结构要点**:标准 OpenAI Chat Completions 体(model、messages 等);在编码工具中以 \"OpenAI Compatible\" provider 配置\n- **响应结构要点**:与 OpenAI Chat Completions 一致\n- **流式**:SSE(按 OpenAI 兼容惯例,未在可读片段逐字确认)\n- **错误结构**:与 OpenAI 共享结构基本一致\n- **特有行为**:订阅套餐有 5 小时/周配额限制;Coding Plan Key 与团队/个人套餐绑定,不与其他 Z.AI key 互通;提供 Vision/Web Search/Web Reader/Zread MCP;此为 z.ai 国际端点,区别于国内 open.bigmodel.cn\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方文档明确 OpenAI Chat Completions 协议与 base_url,请求/响应可由共享层表达\n- **可复用模型 ID 样例**:glm-4.5-air、glm-4.7、glm-5-turbo、glm-5.1、glm-5.2\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 与 zhipu_v4(国内 open.bigmodel.cn)为同公司不同端点/套餐,需区分 provider\n- 配额限制(5h/周)可能触发限流,需处理 429\n- base_url 已含 `/api/coding/paas/v4`,薄封装需避免重复追加 `/v1`\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:官方明确 OpenAI 兼容,编码场景需求高,薄封装成本低\n\n---\n\n### zeldoc — Zeldoc\n\n- **canonical ID**:zeldoc\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat(私有 LLM + LLM 路由)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.zeldoc.ai 、https://docs.zeldoc.ai/use-zeldoc-anywhere\n- **核验来源**:官方 API 文档\n- **证据强度**:强(官方文档明确 base_url、Bearer 鉴权、OpenAI 兼容 `/chat/completions` 与 curl 示例)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://api.zeldoc.ai/v1\n- **鉴权**:方式=`Authorization: Bearer $ZELDOC_API_KEY` / 环境变量=ZELDOC_API_KEY / 是否必需=是\n- **endpoint 公式**:`POST https://api.zeldoc.ai/v1/chat/completions`\n- **协议类型**:OpenAI 兼容(同时支持 Anthropic 兼容 `/messages`)\n- **请求结构要点**:标准 OpenAI 体——`model`、`messages`(官方 curl 示例)\n- **响应结构要点**:与 OpenAI Chat Completions 一致(未完整读取 schema)\n- **流式**:未知(按 OpenAI 兼容惯例应支持 SSE,文档可读片段未明确)\n- **错误结构**:与 OpenAI 共享结构基本一致\n- **特有行为**:单 key 提供 LLM 路由;支持 OpenAI 与 Anthropic 两种 API 格式\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方文档明确 OpenAI 兼容 `/chat/completions` + Bearer 鉴权 + base_url\n- **可复用模型 ID 样例**:z-code\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 模型数量少(1 个 z-code),规模小\n- 流式协议未在可读片段明确,实现前建议实测\n\n#### 5. 优先级建议\n\n- **优先级**:P2(后续)\n- **理由**:OpenAI 兼容明确,但规模小、模型少,可后续纳入\n\n---\n\n### zenifra — Zenifra\n\n- **canonical ID**:zenifra\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat(inventory 标 chat)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.zenifra.com (官方站点;但内容为 PaaS 部署/数据库/运维平台文档,**未发现 AI 推理 API 文档**)\n- **核验来源**:仅第三方(mastra 注册表 https://mastra.ai/models/providers/zenifra 声称 OpenAI 兼容 `/chat/completions`,base `https://ai.zenifra.com/v1`,env `ZENIFRA_AI_KEY`)\n- **证据强度**:弱(官方 docs.zenifra.com 无 AI 推理 API 文档;协议信息仅来自单一第三方 mastra,无法确认官方请求/响应契约)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://ai.zenifra.com/v1 (inventory / mastra;官方文档未确认)\n- **鉴权**:方式=未知(mastra 示例用 `apiKey: process.env.ZENIFRA_AI_KEY`,按 OpenAI 兼容惯例推测 Bearer,未官方确认)/ 环境变量=ZENIFRA_AI_KEY / 是否必需=是\n- **endpoint 公式**:`POST /chat/completions`(mastra 声称,未官方确认)\n- **协议类型**:OpenAI 兼容(仅 mastra 声称,未官方确认)\n- **请求结构要点**:未知(无官方契约)\n- **响应结构要点**:未知(无官方契约)\n- **流式**:未知\n- **错误结构**:未知\n- **特有行为**:mastra 列出模型 `alibaba/qwen3.6-35b-a3b`(262K 上下文);官方 docs.zenifra.com 为部署平台,疑似 AI 推理为独立未公开服务\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:待定(若 mastra 声称属实则为薄封装,但官方契约未确认,不臆造)\n- **依据**:仅第三方声称 OpenAI 兼容,官方文档缺失,证据不足\n- **可复用模型 ID 样例**:alibaba/qwen3.6-35b-a3b(mastra)\n- **是否需扩展共享层**:未知\n\n#### 4. 风险与限制\n\n- 官方 docs.zenifra.com 无 AI 推理 API 文档,无法确认协议\n- 协议信息仅来自 mastra 单一第三方,按 RFC §2.1 不足以确认请求/响应契约\n- base_url `ai.zenifra.com` 与主站 `docs.zenifra.com` 分离,服务存在性待验证\n\n#### 5. 优先级建议\n\n- **优先级**:搁置(证据不足)\n- **理由**:官方文档未覆盖 AI 推理 API,仅第三方声称 OpenAI 兼容,按 RFC 不臆造协议细节,待官方文档出现后再调研\n\n---\n\n### zhipu_v4 — ZhipuV4\n\n- **canonical ID**:zhipu_v4\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat(智谱 AI GLM 开放平台)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.bigmodel.cn/cn/guide/develop/http/introduction 、https://docs.bigmodel.cn/cn/api/introduction\n- **核验来源**:官方 API 文档\n- **证据强度**:强(官方文档明确 base_url、Bearer 鉴权、`/chat/completions` endpoint 与请求/响应示例)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://open.bigmodel.cn/api/paas/v4 (inventory 给出根域 `https://open.bigmodel.cn`)\n- **鉴权**:方式=两种——`Authorization: Bearer YOUR_API_KEY`(API Key 鉴权)或 JWT Token 鉴权(用 API Key 的 id.secret 生成 HS256 JWT)/ 环境变量=未知(inventory 为空;社区常用 `ZHIPU_API_KEY`)/ 是否必需=是\n- **endpoint 公式**:`POST https://open.bigmodel.cn/api/paas/v4/chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI 体——`model`、`messages`、`temperature`、`max_tokens`、`stream`;多轮对话用 messages 数组\n- **响应结构要点**:与 OpenAI Chat Completions 一致——`choices[0].message.content`、`usage` 等\n- **流式**:SSE(`stream: true`)\n- **错误结构**:标准 HTTP 状态码(401 未授权 / 429 限流 / 500 服务器错误),body 厂商专属\n- **特有行为**:API Key 形如 `{id}.{secret}`;JWT 鉴权为可选高安全方案;此为国内端点,区别于 z.ai 国际端点;另有 Coding 端点 `https://open.bigmodel.cn/api/coding/paas/v4`\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方文档明确 `/api/paas/v4/chat/completions` + Bearer 鉴权 + 标准 OpenAI 请求/响应结构\n- **可复用模型 ID 样例**:glm-5.2、glm-5.1、glm-5-turbo、glm-4.7、glm-4.5-air(inventory 为空,按官方文档)\n- **是否需扩展共享层**:否(JWT 鉴权为可选,标准 Bearer API Key 即可工作)\n\n#### 4. 风险与限制\n\n- inventory 无 base_url 路径、无 env、无模型样例,需补全(base 需补 `/api/paas/v4`,env 补 `ZHIPU_API_KEY`)\n- 与 zai_coding_plan(z.ai 国际)为同公司不同端点,需区分\n- API Key 含 `.` 分隔的 id.secret,JWT 生成逻辑若支持需额外实现(薄封装可仅用 Bearer API Key)\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:主流国内大模型,官方明确 OpenAI 兼容,薄封装成本低;需补全 inventory 元数据\n"}, "7c6283c8ba6e91e6ce380cb9e8a13b99e27431ed": {"t": 1785846971.257658, "n": 23771, "h": "0e658eb8fcbff78d", "c": "# 第 13 批调研记录(14 个 provider)\n\n> 调研日期:2026-07-28。本批共 14 个 provider,按 canonical id 字母序排列。\n> 证据裁决遵循 RFC-0006 §2.1:官方 API 文档/SDK > 多来源一致 > 单一第三方。\n> inventory 的 tier/protocol/openai_compatible/confidence 字段仅作线索,不作依据。\n\n---\n\n### vidu — Vidu\n\n- **canonical ID**:vidu\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):inventory 标 chat,**实际为视频生成(text-to-video / image-to-video),chat 标注疑似错误**\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://platform.vidu.com/docs/text-to-video 、https://platform.vidu.com/docs/image-to-video 、https://platform.vidu.com/docs/vidu-s1\n- **核验来源**:官方 API 文档(platform.vidu.com,JS 渲染页面,部分内容经 WebSearch 片段确认)\n- **证据强度**:中(官方文档确认其为视频生成平台 + Token 鉴权 + 异步任务模型;但页面 JS 渲染,未能读取完整 endpoint 参数细节)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://api.vidu.cn\n- **鉴权**:方式=`Authorization: Token {api_key}`(示例 `Token vda_xxx`)/ 环境变量=未知(inventory 未给出)/ 是否必需=是\n- **endpoint 公式**:异步任务模式——POST 创建生成任务(需设置 `callback_url`),任务状态变化时 Vidu 回调;亦支持轮询查询。具体 path 未能从可读片段完整确认(疑似 `/ent/v2/...` 系列)\n- **协议类型**:专用模态(视频生成,原生异步任务协议,非 OpenAI Chat 格式)\n- **请求结构要点**:任务创建体含 prompt/图片输入、callback_url 等字段;非 messages 数组结构\n- **响应结构要点**:任务对象含 task_id、状态字段;视频产物通过回调或查询返回 URL\n- **流式**:未知(任务为异步回调/轮询;Vidu S1 实时交互为 session 模式)\n- **错误结构**:未知\n- **特有行为**:纯视频生成;S1 模型为实时交互式视频生成(session create API);与 chat completions 无关\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:模态专用\n- **依据**:Vidu 是视频生成平台,采用异步任务+回调协议,与 OpenAI Chat Completions 结构无关,inventory 的 chat 能力标注错误\n- **可复用模型 ID 样例**:未知(inventory model_sample 为空)\n- **是否需扩展共享层**:否(属于视频模态独立实现,不走 OpenAI 共享层)\n\n#### 4. 风险与限制\n\n- inventory 将能力标为 chat,与官方文档(视频生成)不符,需在 inventory 修正能力标注\n- 官方文档为 JS 渲染 SPA,endpoint 完整公式未完整读取,实现前需二次核验 `/ent/v2` 系列路径与请求/回调字段\n- 鉴权用 `Token` 前缀而非 `Bearer`,需注意 header 构造\n\n#### 5. 优先级建议\n\n- **优先级**:P2(后续)\n- **理由**:视频生成模态,非 chat 适配范畴;若 aimux 规划视频模态支持可纳入,否则暂缓\n\n---\n\n### vivgrid — Vivgrid\n\n- **canonical ID**:vivgrid\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat(聚合 GPT/Claude/Gemini/DeepSeek/GLM 等多家模型)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://vivgrid.com/docs/api/agent/completions 、https://docs.vivgrid.com/models\n- **核验来源**:官方 API 文档\n- **证据强度**:强(官方文档直接给出 OpenAI-compatible Chat Completions endpoint、请求体与响应体示例)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://api.vivgrid.com/v1\n- **鉴权**:方式=Bearer token(`Authorization: Bearer `)/ 环境变量=VIVGRID_API_KEY(inventory)/ 是否必需=是\n- **endpoint 公式**:`POST https://api.vivgrid.com/v1/chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI Chat Completions 体——`model`、`messages`、`stream`、`max_completion_tokens`;额外支持 `reasoning_effort`(medium 等)字段\n- **响应结构要点**:标准 `chat.completion` 对象——`id`、`object`、`created`、`model`、`choices[].message`、`finish_reason`、`usage{prompt_tokens,completion_tokens,total_tokens}`\n- **流式**:SSE(`stream: true`)\n- **错误结构**:返回 401/404/500 等状态码(具体 body 结构未在可读片段给出)\n- **特有行为**:模型可为 `managed`(由后端 Agent 设置管理);文档称 API 调用可不指定 model-name;`reasoning_effort` 为 OpenAI o-series 风格扩展\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装(`reasoning_effort` 字段属 OpenAI o-series 已有概念,可由共享层透传,无需单独扩展)\n- **依据**:官方文档明确标注 \"OpenAI-compatible Chat Completions endpoint\",请求/响应结构与 OpenAI 一致\n- **可复用模型 ID 样例**:glm-5.2、deepseek-v4-pro、gemini-3.1-pro-preview、claude-sonnet-5、gpt-5.5(聚合多家)\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- `model: \"managed\"` 特殊值与按 model-name 路由的语义不同,薄封装需保留透传模型字符串\n- 聚合网关,模型可用性与计费随上游变动\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:官方文档明确 OpenAI 兼容,薄封装成本低、模型覆盖广\n\n---\n\n### volc_engine — VolcEngine\n\n- **canonical ID**:volc_engine\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat(火山方舟 Ark 大模型推理)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://www.volcengine.com/docs/82379/2160841 (火山方舟接入三方工具,官方)\n- **核验来源**:官方 API 文档 + 多来源一致(GitHub hermes-agent、Dify marketplace 均一致)\n- **证据强度**:强(官方文档明确\"火山方舟兼容 OpenAI 和 Anthropic 接口协议\",多来源一致确认 endpoint 与鉴权)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://ark.cn-beijing.volces.com/api/v3 (inventory 给出根域 `https://ark.cn-beijing.volces.com`,实际 OpenAI 兼容路径为 `/api/v3`)\n- **鉴权**:方式=Bearer API Key(Ark API Key)/ 环境变量=未知(inventory 未给出,社区常用 `ARK_API_KEY` 或 `VOLC_API_KEY`)/ 是否必需=是\n- **endpoint 公式**:`POST https://ark.cn-beijing.volces.com/api/v3/chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI Chat Completions 体;`model` 字段填接入点 endpoint id(如 `ep-xxx`)而非模型名\n- **响应结构要点**:与 OpenAI Chat Completions 响应结构一致\n- **流式**:SSE(`stream: true`)\n- **错误结构**:与 OpenAI 共享结构基本一致(具体 body 未完整读取)\n- **特有行为**:同时兼容 Anthropic Messages 协议;模型通过 endpoint id 路由;地域为 cn-beijing\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方文档明确兼容 OpenAI 接口协议,请求/响应可由 OpenAI 共享层表达;endpoint id 作为 model 字符串透传即可\n- **可复用模型 ID 样例**:inventory 为空(实际使用 endpoint id,如 `ep-20240xxxxxxxx`)\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- base URL 需补 `/api/v3` 路径,inventory 根域不完整\n- 鉴权环境变量 inventory 缺失,需补 `ARK_API_KEY`\n- 模型以 endpoint id 而非模型名调用,文档/样例需说明\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:主流国内大模型网关,官方明确 OpenAI 兼容,薄封装成本低\n\n---\n\n### vultr — Vultr\n\n- **canonical ID**:vultr\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat(Vultr Inference,托管开源模型)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://api.vultrinference.com (官方 OpenAPI 1.1.3 规范)\n- **核验来源**:官方 OpenAPI 规范\n- **证据强度**:强(官方 OpenAPI 直接给出 `/chat/completions` 完整请求/响应 schema)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://api.vultrinference.com/v1\n- **鉴权**:方式=API Key(OpenAPI 标 `API Key` 鉴权,按惯例 `Authorization: Bearer`)/ 环境变量=VULTR_API_KEY / 是否必需=是\n- **endpoint 公式**:`POST /chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI 体——`model`、`messages`、`stream`、`max_tokens`、`n`、`seed`、`temperature`、`top_p`、`frequency_penalty`、`presence_penalty`、`stop`、`logprobs`、`top_logprobs`、`tool_choice`、`tools`;模型名形如 `deepseek-ai/DeepSeek-V4-Pro`\n- **响应结构要点**:标准 `chat.completion`——`id`、`created`、`model`、`choices[].message{role,content,reasoning,tool_calls}`、`logprobs`、`finish_reason`、`usage{completion_tokens,prompt_tokens,total_tokens}`\n- **流式**:SSE(`stream: true`)\n- **错误结构**:400 Bad Request / 401 Unauthorized / 422 Validation Error(标准 HTTP 状态码)\n- **特有行为**:提供 `-normalize` 后缀(如 `model-normalize`)走 normalizer 代理,修正非标准 OpenAI 响应(`reasoning_content`→`reasoning`、tool call id 格式化、`content=None`→`\"\"` 等);另有 RAG Chat Completion endpoint\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方 OpenAPI 规范确认请求/响应结构与 OpenAI Chat Completions 一致\n- **可复用模型 ID 样例**:deepseek-ai/DeepSeek-V4-Flash、Qwen/Qwen3.6-27B、MiniMaxAI/MiniMax-M2.7\n- **是否需扩展共享层**:否(`reasoning` 字段为非标准但可作为透传/兼容处理)\n\n#### 4. 风险与限制\n\n- `-normalize` 后缀语义非 OpenAI 标准,若需修正 reasoning_content 等需额外说明\n- 响应 `reasoning` 字段(非 OpenAI 标准 `reasoning_content`)需注意兼容映射\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:官方 OpenAPI 规范完整,OpenAI 兼容明确,薄封装成本低\n\n---\n\n### watsonx_text — Watsonx Text\n\n- **canonical ID**:watsonx_text\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.3\n- **能力**(本次调研覆盖):chat(IBM watsonx.ai 文本生成,对应 litellm 的 watsonx_text)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://www.ibm.com/docs/en/watsonx/saas?topic=code-text-generation\n- **核验来源**:官方 API 文档(IBM watsonx.ai docs)\n- **证据强度**:强(官方文档明确 endpoint、鉴权、请求体结构,并标注该 API 已废弃)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://.ml.cloud.ibm.com`(按区域,如 `us-south.ml.cloud.ibm.com`;inventory base_urls 为空)\n- **鉴权**:方式=Bearer token(IBM IAM access token,由 API key 换取,约每小时刷新)/ 环境变量=未知(inventory 为空;社区常用 `WATSONX_APIKEY`/`WATSONX_URL`/`WATSONX_PROJECT_ID`)/ 是否必需=是\n- **endpoint 公式**:`POST https://.ml.cloud.ibm.com/ml/v1/text/generation?version=2025-02-11`\n- **协议类型**:原生(非 OpenAI 兼容)\n- **请求结构要点**:`input`(纯文本字符串,非 messages 数组)、`parameters`(如 `max_new_tokens`)、`model_id`、`project_id`;结构与 OpenAI Chat Completions 完全不同\n- **响应结构要点**:返回 `results[]` 含 `generated_text` 等,非 `choices[].message`\n- **流式**:SSE(Infer text event stream,`text/event-stream`)\n- **错误结构**:厂商专属(IBM 标准错误响应)\n- **特有行为**:需 `project_id`;鉴权需先以 API key 调 IAM 换 bearer token;该 text generation API **已废弃**,将于 2027-03-14 移除,官方建议改用 Chat API\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:原生(若必须支持该 text generation 端点);**建议改用 watsonx Chat API 或 watsonx 的 OpenAI 兼容端点,另立 provider**\n- **依据**:请求体用 `input`+`parameters`+`project_id`,鉴权为 IAM token,与 OpenAI 共享层结构不兼容\n- **可复用模型 ID 样例**:ibm/granite-3-8b-instruct 等(inventory 为空)\n- **是否需扩展共享层**:否(原生路径,独立实现)\n\n#### 4. 风险与限制\n\n- 该 text generation API 已废弃(2027-03-14 移除),投入产出比低\n- 鉴权需两步(API key → IAM token),复杂度高\n- 需 `project_id` 与区域配置,与 aimux 单 base_url+key 模型有差异\n- inventory 无 base_url、无 env、无模型样例,元数据缺失严重\n\n#### 5. 优先级建议\n\n- **优先级**:P2(后续)——倾向于搁置该废弃端点,优先调研 watsonx Chat API / OpenAI 兼容端点\n- **理由**:原生协议且官方已废弃,实现成本高、价值递减;建议以 watsonx 新版 Chat/OpenAI 兼容端点替代\n\n---\n\n### xiaomi_token_plan_ams — Xiaomi Token Plan (Europe)\n\n- **canonical ID**:xiaomi_token_plan_ams\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat(Xiaomi MiMo 模型,token 套餐欧洲区域网关)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://mimo.mi.com/docs/en-US/api/chat/openai-api (MiMo 官方开发者文档,与 inventory 给出的 platform.xiaomimimo.com 同平台)\n- **核验来源**:官方 API 文档(协议与鉴权)+ 第三方 inventory(区域 base_url)\n- **证据强度**:中(官方文档确认平台为 OpenAI Chat Completions 兼容、鉴权方式与请求/响应结构;但官方可读文档仅确认通用 endpoint `https://api.xiaomimimo.com/v1/chat/completions`,本条目的区域网关 `token-plan-ams.xiaomimimo.com/v1` 来自 mastra/tokenhub inventory,未在官方文档直接确认)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://token-plan-ams.xiaomimimo.com/v1 (inventory;官方文档通用 base 为 https://api.xiaomimimo.com/v1)\n- **鉴权**:方式=支持两种——`api-key: $MIMO_API_KEY` 或 `Authorization: Bearer $MIMO_API_KEY` / 环境变量=官方 MIMO_API_KEY(inventory 标 XIAOMI_API_KEY)/ 是否必需=是\n- **endpoint 公式**:`POST /chat/completions`(区域网关沿用同一 path)\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI 体——`model`、`messages`、`max_completion_tokens`、`temperature`、`top_p`、`stream`、`stop`、`frequency_penalty`、`presence_penalty`;扩展 `thinking:{type}` 字段\n- **响应结构要点**:标准 `chat.completion`——`id`、`choices[].message{role,content,tool_calls}`、`finish_reason`、`created`、`model`、`object`、`usage{completion_tokens,prompt_tokens,total_tokens,completion_tokens_details}`\n- **流式**:SSE(`stream: true`)\n- **错误结构**:与 OpenAI 共享结构基本一致\n- **特有行为**:`thinking` 字段控制深度思考;平台另有 TTS(mimo-v2-tts)等模态;本条目为 token 套餐欧洲区域网关\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方文档明确 OpenAI Chat Completions 兼容;区域网关仅 base_url 不同,协议一致\n- **可复用模型 ID 样例**:mimo-v2.5-pro、mimo-v2.5、mimo-v2-pro、mimo-v2-omni\n- **是否需扩展共享层**:否(`thinking` 字段可透传)\n\n#### 4. 风险与限制\n\n- 区域网关 base_url 仅来自第三方 inventory,未在官方文档直接确认,实现前建议实测\n- 环境变量名不一致:官方 MIMO_API_KEY vs inventory XIAOMI_API_KEY\n- 与 xiaomi_token_plan_cn / xiaomi_token_plan_sgp 为同平台区域副本,建议合并为单一 provider + 区域配置\n\n#### 5. 优先级建议\n\n- **优先级**:P2(后续)\n- **理由**:协议已确认 OpenAI 兼容,但与 cn/sg 两个区域条目重复,建议合并实现\n\n---\n\n### xiaomi_token_plan_cn — Xiaomi Token Plan (China)\n\n- **canonical ID**:xiaomi_token_plan_cn\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat(Xiaomi MiMo 模型,token 套餐中国区域网关)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://mimo.mi.com/docs/en-US/api/chat/openai-api (同平台官方文档)\n- **核验来源**:官方 API 文档(协议与鉴权)+ 第三方 inventory(区域 base_url)\n- **证据强度**:中(同 xiaomi_token_plan_ams:官方确认平台 OpenAI 兼容;区域网关 `token-plan-cn.xiaomimimo.com/v1` 来自 inventory,未在官方文档直接确认)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://token-plan-cn.xiaomimimo.com/v1 (inventory;官方通用 base 为 https://api.xiaomimimo.com/v1)\n- **鉴权**:方式=`api-key: $MIMO_API_KEY` 或 `Authorization: Bearer $MIMO_API_KEY` / 环境变量=官方 MIMO_API_KEY(inventory 标 XIAOMI_API_KEY)/ 是否必需=是\n- **endpoint 公式**:`POST /chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:同 ams 条目——标准 OpenAI 体 + `thinking:{type}` 扩展\n- **响应结构要点**:标准 `chat.completion` 结构\n- **流式**:SSE\n- **错误结构**:与 OpenAI 共享结构基本一致\n- **特有行为**:中国区域网关;其余同 ams\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装(与 ams/sgp 合并为单一 provider + 区域 base_url 配置)\n- **依据**:官方文档确认 OpenAI 兼容,仅区域 base_url 不同\n- **可复用模型 ID 样例**:mimo-v2.5-pro、mimo-v2.5、mimo-v2-pro、mimo-v2-omni\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 区域网关 base_url 仅来自第三方 inventory,建议实测确认\n- 与 ams/sgp 重复,建议合并\n\n#### 5. 优先级建议\n\n- **优先级**:P2(后续)\n- **理由**:与 ams/sgp 同平台区域副本,合并实现即可\n\n---\n\n### xiaomi_token_plan_sgp — Xiaomi Token Plan (Singapore)\n\n- **canonical ID**:xiaomi_token_plan_sgp\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat(Xiaomi MiMo 模型,token 套餐新加坡区域网关)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://mimo.mi.com/docs/en-US/api/chat/openai-api (同平台官方文档)\n- **核验来源**:官方 API 文档(协议与鉴权)+ 第三方 inventory(区域 base_url)\n- **证据强度**:中(同上:官方确认平台 OpenAI 兼容;区域网关 `token-plan-sgp.xiaomimimo.com/v1` 来自 inventory,未在官方文档直接确认)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://token-plan-sgp.xiaomimimo.com/v1 (inventory;官方通用 base 为 https://api.xiaomimimo.com/v1)\n- **鉴权**:方式=`api-key: $MIMO_API_KEY` 或 `Authorization: Bearer $MIMO_API_KEY` / 环境变量=官方 MIMO_API_KEY(inventory 标 XIAOMI_API_KEY)/ 是否必需=是\n- **endpoint 公式**:`POST /chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:同 ams 条目——标准 OpenAI 体 + `thinking:{type}` 扩展\n- **响应结构要点**:标准 `chat.completion` 结构\n- **流式**:SSE\n- **错误结构**:与 OpenAI 共享结构基本一致\n- **特有行为**:新加坡区域网关;其余同 ams\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装(与 ams/cn 合并为单一 provider + 区域 base_url 配置)\n- **依据**:官方文档确认 OpenAI 兼容,仅区域 base_url 不同\n- **可复用模型 ID 样例**:mimo-v2.5-pro、mimo-v2.5、mimo-v2-pro、mimo-v2-omni\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 区域网关 base_url 仅来自第三方 inventory,建议实测确认\n- 与 ams/cn 重复,建议合并\n\n#### 5. 优先级建议\n\n- **优先级**:P2(后续)\n- **理由**:与 ams/cn 同平台区域副本,合并实现即可\n\n---\n\n### xpersona — Xpersona\n\n- **canonical ID**:xpersona\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://www.xpersona.co/docs 、https://www.xpersona.co/api/v1/openapi/ai-public (官方 OpenAPI)\n- **核验来源**:官方 API 文档 + 官方 OpenAPI\n- **证据强度**:强(官方文档直接给出 `/v1/chat/completions`、Bearer 鉴权与 curl 示例)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://www.xpersona.co (endpoint 在 `/v1` 下)\n- **鉴权**:方式=`Authorization: Bearer $XPERSONA_API_KEY` / 环境变量=XPERSONA_API_KEY / 是否必需=是\n- **endpoint 公式**:`POST /v1/chat/completions`;另有 `GET /v1/models`、`GET /v1/pricing`、`GET /v1/usage`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI 体——`model`、`messages`;扩展 `reasoning:{effort}` 字段\n- **响应结构要点**:与 OpenAI Chat Completions 一致(具体 schema 在 OpenAPI 中,未完整读取)\n- **流式**:未知(文档未在可读片段明确,按 OpenAI 兼容惯例应支持 SSE)\n- **错误结构**:与 OpenAI 共享结构基本一致(未完整读取)\n- **特有行为**:原生支持 OpenCode 路由;提供月度套餐(Builder/Pro/Studio)与 PAYG;有 pricing/usage 仪表盘 endpoint\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方文档与 curl 示例确认 OpenAI 兼容 `/v1/chat/completions` + Bearer 鉴权\n- **可复用模型 ID 样例**:claude-fable-5、xpersona-frieren-coder、xpersona-gpt-5.5\n- **是否需扩展共享层**:否(`reasoning.effort` 可透传)\n\n#### 4. 风险与限制\n\n- 模型数量少(3 个),含自研与聚合模型\n- 套餐模式下\"达到额度暂停请求\"行为需注意限流处理\n\n#### 5. 优先级建议\n\n- **优先级**:P2(后续)\n- **理由**:OpenAI 兼容明确,但规模较小、模型少,可后续纳入\n\n---\n\n### xunfei — Xunfei\n\n- **canonical ID**:xunfei\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.3\n- **能力**(本次调研覆盖):chat(科大讯飞星火认知大模型)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html (HTTP 接口官方文档)、https://www.xfyun.cn/doc/spark/Web.html (WebSocket 接口)\n- **核验来源**:官方 API 文档\n- **证据强度**:强(官方文档明确 HTTP 接口兼容 OpenAI SDK、请求地址、鉴权与请求/响应参数)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://spark-api-open.xf-yun.com/v1 (inventory base_urls 为空,需补此地址)\n- **鉴权**:方式=`Authorization: Bearer {APIPassword}`(控制台获取 APIPassword)/ 环境变量=未知(inventory 为空;社区常用 `IFLYTEK_API_PASSWORD` 或 `SPARK_API_PASSWORD`)/ 是否必需=是\n- **endpoint 公式**:`POST https://spark-api-open.xf-yun.com/v1/chat/completions`(官方注明兼容 OpenAI SDK,`base_url=https://spark-api-open.xf-yun.com/v1/`)\n- **协议类型**:OpenAI 兼容(HTTP 接口);另有 WebSocket 原生接口(`wss://spark-api.xf-yun.com/...`,需 APIKey/APISecret/AppID 签名鉴权,属原生协议)\n- **请求结构要点**:标准 OpenAI 体——`model`、`messages`、`stream`、`temperature`、`max_tokens`、`top_p`、`presence_penalty`、`frequency_penalty`、`tools`、`response_format`、`user`;扩展 `top_k`、`tools[].type=web_search` 等\n- **响应结构要点**:与 OpenAI Chat Completions 一致(流式用 SSE 推送)\n- **流式**:SSE(`stream: true`,服务端 SSE 推送)\n- **错误结构**:厂商专属(HTTP 状态码 + 错误信息,未完整读取 body 结构)\n- **特有行为**:模型版本映射——`4.0Ultra`/`generalv3.5`(Max)/`max-32k`/`generalv3`(Pro)/`pro-128k`/`lite`;支持 web_search 工具与内置插件;WebSocket 接口为另一套原生协议\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装(采用 HTTP OpenAI 兼容接口)\n- **依据**:官方 HTTP 文档明确兼容 OpenAI SDK,请求/响应结构与 OpenAI 一致;WebSocket 原生接口不必纳入 chat 适配\n- **可复用模型 ID 样例**:4.0Ultra、generalv3.5、generalv3、pro-128k、lite、max-32k\n- **是否需扩展共享层**:否(`top_k`、`web_search` 工具可透传)\n\n#### 4. 风险与限制\n\n- inventory 无 base_url、无 env、无模型样例,元数据缺失严重,需补全\n- 鉴权用 APIPassword(非 APIKey/APISecret),与 WebSocket 接口鉴权不同,易混淆\n- 模型版本字符串(generalv3.5 等)与版本名映射需文档说明\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:主流国内大模型,HTTP 接口官方明确 OpenAI 兼容,薄封装成本低;需补全 inventory 元数据\n\n---\n\n### zai_coding_plan — Z.AI Coding Plan\n\n- **canonical ID**:zai_coding_plan\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat(Z.AI / 智谱 GLM Coding Plan 订阅套餐,面向编码工具)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.z.ai/devpack/overview 、https://docs.z.ai/devpack/quick-start 、https://docs.z.ai/devpack/tool/others\n- **核验来源**:官方 API 文档\n- **证据强度**:强(官方文档明确支持 OpenAI 与 Anthropic 双协议,给出 OpenAI Chat Completions 的 base_url)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://api.z.ai/api/coding/paas/v4 (OpenAI Chat Completions 协议);Anthropic 协议为 `https://api.z.ai/api/anthropic`\n- **鉴权**:方式=API Key(Z.AI API Key,按 OpenAI 兼容惯例 `Authorization: Bearer`)/ 环境变量=ZHIPU_API_KEY(inventory)/ 是否必需=是\n- **endpoint 公式**:`POST https://api.z.ai/api/coding/paas/v4/chat/completions`(OpenAI 兼容 base_url 即 `.../paas/v4`)\n- **协议类型**:OpenAI 兼容(同时兼容 Anthropic Messages)\n- **请求结构要点**:标准 OpenAI Chat Completions 体(model、messages 等);在编码工具中以 \"OpenAI Compatible\" provider 配置\n- **响应结构要点**:与 OpenAI Chat Completions 一致\n- **流式**:SSE(按 OpenAI 兼容惯例,未在可读片段逐字确认)\n- **错误结构**:与 OpenAI 共享结构基本一致\n- **特有行为**:订阅套餐有 5 小时/周配额限制;Coding Plan Key 与团队/个人套餐绑定,不与其他 Z.AI key 互通;提供 Vision/Web Search/Web Reader/Zread MCP;此为 z.ai 国际端点,区别于国内 open.bigmodel.cn\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方文档明确 OpenAI Chat Completions 协议与 base_url,请求/响应可由共享层表达\n- **可复用模型 ID 样例**:glm-4.5-air、glm-4.7、glm-5-turbo、glm-5.1、glm-5.2\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 与 zhipu_v4(国内 open.bigmodel.cn)为同公司不同端点/套餐,需区分 provider\n- 配额限制(5h/周)可能触发限流,需处理 429\n- base_url 已含 `/api/coding/paas/v4`,薄封装需避免重复追加 `/v1`\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:官方明确 OpenAI 兼容,编码场景需求高,薄封装成本低\n\n---\n\n### zeldoc — Zeldoc\n\n- **canonical ID**:zeldoc\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat(私有 LLM + LLM 路由)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.zeldoc.ai 、https://docs.zeldoc.ai/use-zeldoc-anywhere\n- **核验来源**:官方 API 文档\n- **证据强度**:强(官方文档明确 base_url、Bearer 鉴权、OpenAI 兼容 `/chat/completions` 与 curl 示例)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://api.zeldoc.ai/v1\n- **鉴权**:方式=`Authorization: Bearer $ZELDOC_API_KEY` / 环境变量=ZELDOC_API_KEY / 是否必需=是\n- **endpoint 公式**:`POST https://api.zeldoc.ai/v1/chat/completions`\n- **协议类型**:OpenAI 兼容(同时支持 Anthropic 兼容 `/messages`)\n- **请求结构要点**:标准 OpenAI 体——`model`、`messages`(官方 curl 示例)\n- **响应结构要点**:与 OpenAI Chat Completions 一致(未完整读取 schema)\n- **流式**:未知(按 OpenAI 兼容惯例应支持 SSE,文档可读片段未明确)\n- **错误结构**:与 OpenAI 共享结构基本一致\n- **特有行为**:单 key 提供 LLM 路由;支持 OpenAI 与 Anthropic 两种 API 格式\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方文档明确 OpenAI 兼容 `/chat/completions` + Bearer 鉴权 + base_url\n- **可复用模型 ID 样例**:z-code\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 模型数量少(1 个 z-code),规模小\n- 流式协议未在可读片段明确,实现前建议实测\n\n#### 5. 优先级建议\n\n- **优先级**:P2(后续)\n- **理由**:OpenAI 兼容明确,但规模小、模型少,可后续纳入\n\n---\n\n### zenifra — Zenifra\n\n- **canonical ID**:zenifra\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat(inventory 标 chat)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.zenifra.com (官方站点;但内容为 PaaS 部署/数据库/运维平台文档,**未发现 AI 推理 API 文档**)\n- **核验来源**:仅第三方(mastra 注册表 https://mastra.ai/models/providers/zenifra 声称 OpenAI 兼容 `/chat/completions`,base `https://ai.zenifra.com/v1`,env `ZENIFRA_AI_KEY`)\n- **证据强度**:弱(官方 docs.zenifra.com 无 AI 推理 API 文档;协议信息仅来自单一第三方 mastra,无法确认官方请求/响应契约)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://ai.zenifra.com/v1 (inventory / mastra;官方文档未确认)\n- **鉴权**:方式=未知(mastra 示例用 `apiKey: process.env.ZENIFRA_AI_KEY`,按 OpenAI 兼容惯例推测 Bearer,未官方确认)/ 环境变量=ZENIFRA_AI_KEY / 是否必需=是\n- **endpoint 公式**:`POST /chat/completions`(mastra 声称,未官方确认)\n- **协议类型**:OpenAI 兼容(仅 mastra 声称,未官方确认)\n- **请求结构要点**:未知(无官方契约)\n- **响应结构要点**:未知(无官方契约)\n- **流式**:未知\n- **错误结构**:未知\n- **特有行为**:mastra 列出模型 `alibaba/qwen3.6-35b-a3b`(262K 上下文);官方 docs.zenifra.com 为部署平台,疑似 AI 推理为独立未公开服务\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:待定(若 mastra 声称属实则为薄封装,但官方契约未确认,不臆造)\n- **依据**:仅第三方声称 OpenAI 兼容,官方文档缺失,证据不足\n- **可复用模型 ID 样例**:alibaba/qwen3.6-35b-a3b(mastra)\n- **是否需扩展共享层**:未知\n\n#### 4. 风险与限制\n\n- 官方 docs.zenifra.com 无 AI 推理 API 文档,无法确认协议\n- 协议信息仅来自 mastra 单一第三方,按 RFC §2.1 不足以确认请求/响应契约\n- base_url `ai.zenifra.com` 与主站 `docs.zenifra.com` 分离,服务存在性待验证\n\n#### 5. 优先级建议\n\n- **优先级**:搁置(证据不足)\n- **理由**:官方文档未覆盖 AI 推理 API,仅第三方声称 OpenAI 兼容,按 RFC 不臆造协议细节,待官方文档出现后再调研\n\n---\n\n### zhipu_v4 — ZhipuV4\n\n- **canonical ID**:zhipu_v4\n- **aliases**:\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat(智谱 AI GLM 开放平台)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.bigmodel.cn/cn/guide/develop/http/introduction 、https://docs.bigmodel.cn/cn/api/introduction\n- **核验来源**:官方 API 文档\n- **证据强度**:强(官方文档明确 base_url、Bearer 鉴权、`/chat/completions` endpoint 与请求/响应示例)\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:https://open.bigmodel.cn/api/paas/v4 (inventory 给出根域 `https://open.bigmodel.cn`)\n- **鉴权**:方式=两种——`Authorization: Bearer YOUR_API_KEY`(API Key 鉴权)或 JWT Token 鉴权(用 API Key 的 id.secret 生成 HS256 JWT)/ 环境变量=未知(inventory 为空;社区常用 `ZHIPU_API_KEY`)/ 是否必需=是\n- **endpoint 公式**:`POST https://open.bigmodel.cn/api/paas/v4/chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI 体——`model`、`messages`、`temperature`、`max_tokens`、`stream`;多轮对话用 messages 数组\n- **响应结构要点**:与 OpenAI Chat Completions 一致——`choices[0].message.content`、`usage` 等\n- **流式**:SSE(`stream: true`)\n- **错误结构**:标准 HTTP 状态码(401 未授权 / 429 限流 / 500 服务器错误),body 厂商专属\n- **特有行为**:API Key 形如 `{id}.{secret}`;JWT 鉴权为可选高安全方案;此为国内端点,区别于 z.ai 国际端点;另有 Coding 端点 `https://open.bigmodel.cn/api/coding/paas/v4`\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方文档明确 `/api/paas/v4/chat/completions` + Bearer 鉴权 + 标准 OpenAI 请求/响应结构\n- **可复用模型 ID 样例**:glm-5.2、glm-5.1、glm-5-turbo、glm-4.7、glm-4.5-air(inventory 为空,按官方文档)\n- **是否需扩展共享层**:否(JWT 鉴权为可选,标准 Bearer API Key 即可工作)\n\n#### 4. 风险与限制\n\n- inventory 无 base_url 路径、无 env、无模型样例,需补全(base 需补 `/api/paas/v4`,env 补 `ZHIPU_API_KEY`)\n- 与 zai_coding_plan(z.ai 国际)为同公司不同端点,需区分\n- API Key 含 `.` 分隔的 id.secret,JWT 生成逻辑若支持需额外实现(薄封装可仅用 Bearer API Key)\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:主流国内大模型,官方明确 OpenAI 兼容,薄封装成本低;需补全 inventory 元数据\n"}}, "docs/internal/provider-research/batches/batch-08.json": {"d4bfcae94f036812a833dbb6ddb703136eed4760": {"t": 1785809878.367966, "n": 10117, "h": "7b5f9b121a1cf923", "c": "{\n \"batch\": 8,\n \"count\": 14,\n \"providers\": [\n {\n \"id\": \"llmtr\",\n \"display_name\": \"LLMTR\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://llmtr.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://llmtr.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"LLMTR_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"gemma-4\",\n \"magibu-11b-v8\",\n \"medgemma-4b\",\n \"qwen3-6-35b\",\n \"sincap\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"lucidquery\",\n \"display_name\": \"LucidQuery\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lucidquery.com/v1\",\n \"https://lucidquery.com/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://lucidquery.com/api/docs\",\n \"https://lucidquery.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"LUCIDQUERY_API_KEY\"\n ],\n \"model_count\": 4,\n \"model_sample\": [\n \"lucidnova-rf1-100b\",\n \"lucidquery-agi-01-frontier\",\n \"lucidquery-agi-01-swift\",\n \"lucidquery-nexus-coder\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"lynkr\",\n \"display_name\": \"Lynkr\",\n \"aliases\": [],\n \"provider_kind\": \"local_runtime\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"http://127.0.0.1:8081/v1\"\n ],\n \"documentation_urls\": [\n \"https://github.com/Fast-Editor/Lynkr\"\n ],\n \"api_key_env_vars\": [\n \"LYNKR_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"lynkr-auto\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"maritalk\",\n \"display_name\": \"Maritalk\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"meganova\",\n \"display_name\": \"Meganova\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.meganova.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.meganova.ai\"\n ],\n \"api_key_env_vars\": [\n \"MEGANOVA_API_KEY\"\n ],\n \"model_count\": 19,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.1\",\n \"MiniMaxAI/MiniMax-M2.5\",\n \"Qwen/Qwen2.5-VL-32B-Instruct\",\n \"Qwen/Qwen3-235B-A22B-Instruct-2507\",\n \"Qwen/Qwen3.5-Plus\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"merge_gateway\",\n \"display_name\": \"Merge Gateway\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://docs.merge.dev/merge-gateway\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 83,\n \"model_sample\": [\n \"anthropic/claude-haiku-4-5-20251001\",\n \"anthropic/claude-opus-4-1-20250805\",\n \"anthropic/claude-opus-4-20250514\",\n \"anthropic/claude-opus-4-5-20251101\",\n \"anthropic/claude-opus-4-6\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"midjourney\",\n \"display_name\": \"Midjourney\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://oa.api2d.net\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"midjourney_plus\",\n \"display_name\": \"MidjourneyPlus\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.openai-sb.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"mimo\",\n \"display_name\": \"Mimo\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"rust_genai\"\n ]\n },\n {\n \"id\": \"minimax_cn\",\n \"display_name\": \"MiniMax (minimaxi.com)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.minimaxi.com/anthropic/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.minimaxi.com/docs/guides/quickstart\"\n ],\n \"api_key_env_vars\": [\n \"MINIMAX_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"MiniMax-M2\",\n \"MiniMax-M2.1\",\n \"MiniMax-M2.5\",\n \"MiniMax-M2.5-highspeed\",\n \"MiniMax-M2.7\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"minimax_cn_coding_plan\",\n \"display_name\": \"MiniMax Token Plan (minimaxi.com)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.minimaxi.com/anthropic/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.minimaxi.com/docs/token-plan/intro\"\n ],\n \"api_key_env_vars\": [\n \"MINIMAX_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"MiniMax-M2\",\n \"MiniMax-M2.1\",\n \"MiniMax-M2.5\",\n \"MiniMax-M2.5-highspeed\",\n \"MiniMax-M2.7\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"minimax_coding_plan\",\n \"display_name\": \"MiniMax Token Plan (minimax.io)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.minimax.io/anthropic/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.minimax.io/docs/token-plan/intro\"\n ],\n \"api_key_env_vars\": [\n \"MINIMAX_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"MiniMax-M2\",\n \"MiniMax-M2.1\",\n \"MiniMax-M2.5\",\n \"MiniMax-M2.5-highspeed\",\n \"MiniMax-M2.7\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"mixlayer\",\n \"display_name\": \"Mixlayer\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://models.mixlayer.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.mixlayer.com\"\n ],\n \"api_key_env_vars\": [\n \"MIXLAYER_API_KEY\"\n ],\n \"model_count\": 5,\n \"model_sample\": [\n \"qwen/qwen3.5-122b-a10b\",\n \"qwen/qwen3.5-27b\",\n \"qwen/qwen3.5-35b-a3b\",\n \"qwen/qwen3.5-397b-a17b\",\n \"qwen/qwen3.5-9b\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"moark\",\n \"display_name\": \"Moark\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://moark.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://moark.com/docs/openapi/v1\"\n ],\n \"api_key_env_vars\": [\n \"MOARK_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"GLM-4.7\",\n \"MiniMax-M2.1\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n }\n ]\n}"}, "039a2a34372a6add580ee6121c703249d770d604": {"t": 1785846986.89283, "n": 10117, "h": "7b5f9b121a1cf923", "c": "{\n \"batch\": 8,\n \"count\": 14,\n \"providers\": [\n {\n \"id\": \"llmtr\",\n \"display_name\": \"LLMTR\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://llmtr.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://llmtr.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"LLMTR_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"gemma-4\",\n \"magibu-11b-v8\",\n \"medgemma-4b\",\n \"qwen3-6-35b\",\n \"sincap\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"lucidquery\",\n \"display_name\": \"LucidQuery\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.lucidquery.com/v1\",\n \"https://lucidquery.com/api/v1\"\n ],\n \"documentation_urls\": [\n \"https://lucidquery.com/api/docs\",\n \"https://lucidquery.com/docs\"\n ],\n \"api_key_env_vars\": [\n \"LUCIDQUERY_API_KEY\"\n ],\n \"model_count\": 4,\n \"model_sample\": [\n \"lucidnova-rf1-100b\",\n \"lucidquery-agi-01-frontier\",\n \"lucidquery-agi-01-swift\",\n \"lucidquery-nexus-coder\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"lynkr\",\n \"display_name\": \"Lynkr\",\n \"aliases\": [],\n \"provider_kind\": \"local_runtime\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"http://127.0.0.1:8081/v1\"\n ],\n \"documentation_urls\": [\n \"https://github.com/Fast-Editor/Lynkr\"\n ],\n \"api_key_env_vars\": [\n \"LYNKR_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"lynkr-auto\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"maritalk\",\n \"display_name\": \"Maritalk\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"meganova\",\n \"display_name\": \"Meganova\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.meganova.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.meganova.ai\"\n ],\n \"api_key_env_vars\": [\n \"MEGANOVA_API_KEY\"\n ],\n \"model_count\": 19,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.1\",\n \"MiniMaxAI/MiniMax-M2.5\",\n \"Qwen/Qwen2.5-VL-32B-Instruct\",\n \"Qwen/Qwen3-235B-A22B-Instruct-2507\",\n \"Qwen/Qwen3.5-Plus\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"merge_gateway\",\n \"display_name\": \"Merge Gateway\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [\n \"https://docs.merge.dev/merge-gateway\"\n ],\n \"api_key_env_vars\": [],\n \"model_count\": 83,\n \"model_sample\": [\n \"anthropic/claude-haiku-4-5-20251001\",\n \"anthropic/claude-opus-4-1-20250805\",\n \"anthropic/claude-opus-4-20250514\",\n \"anthropic/claude-opus-4-5-20251101\",\n \"anthropic/claude-opus-4-6\"\n ],\n \"trust_score\": 47,\n \"source_ids\": [\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"midjourney\",\n \"display_name\": \"Midjourney\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://oa.api2d.net\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"midjourney_plus\",\n \"display_name\": \"MidjourneyPlus\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.openai-sb.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"mimo\",\n \"display_name\": \"Mimo\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"rust_genai\"\n ]\n },\n {\n \"id\": \"minimax_cn\",\n \"display_name\": \"MiniMax (minimaxi.com)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.minimaxi.com/anthropic/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.minimaxi.com/docs/guides/quickstart\"\n ],\n \"api_key_env_vars\": [\n \"MINIMAX_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"MiniMax-M2\",\n \"MiniMax-M2.1\",\n \"MiniMax-M2.5\",\n \"MiniMax-M2.5-highspeed\",\n \"MiniMax-M2.7\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"minimax_cn_coding_plan\",\n \"display_name\": \"MiniMax Token Plan (minimaxi.com)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.minimaxi.com/anthropic/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.minimaxi.com/docs/token-plan/intro\"\n ],\n \"api_key_env_vars\": [\n \"MINIMAX_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"MiniMax-M2\",\n \"MiniMax-M2.1\",\n \"MiniMax-M2.5\",\n \"MiniMax-M2.5-highspeed\",\n \"MiniMax-M2.7\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"minimax_coding_plan\",\n \"display_name\": \"MiniMax Token Plan (minimax.io)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.minimax.io/anthropic/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.minimax.io/docs/token-plan/intro\"\n ],\n \"api_key_env_vars\": [\n \"MINIMAX_API_KEY\"\n ],\n \"model_count\": 7,\n \"model_sample\": [\n \"MiniMax-M2\",\n \"MiniMax-M2.1\",\n \"MiniMax-M2.5\",\n \"MiniMax-M2.5-highspeed\",\n \"MiniMax-M2.7\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"mixlayer\",\n \"display_name\": \"Mixlayer\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://models.mixlayer.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.mixlayer.com\"\n ],\n \"api_key_env_vars\": [\n \"MIXLAYER_API_KEY\"\n ],\n \"model_count\": 5,\n \"model_sample\": [\n \"qwen/qwen3.5-122b-a10b\",\n \"qwen/qwen3.5-27b\",\n \"qwen/qwen3.5-35b-a3b\",\n \"qwen/qwen3.5-397b-a17b\",\n \"qwen/qwen3.5-9b\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"moark\",\n \"display_name\": \"Moark\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://moark.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://moark.com/docs/openapi/v1\"\n ],\n \"api_key_env_vars\": [\n \"MOARK_API_KEY\"\n ],\n \"model_count\": 2,\n \"model_sample\": [\n \"GLM-4.7\",\n \"MiniMax-M2.1\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n }\n ]\n}"}}, "docs/internal/provider-research/batches/batch-13.json": {"1b3e3618ec8c3c7d617087474f15f50e0cba4e0d": {"t": 1785846840.2426512, "n": 9644, "h": "ae48fe961e83dc9f", "c": "{\n \"batch\": 13,\n \"count\": 14,\n \"providers\": [\n {\n \"id\": \"vidu\",\n \"display_name\": \"Vidu\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.vidu.cn\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"vivgrid\",\n \"display_name\": \"Vivgrid\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.vivgrid.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.vivgrid.com/models\"\n ],\n \"api_key_env_vars\": [\n \"VIVGRID_API_KEY\"\n ],\n \"model_count\": 17,\n \"model_sample\": [\n \"deepseek-v3.2\",\n \"deepseek-v4-pro\",\n \"gemini-3.1-flash-lite-preview\",\n \"gemini-3.1-pro-preview\",\n \"glm-5.2\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"volc_engine\",\n \"display_name\": \"VolcEngine\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://ark.cn-beijing.volces.com\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"vultr\",\n \"display_name\": \"Vultr\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.vultrinference.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://api.vultrinference.com\"\n ],\n \"api_key_env_vars\": [\n \"VULTR_API_KEY\"\n ],\n \"model_count\": 12,\n \"model_sample\": [\n \"MiniMaxAI/MiniMax-M2.7\",\n \"Qwen/Qwen3.5-397B-A17B\",\n \"Qwen/Qwen3.6-27B\",\n \"XiaomiMiMo/MiMo-V2.5-Pro\",\n \"deepseek-ai/DeepSeek-V4-Flash\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"watsonx_text\",\n \"display_name\": \"Watsonx Text\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"litellm_constants\"\n ]\n },\n {\n \"id\": \"xiaomi_token_plan_ams\",\n \"display_name\": \"Xiaomi Token Plan (Europe)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://token-plan-ams.xiaomimimo.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.xiaomimimo.com\"\n ],\n \"api_key_env_vars\": [\n \"XIAOMI_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"mimo-v2-omni\",\n \"mimo-v2-pro\",\n \"mimo-v2-tts\",\n \"mimo-v2.5\",\n \"mimo-v2.5-pro\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"xiaomi_token_plan_cn\",\n \"display_name\": \"Xiaomi Token Plan (China)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://token-plan-cn.xiaomimimo.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.xiaomimimo.com\"\n ],\n \"api_key_env_vars\": [\n \"XIAOMI_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"mimo-v2-omni\",\n \"mimo-v2-pro\",\n \"mimo-v2-tts\",\n \"mimo-v2.5\",\n \"mimo-v2.5-pro\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"xiaomi_token_plan_sgp\",\n \"display_name\": \"Xiaomi Token Plan (Singapore)\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://token-plan-sgp.xiaomimimo.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://platform.xiaomimimo.com\"\n ],\n \"api_key_env_vars\": [\n \"XIAOMI_API_KEY\"\n ],\n \"model_count\": 8,\n \"model_sample\": [\n \"mimo-v2-omni\",\n \"mimo-v2-pro\",\n \"mimo-v2-tts\",\n \"mimo-v2.5\",\n \"mimo-v2.5-pro\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"xpersona\",\n \"display_name\": \"Xpersona\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://www.xpersona.co/v1\"\n ],\n \"documentation_urls\": [\n \"https://www.xpersona.co/docs\"\n ],\n \"api_key_env_vars\": [\n \"XPERSONA_API_KEY\"\n ],\n \"model_count\": 3,\n \"model_sample\": [\n \"claude-fable-5\",\n \"xpersona-frieren-coder\",\n \"xpersona-gpt-5.5\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"xunfei\",\n \"display_name\": \"Xunfei\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.3,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 27,\n \"source_ids\": [\n \"new_api\"\n ]\n },\n {\n \"id\": \"zai_coding_plan\",\n \"display_name\": \"Z.AI Coding Plan\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.z.ai/api/coding/paas/v4\"\n ],\n \"documentation_urls\": [\n \"https://docs.z.ai/devpack/overview\"\n ],\n \"api_key_env_vars\": [\n \"ZHIPU_API_KEY\"\n ],\n \"model_count\": 6,\n \"model_sample\": [\n \"glm-4.5-air\",\n \"glm-4.7\",\n \"glm-5-turbo\",\n \"glm-5.1\",\n \"glm-5.2\"\n ],\n \"trust_score\": 0,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"zeldoc\",\n \"display_name\": \"Zeldoc\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.65,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://api.zeldoc.ai/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.zeldoc.ai\"\n ],\n \"api_key_env_vars\": [\n \"ZELDOC_API_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"z-code\"\n ],\n \"trust_score\": 64,\n \"source_ids\": [\n \"mastra_registry\",\n \"tokenhub\"\n ]\n },\n {\n \"id\": \"zenifra\",\n \"display_name\": \"Zenifra\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://ai.zenifra.com/v1\"\n ],\n \"documentation_urls\": [\n \"https://docs.zenifra.com\"\n ],\n \"api_key_env_vars\": [\n \"ZENIFRA_AI_KEY\"\n ],\n \"model_count\": 1,\n \"model_sample\": [\n \"alibaba/qwen3.6-35b-a3b\"\n ],\n \"trust_score\": 52,\n \"source_ids\": [\n \"mastra_registry\"\n ]\n },\n {\n \"id\": \"zhipu_v4\",\n \"display_name\": \"ZhipuV4\",\n \"aliases\": [],\n \"provider_kind\": \"model_vendor\",\n \"tier\": \"unknown\",\n \"protocol\": \"unknown\",\n \"openai_compatible\": null,\n \"confidence\": 0.45,\n \"capabilities\": [\n \"chat\"\n ],\n \"base_urls\": [\n \"https://open.bigmodel.cn\"\n ],\n \"documentation_urls\": [],\n \"api_key_env_vars\": [],\n \"model_count\": 0,\n \"model_sample\": [],\n \"trust_score\": 32,\n \"source_ids\": [\n \"new_api\"\n ]\n }\n ]\n}"}}, "docs/internal/model-config-research/batch-04.md": {"1b3e3618ec8c3c7d617087474f15f50e0cba4e0d": {"t": 1785846865.4321709, "n": 62536, "h": "d0b09461eea3e02f", "c": "# Batch 04 — Model Request Config 调研\n\n> 状态: ✅ 已完成调研(42/42) · 厂商数: 42\n> 模板见 [_template.md](_template.md) · 方法论见 [README.md](README.md)\n> 证据硬性要求: 每条目必须有例子或证明(A/B/C 级),禁止编造来源。\n> 完成日期: 2026-08-01 · 调研批次: batch-04(llmgateway → openaisb,网关/聚合/代理厂商为主)\n\n## 厂商清单\n\n| # | id | display | base_url | env_var | profile |\n|---|---|---|---|---|---|\n| 1 | llmgateway | LLM Gateway | https://api.llmgateway.io/v1 | LLM_GATEWAY_API_KEY | OpenAICompatProfile::full() |\n| 2 | llmtr | LLMTR | https://llmtr.com/v1 | LLMTR_API_KEY | OpenAICompatProfile::full() |\n| 3 | longcat | LongCat | https://api.longcat.chat/v1 | LONGCAT_API_KEY | OpenAICompatProfile::full() |\n| 4 | lucidquery | LucidQuery | https://api.lucidquery.com/v1 | LUCIDQUERY_API_KEY | OpenAICompatProfile::full() |\n| 5 | lynkr | Lynkr | http://localhost:8081/v1 | LYNKR_API_KEY | OpenAICompatProfile::full() |\n| 6 | matterai | Matter AI | https://api.matterai.com/v1 | MATTERAI_API_KEY | OpenAICompatProfile::full() |\n| 7 | meganova | Meganova | https://api.meganova.ai/v1 | MEGANOVA_API_KEY | OpenAICompatProfile::full() |\n| 8 | merge_gateway | Merge Gateway | https://api-gateway.merge.dev/v1/openai | MERGE_GATEWAY_API_KEY | OpenAICompatProfile::full() |\n| 9 | meta | Meta | https://api.meta.ai/v1 | MODEL_API_KEY | OpenAICompatProfile::full() |\n| 10 | meta_llama | Meta Llama API | https://api.llama.com/compat/v1 | LLAMA_API_KEY | OpenAICompatProfile::full() |\n| 11 | mimo | Mimo | https://api.xiaomimimo.com/v1 | MIMO_API_KEY | OpenAICompatProfile::full() |\n| 12 | minimax | MiniMax | https://api.minimax.io/v1 | MINIMAX_API_KEY | OpenAICompatProfile::full() |\n| 13 | minimax_cn | MiniMax (minimaxi.com) | https://api.minimaxi.com/v1 | MINIMAX_API_KEY | OpenAICompatProfile::full() |\n| 14 | minimax_cn_coding_plan | MiniMax Token Plan (minimaxi.com) | https://api.minimaxi.com/v1 | MINIMAX_API_KEY | OpenAICompatProfile::full() |\n| 15 | minimax_coding_plan | MiniMax Token Plan (minimax.io) | https://api.minimax.io/anthropic/v1 | MINIMAX_API_KEY | OpenAICompatProfile::full() |\n| 16 | mira | Mira | https://api.mira.so/v1 | MIRA_API_KEY | OpenAICompatProfile::full() |\n| 17 | mixlayer | Mixlayer | https://models.mixlayer.ai/v1 | MIXLAYER_API_KEY | OpenAICompatProfile::full() |\n| 18 | moark | Moark | https://api.moark.com/v1 | MOARK_API_KEY | OpenAICompatProfile::full() |\n| 19 | modal | Modal | https://modal.com/v1 | MODAL_API_KEY | OpenAICompatProfile::full() |\n| 20 | model_oracle_ai | Model Oracle AI | https://api.modeloracle.com/api/v1 | MODEL_ORACLE_API_KEY | OpenAICompatProfile::full() |\n| 21 | modelscope | ModelScope | https://api-inference.modelscope.cn/v1 | MODELSCOPE_API_KEY | OpenAICompatProfile::full() |\n| 22 | moonshotai | Moonshot AI | https://api.moonshot.cn/v1 | MOONSHOT_API_KEY | OpenAICompatProfile::full() |\n| 23 | moonshotai_cn | Moonshot AI (China) | https://api.moonshot.cn/anthropic/v1锛圓nthropic | MOONSHOT_API_KEY | OpenAICompatProfile::full() |\n| 24 | morph | Morph LLM | https://api.morphllm.com/v1 | MORPH_API_KEY | OpenAICompatProfile::full() |\n| 25 | nanogpt | NanoGPT | https://api.nanogpt.com/v1 | NANOGPT_API_KEY | OpenAICompatProfile::full() |\n| 26 | ncompass | Ncompass | https://api.ncompass.tech/v1 | NCOMPASS_API_KEY | OpenAICompatProfile::full() |\n| 27 | nearai | NEAR AI Cloud | https://cloud-api.near.ai/v1 | NEARAI_API_KEY | OpenAICompatProfile::full() |\n| 28 | nebius | Nebius AI | https://api.studio.nebius.ai/v1 | NEBIUS_API_KEY | OpenAICompatProfile::full() |\n| 29 | neon | Neon | https:///v1 | NEON_AI_GATEWAY_TOKEN | OpenAICompatProfile::full() |\n| 30 | neuralwatt | Neuralwatt | https://api.neuralwatt.com/v1 | NEURALWATT_API_KEY | OpenAICompatProfile::full() |\n| 31 | nextbit | NextBit | https://api.nextbit.ai/v1 | NEXTBIT_API_KEY | OpenAICompatProfile::full() |\n| 32 | nlp_cloud | NLP Cloud | https://api.nlpcloud.io/v1 | NLPCLOUD_API_KEY | OpenAICompatProfile::full() |\n| 33 | nous_research | Nous Research | https://api.nousresearch.com/v1 | NOUS_API_KEY | OpenAICompatProfile::full() |\n| 34 | novita | Novita AI | https://api.novita.ai/v1 | NOVITA_API_KEY | OpenAICompatProfile::full() |\n| 35 | nscale | Nscale | https://inference.api.nscale.com/v1 | NSCALE_API_KEY | OpenAICompatProfile::full() |\n| 36 | nvidia_nim | NVIDIA NIM | https://integrate.api.nvidia.com/v1 | NVIDIA_API_KEY | OpenAICompatProfile::full() |\n| 37 | oci | OCI | https://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1 | OCI_API_KEY | OpenAICompatProfile::full() |\n| 38 | ofox | OfoxAI | https://api.ofox.ai/v1 | OFOX_API_KEY | OpenAICompatProfile::full() |\n| 39 | ohmygpt | OhMyGPT | https://api.ohmygpt.com/v1 | OHMYGPT_API_KEY | OpenAICompatProfile::full() |\n| 40 | ollama_cloud | Ollama Cloud | https://api.ollama.com/v1 | OLLAMA_CLOUD_API_KEY | OpenAICompatProfile::full() |\n| 41 | openaimax | OpenAIMax | https://api.openaimax.com/v1 | OPENAIMAX_API_KEY | OpenAICompatProfile::full() |\n| 42 | openaisb | OpenAI-SB | https://api.openaisb.com/v1 | OPENAISB_API_KEY | OpenAICompatProfile::full() |\n\n---\n\n### llmgateway — LLM Gateway\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.llmgateway.io/v1` · env=`LLM_GATEWAY_API_KEY`\n- **变体**: 无(llmgateway 同厂还有 llamagate/openai_router 等不属本批)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(顶层 `max_tokens`/`max_completion_tokens` 均透传) | - | - | - |\n| 能力支持 | 无差异(tools/json 等标准) | - | - | - |\n| 思考机制 | 支持两套:顶层 `reasoning_effort`(`none/minimal/low/medium/high/xhigh/max` 7 档)或统一 `reasoning` 对象(`effort` + `max_tokens` 预算);二者不可混用;`reasoning.max_tokens` 覆盖 effort | `{\"model\":\"gpt-oss-120b\",\"messages\":[...],\"reasoning_effort\":\"medium\"}` / `{\"model\":\"anthropic/claude-sonnet-4-20250514\",\"reasoning\":{\"max_tokens\":8000}}` | B | reference/llmgateway/apps/docs/content/features/reasoning.mdx:55-106 |\n| 流式/usage | 响应 usage 含 `reasoning_tokens`;流式 delta 携带 `delta.reasoning`(思考内容字段名不是 `reasoning_content`) | `\"message\":{\"content\":\"...\",\"reasoning\":\"First, I need to...\"}`;`\"usage\":{\"prompt_tokens\":20,\"completion_tokens\":45,\"reasoning_tokens\":35}` | B | reasoning.mdx:112-136, 267-286 |\n| 消息格式 | 非流式思考内容在 `message.reasoning`(非 `reasoning_content`) | 见上 | B | reasoning.mdx:124 |\n| 特殊字段 | `verbosity`(`low/medium/high`,GPT-5 系列);缓存控制头 `x-no-cache: true` 可绕过网关缓存 | `{\"model\":\"gpt-5\",\"messages\":[...],\"verbosity\":\"low\"}` | B | reasoning.mdx:207-221;features/anthropic-endpoint.mdx:183 |\n| headers/认证 | `Authorization: Bearer $LLM_GATEWAY_API_KEY`(标准);响应头 `x-llmgateway-cache: HIT` | `curl -H \"Authorization: Bearer $LLM_GATEWAY_API_KEY\"` | B | apps/docs/content/overview.mdx:30-32 |\n| URL/端点 | 无差异(`https://api.llmgateway.io/v1` 与 registry 一致) | - | B | quick-start.mdx:12 |\n| 模型 ID | 厂商前缀模型 ID:`openai/gpt-oss-20b`、`anthropic/claude-...`、自定义 `/`(如 `internal-vllm/llama-4-maverick`);auto-routing 可用不带前缀的 `gpt-5` | `\"model\":\"anthropic/claude-sonnet-4-20250514\"` | B | reasoning.mdx:156,274;learn/models.mdx:50 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: 🔶 部分覆盖\n- **aimux 代码位置**: `openai/convert.rs:1326-1329`(reasoning_effort 发送)、`convert.rs:1284-1317`(白名单)、`openai_compat_registry.rs:1151`\n- **差距说明**: ① llmgateway 的 `reasoning` 对象(effort+max_tokens)与 `max`/`xhigh` 档位 aimux 未覆盖;② `verbosity` 不在白名单(aimux 只有 `textVerbosity`→`verbosity` 映射,见 convert.rs:1294-1296,字段名恰好一致但触发条件不同);③ 响应侧 `message.reasoning` 别名未解析。\n- **建议动作**: 无需改 profile;`reasoning.max_tokens` 可经 bodyOverrides 兜底;后续若做 reasoningMap 可把 llmgateway 列为\"接受 OpenAI effort 全套档位\"的厂商;补测试。\n\n#### 3. 证据与验证\n\n- **证据等级**: B\n- **验证状态**: 🔲 未验证(仅 reference 文档引用)\n- **存疑标记**: 无\n\n---\n\n### llmtr — LLMTR\n\n- **registry 现状**: profile=`full()` · base_url=`https://llmtr.com/v1` · env=`LLMTR_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(标准 Chat Completions + streaming) | - | - | - |\n| 思考机制 | 无差异(透传,按模型而定) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(OpenAI SDK 标准 `base_url` + api key) | - | C | https://llmtr.com/?lang=en |\n| URL/端点 | 无差异(`https://llmtr.com/v1`,土耳其 OpenAI 兼容网关) | - | C | https://llmtr.com/?lang=en;https://github.com/cline/cline/discussions/11492 |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖(纯透传网关)\n- **aimux 代码位置**: `openai_compat_registry.rs:1160`\n- **差距说明**: 官方声明\"standard OpenAI Chat Completions\",无需特殊处理。\n- **建议动作**: 无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无\n\n---\n\n### longcat — LongCat\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.longcat.chat/v1` · env=`LONGCAT_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异(透传) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | C | https://anx.anxcye.com/docs/en/ai/longcat |\n| URL/端点 | ⚠️ 社区/文档实际使用的 OpenAI 兼容路径为 `https://api.longcat.chat/openai/v1`(SillyTavern 接入要求保留 `/openai` 前缀),registry 的 `/v1` 可能是原生端点 | `base_url = \"https://api.longcat.chat/openai/v1\"` | C | https://www.reddit.com/r/SillyTavernAI/comments/1pi2abh/how_do_i_use_longcat_api_it_never_connects/;https://anx.anxcye.com/docs/en/ai/longcat |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ⚠️ 不一致(base_url 可能错误)\n- **aimux 代码位置**: `openai_compat_registry.rs:1170`\n- **差距说明**: 若 `/openai/v1` 才是 OpenAI 兼容前缀,registry 的 `https://api.longcat.chat/v1` 会 404/格式不符。⚠️ 存疑(两条社区来源指向 `/openai/v1`,官方文档未能直接访问验证)。\n- **建议动作**: 用真实 API key 验证后修正 base_url;补 A 级测试。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: ⚠️ base_url 前缀未确证(社区来源,官方文档需登录)\n\n---\n\n### lucidquery — LucidQuery\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.lucidquery.com/v1` · env=`LUCIDQUERY_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(dashboard 生成 key,SDK 直插) | - | C | https://lucidquery.com/api |\n| URL/端点 | 无差异(官方文档:`api.lucidquery.com/v1`) | - | C | https://lucidquery.com/api |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖\n- **aimux 代码位置**: `openai_compat_registry.rs:1178`\n- **差距说明**: 官方文档即\"Set the base URL to api.lucidquery.com/v1\",标准 OpenAI 兼容。\n- **建议动作**: 无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无(文档信息少,仅 URL/认证确认)\n\n---\n\n### lynkr — Lynkr\n\n- **registry 现状**: profile=`full()` · base_url=`http://localhost:8081/v1` · env=`LYNKR_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 证据不足 | - | - | - |\n| 能力支持 | 证据不足 | - | - | - |\n| 思考机制 | 证据不足 | - | - | - |\n| 流式/usage | 证据不足 | - | - | - |\n| 消息格式 | 证据不足 | - | - | - |\n| 特殊字段 | 证据不足 | - | - | - |\n| headers/认证 | 证据不足 | - | - | - |\n| URL/端点 | ⚠️ base_url 为 localhost(本地代理/自托管网关),registry 值与实际部署强绑定 | - | ⚠️ | 无公开文档可查 |\n| 模型 ID | 证据不足 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ⚠️ 证据不足(无法对比)\n- **aimux 代码位置**: `openai_compat_registry.rs:1188`\n- **差距说明**: 未检索到 lynkr 的任何公开 API 文档;localhost base_url 表明是本地自托管服务。\n- **建议动作**: 保持 full();待有真实接入案例再核对。\n\n#### 3. 证据与验证\n\n- **证据等级**: D(无公开来源)→ 计入存疑归档\n- **验证状态**: 🔲 未验证\n- **存疑标记**: ⚠️ 存疑\n\n---\n\n### matterai — Matter AI\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.matterai.com/v1` · env=`MATTERAI_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 证据不足 | - | - | - |\n| 能力支持 | 证据不足 | - | - | - |\n| 思考机制 | 证据不足 | - | - | - |\n| 流式/usage | 证据不足 | - | - | - |\n| 消息格式 | 证据不足 | - | - | - |\n| 特殊字段 | 证据不足 | - | - | - |\n| headers/认证 | 证据不足 | - | - | - |\n| URL/端点 | 证据不足(api.matterai.com 存在但未检索到 API 文档) | - | - | - |\n| 模型 ID | 证据不足 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ⚠️ 证据不足\n- **aimux 代码位置**: `openai_compat_registry.rs:1196`\n- **差距说明**: 未检索到官方 API 文档,无法确认是否纯 OpenAI 兼容。\n- **建议动作**: 保持 full();待有真实接入案例再核对。\n\n#### 3. 证据与验证\n\n- **证据等级**: D(无公开来源)→ 计入存疑归档\n- **验证状态**: 🔲 未验证\n- **存疑标记**: ⚠️ 存疑\n\n---\n\n### meganova — Meganova\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.meganova.ai/v1` · env=`MEGANOVA_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(标准 OpenAI 兼容) | - | C | https://docs.meganova.ai/api-reference |\n| URL/端点 | 无差异(官方:\"The Inference API is OpenAI compatible and available at https://api.meganova.ai/v1\") | - | C | https://docs.meganova.ai/inference-models |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖\n- **aimux 代码位置**: `openai_compat_registry.rs:1205`\n- **差距说明**: 官方文档明确 OpenAI 兼容 + 预配置端点。\n- **建议动作**: 无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无\n\n---\n\n### merge_gateway — Merge Gateway\n\n- **registry 现状**: profile=`full()` · base_url=`https://api-gateway.merge.dev/v1/openai` · env=`MERGE_GATEWAY_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(标准 chat.completions) | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`api_key` 经 OpenAI SDK 传) | - | C | https://docs.merge.dev/merge-gateway/get-started |\n| URL/端点 | 无差异(官方示例 `base_url=\"https://api-gateway.merge.dev/v1/openai\"`,与 registry 一致) | `client = OpenAI(api_key=\"...\", base_url=\"https://api-gateway.merge.dev/v1/openai\")` | C | https://docs.merge.dev/merge-gateway/get-started |\n| 模型 ID | 无差异(官方:\"No provider prefix needed on the model name\") | - | C | https://www.merge.dev/gateway/fugu-ultra-api |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖\n- **aimux 代码位置**: `openai_compat_registry.rs:1214`\n- **差距说明**: 官方明确标准 OpenAI 兼容、模型名无需前缀,与 full() 无冲突。\n- **建议动作**: 无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无\n\n---\n\n### meta — Meta\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.meta.ai/v1` · env=`MODEL_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异(muse-spark 系列内部推理,未暴露开关) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Bearer token (MODEL_API_KEY)`) | `Authorization: Bearer $MODEL_API_KEY` | C | https://ai.developer.meta.com/docs/overview/ |\n| URL/端点 | 无差异(官方 Base URL `https://api.meta.ai/v1`,与 registry 一致) | - | C | https://ai.developer.meta.com/docs/overview/;https://dev.meta.ai/docs/getting-started/overview/ |\n| 模型 ID | 官方唯一模型 `muse-spark-1.1`(1M 上下文) | `\"model\": \"muse-spark-1.1\"` | C | https://ai.developer.meta.com/docs/overview/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖\n- **aimux 代码位置**: `openai_compat_registry.rs:1223`\n- **差距说明**: Meta Model API 明确 OpenAI 兼容(\"point the OpenAI Python SDK or any OpenAI-compatible client at the Model API base URL\")。\n- **建议动作**: 无需动作;模型清单可在 registry 注释中补 `muse-spark-1.1`。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无\n\n---\n\n### meta_llama — Meta Llama API\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.llama.com/compat/v1` · env=`LLAMA_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(tools/json 标准;Llama 4 支持图像输入) | - | - | - |\n| 思考机制 | 无差异(无专有 thinking 参数) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 多模态:Llama 4 原生支持 text+image 输入(OpenAI 多模态格式) | `{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"...\"},{\"type\":\"image_url\",\"image_url\":{\"url\":\"...\"}}]}` | C | https://llama.developer.meta.com/docs/models |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer `) | `client = OpenAI(base_url=\"https://api.llama.com/compat/v1/\", api_key=...)` | C | https://michaelsolati.com/blog/metas-llama-api-open-models-meet-developer-convenience |\n| URL/端点 | 无差异(`/compat/v1` 前缀与 registry 一致) | - | C | 同上 |\n| 模型 ID | 官方模型 ID 无前缀:`Llama-3.3-70B-Instruct`、`Llama-4-Scout-17B-16E-Instruct-FP8`、`Llama-4-Maverick-17B-128E-Instruct-FP8` 等 | `\"model\":\"Llama-3.3-70B-Instruct\"` | C | https://llama.developer.meta.com/docs/models |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖(多模态输入 aimux 已支持 OpenAI image_url 格式)\n- **aimux 代码位置**: `openai_compat_registry.rs:1232`、`openai/convert.rs`(messages 转换)\n- **差距说明**: 模型名透传无差异;无专有参数。\n- **建议动作**: 无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无\n\n---\n\n### mimo — Mimo\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.xiaomimimo.com/v1` · env=`MIMO_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异(image_url 等标准多模态格式) | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(API Key 格式 `sk-xxxxx`,Bearer) | `Authorization: Bearer sk-...` | C | https://mimo.mi.com/docs/en-US/api/chat/openai-api |\n| URL/端点 | 无差异(官方 Request Address `https://api.xiaomimimo.com/v1/chat/completions`;另有 `/anthropic` 协议端点) | - | C | https://mimo.mi.com/docs/en-US/api/chat/openai-api |\n| 模型 ID | 无差异(`mimo-*` 系列,如 mimo-v2-tts;模型名透传) | - | C | https://github.com/QuantumNous/new-api/issues/3353 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖\n- **aimux 代码位置**: `openai_compat_registry.rs:1242`\n- **差距说明**: 官方明确 \"compatible with the OpenAI Chat Completions API\"。\n- **建议动作**: 无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无\n\n---\n\n### minimax — MiniMax\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.minimax.io/v1` · env=`MINIMAX_API_KEY`\n- **变体**: minimax_cn(api.minimaxi.com 域名变体)、minimax_cn_coding_plan、minimax_coding_plan(见下条)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | `max_completion_tokens` 为推荐参数;`max_tokens` 标记 **deprecated**(仍接受);`temperature` 范围 `[0,2]` 默认 1 | `{\"model\":\"MiniMax-M3\",\"max_completion_tokens\":500,\"messages\":[...]}` | C | https://platform.minimax.io/docs/api-reference/text-chat-openai |\n| 能力支持 | ⚠️ `presence_penalty`/`frequency_penalty`/`logit_bias` 等 OpenAI 参数**被静默忽略**;`n` 仅支持 1;`function_call`(deprecated) 不支持 | - | C | https://platform.minimax.io/docs/api-reference/text-openai-api(Important Notes: \"Some OpenAI parameters (such as presence_penalty, frequency_penalty, logit_bias, etc.) will be ignored\") |\n| 思考机制 | 顶层 `thinking` 对象:M3 支持 `{\"type\":\"adaptive\"}`(默认开,等价 thinking on)与 `{\"type\":\"disabled\"}`;**M2.x 思考不可关闭**(传 disabled 仍思考);`reasoning_split` 控制输出切分(不控制开关) | `{\"model\":\"MiniMax-M3\",\"thinking\":{\"type\":\"adaptive\"}}` / `{\"reasoning_split\":true}` | C | https://platform.minimax.io/docs/api-reference/text-openai-api(Thinking Control 节) |\n| 流式/usage | 无差异(`stream_options` 支持);usage 含 `prompt_tokens_details.cached_tokens` | `\"usage\":{\"total_tokens\":1659,\"prompt_tokens\":1366,\"completion_tokens\":293,\"prompt_tokens_details\":{\"cached_tokens\":114}}` | C | https://platform.minimax.io/docs/api-reference/text-chat-openai |\n| 消息格式 | `reasoning_split=false` 时思考内容直接嵌入 `content` 的 `...` 标签中;`true` 时输出到 `reasoning_content`/`reasoning_details`(非标准字段);响应 message 含 `name:\"MiniMax AI\"`、`audio_content` | `\"message\":{\"content\":\"...推理...最终回答\",\"role\":\"assistant\",\"name\":\"MiniMax AI\"}` | C | https://platform.minimax.io/docs/api-reference/text-chat-openai(Image Understanding 示例响应) |\n| 特殊字段 | `service_tier`: `standard`(默认)/`priority`(1.5 倍价、优先准入);`input_sensitive`/`output_sensitive` 等响应字段 | `{\"model\":\"MiniMax-M3\",\"service_tier\":\"priority\"}` | C | https://platform.minimax.io/docs/api-reference/text-chat-openai |\n| headers/认证 | 无差异(`Authorization: Bearer `) | - | C | https://platform.minimax.io/docs/api-reference/text-chat-openai |\n| URL/端点 | 无差异(`https://api.minimax.io/v1/chat/completions`) | - | C | 同上 |\n| 模型 ID | 无差异(`MiniMax-M3`、`MiniMax-M2.7`、`MiniMax-M2.7-highspeed` 等,无前缀) | `\"model\":\"MiniMax-M3\"` | C | 同上 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: 🔶 部分覆盖(thinking 机制 ❌ 未覆盖)\n- **aimux 代码位置**: `openai/convert.rs:1326-1329`(reasoning_effort)、`convert.rs:1118-1138`(max_tokens/max_completion_tokens)、`convert.rs:1331-1371`(service_tier)、`openai_compat_registry.rs:1250`\n- **差距说明**: ① MiniMax 思考用顶层 `thinking:{type:...}`(与 deepseek profile 的 `{type:enabled/disabled}` 同构但取值多 `adaptive`,且 M2.x 不可关),aimux 仅 deepseek 走 override,minimax 不会发 thinking;② `reasoning_split` 未覆盖(❌);③ service_tier=`priority` 会被 aimux 的 `supports_priority_processing` 能力校验拦截丢弃(⚠️ 不一致,应透传);④ presence/frequency_penalty 会被忽略——aimux 默认发送但无报错风险(⚠️ 行为差异);⑤ `max_completion_tokens` 当模型被识别为 reasoning 时 ✅ 已覆盖。\n- **建议动作**: 为 minimax 加 profile 变体(bodyOverrides 兜底 `thinking`/`reasoning_split`);service_tier 校验改为\"已知白名单厂商透传\"或增加 profile 字段;补测试。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 能力支持类\"ignored 参数\"为官方文档明示,无存疑\n\n---\n\n### minimax_cn — MiniMax (minimaxi.com)\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.minimaxi.com/v1` · env=`MINIMAX_API_KEY`\n- **变体**: minimax_cn_coding_plan(同域 Token Plan 变体)\n\n#### 1. request 差异发现\n\n与 minimax(api.minimax.io)完全一致的 API 面(同一平台文档 `platform.minimax.io`/`platform.minimaxi.com`),仅域名不同:\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 同 minimax:`max_completion_tokens` 推荐、`max_tokens` deprecated | `{\"model\":\"MiniMax-M3\",\"max_completion_tokens\":500}` | C | https://platform.minimax.io/docs/api-reference/text-chat-openai |\n| 能力支持 | 同 minimax:penalty/logit_bias 被忽略、n=1 | - | C | 同上 |\n| 思考机制 | 同 minimax:`thinking:{type:\"adaptive\"/\"disabled\"}`、M2.x 不可关 | `{\"thinking\":{\"type\":\"adaptive\"}}` | C | 同上 |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 同 minimax:`...` / `reasoning_split` | - | C | 同上 |\n| 特殊字段 | 同 minimax:`service_tier` standard/priority | - | C | 同上 |\n| headers/认证 | 无差异(Bearer) | - | - | - |\n| URL/端点 | 域名变体:`https://api.minimaxi.com/v1`(registry 已用) | - | C | https://platform.minimax.io/docs/api-reference/text-chat-openai(api.minimax.io 官方示例;minimaxi.com 为国内域名变体) |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: 🔶 部分覆盖(同 minimax)\n- **aimux 代码位置**: `openai_compat_registry.rs:1259`\n- **差距说明**: 与 minimax 完全相同(thinking/reasoning_split/service_tier 校验)。\n- **建议动作**: 与 minimax 一并处理(同一 profile 变体)。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: minimaxi.com 域名本身未见官方示例 URL,为域名变体推断(与 minimax.io 同文档平台)\n\n---\n\n### minimax_cn_coding_plan — MiniMax Token Plan (minimaxi.com)\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.minimaxi.com/v1` · env=`MINIMAX_API_KEY`\n- **变体**: minimax_cn 的 Token Plan(套餐)变体\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 同 minimax | - | C | 同 minimax 来源 |\n| 能力支持 | 同 minimax | - | C | 同上 |\n| 思考机制 | 同 minimax(Token Plan 面向 M2/M3 套餐,thinking 行为一致) | - | C | 同上 |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 同 minimax | - | C | 同上 |\n| 特殊字段 | 同 minimax(service_tier) | - | C | 同上 |\n| headers/认证 | 无差异(Bearer) | - | - | - |\n| URL/端点 | 同 minimax_cn(`https://api.minimaxi.com/v1`) | - | C | 同上 |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: 🔶 部分覆盖(同 minimax)\n- **aimux 代码位置**: `openai_compat_registry.rs:1268`\n- **差距说明**: Token Plan 与普通套餐 API 面一致(计费/额度差异,不影响 request 构造)。\n- **建议动作**: 与 minimax 一并处理。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 套餐 API 面与普通 API 相同的推断基于官方同一文档(未见 Token Plan 专有参数文档)\n\n---\n\n### minimax_coding_plan — MiniMax Token Plan (minimax.io)\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.minimax.io/anthropic/v1` · env=`MINIMAX_API_KEY`\n- **变体**: minimax 的 Token Plan 国际版\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | ⚠️ 端点为 **Anthropic 兼容**协议(`/anthropic/v1`),OpenAI 参数名(max_completion_tokens 等)不适用 | - | C | https://platform.minimax.io/docs/api-reference/text-anthropic-api(\"Anthropic SDK - Models\") |\n| 能力支持 | 同 minimax(M2.x 思考不可关) | - | C | https://platform.minimax.io/docs/api-reference/text-chat-openai |\n| 思考机制 | Anthropic 协议用 `thinking`/`output_config`;官方推荐 Anthropic 兼容 API 用于 M2.x 的 thinking/reasoning | - | C | https://github.com/HKUDS/nanobot/issues/3068 |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | - | - |\n| URL/端点 | ⚠️ registry 以 OpenAI 兼容 profile 登记了 Anthropic 协议端点(`https://api.minimax.io/anthropic/v1`)——协议与 profile 不匹配 | - | ⚠️ | https://platform.minimax.io/docs/api-reference/text-anthropic-api |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ⚠️ 不一致(registry 声明错误)\n- **aimux 代码位置**: `openai_compat_registry.rs:1277`\n- **差距说明**: 该 name 的 base_url 是 Anthropic 协议端点,却声明为 OpenAI 兼容 full()——通过 aimux OpenAI provider 调用会失败(消息/参数格式不对)。\n- **建议动作**: 修正 registry(要么改走 anthropic provider,要么改为 `https://api.minimax.io/v1` 的 OpenAI 兼容端点);补测试。\n\n#### 3. 证据与验证\n\n- **证据等级**: C + ⚠️\n- **验证状态**: 🔲 未验证\n- **存疑标记**: ⚠️ registry base_url 与协议不匹配(高置信)\n\n---\n\n### mira — Mira\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.mira.so/v1` · env=`MIRA_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 证据不足 | - | - | - |\n| 能力支持 | 证据不足 | - | - | - |\n| 思考机制 | 证据不足 | - | - | - |\n| 流式/usage | 证据不足 | - | - | - |\n| 消息格式 | 证据不足 | - | - | - |\n| 特殊字段 | 证据不足 | - | - | - |\n| headers/认证 | 证据不足 | - | - | - |\n| URL/端点 | 证据不足(api.mira.so 未检索到 API 文档) | - | - | - |\n| 模型 ID | 证据不足 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ⚠️ 证据不足\n- **aimux 代码位置**: `openai_compat_registry.rs:1286`\n- **差距说明**: 未检索到官方 API 文档。\n- **建议动作**: 保持 full();待有真实接入案例再核对。\n\n#### 3. 证据与验证\n\n- **证据等级**: D → 计入存疑归档\n- **验证状态**: 🔲 未验证\n- **存疑标记**: ⚠️ 存疑\n\n---\n\n### mixlayer — Mixlayer\n\n- **registry 现状**: profile=`full()` · base_url=`https://models.mixlayer.ai/v1` · env=`MIXLAYER_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 证据不足 | - | - | - |\n| 能力支持 | 证据不足(多模态 LLM API,具体参数未确认) | - | - | - |\n| 思考机制 | 证据不足 | - | - | - |\n| 流式/usage | 证据不足 | - | - | - |\n| 消息格式 | 证据不足 | - | - | - |\n| 特殊字段 | 证据不足 | - | - | - |\n| headers/认证 | 证据不足 | - | - | - |\n| URL/端点 | base_url `https://models.mixlayer.ai/v1` 被第三方免费模型清单收录(OpenAI 兼容端点) | - | C | https://github.com/velo4705/awesome-free-byok-models |\n| 模型 ID | 证据不足 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ⚠️ 证据不足\n- **aimux 代码位置**: `openai_compat_registry.rs:1295`\n- **差距说明**: 仅确认 base_url 存在且为 OpenAI 兼容,参数面未确认。\n- **建议动作**: 保持 full();待有真实接入案例再核对。\n\n#### 3. 证据与验证\n\n- **证据等级**: C(仅 URL)+ ⚠️\n- **验证状态**: 🔲 未验证\n- **存疑标记**: ⚠️ 参数面存疑\n\n---\n\n### moark — Moark\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.moark.com/v1` · env=`MOARK_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(开源模型聚合,标准 OpenAI 格式) | - | - | - |\n| 思考机制 | 无差异(透传) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | - | - |\n| URL/端点 | 无差异(官方入门文档直接调 `https://api.moark.com/v1/chat/completions`) | `POST https://api.moark.com/v1/chat/completions` | C | https://moark.com/docs/getting-started |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖\n- **aimux 代码位置**: `openai_compat_registry.rs:1304`\n- **差距说明**: 聚合网关透传,无专有参数。\n- **建议动作**: 无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无\n\n---\n\n### modal — Modal\n\n- **registry 现状**: profile=`full()` · base_url=`https://modal.com/v1` · env=`MODAL_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(标准 OpenAI SDK 用法) | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异(透传) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`api_key` 直插,Bearer) | `client = OpenAI(api_key=\"...\", base_url=\"https://modal.com/v1\")` | C | https://openairouter.net/site/modal-com |\n| URL/端点 | 无差异(`https://modal.com/v1`,官方 docs 页面已下线/404,未能直接验证) | - | C | https://modal.com/docs(gateway 文档 404);第三方:https://openairouter.net/site/modal-com |\n| 模型 ID | ⚠️ 未确认:网关路由多家模型,模型命名约定未见官方文档(第三方示例用 `gpt-4o` 无前缀) | `\"model\":\"gpt-4o\"` | C | https://openairouter.net/site/modal-com |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖(证据弱)\n- **aimux 代码位置**: `openai_compat_registry.rs:1313`\n- **差距说明**: 仅确认 OpenAI 兼容 + base_url 一致;模型命名未确证。\n- **建议动作**: 无需动作;后续可补官方文档验证。\n\n#### 3. 证据与验证\n\n- **证据等级**: C(弱,第三方来源)\n- **验证状态**: 🔲 未验证\n- **存疑标记**: ⚠️ 模型 ID 约定存疑\n\n---\n\n### model_oracle_ai — Model Oracle AI\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.modeloracle.com/api/v1` · env=`MODEL_ORACLE_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | - | - |\n| URL/端点 | 无差异(官方 Setup 页 `https://api.modeloracle.com/...`;models.dev 记录 `https://api.modeloracle.com/api/v1`) | - | C | https://modeloracle.com/setup/;https://models.dev/providers/model-oracle-ai |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖\n- **aimux 代码位置**: `openai_compat_registry.rs:1322`\n- **差距说明**: models.dev 将其标记为 `@ai-sdk/openai-compatible`(纯兼容包),无专有参数。\n- **建议动作**: 无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无\n\n---\n\n### modelscope — ModelScope\n\n- **registry 现状**: profile=`full()` · base_url=`https://api-inference.modelscope.cn/v1` · env=`MODELSCOPE_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(OpenAI 兼容 API,支持 OpenAI SDK) | - | - | - |\n| 思考机制 | 无差异(透传;Qwen 系列 thinking 由模型/平台处理) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer,MODELSCOPE_API_KEY) | - | - | - |\n| URL/端点 | 无差异(`https://api-inference.modelscope.cn/v1`,官方 API 推理文档) | - | C | https://modelscope.cn/docs/model-service/API-Inference/intro |\n| 模型 ID | ⚠️ **模型名必须用 ModelScope Model Id(带 owner 前缀)**:如 `Qwen/Qwen2.5-Coder-32B-Instruct`、`Qwen/Qwen2.5-VL-72B-Instruct`,不带前缀会报错 | `\"model\":\"Qwen/Qwen2.5-Coder-32B-Instruct\"` | C | https://modelscope.cn/docs/model-service/API-Inference/intro(\"模型名字(model):使用魔搭上开源模型的Model Id,例如 Qwen/Qwen2.5-Coder-32B-Instruct\") |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖(模型名透传,无转换逻辑差异)\n- **aimux 代码位置**: `openai_compat_registry.rs:1331`、`openai/convert.rs:1099`(model 字段透传)\n- **差距说明**: 模型 ID 需带 owner 前缀是**调用方模型名约定**,aimux 不做模型名改写,透传即可——无代码差异;仅需在文档/提示中说明。\n- **建议动作**: 无需动作(可在厂商注释中补模型命名约定提示)。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无\n\n---\n\n### moonshotai — Moonshot AI\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.moonshot.cn/v1` · env=`MOONSHOT_API_KEY`\n- **变体**: moonshotai_cn(Anthropic 端点变体,见下条)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | `max_tokens` **已弃用**,官方要求用 `max_completion_tokens`(K2/K3 系) | `{\"model\":\"kimi-k2.6\",\"max_completion_tokens\":8192,...}` | C | https://platform.kimi.com/docs/api/chat(\"max_tokens 已弃用,请使用 max_completion_tokens\") |\n| 能力支持 | `logprobs`/`top_logprobs`(0-20)支持;多模态支持 `image_url`/`video_url` 内容类型 | `{\"type\":\"video_url\",\"video_url\":{\"url\":\"data:video/mp4;base64,...\"}}` | C | https://platform.kimi.com/docs/api/chat |\n| 思考机制 | **按模型两套机制**:① `kimi-k3` 始终思考 + Preserved Thinking,用顶层 `reasoning_effort`(仅 `low/high/max` 三档,默认 `max`,**无 medium**);② `kimi-k2.6` 用 `thinking:{type:\"enabled\"|\"disabled\", keep:null|\"all\"}`(keep=保留历史 reasoning_content);`kimi-k2.7-code` 固定 enabled 不可关 | `{\"model\":\"kimi-k2.6\",\"thinking\":{\"type\":\"enabled\",\"keep\":\"all\"}}` / `{\"model\":\"kimi-k3\",\"reasoning_effort\":\"high\"}` | C | https://platform.kimi.com/docs/api/chat(思考模式与 Preserved Thinking 节);https://platform.kimi.com/docs/guide/use-thinking-models |\n| 流式/usage | 无差异(`stream_options.include_usage` 标准);usage 含 `cached_tokens` | `\"usage\":{\"prompt_tokens\":19,\"completion_tokens\":13,\"total_tokens\":32,\"cached_tokens\":12}` | C | https://platform.kimi.com/docs/api/chat |\n| 消息格式 | 响应 `message.reasoning_content` 返回推理过程;多轮必须把每轮 assistant 的 `reasoning_content` 原样回传;**Partial Mode**:assistant 消息可带 `partial:true` 预填输出前缀 | `{\"role\":\"assistant\",\"content\":\"```python\\n\",\"partial\":true}` | C | https://platform.kimi.com/docs/api/chat(Partial Mode 节) |\n| 特殊字段 | `prompt_cache_key`(缓存命中;Kimi Code Plan 必填)、`safety_identifier`、`prediction`(Predicted Output) | `{\"model\":\"kimi-k3\",\"prompt_cache_key\":\"session-123\",\"safety_identifier\":\"u-8f2a\"}` | C | https://platform.kimi.com/docs/api/chat |\n| headers/认证 | 无差异(`Authorization: Bearer `) | - | C | https://platform.kimi.com/docs/api/chat |\n| URL/端点 | 无差异(`https://api.moonshot.cn/v1/chat/completions`) | - | C | 同上 |\n| 模型 ID | 无差异(`kimi-k3`、`kimi-k2.6`、`kimi-k2.7-code`、`kimi-k2.5`、`moonshot-v1`,无前缀) | `\"model\":\"kimi-k2.6\"` | C | 同上 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: 🔶 部分覆盖(思考机制 ❌ 按模型区分;特殊字段 ✅)\n- **aimux 代码位置**: `openai/convert.rs:1326-1329`(reasoning_effort 发送)、`convert.rs:1426-1433/1484-1552`(仅 deepseek 的 thinking override)、`convert.rs:1306-1317`(prompt_cache_key/safety_identifier/prediction 白名单 ✅)、`openai_compat_registry.rs:1340`\n- **差距说明**: ① `thinking:{type,keep}` 机制 aimux 只在 deepseek profile 触发(格式恰好同构),moonshot 需 profile 或 bodyOverrides 注入;② `reasoning_effort` 档位 `low/high/max`(无 medium/minimal/xhigh)与 OpenAI 通用档位映射不同,直接透传 OpenAI 档位可能报 `unsupported_value`;③ `partial:true` 消息字段未覆盖(❌);④ prompt_cache_key/safety_identifier/prediction 已被白名单覆盖 ✅。\n- **建议动作**: moonshot 单列 profile(复用 DeepSeek 式 thinking override + effort 档位映射 + 可选 partial 透传);补测试。现有 cassette(`tests/cassettes/moonshotai/`)为从 openai 派生的合成录制,非真实 Moonshot 响应,不构成 A 级证据。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证(cassette 为合成派生,见 `tests/cassettes/moonshotai/thin_wrapper_nonstream.json:1-3`)\n- **存疑标记**: 无\n\n---\n\n### moonshotai_cn — Moonshot AI (China)\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.moonshot.cn/anthropic/v1锛圓nthropic` · env=`MOONSHOT_API_KEY`\n- **变体**: moonshotai 的 Anthropic 端点变体\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | ⚠️ 该端点走 **Anthropic Messages 协议**(`/anthropic/v1`),OpenAI 参数名不适用 | - | ⚠️ | https://platform.kimi.com/docs(Anthropic 兼容端点) |\n| 能力支持 | 同 moonshotai | - | - | - |\n| 思考机制 | Anthropic 协议用 `thinking`(budget)语义,与 OpenAI 端不同 | - | C | https://platform.kimi.com/docs/api/chat |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 同 moonshotai(reasoning_content/partial) | - | C | 同上 |\n| 特殊字段 | 同 moonshotai | - | C | 同上 |\n| headers/认证 | 无差异(Bearer) | - | - | - |\n| URL/端点 | ⚠️ **registry 的 base_url 字符串损坏**:`https://api.moonshot.cn/anthropic/v1锛圓nthropic` 含乱码 `锛圓nthropic`(疑似注释被拼进 URL),实际应为 `https://api.moonshot.cn/anthropic/v1` | - | ⚠️ | registry 自证:`openai_compat_registry.rs:1353` |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ⚠️ 不一致(registry base_url 数据错误 + 协议错配)\n- **aimux 代码位置**: `openai_compat_registry.rs:1349-1356`\n- **差距说明**: ① base_url 含乱码,直接请求必失败;② Anthropic 协议端点声明为 OpenAI 兼容 full(),协议不匹配。\n- **建议动作**: 修正 base_url 字符串(去掉乱码后缀);若保留 Anthropic 端点应改走 anthropic provider 或删除该 name。\n\n#### 3. 证据与验证\n\n- **证据等级**: ⚠️(registry 数据错误为自证)\n- **验证状态**: 🔲 未验证\n- **存疑标记**: ⚠️ 高置信数据错误\n\n---\n\n### morph — Morph LLM\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.morphllm.com/v1` · env=`MORPH_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异(透传) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异(LLM Proxy 路由功能经 header/路由,非请求体字段) | - | - | - |\n| headers/认证 | 无差异(OpenAI 兼容,Bearer) | - | - | - |\n| URL/端点 | 无差异(官方:\"Point any OpenAI-compatible client at https://api.morphllm.com/v1\") | `client = OpenAI(base_url=\"https://api.morphllm.com/v1\", ...)` | C | https://www.morphllm.com/kimi-k3-api |\n| 模型 ID | 模型名带 `morph-` 前缀(`morph-glm52-744b` 等),与上游原名不同 | `\"model\":\"morph-glm52-744b\"` | C | https://www.morphllm.com/glm-5.2-api |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖\n- **aimux 代码位置**: `openai_compat_registry.rs:1359`\n- **差距说明**: 模型 ID 前缀为调用方命名约定,aimux 透传即可。\n- **建议动作**: 无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无\n\n---\n\n### nanogpt — NanoGPT\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.nanogpt.com/v1` · env=`NANOGPT_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 证据不足 | - | - | - |\n| 能力支持 | 证据不足 | - | - | - |\n| 思考机制 | 证据不足 | - | - | - |\n| 流式/usage | 证据不足 | - | - | - |\n| 消息格式 | 证据不足 | - | - | - |\n| 特殊字段 | 证据不足 | - | - | - |\n| headers/认证 | 证据不足 | - | - | - |\n| URL/端点 | 证据不足(api.nanogpt.com 存在但未检索到官方 API 文档) | - | - | - |\n| 模型 ID | 证据不足 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ⚠️ 证据不足\n- **aimux 代码位置**: `openai_compat_registry.rs:1367`\n- **差距说明**: 未检索到官方 API 文档。\n- **建议动作**: 保持 full();待有真实接入案例再核对。\n\n#### 3. 证据与验证\n\n- **证据等级**: D → 计入存疑归档\n- **验证状态**: 🔲 未验证\n- **存疑标记**: ⚠️ 存疑\n\n---\n\n### ncompass — Ncompass\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.ncompass.tech/v1` · env=`NCOMPASS_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 证据不足 | - | - | - |\n| 能力支持 | 证据不足 | - | - | - |\n| 思考机制 | 证据不足 | - | - | - |\n| 流式/usage | 证据不足 | - | - | - |\n| 消息格式 | 证据不足 | - | - | - |\n| 特殊字段 | 证据不足 | - | - | - |\n| headers/认证 | 证据不足 | - | - | - |\n| URL/端点 | 证据不足(api.ncompass.tech 未检索到 API 文档) | - | - | - |\n| 模型 ID | 证据不足 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ⚠️ 证据不足\n- **aimux 代码位置**: `openai_compat_registry.rs:1376`\n- **差距说明**: 未检索到官方 API 文档。\n- **建议动作**: 保持 full();待有真实接入案例再核对。\n\n#### 3. 证据与验证\n\n- **证据等级**: D → 计入存疑归档\n- **验证状态**: 🔲 未验证\n- **存疑标记**: ⚠️ 存疑\n\n---\n\n### nearai — NEAR AI Cloud\n\n- **registry 现状**: profile=`full()` · base_url=`https://cloud-api.near.ai/v1` · env=`NEARAI_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(官方示例用 `max_tokens`;`max_completion_tokens` 亦兼容) | - | - | - |\n| 能力支持 | 无差异(tool calling、structured outputs、reasoning、images、embeddings、audio、Responses API 全套) | - | C | https://docs.near.ai/cloud/guides/openai-compatibility |\n| 思考机制 | 无差异(reasoning 模型支持,透传) | - | C | https://docs.near.ai/cloud/reasoning-models |\n| 流式/usage | 无差异(SSE 标准) | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异(`X-Request-Id` 为响应头) | - | C | https://docs.near.ai/cloud/guides/openai-compatibility |\n| headers/认证 | 无差异(`Authorization: Bearer `,OpenAI SDK 直连) | `client = OpenAI(base_url=\"https://cloud-api.near.ai/v1\", api_key=\"...\")` | C | https://docs.near.ai/cloud/guides/openai-compatibility |\n| URL/端点 | 无差异(Gateway `https://cloud-api.near.ai/v1`;另有 Direct Completions `https://{slug}.completions.near.ai/v1`) | - | C | 同上 |\n| 模型 ID | 模型名带 owner 前缀:`zai-org/GLM-5.1-FP8` 等(HF 风格) | `\"model\":\"zai-org/GLM-5.1-FP8\"` | C | 同上 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖\n- **aimux 代码位置**: `openai_compat_registry.rs:1385`\n- **差距说明**: 模型 ID 前缀为命名约定(透传);其余参数面全标准。\n- **建议动作**: 无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无\n\n---\n\n### nebius — Nebius AI\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.studio.nebius.ai/v1` · env=`NEBIUS_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(litellm 示例用 `max_tokens`;OpenAI 参数全支持) | - | - | - |\n| 能力支持 | 无差异(frequency/presence_penalty、logit_bias、seed、stop、tools、response_format 等全参数) | - | C | https://docs.litellm.ai/docs/providers/nebius |\n| 思考机制 | 无差异(DeepSeek-R1 等 reasoning 模型透传) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer,NEBIUS_API_KEY) | - | C | https://docs.litellm.ai/docs/providers/nebius |\n| URL/端点 | 无差异(litellm 文档指向 docs.nebius.com/studio/inference/quickstart;`https://api.studio.nebius.ai/v1` 与 registry 一致) | - | C | https://docs.litellm.ai/docs/providers/nebius |\n| 模型 ID | 模型名带 owner 前缀:`Qwen/Qwen3-235B-A22B`、`deepseek-ai/DeepSeek-R1`、`BAAI/bge-en-icl`(HF 风格) | `\"model\":\"Qwen/Qwen3-235B-A22B\"` | C | https://docs.litellm.ai/docs/providers/nebius |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖\n- **aimux 代码位置**: `openai_compat_registry.rs:1394`\n- **差距说明**: 模型 ID 前缀为命名约定(透传);参数面全标准。\n- **建议动作**: 无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无\n\n---\n\n### neon — Neon\n\n- **registry 现状**: profile=`full()` · base_url=`https:///v1` · env=`NEON_AI_GATEWAY_TOKEN`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(官方示例 `max_tokens`;\"fully compatible with the OpenAI Chat Completions API\") | `client.chat.completions.create({model:'gpt-5-mini', messages:[...], max_tokens:256})` | C | https://neon.com/docs/ai-gateway/chat-completions |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异(透传) | - | - | - |\n| 流式/usage | 无差异(SSE 标准);速率限制经 `Retry-After`/`X-Ratelimit-*` 响应头 | - | C | 同上 |\n| 消息格式 | ⚠️ 部分模型 `message.content` 返回**内容块数组**而非纯字符串(\"Content shape varies by model\") | `\"message\":{\"content\":[{...}],\"role\":\"assistant\"}` | C | https://neon.com/docs/ai-gateway/models(\"For a few models, message.content comes back as an array of content blocks\") |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`NEON_AI_GATEWAY_TOKEN` 作为 OpenAI `apiKey`,Bearer) | `new OpenAI({apiKey: process.env.NEON_AI_GATEWAY_TOKEN, baseURL: '${...}/v1'})` | C | https://neon.com/docs/ai-gateway/chat-completions |\n| URL/端点 | 无差异(Base URL `https:///v1`,与 registry 一致;另有等价的 `/ai-gateway/mlflow/v1` 长路径) | - | C | 同上 |\n| 模型 ID | 无前缀直用(`gpt-5-mini`、`gemini-3-flash`、`qwen3-next-80b-a3b-instruct`),切换厂商只改 model 字段 | `\"model\":\"gpt-5-mini\"` | C | 同上 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖(⚠️ 消息格式数组块为响应侧风险)\n- **aimux 代码位置**: `openai_compat_registry.rs:1403`\n- **差距说明**: base_url 含 `` 占位符,属于用户部署环境(Neon branch)动态值——aimux 需支持占位符解析或用户自设 base_url;`content` 数组块解析依赖响应解析器对 OpenAI content 数组的兼容(aimux 目前按字符串/OpenAI 标准处理)。\n- **建议动作**: 确认 aimux 响应解析对 content 数组的处理;文档注明 branch host 需由用户替换。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: ⚠️ content 数组块仅部分模型,影响面未实测\n\n---\n\n### neuralwatt — Neuralwatt\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.neuralwatt.com/v1` · env=`NEURALWATT_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异(透传) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer sk-xxxxx`) | `curl https://api.neuralwatt.com/v1/chat/completions -H \"Authorization: ...\"` | C | https://portal.neuralwatt.com/docs/api/overview |\n| URL/端点 | 无差异(官方:\"OpenAI-compatible endpoint (https://api.neuralwatt.com/v1)\") | `client = OpenAI(base_url=\"https://api.neuralwatt.com/v1\", api_key=\"sk-xxxxx\")` | C | https://portal.neuralwatt.com/docs/quickstart |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖\n- **aimux 代码位置**: `openai_compat_registry.rs:1412`\n- **差距说明**: 官方明确 OpenAI 兼容。\n- **建议动作**: 无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无\n\n---\n\n### nextbit — NextBit\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.nextbit.ai/v1` · env=`NEXTBIT_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 证据不足 | - | - | - |\n| 能力支持 | 证据不足 | - | - | - |\n| 思考机制 | 证据不足 | - | - | - |\n| 流式/usage | 证据不足 | - | - | - |\n| 消息格式 | 证据不足 | - | - | - |\n| 特殊字段 | 证据不足 | - | - | - |\n| headers/认证 | 证据不足 | - | - | - |\n| URL/端点 | 证据不足(api.nextbit.ai 未检索到 API 文档) | - | - | - |\n| 模型 ID | 证据不足 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ⚠️ 证据不足\n- **aimux 代码位置**: `openai_compat_registry.rs:1421`\n- **差距说明**: 未检索到官方 API 文档。\n- **建议动作**: 保持 full();待有真实接入案例再核对。\n\n#### 3. 证据与验证\n\n- **证据等级**: D → 计入存疑归档\n- **验证状态**: 🔲 未验证\n- **存疑标记**: ⚠️ 存疑\n\n---\n\n### nlp_cloud — NLP Cloud\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.nlpcloud.io/v1` · env=`NLPCLOUD_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 证据不足(原生 API 为每模型独立端点 `/v1/{model}/chatbot`,OpenAI 兼容模式存在但参数面未验证) | - | - | - |\n| 能力支持 | 证据不足 | - | - | - |\n| 思考机制 | 无差异(不支持 reasoning 模型) | - | - | - |\n| 流式/usage | 证据不足 | - | - | - |\n| 消息格式 | 证据不足 | - | - | - |\n| 特殊字段 | 证据不足 | - | - | - |\n| headers/认证 | ⚠️ 原生 API 认证为 **`Authorization: Token `**(非 Bearer);OpenAI 兼容模式是否同样用 Token 未确证 | `curl -H \"Authorization: Token \"` | C | https://docs.nlpcloud.com/(\"Add your API key after the Token keyword in an Authorization header\") |\n| URL/端点 | ⚠️ registry base `https://api.nlpcloud.io/v1`;原生调用路径为 `/v1/{model}/...`,OpenAI 兼容模式路径(`/v1/chat/completions`)存在但未经官方文档直接确认 | - | ⚠️ | https://docs.nlpcloud.com/ |\n| 模型 ID | 原生模型名为 slug(如 `finetuned-...`、`gpt-...`);⚠️ 与 OpenAI 兼容模式关系未确认 | - | ⚠️ | https://docs.nlpcloud.com/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ⚠️ 证据不足/可能不一致(认证 scheme)\n- **aimux 代码位置**: `openai_compat_registry.rs:1430`\n- **差距说明**: aimux 统一发 `Authorization: Bearer`(provider 实现层),若 NLP Cloud OpenAI 兼容端点沿用 `Token` scheme 会认证失败;OpenAI 兼容模式参数面未验证。\n- **建议动作**: 用真实 key 验证认证 scheme;必要时在 provider 层加 `auth_scheme` profile 字段或 bodyOverrides 兜底。\n\n#### 3. 证据与验证\n\n- **证据等级**: C + ⚠️\n- **验证状态**: 🔲 未验证\n- **存疑标记**: ⚠️ 认证 scheme 与 OpenAI 兼容端点存在性存疑\n\n---\n\n### nous_research — Nous Research\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.nousresearch.com/v1` · env=`NOUS_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(Hermes 模型 OpenAI 兼容 tool calls) | - | C | https://docs.firecrawl.dev/quickstarts/nous-research |\n| 思考机制 | 无差异(透传) | - | - | - |\n| 流式/usage | ⚠️ 社区报告推理 API 流式在 agent 规模负载下超时(非 request 格式差异) | - | C | https://github.com/NousResearch/hermes-agent/issues/29418 |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer `) | `new OpenAI({apiKey: process.env.NOUS_API_KEY, baseURL: 'https://inference-api.nousresearch.com/v1'})` | C | https://docs.firecrawl.dev/quickstarts/nous-research |\n| URL/端点 | ⚠️ 官方/社区一致使用的 base 为 **`https://inference-api.nousresearch.com/v1`**(Nous Portal inference),registry 的 `api.nousresearch.com/v1` 未见出处 | - | C | https://docs.firecrawl.dev/quickstarts/nous-research;https://hermes-agent.nousresearch.com/docs/integrations/nous-portal |\n| 模型 ID | 无差异(Hermes 系列等,透传) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ⚠️ base_url 可能不一致\n- **aimux 代码位置**: `openai_compat_registry.rs:1439`\n- **差距说明**: registry 的 `api.nousresearch.com` 与官方文档的 `inference-api.nousresearch.com` 不一致,需验证哪个有效(可能其一为旧域名)。\n- **建议动作**: 用真实 key 验证域名;若为旧域名则修正 base_url。\n\n#### 3. 证据与验证\n\n- **证据等级**: C + ⚠️\n- **验证状态**: 🔲 未验证\n- **存疑标记**: ⚠️ base_url 域名存疑\n\n---\n\n### novita — Novita AI\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.novita.ai/v1` · env=`NOVITA_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 官方 reasoning 模型示例用 `max_tokens`(非 max_completion_tokens) | `client.chat.completions.create(model=\"deepseek/deepseek-r1\", stream=True, max_tokens=4096)` | C | https://novita.ai/docs/guides/llm-reasoning |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无专有 thinking 参数(DeepSeek R1 等 reasoning 模型由模型名驱动,输出 `reasoning_content`) | `\"model\":\"deepseek/deepseek-r1\"` | C | https://novita.ai/docs/guides/llm-reasoning |\n| 流式/usage | 无差异;流式 delta 含 `reasoning_content` | `if chunk.choices[0].delta.reasoning_content: ...` | C | https://novita.ai/docs/guides/llm-reasoning |\n| 消息格式 | 响应 `message.reasoning_content` 携带推理过程;推理内容**不会**自动带入下一轮,需手动维护历史 | `content = response.choices[0].message.content; reasoning = response.choices[0].message.reasoning_content` | C | https://novita.ai/docs/guides/llm-reasoning |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | - | - |\n| URL/端点 | ⚠️ 官方文档示例 base_url 为 **`https://api.novita.ai/openai`**(reasoning 指南)与 `https://api.novita.ai/openai/v1`(llm-api 指南),registry 用 `/v1`——三处路径需确认哪个有效 | `client = OpenAI(api_key=\"...\", base_url=\"https://api.novita.ai/openai\")` | C | https://novita.ai/docs/guides/llm-reasoning;https://novita.ai/docs/guides/llm-api |\n| 模型 ID | 模型名带 provider 前缀:`deepseek/deepseek-r1`、`deepseek/deepseek-v3-0324` 等 | `\"model\":\"deepseek/deepseek-r1\"` | C | https://novita.ai/docs/guides/llm-reasoning |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: 🔶 部分覆盖(URL ⚠️;reasoning_content 为响应侧)\n- **aimux 代码位置**: `openai_compat_registry.rs:1448`\n- **差距说明**: ① base_url 路径(`/v1` vs `/openai` vs `/openai/v1`)需实测确认;② `reasoning_content` 输出别名 aimux 响应解析未覆盖(❌ 输出侧);③ 模型 ID 前缀为透传约定。\n- **建议动作**: 用真实 key 验证 base_url 并修正;响应解析补 `reasoning_content`(同 moonshot 场景)。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: ⚠️ base_url 路径三处不一致\n\n---\n\n### nscale — Nscale\n\n- **registry 现状**: profile=`full()` · base_url=`https://inference.api.nscale.com/v1` · env=`NSCALE_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异(DeepSeek/GPT OSS 等 reasoning 模型透传) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer,NSCALE_API_KEY) | - | - | - |\n| URL/端点 | 无差异(官方:\"call https://inference.api.nscale.com/v1/*\",与 registry 一致) | `client = OpenAI(base_url=\"https://inference.api.nscale.com/v1\", api_key=...)` | C | https://www.nscale.com/blog/from-idea-to-inference-in-minutes-welcome-to-nscale-serverless;https://docs.nscale.com/changelog/changelog |\n| 模型 ID | 无差异(开放模型 Llama/Qwen/DeepSeek/GPT OSS,透传) | - | C | https://apis.io/providers/nscale/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖\n- **aimux 代码位置**: `openai_compat_registry.rs:1457`\n- **差距说明**: 标准 OpenAI 兼容。\n- **建议动作**: 无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无\n\n---\n\n### nvidia_nim — NVIDIA NIM\n\n- **registry 现状**: profile=`full()` · base_url=`https://integrate.api.nvidia.com/v1` · env=`NVIDIA_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 兼容;历史 bug 要求 max_token 为必填,近期版本已修复) | - | C | https://forums.developer.nvidia.com/t/openai-compatible-api-does-not-work/303942 |\n| 能力支持 | 无差异(streaming、tool calling、json 等) | - | C | https://docs.nvidia.com/nim/large-language-models/latest/api-reference.html |\n| 思考机制 | 无专有 thinking 参数(reasoning 模型由模型名驱动) | `\"model\":\"deepseek-ai/deepseek-r1\"` | C | https://build.nvidia.com/deepseek-ai/deepseek-v4-flash |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | reasoning 模型响应拆分出 `reasoning_content` 字段(NIM 已支持拆分) | `message = getattr(..., \"reasoning_content\", None)` | C | https://github.com/RooCodeInc/Roo-Code/issues/10969;https://forums.developer.nvidia.com/t/bug-report-nvidia-nim-hosted-endpoint-reliability-issues-bugs-requiring-extensive-client-side-workarounds/366612 |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer $NVIDIA_API_KEY`) | `client = OpenAI(base_url=\"https://integrate.api.nvidia.com/v1\", api_key=\"$NVIDIA_API_KEY\")` | C | https://build.nvidia.com/deepseek-ai/deepseek-v4-flash |\n| URL/端点 | 无差异(`https://integrate.api.nvidia.com/v1`,与 registry 一致) | - | C | 同上 |\n| 模型 ID | 模型名带 org 前缀:`deepseek-ai/deepseek-r1`、`meta/llama-3.3-70b-instruct`、`nvidia/llama-3.1-nemotron-...`(HF 风格) | `\"model\":\"meta/llama-3.3-70b-instruct\"` | C | https://build.nvidia.com/;https://github.com/RooCodeInc/Roo-Code/issues/10969 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖(reasoning_content 输出侧 ❌)\n- **aimux 代码位置**: `openai_compat_registry.rs:1466`\n- **差距说明**: 模型 ID org 前缀为透传约定;`reasoning_content` 响应字段未解析(与 moonshot/novita 同类,建议统一补)。\n- **建议动作**: 响应解析统一补 `reasoning_content`;其余无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无\n\n---\n\n### oci — OCI\n\n- **registry 现状**: profile=`full()` · base_url=`https://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1` · env=`OCI_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(Chat Completions 兼容) | - | - | - |\n| 能力支持 | 无差异(Chat Completions + Responses API;Responses 为推荐主接口) | - | C | https://docs.oracle.com/en-us/iaas/Content/generative-ai/openai-compatible-api.htm |\n| 思考机制 | 无差异(透传) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer `,非 OCI 签名认证) | `--header 'Authorization: Bearer sk-...'` | C | https://docs.oracle.com/en-us/iaas/Content/generative-ai/api-keys.htm |\n| URL/端点 | 无差异(OpenAI 兼容 base `https://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1`,与 registry 一致;`${region}` 为占位符需用户替换,如 `us-chicago-1`) | - | C | https://docs.oracle.com/en-us/iaas/Content/generative-ai/openai-compatible-api.htm |\n| 模型 ID | ⚠️ 模型名带 **provider 前缀(点分隔)**:`openai.gpt-oss-120b`、`xai.grok-3`、`meta.llama-3.3-70b-instruct` | `\"model\":\"xai.grok-3\"` | C | https://docs.oracle.com/en-us/iaas/Content/generative-ai/api-keys.htm |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖(region 占位符需用户替换)\n- **aimux 代码位置**: `openai_compat_registry.rs:1475`\n- **差距说明**: `${region}` 是模板占位符,aimux 不会自动替换——用户须配置完整 base_url;模型名透传。\n- **建议动作**: 在文档/registry 注释中说明 `${region}` 占位符;其余无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无\n\n---\n\n### ofox — OfoxAI\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.ofox.ai/v1` · env=`OFOX_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | 无差异(OpenAI/Anthropic/Gemini 三协议,OpenAI 协议\"supports all models\") | - | C | https://ofox.ai/docs/api |\n| 思考机制 | 无差异(透传) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(API Key 认证,Bearer) | `client = OpenAI(base_url=\"https://api.ofox.ai/v1\", api_key=\"\")` | C | https://ofox.ai/docs/develop/authentication |\n| URL/端点 | 无差异(官方 OpenAI 兼容 base `https://api.ofox.ai/v1`,与 registry 一致;Anthropic 端点为 `/anthropic`) | - | C | https://ofox.ai/docs/api |\n| 模型 ID | 模型名带 provider 前缀:`openai/...`、`anthropic/...`、`google/...` 等 | `\"model\":\"openai/gpt-4o\"` | C | https://ofox.ai/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖\n- **aimux 代码位置**: `openai_compat_registry.rs:1484`\n- **差距说明**: 模型 ID 前缀为透传约定;无专有参数。\n- **建议动作**: 无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无\n\n---\n\n### ohmygpt — OhMyGPT\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.ohmygpt.com/v1` · env=`OHMYGPT_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 兼容中转站) | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异(透传) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | - | - |\n| URL/端点 | 无差异(one-api 默认渠道表收录 `https://api.ohmygpt.com` 为 OpenAI 兼容渠道) | - | C | https://github.com/songquanpeng/one-api/blob/main/relay/channeltype/url.go |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖\n- **aimux 代码位置**: `openai_compat_registry.rs:1493`\n- **差距说明**: 经典中转站,纯透传;官方 API 文档未检索到,one-api 渠道表为间接证据。\n- **建议动作**: 无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C(间接)\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 官方文档缺失,参数面为推断\n\n---\n\n### ollama_cloud — Ollama Cloud\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.ollama.com/v1` · env=`OLLAMA_CLOUD_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | - | - |\n| 能力支持 | ⚠️ `logprobs`/`top_logprobs` 请求被接受但响应返回 `null`(Cloud 端不支持,本地 Ollama 支持) | `{\"model\":\"deepseek-v3.2\",\"logprobs\":true,\"top_logprobs\":5}` → `\"message\":{\"content\":\"4\"}` 无 logprobs 字段 | C | https://github.com/ollama/ollama/issues/13638 |\n| 思考机制 | 无差异(透传) | - | - | - |\n| 流式/usage | 无差异(`/v1/chat/completions` SSE 标准) | - | C | 同上 |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer $OLLAMA_API_KEY`) | `curl 'https://ollama.com/api/chat' -H \"Authorization: Bearer $OLLAMA_API_KEY\"` | C | https://github.com/ollama/ollama/issues/13638;https://pypi.org/project/ollama/ |\n| URL/端点 | 无差异(OpenAI 兼容 `POST /v1/chat/completions`;`https://ollama.com` 与 `https://api.ollama.com` 均可用) | - | C | 同上 |\n| 模型 ID | 无差异(`deepseek-v3.2`、`gpt-oss:120b-cloud` 等,无前缀) | `\"model\":\"gpt-oss:120b-cloud\"` | C | https://github.com/ollama/ollama/issues/13638 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖(logprobs 无影响——aimux 白名单不含 logprobs,不会发送)\n- **aimux 代码位置**: `openai_compat_registry.rs:1502`、`openai/convert.rs:1284-1317`\n- **差距说明**: aimux 从不发送 logprobs,故 Cloud 端不支持无影响;其余参数面标准。\n- **建议动作**: 无需动作;若未来支持 logprobs 需注意 Cloud 端差异。\n\n#### 3. 证据与验证\n\n- **证据等级**: C\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 无\n\n---\n\n### openaimax — OpenAIMax\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.openaimax.com/v1` · env=`OPENAIMAX_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 兼容中转站) | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异(透传) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | - | - |\n| URL/端点 | 无差异(one-api/new-api 默认渠道表收录 `https://api.openaimax.com` 为 OpenAI 兼容渠道) | - | C | https://github.com/songquanpeng/one-api/blob/main/relay/channeltype/url.go;https://pkg.go.dev/github.com/skylinebear/new-api/constant |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖\n- **aimux 代码位置**: `openai_compat_registry.rs:1511`\n- **差距说明**: 经典中转站,纯透传;官方文档未检索到。\n- **建议动作**: 无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C(间接)\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 官方文档缺失,参数面为推断\n\n---\n\n### openaisb — OpenAI-SB\n\n- **registry 现状**: profile=`full()` · base_url=`https://api.openaisb.com/v1` · env=`OPENAISB_API_KEY`\n- **变体**: -\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 兼容中转站) | - | - | - |\n| 能力支持 | 无差异 | - | - | - |\n| 思考机制 | 无差异(透传) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer) | - | - | - |\n| URL/端点 | 无差异(one-api/new-api 默认渠道表收录 `https://api.openai-sb.com`;社区文档使用 `https://api.openaisb.com/v1`) | - | C | https://github.com/songquanpeng/one-api/blob/main/relay/channeltype/url.go;https://wenku.csdn.net/answer/bjs3ufq2cgm8 |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**: ✅ 已覆盖\n- **aimux 代码位置**: `openai_compat_registry.rs:1520`\n- **差距说明**: 经典中转站,纯透传;官方文档未检索到。\n- **建议动作**: 无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**: C(间接)\n- **验证状态**: 🔲 未验证\n- **存疑标记**: 官方文档缺失,参数面为推断\n\n---\n\n## 存疑归档(⚠️ 条目汇总)\n\n| id | 存疑点 | 等级 |\n|----|--------|------|\n| lynkr | 无任何公开信息(localhost base_url,自托管) | D |\n| matterai | 无任何公开信息 | D |\n| mira | 无任何公开信息 | D |\n| nanogpt | 无任何公开信息 | D |\n| ncompass | 无任何公开信息 | D |\n| nextbit | 无任何公开信息 | D |\n| mixlayer | 仅确认 base_url,参数面未确认 | C 弱 |\n| modal | 官方 gateway 文档 404,模型命名未确认 | C 弱 |\n| longcat | OpenAI 兼容路径可能是 `/openai/v1` 而非 `/v1` | C |\n| nous_research | registry base `api.nousresearch.com` vs 官方 `inference-api.nousresearch.com` | C |\n| novita | base_url 三处路径不一致(`/v1` vs `/openai` vs `/openai/v1`) | C |\n| nlp_cloud | 认证 scheme(`Authorization: Token` vs Bearer)与 OpenAI 兼容端点存在性 | C |\n| minimax_coding_plan | Anthropic 协议端点登记为 OpenAI 兼容 profile | C |\n| moonshotai_cn | registry base_url 含乱码(`锛圓nthropic`) | 自证 |\n| neon | 部分模型 content 返回数组块(响应侧) | C |\n| minimax | `service_tier=priority` 会被 aimux 能力校验拦截;penalty/logit_bias 被忽略 | C |\n\n## 批次小结\n\n- 完成厂商数:**42 / 42**\n- 有差异(含 ⚠️ 存疑差异)的厂商数:**16 家**(llmgateway、minimax/minimax_cn/minimax_cn_coding_plan/minimax_coding_plan、moonshotai/moonshotai_cn、modelscope、novita、nvidia_nim、oci、ollama_cloud、nlp_cloud、neon、nous_research、longcat);其余经确认无差异或证据不足\n- 证据不足(计入存疑归档):**6 家**(lynkr、matterai、mira、nanogpt、ncompass、nextbit)+ 弱证据 2 家(mixlayer、modal)\n- 重要发现(Top 5):\n 1. **Moonshot 思考机制按模型两套**(`kimi-k3` → `reasoning_effort` 仅 low/high/max 三档默认 max;`kimi-k2.6` → `thinking:{type,keep}`)——aimux 现有 OpenAI effort 档位(medium 等)与 deepseek 式 thinking override 均不能直接复用,需新 profile。\n 2. **MiniMax thinking 三态**(`adaptive`/`disabled`,M3 默认开、M2.x 不可关)+ `reasoning_split` 输出切分 + `` 内嵌格式 + `service_tier=priority` 被 aimux 校验拦截——同类问题:能力校验应区分\"OpenAI 官方模型\"与\"第三方厂商\"。\n 3. **6 家厂商 base_url 存疑/错误**:novita(`/openai` vs `/v1`)、nous_research(`api.` vs `inference-api.`)、longcat(`/openai/v1` vs `/v1`)、moonshotai_cn(乱码)、minimax_coding_plan(Anthropic 端点)、oci(`${region}` 占位符)——registry 数据质量需统一校对。\n 4. **多家 reasoning 模型厂商(moonshot/novita/nvidia_nim)响应统一用 `reasoning_content`**,aimux 响应解析未覆盖该别名——建议统一补一个 reasoning_content 解析。\n 5. **llmgateway 是\"网关类\"模板**:厂商前缀模型 ID + `reasoning` 对象/max 档位/`verbosity`/`x-no-cache`——与 OpenRouter 类同,可作为后续 gateway 类厂商 profile 扩展的样板。\n"}}, "docs/internal/provider-research/batch-10.md": {"1b3e3618ec8c3c7d617087474f15f50e0cba4e0d": {"t": 1785846910.8725526, "n": 20339, "h": "3e6be8cf94daf957", "c": "# 第 10 批调研记录(14 个 provider)\n\n> 本批按 canonical id 字母序排列。证据裁决遵循 RFC-0006 §2.1(官方文档/SDK > 成熟实现 > 多源一致 > 单一第三方)。inventory 的 tier/protocol/openai_compatible/confidence 仅为线索,不作证据依据。无法确认的字段写\"未知\"或留空,不臆造。\n\n---\n\n### poolside — Poolside\n\n- **canonical ID**:poolside\n- **aliases**:[]\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.poolside.ai/api/overview\n- **核验来源**:官方 API 文档\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://inference.poolside.ai/v1`(Poolside Platform);自管部署为 `https:///openai/v1`\n- **鉴权**:方式=Bearer token(`Authorization: Bearer `)/ 环境变量=`POOLSIDE_API_KEY` / 是否必需=是\n- **endpoint 公式**:`POST /chat/completions`;`GET /models`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:标准 OpenAI Chat Completions 请求体 `{model, messages}`\n- **响应结构要点**:标准 OpenAI Chat Completions 响应(`choices[].message.content`)\n- **流式**:SSE(OpenAI 兼容 stream)\n- **错误结构**:与 OpenAI 共享结构一致(官方明示 OpenAI-compatible)\n- **特有行为**:模型 ID 形如 `poolside/laguna-s-2.1`;亦可通过 OpenRouter 访问(`https://openrouter.ai/api/v1`);自管部署路径为 `/openai/v1`(与 Platform 的 `/v1` 不同)\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明确\"OpenAI-compatible API\",提供 OpenAI SDK 直连示例,base URL + Bearer + `/chat/completions` 完全符合 OpenAI 共享层\n- **可复用模型 ID 样例**:`poolside/laguna-s-2.1`、`poolside/laguna-m.1`、`poolside/laguna-xs-2.1`\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 自管部署路径为 `/openai/v1`(与 Platform 的 `/v1` 不同),需按部署方式切换 path\n- 主要面向软件工程/编码场景\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:官方 OpenAI 兼容,证据强,薄封装成本低\n\n---\n\n### ppinfra — PPInfra(PPIO 派欧云)\n\n- **canonical ID**:ppinfra\n- **aliases**:[]\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.3\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://ppio.com/docs/model/llm (官方 PPIO 文档;ppinfra.com 已合并升级至 ppio.com)\n- **核验来源**:官方站点 + 第三方成熟实现(ragflow 集成)\n- **证据强度**:中\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://api.ppio.com/openai`(现行);历史 `https://api.ppinfra.com/v3/openai`\n- **鉴权**:方式=Bearer API Key / 环境变量=未知(inventory 未提供;PPIO 控制台生成 API Key)/ 是否必需=是\n- **endpoint 公式**:OpenAI 兼容 `/chat/completions`(及 `/completions`)\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:官方提供 OpenAI SDK 直连示例 `{model, messages/prompt}`\n- **响应结构要点**:OpenAI 兼容响应\n- **流式**:SSE(OpenAI 兼容 stream,官方示例 `stream=True`)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:模型 ID 形如 `deepseek/deepseek-v3-0324`、`baidu/ernie-4.5-*` 等 `vendor/model`;另提供 Anthropic 兼容端点 `https://api.ppinfra.com/anthropic`\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示 OpenAI SDK 直连,base URL 指向 `/openai`,请求响应 OpenAI 兼容\n- **可复用模型 ID 样例**:`deepseek/deepseek-v3-0324`、`baidu/ernie-4.5-21b-a3b-thinking`\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- inventory 无 base_url/docs/env,识别为 PPIO(原 ppinfra.com)属推断,id 归属需二次确认\n- inventory 模型样例含 `ai_infer_test_2`、`ai_infer_test_3` 等测试模型,可疑\n- 现行品牌域 ppio.com 与 inventory id `ppinfra` 不一致\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:OpenAI 兼容薄封装;但 id 归属待确认,证据中\n\n---\n\n### qihang_ai — QiHang(启航 AI)\n\n- **canonical ID**:qihang_ai\n- **aliases**:[]\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://www.qhaigc.net/docs\n- **核验来源**:官方 API 文档\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://api.qhaigc.net/v1`\n- **鉴权**:方式=Bearer API Key(`sk-...`)/ 环境变量=`QIHANG_API_KEY` / 是否必需=是\n- **endpoint 公式**:OpenAI 兼容 `/chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:官方明示\"完全兼容 OpenAI API 标准\",OpenAI SDK 直连 `{model, messages}`\n- **响应结构要点**:OpenAI 兼容响应\n- **流式**:SSE(官方称支持流式输出)\n- **错误结构**:与 OpenAI 共享结构一致\n- **特有行为**:聚合网关,提供 GPT/Claude/DeepSeek/Kimi/Gemini 等多厂商模型;另支持图像/语音/视频/音乐生成、嵌入、重排序\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方文档明示\"完全兼容 OpenAI API 标准\",提供 OpenAI SDK 直连示例\n- **可复用模型 ID 样例**:`gpt-4o`、`claude-opus-4-5-20251101`、`gemini-2.5-flash`、`deepseek-v4-pro`\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 聚合网关,模型 availability 与上游一致性问题\n- 国内服务(qhaigc.net)\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:官方明示 OpenAI 兼容,证据强,薄封装成本低\n\n---\n\n### routing_run — routing.run\n\n- **canonical ID**:routing_run\n- **aliases**:[]\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.routing.run (官方文档;本次 WebFetch 抓取失败,疑似屏蔽爬虫)\n- **核验来源**:第三方成熟实现(mastra registry)+ inventory base_url\n- **证据强度**:中\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://api.routing.run/v1`(另 `https://ai.routing.sh/v1`)\n- **鉴权**:方式=Bearer API Key / 环境变量=`ROUTING_RUN_API_KEY` / 是否必需=是\n- **endpoint 公式**:OpenAI 兼容 `/chat/completions`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:mastra 明示\"uses the OpenAI-compatible `/chat/completions` endpoint\",OpenAI 风格 `{model, messages}`\n- **响应结构要点**:OpenAI 兼容响应\n- **流式**:SSE(mastra 示例支持 stream)\n- **错误结构**:与 OpenAI 共享结构一致(推断)\n- **特有行为**:聚合路由网关,模型 ID 形如 `routing-run/claude-opus-4-8`;部分模型有 `-nitro` 变体\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:mastra registry 明确使用 OpenAI 兼容 `/chat/completions`,base_url 以 `/v1` 结尾\n- **可复用模型 ID 样例**:`claude-opus-4-8`、`deepseek-v4-pro`、`glm-5.2`、`kimi-k2.6`、`gpt-5.6-luna`\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 官方文档未能直接抓取确认,协议细节依据第三方 mastra registry\n- 聚合网关,模型 availability 随上游变化\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:多源一致指向 OpenAI 兼容,薄封装;但官方文档未直接确认,证据中\n\n---\n\n### sagemaker_chat — Sagemaker Chat\n\n- **canonical ID**:sagemaker_chat\n- **aliases**:[]\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.3\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.litellm.ai/docs/providers/aws_sagemaker (litellm 成熟实现);AWS SageMaker 官方文档\n- **核验来源**:成熟实现(litellm)+ AWS 官方\n- **证据强度**:中\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://runtime.sagemaker..amazonaws.com/endpoints//invocations`(SageMaker InvokeEndpoint)\n- **鉴权**:方式=AWS SigV4 签名(`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY` / `AWS_REGION_NAME`,可选 session token/role)/ 环境变量=`AWS_ACCESS_KEY_ID` 等 / 是否必需=是\n- **endpoint 公式**:`POST /endpoints//invocations`(SageMaker Messages API 路由,litellm 前缀 `sagemaker_chat/`)\n- **协议类型**:原生\n- **请求结构要点**:SageMaker Messages API 载荷(messages 形式但 SageMaker 专属,非 OpenAI Chat Completions 原生);litellm 做 OpenAI→SageMaker 转换\n- **响应结构要点**:SageMaker 端点专属响应\n- **流式**:未知/有限(litellm 早期称 SageMaker 不支持流式,靠伪流式)\n- **错误结构**:AWS/SageMaker 专属\n- **特有行为**:需先在 SageMaker 部署端点,model 字段为端点名;按端点计费\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:原生\n- **依据**:AWS SigV4 鉴权 + SageMaker InvokeEndpoint 传输 + SageMaker Messages API 载荷,与 OpenAI 共享层结构差异显著\n- **可复用模型 ID 样例**:无(依赖用户自部署端点名)\n- **是否需扩展共享层**:是(需 AWS SigV4 签名 + SageMaker 端点 URL 模式,属原生实现)\n\n#### 4. 风险与限制\n\n- inventory 无 base_url/docs/env/models,此条目实为 litellm 路由前缀,非独立 API 服务\n- 需 AWS SDK 签名,实现成本高\n- 流式支持有限\n\n#### 5. 优先级建议\n\n- **优先级**:P2(后续)\n- **理由**:原生 AWS 集成成本高,且为路由前缀而非独立服务;证据中\n\n---\n\n### sagemaker_nova — Sagemaker Nova\n\n- **canonical ID**:sagemaker_nova\n- **aliases**:[]\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.3\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.litellm.ai/docs/providers/aws_sagemaker (litellm);AWS 官方博客\"Amazon SageMaker Inference for Custom Amazon Nova Models\"\n- **核验来源**:成熟实现(litellm)+ AWS 官方\n- **证据强度**:中\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:SageMaker 端点 InvokeEndpoint URL(`https://runtime.sagemaker..amazonaws.com/endpoints//invocations`)\n- **鉴权**:方式=AWS SigV4 签名 / 环境变量=`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY` / `AWS_REGION_NAME` / 是否必需=是\n- **endpoint 公式**:`POST /endpoints//invocations`(litellm 前缀 `sagemaker_nova/`)\n- **协议类型**:原生(请求/响应体 OpenAI 兼容,但鉴权与传输为 AWS SageMaker 原生)\n- **请求结构要点**:自定义/微调 Nova 模型使用 OpenAI 兼容 Chat Completions 载荷 `{model, messages, temperature, max_tokens}`,支持多模态图像(base64 data URI)\n- **响应结构要点**:OpenAI 兼容响应(`choices[].message.content`)\n- **流式**:SSE(OpenAI 兼容 stream,`stream_options.include_usage`)\n- **错误结构**:AWS/SageMaker 专属\n- **特有行为**:需先部署 Nova 端点;model 字段为端点名;支持 Amazon Nova Micro/Lite/Nova 2 Lite\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:原生\n- **依据**:虽请求响应体 OpenAI 兼容,但鉴权为 AWS SigV4、端点为 SageMaker InvokeEndpoint,结构差异显著\n- **可复用模型 ID 样例**:无(依赖用户自部署端点名)\n- **是否需扩展共享层**:是(需 AWS SigV4 签名 + SageMaker 端点 URL;可复用 OpenAI 载荷编解码)\n\n#### 4. 风险与限制\n\n- inventory 无 base_url/docs/env/models,实为 litellm 路由前缀\n- 需 AWS SDK 签名\n- 与新版 SageMaker `/openai/v1` OpenAI 兼容路径(2026-05 发布,Bearer)可能重叠,需厘清目标\n\n#### 5. 优先级建议\n\n- **优先级**:P2(后续)\n- **理由**:原生 AWS 集成成本高,路由前缀而非独立服务;证据中\n\n---\n\n### sap_ai_core — SAP AI Core\n\n- **canonical ID**:sap_ai_core\n- **aliases**:[]\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.3\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://help.sap.com/docs/sap-ai-core (官方;本次首页抓取为空,结合 SAP Cloud SDK for AI 与官方社区交叉确认)\n- **核验来源**:官方文档 + SAP Cloud SDK for AI + 官方社区\n- **证据强度**:中\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://api.ai...ml.hana.ondemand.com`(SAP AI Core AI_API_URL)\n- **鉴权**:方式=Bearer token(OAuth2 client credentials 换取 JWT access token,`Authorization: Bearer `)/ 环境变量=`AICORE_CLIENT_ID` / `AICORE_CLIENT_SECRET` 等(inventory 未提供)/ 是否必需=是\n- **endpoint 公式**:`POST /v2/inference/deployments//chat/completions`(亦有 `chat-completion` 变体);需先 `GET /v2/lm/scenarios/foundation-models/models` 与部署获取 `deployment_id`\n- **协议类型**:原生\n- **请求结构要点**:`/chat/completions` 端点请求体类 OpenAI(messages),但 URL 含 `deployment_id`;不同模型/部署 URL 不同\n- **响应结构要点**:类 OpenAI chat completions 响应\n- **流式**:SSE(部分模型支持流式)\n- **错误结构**:SAP AI Core 专属(含 status/code/message)\n- **特有行为**:多步骤——需先创建部署/获取 `deployment_id` 再调用推理;模型 ID 形如 `anthropic--claude-3.5-sonnet`\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:原生\n- **依据**:URL 含 `deployment_id`(每模型/部署不同)、OAuth2 client credentials 鉴权、多步骤部署查询,与 OpenAI 共享层结构差异显著\n- **可复用模型 ID 样例**:`anthropic--claude-3.5-sonnet`、`anthropic--claude-3.7-sonnet`\n- **是否需扩展共享层**:是(需 SAP OAuth2 鉴权 + deployment_id 路径解析 + 部署查询步骤)\n\n#### 4. 风险与限制\n\n- inventory 无 base_url/env,需 SAP AI Core 实例配置(client_id/secret/auth_url/resource_group)\n- 多步骤、部署 ID 绑定,模型切换需重新解析 `deployment_id`\n- 官方首页抓取为空,部分细节来自 SAP 社区/SDK 文档\n\n#### 5. 优先级建议\n\n- **优先级**:P2(后续)\n- **理由**:原生多步骤协议,实现成本高;企业场景为主;证据中\n\n---\n\n### snowflake_cortex — Snowflake Cortex\n\n- **canonical ID**:snowflake_cortex\n- **aliases**:[]\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-rest-api\n- **核验来源**:官方 API 文档\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://.snowflakecomputing.com/api/v2/cortex/v1`\n- **鉴权**:方式=Bearer token(`Authorization: Bearer `,推荐 Programmatic Access Token PAT)/ 环境变量=`SNOWFLAKE_CORTEX_PAT` / 是否必需=是;另需角色授权 `SNOWFLAKE.CORTEX_USER` 或 `CORTEX_REST_API_USER`\n- **endpoint 公式**:`POST /chat/completions`(OpenAI 兼容);`POST /messages`(Anthropic 兼容,仅 Claude)\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic Messages 兼容)\n- **请求结构要点**:Chat Completions 完全遵循 OpenAI 规范,OpenAI SDK 直连 `{model, messages}`\n- **响应结构要点**:OpenAI Chat Completions 响应\n- **流式**:SSE(OpenAI 兼容 stream)\n- **错误结构**:与 OpenAI 共享结构一致(Chat Completions 端点)\n- **特有行为**:双协议(OpenAI Chat Completions + Anthropic Messages);推理在 Snowflake 边界内;模型含 `claude-opus-5/4-7`、`claude-sonnet-4-5/4-6` 等\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示 Chat Completions API 遵循 OpenAI 规范,提供 OpenAI SDK 直连示例,base URL + Bearer(PAT) + `/chat/completions` 完全符合共享层\n- **可复用模型 ID 样例**:`claude-sonnet-4-5`、`claude-opus-4-7`、`claude-opus-5`\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- base URL 含 `` 占位,需用户填入账户标识\n- 需 Snowflake PAT 与角色授权配置\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:官方 OpenAI 兼容,证据强,薄封装成本低\n\n---\n\n### sora — Sora\n\n- **canonical ID**:sora\n- **aliases**:[]\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat(inventory 标注有误,实为 video 生成)\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://developers.openai.com/api/reference/resources/videos/methods/create/ ;https://developers.openai.com/api/docs/guides/video-generation\n- **核验来源**:官方 API 文档(OpenAI)\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://api.openai.com`\n- **鉴权**:方式=Bearer API Key(`Authorization: Bearer $OPENAI_API_KEY`)/ 环境变量=`OPENAI_API_KEY` / 是否必需=是\n- **endpoint 公式**:`POST /v1/videos`(创建视频生成任务);`GET /v1/videos/{id}`(轮询状态)\n- **协议类型**:专用模态(video)\n- **请求结构要点**:multipart/form-data,`{model: sora-2|sora-2-pro, prompt, seconds: 4|8|12, size, input_reference}`\n- **响应结构要点**:Video 对象 `{id, object:\"video\", model, status: queued|in_progress|completed|failed, progress, created_at, size, seconds}`\n- **流式**:无(异步任务,通过轮询或 webhook `video.completed`/`video.failed`)\n- **错误结构**:OpenAI 错误结构 `{error: {code, message}}`\n- **特有行为**:异步视频生成;任务状态机;输出为视频文件(`expires_at` 过期)\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:模态专用\n- **依据**:视频生成异步任务协议,与 Chat Completions 结构完全不同,属单一模态专用实现\n- **可复用模型 ID 样例**:`sora-2`、`sora-2-pro`\n- **是否需扩展共享层**:否(独立模态实现)\n\n#### 4. 风险与限制\n\n- inventory 将能力标为 chat 有误,实为 video\n- 异步任务需轮询/webhook 状态机\n- 实为 OpenAI 官方视频 API,非独立 provider\n\n#### 5. 优先级建议\n\n- **优先级**:P2(后续)\n- **理由**:模态专用(视频),与 chat 共享层无关;非独立 provider;按视频模态统一规划\n\n---\n\n### stackit — STACKIT\n\n- **canonical ID**:stackit\n- **aliases**:[]\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.65\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.stackit.cloud/products/data-and-ai/ai-model-serving/basics/available-shared-models\n- **核验来源**:官方文档\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1`\n- **鉴权**:方式=Bearer API Key(OpenAI 兼容)/ 环境变量=`STACKIT_API_KEY` / 是否必需=是\n- **endpoint 公式**:`POST /chat/completions`;`POST /completions`;`GET /models`\n- **协议类型**:OpenAI 兼容\n- **请求结构要点**:官方明示\"Specification: OpenAI-compatible\",OpenAI SDK 直连 `{model, messages}`\n- **响应结构要点**:OpenAI 兼容响应\n- **流式**:SSE(OpenAI 兼容,推断)\n- **错误结构**:与 OpenAI 共享结构一致\n- **特有行为**:模型 ID 形如 `Qwen/Qwen3-VL-235B-A22B-Instruct-FP8`、`cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic`;支持 tool calling、reasoning;按模型设 TPM/RPM 限额\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示 OpenAI-compatible,提供 `/chat/completions` `/completions` `/models` 端点\n- **可复用模型 ID 样例**:`Qwen/Qwen3-VL-235B-A22B-Instruct-FP8`、`Qwen/Qwen3.6-27B`、`cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic`、`google/gemma-3-27b-it`\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 区域固定 eu01(欧洲)\n- 部分模型有图像数量、TPM/RPM 限额\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:官方 OpenAI 兼容,证据强,薄封装成本低\n\n---\n\n### stepfun_ai_step_plan — StepFun Step Plan (Global)\n\n- **canonical ID**:stepfun_ai_step_plan\n- **aliases**:[]\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://platform.stepfun.ai/docs/en/step-plan/integrations/reasoning-api\n- **核验来源**:官方 API 文档\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://api.stepfun.ai/step_plan/v1`\n- **鉴权**:方式=Bearer API Key(`Authorization: Bearer $STEP_API_KEY`)/ 环境变量=`STEPFUN_API_KEY`(inventory)/ `STEP_API_KEY`(官方文档)/ 是否必需=是\n- **endpoint 公式**:`POST /step_plan/v1/chat/completions`(OpenAI 协议);`POST /step_plan/v1/messages`(Anthropic 协议)\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic Messages 兼容)\n- **请求结构要点**:OpenAI Chat Completions 载荷 `{model, messages, reasoning_effort: low|medium|high}`;Anthropic 路径用 `output_config.effort`\n- **响应结构要点**:OpenAI 兼容响应\n- **流式**:SSE(OpenAI 兼容 stream)\n- **错误结构**:与 OpenAI 共享结构一致\n- **特有行为**:固定域名 `api.stepfun.ai` + `/step_plan/v1` 前缀;推理强度字段 `reasoning_effort`;需订阅 Step Plan\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示 Chat Completion(OpenAI 协议),提供 OpenAI SDK 直连示例\n- **可复用模型 ID 样例**:`step-3.7-flash`、`step-3.5-flash-2603`、`step-3.5-flash`\n- **是否需扩展共享层**:否(`reasoning_effort` 为 OpenAI 标准扩展字段,共享层应已支持)\n\n#### 4. 风险与限制\n\n- 路径前缀 `/step_plan/v1` 而非 `/v1`\n- env var 名称官方为 `STEP_API_KEY`,inventory 的 `STEPFUN_API_KEY` 待统一\n- 需订阅 Step Plan\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:官方 OpenAI 兼容,证据强,薄封装成本低\n\n---\n\n### stepfun_step_plan — StepFun Step Plan (China)\n\n- **canonical ID**:stepfun_step_plan\n- **aliases**:[]\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://platform.stepfun.com/docs/zh/step-plan/integrations/reasoning-api\n- **核验来源**:官方 API 文档\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://api.stepfun.com/step_plan/v1`\n- **鉴权**:方式=Bearer API Key(`Authorization: Bearer $STEP_API_KEY`)/ 环境变量=`STEPFUN_API_KEY`(inventory)/ `STEP_API_KEY`(官方文档)/ 是否必需=是\n- **endpoint 公式**:`POST /step_plan/v1/chat/completions`(OpenAI 协议);`POST /step_plan/v1/messages`(Anthropic 协议)\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic Messages 兼容)\n- **请求结构要点**:OpenAI Chat Completions 载荷 `{model, messages, reasoning_effort: low|medium|high}`\n- **响应结构要点**:OpenAI 兼容响应\n- **流式**:SSE(OpenAI 兼容 stream)\n- **错误结构**:与 OpenAI 共享结构一致\n- **特有行为**:国内域名 `api.stepfun.com` + `/step_plan/v1` 前缀;额外模型 `step-router-v1`(自动在 `deepseek-v4-pro` 与 `step-3.7-flash` 间路由,字段约束有差异)\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示 Chat Completion(OpenAI 协议),提供 OpenAI SDK 直连示例\n- **可复用模型 ID 样例**:`step-3.7-flash`、`step-3.5-flash-2603`、`step-3.5-flash`、`step-router-v1`\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 路径前缀 `/step_plan/v1` 而非 `/v1`\n- `step-router-v1` 有字段约束(`max_tokens` 上限、不支持的内容类型等)\n- 国内服务,与全球版 `stepfun_ai_step_plan` 协议一致仅域名不同\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:官方 OpenAI 兼容,证据强;与全球版可共享实现\n\n---\n\n### sub2_api — Sub2API\n\n- **canonical ID**:sub2_api\n- **aliases**:[]\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.3\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:无(inventory 未提供;WebSearch 未找到官方文档)\n- **核验来源**:无\n- **证据强度**:无\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:未知\n- **鉴权**:方式=未知 / 环境变量=未知 / 是否必需=未知\n- **endpoint 公式**:未知\n- **协议类型**:未知\n- **请求结构要点**:未知\n- **响应结构要点**:未知\n- **流式**:未知\n- **错误结构**:未知\n- **特有行为**:\"sub2\" 在第三方语境中似为账号/凭据格式标签(json 不带账密),非可识别的官方 API provider;inventory 无 base_url/docs/env/models\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:待定\n- **依据**:无任何协议证据,无法判定\n- **可复用模型 ID 样例**:无\n- **是否需扩展共享层**:未知\n\n#### 4. 风险与限制\n\n- 无法确认是否为真实独立 provider\n- 可能为凭据/账号格式或代理转售生态标签\n\n#### 5. 优先级建议\n\n- **优先级**:搁置\n- **理由**:无官方文档、无 base_url、无 env、无模型,证据不足\n\n---\n\n### subconscious — Subconscious\n\n- **canonical ID**:subconscious\n- **aliases**:[]\n- **provider_kind**:model_vendor\n- **inventory 分层**:tier=unknown / protocol=unknown / openai_compatible=null / confidence=0.45\n- **能力**(本次调研覆盖):chat\n\n#### 1. 官方协议证据\n\n- **文档 URL**:https://docs.subconscious.dev\n- **核验来源**:官方 API 文档\n- **证据强度**:强\n- **核验日期**:2026-07-28\n\n#### 2. 协议事实\n\n- **base URL**:`https://api.subconscious.dev/v1`(OpenAI 兼容);Anthropic 路径 `https://api.subconscious.dev`\n- **鉴权**:方式=Bearer API Key(OpenAI 路径 `Authorization: Bearer`);Anthropic 路径 `x-api-key` / 环境变量=`SUBCONSCIOUS_API_KEY` / 是否必需=是\n- **endpoint 公式**:`POST /v1/chat/completions`(OpenAI 协议);`POST /v1/messages`(Anthropic 协议,需 `anthropic-version` 头)\n- **协议类型**:OpenAI 兼容(同时提供 Anthropic Messages 兼容)\n- **请求结构要点**:OpenAI Chat Completions 载荷 `{model, messages}`,OpenAI SDK 直连\n- **响应结构要点**:OpenAI 兼容响应(`choices[].message.content`)\n- **流式**:SSE(OpenAI 兼容 stream,推断)\n- **错误结构**:与 OpenAI 共享结构一致\n- **特有行为**:双协议(OpenAI + Anthropic);模型 ID 形如 `subconscious/tim-qwen3.6-27b`、`subconscious/glm-5.2`;自研 TIM 模型 + TIMRUN 推理运行时\n\n#### 3. 实现路径建议(对应 RFC-0006 §2.2)\n\n- **建议路径**:薄封装\n- **依据**:官方明示\"compatible with both the OpenAI Completions and Anthropic Messages APIs\",提供 OpenAI SDK 直连示例\n- **可复用模型 ID 样例**:`subconscious/tim-qwen3.6-27b`、`subconscious/glm-5.2`\n- **是否需扩展共享层**:否\n\n#### 4. 风险与限制\n\n- 模型数量少(2)\n- Anthropic 路径鉴权头与 OpenAI 路径不同(`x-api-key` vs `Bearer`)\n\n#### 5. 优先级建议\n\n- **优先级**:P1(近期)\n- **理由**:官方 OpenAI 兼容,证据强,薄封装成本低\n"}}, "docs/internal/model-config-research/batch-03.md": {"1b3e3618ec8c3c7d617087474f15f50e0cba4e0d": {"t": 1785846917.6441844, "n": 65613, "h": "cda4bd4cf78517a6", "c": "# Batch 03 — Model Request Config 调研\n\n> 状态: ✅ 已完成调研 · 厂商数: 42(2026-08-01 完成)\n> 模板见 [_template.md](_template.md) · 方法论见 [README.md](README.md)\n> 证据硬性要求: 每条目必须有例子或证明(A/B/C 级),禁止编造来源。\n\n## 厂商清单\n\n| # | id | display | base_url | env_var | profile |\n|---|---|---|---|---|---|\n| 1 | freemodel | FreeModel | client.chat.completions.create | FREEMODEL_API_KEY | OpenAICompatProfile::full() |\n| 2 | friendliai | FriendliAI | https://inference.friendli.ai/v1 | FRIENDLIAI_API_KEY | OpenAICompatProfile::full() |\n| 3 | frogbot | FrogBot | https://app.frogbot.ai/api/v1 | FROGBOT_API_KEY | OpenAICompatProfile::full() |\n| 4 | galadriel | Galadriel | https://api.galadriel.com/v1 | GALADRIEL_API_KEY | OpenAICompatProfile::full() |\n| 5 | gdc | GDC | https://api.gdc.ai/v1 | GDC_API_KEY | OpenAICompatProfile::full() |\n| 6 | gigachat | GigaChat (Sberbank) | https://gigachat.devices.sberbank.ru/api/v1 | GIGACHAT_API_KEY | OpenAICompatProfile::full() |\n| 7 | github | GitHub Models | https://models.inference.ai.azure.com | GITHUB_TOKEN | OpenAICompatProfile::full() |\n| 8 | gmi | GMI | https://api.gmi-serving.com/v1(与 | GMI_API_KEY | OpenAICompatProfile::full() |\n| 9 | gmicloud | GMI Cloud | https://api.gmi-serving.com/v1 | GMI_API_KEY | OpenAICompatProfile::full() |\n| 10 | gonka24 | Gonka24 | https://api.gonka24.com/v1 | GONKA24_API_KEY | OpenAICompatProfile::full() |\n| 11 | gradient_ai | Gradient AI | https://inference.do-ai.run/v1 | GRADIENT_API_KEY | OpenAICompatProfile::full() |\n| 12 | groq | Groq | https://api.groq.com/openai/v1 | GROQ_API_KEY | OpenAICompatProfile::groq() |\n| 13 | helicone | Helicone | https://api.helicone.ai/v1 | HELICONE_API_KEY | OpenAICompatProfile::full() |\n| 14 | heroku | Heroku AI | https://api.heroku.com/inference/v1 | HEROKU_API_KEY | OpenAICompatProfile::full() |\n| 15 | hetzner | Hetzner | https://inference.hetzner.com/api/v1 | HETZNER_VLLM_API_KEY | OpenAICompatProfile::full() |\n| 16 | hosted_vllm | Hosted vLLM | https://hosted-vllm-api.com/v1 | HOSTED_VLLM_API_KEY | OpenAICompatProfile::full() |\n| 17 | hpc_ai | HPC-AI | https://api.hpc-ai.com/inference/v1 | INFERENCE_API_KEY | OpenAICompatProfile::full() |\n| 18 | hyperbolic | Hyperbolic | https://api.hyperbolic.xyz/v1 | HYPERBOLIC_API_KEY | OpenAICompatProfile::full() |\n| 19 | iflowcn | iFlow | https://apis.iflow.cn/v1(chat | IFLOW_API_KEY | OpenAICompatProfile::full() |\n| 20 | inception | Inception Labs | https://api.inceptionlabs.ai/v1 | INCEPTION_API_KEY | OpenAICompatProfile::full() |\n| 21 | inceptron | Inceptron | https://api.inceptron.io/v1 | INCEPTRON_API_KEY | OpenAICompatProfile::full() |\n| 22 | inference_net | Inference.net | https://api.inference.net/v1 | INFERENCE_NET_API_KEY | OpenAICompatProfile::full() |\n| 23 | inferx | InferX | https://model.inferx.net/v1 | INFERX_API_KEY | OpenAICompatProfile::full() |\n| 24 | infinity | Infinity AI | https://infinity.ai/api/v1 | INFINITY_API_KEY | OpenAICompatProfile::full() |\n| 25 | io_net | IO.NET | https://api.intelligence.io.solutions/api/v1 | IOINTELLIGENCE_API_KEY | OpenAICompatProfile::full() |\n| 26 | jiekou | Jiekou.AI | https://api.highwayapi.ai/openai | JIEKOU_API_KEY | OpenAICompatProfile::full() |\n| 27 | kenari | Kenari | https://kenari.id/v1 | KENARI_API_KEY | OpenAICompatProfile::full() |\n| 28 | kilo | Kilo | https://api.kilo.ai/v1 | KILO_API_KEY | OpenAICompatProfile::full() |\n| 29 | kimi | Kimi | https://api.moonshot.ai/v1 | MOONSHOT_API_KEY | OpenAICompatProfile::full() |\n| 30 | kimi_for_coding | Kimi For Coding | https://api.kimi.com/coding/v1 | KIMI_API_KEY | OpenAICompatProfile::full() |\n| 31 | kiro | Kiro | https://api.kiro.dev/v1 | KIRO_API_KEY | OpenAICompatProfile::full() |\n| 32 | kluster_ai | Kluster AI | https://api.kluster.ai/v1 | KLUSTER_API_KEY | OpenAICompatProfile::full() |\n| 33 | krutrim | Krutrim | https://api.krutrim.ai/v1 | KRUTRIM_API_KEY | OpenAICompatProfile::full() |\n| 34 | kuae_cloud_coding_plan | KUAE Cloud Coding Plan | https://coding-plan-endpoint.kuaecloud.net/v1 | KUAE_API_KEY | OpenAICompatProfile::full() |\n| 35 | lambda_ai | Lambda AI | https://api.lambda.ai/v1 | LAMBDA_API_KEY | OpenAICompatProfile::full() |\n| 36 | lemonade | Lemonade | http://localhost:13305/v1 | LEMONADE_API_KEY | OpenAICompatProfile::full() |\n| 37 | lemonfox_ai | Lemonfox AI | https://api.lemonfox.ai/v1 | LEMONFOX_API_KEY | OpenAICompatProfile::full() |\n| 38 | libertai | Libertai | https://api.libertai.io/v1 | LIBERTAI_API_KEY | OpenAICompatProfile::full() |\n| 39 | lilac | Lilac | https://api.getlilac.com/v1 | LILAC_API_KEY | OpenAICompatProfile::full() |\n| 40 | lingyiwanwu | Lingyiwanwu (零一万物) | https://api.lingyiwanwu.com/v1 | LINGYIWANWU_API_KEY | OpenAICompatProfile::full() |\n| 41 | llama | Llama | https://api.llama.com/compat/v1/ | LLAMA_API_KEY | OpenAICompatProfile::full() |\n| 42 | llamagate | Llamagate | https://api.llamagate.dev/v1 | LLAMAGATE_API_KEY | OpenAICompatProfile::full() |\n\n## 调研条目(按 id 字母序)\n\n### freemodel — FreeModel\n\n- **registry 现状**:profile=`full()` · base_url=`client.chat.completions.create`(⚠️ 明显是提取错误,这是代码片段不是 URL) · env=`FREEMODEL_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(官方示例用标准 OpenAI 参数 `model/messages`,支持 `model=\"auto\"` 自动路由) | `client.chat.completions.create(model=\"auto\", ...)` | C | https://freemodel.dev/ |\n| 能力支持 | 无差异(宣称兼容 OpenAI SDK) | - | C | https://freemodel.dev/ |\n| 思考机制 | 无法确认(未找到官方文档) | - | ⚠️ | - |\n| 流式/usage | 无差异(宣称 OpenAI 兼容) | - | C | https://freemodel.dev/ |\n| 消息格式 | 无差异 | - | C | https://freemodel.dev/ |\n| 特殊字段 | 无法确认 | - | ⚠️ | - |\n| headers/认证 | 无差异(Bearer key) | - | C | https://segmentfault.com/a/1190000047755983 |\n| URL/端点 | ⚠️ registry base_url 是代码片段 `client.chat.completions.create`,非真实 URL;正确 base_url 未确认 | - | ⚠️ | https://freemodel.dev/ |\n| 模型 ID | 支持 `model=\"auto\"` 自动路由 | `\"model\": \"auto\"` | C | https://freemodel.dev/ |\n\n> 证据等级: C=官方/权威网页 · ⚠️=证据不足\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(registry 数据错误,非协议差异)\n- **aimux 代码位置**:`openai_compat_registry.rs:772-780`\n- **差距说明**:base_url 字段被错误提取为代码片段;协议本身为 OpenAI 兼容,request 构造无差异。\n- **建议动作**:修正 registry base_url(需确认官方端点,如 `https://api.freemodel.dev/v1` 之类);request 层无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C(官网 + 第三方博客)\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:⚠️ 正确 base_url 未确认\n\n### friendliai — FriendliAI\n\n- **registry 现状**:profile=`full()` · base_url=`https://inference.friendli.ai/v1` · env=`FRIENDLIAI_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI Chat Completions 参数) | - | C | https://docs.litellm.ai/docs/providers/friendliai |\n| 能力支持 | 无差异(支持 /chat/completions 与 /completions) | - | C | https://docs.litellm.ai/docs/providers/friendliai |\n| 思考机制 | 未发现文档化差异 | - | - | - |\n| 流式/usage | 无差异 | - | C | https://docs.litellm.ai/docs/providers/friendliai |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer token;litellm 侧环境变量名为 `FRIENDLI_TOKEN`,registry 用 `FRIENDLIAI_API_KEY`,属命名差异非协议差异) | - | C | https://docs.litellm.ai/docs/providers/friendliai |\n| URL/端点 | 无差异 | - | C | https://docs.litellm.ai/docs/providers/friendliai |\n| 模型 ID | 约定为 `org/model` 形式(如 `meta-llama-3.1-8b-instruct`) | `\"model\": \"meta-llama-3.1-8b-instruct\"` | C | https://docs.litellm.ai/docs/providers/friendliai |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:781-789`\n- **差距说明**:协议无差异;模型 ID 直接透传,`org/model` 形式不影响 request 构造。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:-\n\n### frogbot — FrogBot\n\n- **registry 现状**:profile=`full()` · base_url=`https://app.frogbot.ai/api/v1` · env=`FROGBOT_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://models.dev/providers/frogbot |\n| 能力支持 | 无差异(26 个模型,`@ai-sdk/openai-compatible` 接入) | - | C | https://models.dev/providers/frogbot |\n| 思考机制 | 未发现文档化差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer $FROGBOT_API_KEY`) | `-H \"Authorization: Bearer $FROGBOT_API_KEY\"` | C | https://firmware.mintlify.app/api-reference/images-generations |\n| URL/端点 | 无差异 | - | C | https://models.dev/providers/frogbot |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:790-798`\n- **差距说明**:纯 OpenAI 兼容。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### galadriel — Galadriel\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.galadriel.com/v1` · env=`GALADRIEL_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://github.com/kreuzberg-dev/liter-llm/blob/main/schemas/providers.json |\n| 能力支持 | 无差异(chat completions;Sentience SDK 面向 OpenAI 客户端库设计) | - | C | https://docs.galadriel.com/for-agents-developers/quickstart |\n| 思考机制 | 未发现文档化差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异(另有 `/v1/verified` 可验证推理完整性,属附加端点) | `base_url=\"https://api.galadriel.com/v1/verified\"` | C | https://docs.galadriel.com/for-agents-developers/quickstart |\n| headers/认证 | 无差异(Bearer `GALADRIEL_API_KEY`) | - | C | https://github.com/kreuzberg-dev/liter-llm/blob/main/schemas/providers.json |\n| URL/端点 | 无差异 | - | C | https://github.com/kreuzberg-dev/liter-llm/blob/main/schemas/providers.json |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:799-807`\n- **差距说明**:纯 OpenAI 兼容。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### gdc — GDC\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.gdc.ai/v1` · env=`GDC_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | ⚠️ 无法确认(查不到该厂商资料) | - | ⚠️ | - |\n| 能力支持 | ⚠️ 无法确认 | - | ⚠️ | - |\n| 思考机制 | ⚠️ 无法确认 | - | ⚠️ | - |\n| 流式/usage | ⚠️ 无法确认 | - | ⚠️ | - |\n| 消息格式 | ⚠️ 无法确认 | - | ⚠️ | - |\n| 特殊字段 | ⚠️ 无法确认 | - | ⚠️ | - |\n| headers/认证 | ⚠️ 无法确认 | - | ⚠️ | - |\n| URL/端点 | ⚠️ 无法确认(`api.gdc.ai` 无公开文档;\"GDC\" 搜索主要命中 Google Distributed Cloud / GDC 大会,无法对应此端点) | - | ⚠️ | - |\n| 模型 ID | ⚠️ 无法确认 | - | ⚠️ | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 证据不足,无法对比\n- **aimux 代码位置**:`openai_compat_registry.rs:808-816`\n- **差距说明**:全库未查到该厂商任何官方文档或第三方适配;按默认 OpenAI 兼容处理,但无证据。\n- **建议动作**:维持 full(),标记为\"证据不足\",后续有人使用时补档。\n\n#### 3. 证据与验证\n\n- **证据等级**:无(D 级以下)\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 存疑——查不到任何厂商信息\n\n### gigachat — GigaChat (Sberbank)\n\n- **registry 现状**:profile=`full()` · base_url=`https://gigachat.devices.sberbank.ru/api/v1` · env=`GIGACHAT_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI SDK 可直接调用;`max_tokens` 等标准参数) | `client = OpenAI(api_key=\"<токен_доступа>\", base_url=\"https://api.giga.chat/v1\")` | C | https://developers.sber.ru/docs/ru/gigachat/guides/compatible-openai |\n| 能力支持 | 🔶 部分:函数调用**每次请求仅限 1 个**;Structured Output 通过函数调用模拟实现;GigaChat-2-Max/Pro 支持图像输入(base64/URL) | - | C | https://docs.litellm.ai/docs/providers/gigachat |\n| 思考机制 | 未发现文档化差异 | - | - | - |\n| 流式/usage | 无差异(支持流式) | - | C | https://docs.litellm.ai/docs/providers/gigachat |\n| 消息格式 | 无差异(\"GigaChat API 的消息格式与 OpenAI API 部分兼容\") | - | C | https://developers.sber.ru/docs/ru/gigachat/guides/compatible-openai |\n| 特殊字段 | ⚠️ TLS:官方 API 使用**自签名证书**,请求必须 `ssl_verify=False` | `ssl_verify=False` | C | https://docs.litellm.ai/docs/providers/gigachat |\n| headers/认证 | ❌ **OAuth2 流程**:不能用裸 key 直接调;先 POST `https://ngw.devices.sberbank.ru:9443/api/v2/oauth`(scope=`GIGACHAT_API_PERS`,需 `RqUID` 头 + `Authorization: Bearer <授权密钥>`)换取 30 分钟有效 access token,再以 token 作 Bearer | `POST https://ngw.devices.sberbank.ru:9443/api/v2/oauth` + `headers={\"RqUID\": \"...\", \"Authorization\": \"Bearer <ключ_авторизации>\"}` `payload=\"scope=GIGACHAT_API_PERS\"` | C | https://developers.sber.ru/docs/ru/gigachat/guides/compatible-openai |\n| URL/端点 | ⚠️ registry base_url=`gigachat.devices.sberbank.ru/api/v1` 为旧端点;官方 OpenAI 兼容文档用 `https://api.giga.chat/v1` | `base_url=\"https://api.giga.chat/v1\"` | C | https://developers.sber.ru/docs/ru/gigachat/guides/compatible-openai |\n| 模型 ID | 官方模型名:`GigaChat`、`GigaChat-2-Max/Pro/Lite` | `\"model\": \"GigaChat\"` | C | https://developers.sber.ru/docs/ru/gigachat/guides/compatible-openai |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:❌ 未覆盖(认证流程)+ ⚠️ base_url 过时\n- **aimux 代码位置**:`openai_compat_registry.rs:817-825`;aimux 认证仅支持静态 Bearer key(`load_api_key`)\n- **差距说明**:① GigaChat 需要 OAuth token 交换(静态 key 不能直接用);② 自签名证书需要跳过 TLS 校验,aimux 无此配置;③ registry base_url 与官方文档端点不一致。\n- **建议动作**:profile 层暂无法表达 OAuth 交换——建议从 registry 移除或降级为\"需 bodyOverrides/手动 token\"文档化;base_url 更新为 `https://api.giga.chat/v1`;TLS 校验关闭能力列入 RFC-0017 后续字段评估。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(仅文档引用)\n- **存疑标记**:⚠️ base_url/认证为确定差异;其余类别无证据显示差异\n\n### github — GitHub Models\n\n- **registry 现状**:profile=`full()` · base_url=`https://models.inference.ai.azure.com` · env=`GITHUB_TOKEN`\n- **变体**:GitHub Copilot 见 batch-02 `copilot`\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(历史文档:标准 OpenAI Chat Completions) | - | C | https://docs.github.com/en/github-models/quickstart |\n| 能力支持 | 无差异(历史:支持主流模型) | - | - | - |\n| 思考机制 | 无差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(历史:`Authorization: Bearer `,可用 PAT 或 OAuth) | - | C | https://docs.github.com/en/github-models/quickstart |\n| URL/端点 | ⚠️ **服务已下线**:官方文档明确 GitHub Models 已于 **2026-07-30 全面退役**(playground/模型目录/inference API/BYOK 全部关闭),`models.inference.ai.azure.com` 不再可用 | - | C | https://docs.github.com/en/github-models/quickstart |\n| 模型 ID | 无差异(历史:gpt-4o、o1、Llama 等公开模型 ID) | - | C | https://docs.github.com/en/github-models/quickstart |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(registry 指向已退役服务)\n- **aimux 代码位置**:`openai_compat_registry.rs:826-834`\n- **差距说明**:服务已于 2026-07-30 退役(当前日期 2026-08-01),registry 条目指向死端点。官方建议迁移到 Azure AI Foundry。\n- **建议动作**:从 registry 移除该条目或在文档标注\"已退役\";如需替代接入 Azure AI Foundry(其 base_url/auth 为另一套,见 batch 后续)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(官方退役公告,无需实测)\n- **存疑标记**:⚠️ 服务已退役\n\n### gmi — GMI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.gmi-serving.com/v1(与`(⚠️ 字符串被截断,含垃圾字符\"(与\") · env=`GMI_API_KEY`\n- **变体**:与 `gmicloud` 为同一服务(同一 base_url/env),建议合并\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://docs.litellm.ai/docs/providers/gmi |\n| 能力支持 | 无差异(OpenAI-compatible drop-in,支持 /chat/completions) | - | C | https://docs.litellm.ai/docs/providers/gmi |\n| 思考机制 | 未发现文档化差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer `GMI_API_KEY`) | - | C | https://docs.gmicloud.ai/quickstart |\n| URL/端点 | ⚠️ registry base_url 截断损坏;正确端点为 `https://api.gmi-serving.com/v1` | `client = OpenAI(base_url=\"https://api.gmi-serving.com/v1\")` | C | https://docs.gmicloud.ai/quickstart |\n| 模型 ID | 约定为 `gmi//`(如 `gmi/openai/gpt-5.6-sol`) | `\"model\": \"gmi/openai/gpt-5.6-sol\"` | C | https://docs.openclaw.ai/providers/gmi |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(协议无差异;registry base_url 数据损坏)\n- **aimux 代码位置**:`openai_compat_registry.rs:835-843`\n- **差距说明**:base_url 字符串含截断垃圾\"(与\";与 gmicloud 重复声明同一服务。\n- **建议动作**:修正/合并 registry 条目(保留 gmicloud,删除 gmi 或统一 base_url)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ registry 数据损坏(非协议差异)\n\n### gmicloud — GMI Cloud\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.gmi-serving.com/v1` · env=`GMI_API_KEY`\n- **变体**:`gmi` 为同一服务(registry 重复声明)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://docs.gmicloud.ai/quickstart |\n| 能力支持 | 无差异(OpenAI-compatible drop-in) | - | C | https://docs.litellm.ai/docs/providers/gmi |\n| 思考机制 | 未发现文档化差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer `GMI_API_KEY`) | - | C | https://docs.gmicloud.ai/quickstart |\n| URL/端点 | 无差异 | - | C | https://docs.gmicloud.ai/quickstart |\n| 模型 ID | `gmi//` 形式(透传即可) | - | C | https://docs.openclaw.ai/providers/gmi |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:844-852`\n- **差距说明**:无差异。\n- **建议动作**:无需动作(可考虑与 gmi 合并)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### gonka24 — Gonka24\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.gonka24.com/v1` · env=`GONKA24_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 兼容网关) | - | C | https://llmgateway.io/providers/gonka24 |\n| 能力支持 | 无差异(提供 2 个开源权重模型) | - | C | https://llmgateway.io/providers/gonka24 |\n| 思考机制 | 无法确认(资料极少) | - | ⚠️ | - |\n| 流式/usage | 无差异(OpenAI 兼容) | - | C | https://llmgateway.io/providers/gonka24 |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer key,官方站点 gonka.ai 提供 quickstart) | - | C | https://gonka.ai/docs/developer/quickstart/ |\n| URL/端点 | 无差异 | - | C | https://llmgateway.io/providers/gonka24 |\n| 模型 ID | 无差异(开源模型 ID 透传) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(证据较薄)\n- **aimux 代码位置**:`openai_compat_registry.rs:853-861`\n- **差距说明**:第三方资料确认 OpenAI 兼容,无特殊 request 配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 资料少,思考机制类未确认\n\n### gradient_ai — Gradient AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://inference.do-ai.run/v1` · env=`GRADIENT_API_KEY`\n- **变体**:DigitalOcean(batch-02)使用同一端点族(`inference.do-ai.run`)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://www.digitalocean.com/community/tutorials/serverless-inference-openai-sdk |\n| 能力支持 | 无差异(OpenAI API 兼容,支持 /v1/chat/completions) | `base_url=\"https://inference.do-ai.run/v1/\"` | C | https://www.digitalocean.com/community/tutorials/serverless-inference-openai-sdk |\n| 思考机制 | 未发现文档化差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer token) | - | C | https://github.com/anomalyco/models.dev/issues/1317 |\n| URL/端点 | 无差异(`https://inference.do-ai.run/v1`) | - | C | https://www.digitalocean.com/community/tutorials/serverless-inference-openai-sdk |\n| 模型 ID | 无差异(GPT-OSS 120b 等标准 ID) | - | C | https://www.digitalocean.com/community/tutorials/serverless-inference-openai-sdk |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:862-870`\n- **差距说明**:即 DigitalOcean Gradient AI 平台的 OpenAI 兼容端点,无差异。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### groq — Groq\n\n- **registry 现状**:profile=`groq()`(supports_top_k=false · stream_usage_key=`x_groq`) · base_url=`https://api.groq.com/openai/v1` · env=`GROQ_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 🔶 `max_tokens` 已弃用,官方文档统一用 `max_completion_tokens`(API reference 注明 \"Deprecated in favor of max_completion_tokens\");aimux 对非 reasoning 模型发 `max_tokens` | `{\"model\":\"llama-3.3-70b-versatile\",\"max_completion_tokens\":1024,\"stream\":true}` | C | https://console.groq.com/docs/text-chat ;https://console.groq.com/docs/api-reference |\n| 能力支持 | 🔶 top_k 不支持(profile 已处理);Structured Outputs 分 strict(true)/best-effort(false) 两档,`strict:true` 仅限部分模型(gpt-oss-20b/120b);response_format 与流式/工具调用互斥 | `{\"response_format\":{\"type\":\"json_schema\",\"json_schema\":{\"name\":\"...\",\"strict\":true,\"schema\":{...}}}}` | C | https://console.groq.com/docs/structured-outputs |\n| 思考机制 | 🔶 `reasoning_format` 字段(aimux 已实现);新模型 ID 带 `openai/` 前缀(`openai/gpt-oss-120b`) | `{\"reasoning_format\":\"raw\"}` | C | https://console.groq.com/docs/text-chat |\n| 流式/usage | ✅ usage 在 SSE 的 `x_groq.usage` 顶层(非顶层 `usage`);aimux profile 已覆盖;Groq 不支持 `stream_options.include_usage`,aimux 已跳过(convert.rs:1106-1108) | `data: {... \"x_groq\":{\"usage\":{...}}}` | C | https://console.groq.com/docs/text-chat |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 🔶 `service_tier` 透传(aimux 已实现 convert.rs:1332-1336);`parallel_tool_calls`、`tool_choice` 标准 | - | C | https://console.groq.com/docs/api-reference |\n| headers/认证 | 无差异(Bearer GROQ_API_KEY) | - | - | - |\n| URL/端点 | 无差异 | - | - | - |\n| 模型 ID | 无差异(`llama-3.3-70b-versatile`、`openai/gpt-oss-20b` 等,透传即可) | - | C | https://console.groq.com/docs/text-chat |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(max_tokens 弃用方向与 groq profile 有小冲突)\n- **aimux 代码位置**:`openai/mod.rs:71-80`(groq() profile)· `convert.rs:1106-1108`(跳过 stream_options)· `convert.rs:1239-1250`(structuredOutputs/strictJsonSchema)· `convert.rs:1320-1324`(reasoning_format)· `convert.rs:1332-1336`(service_tier 透传)· `model.rs:510-518`(x_groq usage)\n- **差距说明**:① 非 reasoning 模型路径下 aimux 发送 `max_tokens`,Groq 官方已弃用(仍接受,未移除);② structured outputs 的 strict 档位语义已用 `structuredOutputs/strictJsonSchema` 表达,覆盖良好。\n- **建议动作**:convert.rs 为 groq 补充\"非 reasoning 也发 `max_completion_tokens`\"(或 profile 增加 `max_tokens_key` 字段);补 A 级测试。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(现有 groq 行为有 aimux 单测覆盖,但 max_tokens 弃用方向未测)\n- **存疑标记**:⚠️ max_tokens 仍被 Groq 接受(弃用未移除),影响为渐进性\n\n### helicone — Helicone\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.helicone.ai/v1` · env=`HELICONE_API_KEY`\n- **变体**:区域端点 `eu.api.helicone.ai`;OpenAI 兼容代理端点 `oai.helicone.ai`\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(透传上游 OpenAI 参数) | - | C | https://docs.helicone.ai/integrations/openai/python |\n| 能力支持 | 无差异(透传) | - | - | - |\n| 思考机制 | 无差异(透传) | - | - | - |\n| 流式/usage | 无差异(透传) | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 🔶 支持 Helicone 专属头:`Helicone-Auth`、`Helicone-OpenAI-Api-Base`(代理到指定上游)、`Helicone-Property-*` 等;用于日志/缓存/属性 | `default_headers={\"Helicone-Auth\": f\"Bearer {helicone_api_key}\"}` | C | https://docs.helicone.ai/integrations/openai/python ;https://docs.helicone.ai/helicone-headers/header-directory |\n| headers/认证 | 🔶 双 key:`api_key` 放你的**上游 key**(如 OPENAI_API_KEY),Helicone 自身 key 走 `Helicone-Auth` 头 | `client = OpenAI(api_key=openai_api_key, base_url=\"https://oai.helicone.ai/v1\", default_headers={\"Helicone-Auth\": \"Bearer \"})` | C | https://docs.helicone.ai/integrations/openai/python |\n| URL/端点 | 无差异(registry 的 `api.helicone.ai/v1` 可用;官方 OpenAI SDK 示例用 `oai.helicone.ai/v1`) | - | C | https://docs.helicone.ai/integrations/openai/python |\n| 模型 ID | 无差异(上游模型 ID) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(双 key 认证需手动配置)\n- **aimux 代码位置**:`openai/mod.rs:96-119`(`OpenAIConfig.headers` 支持附加头)\n- **差距说明**:aimux 单 key(Authorization=HELICONE_API_KEY)会直接调 Helicone 网关,日志归属 Heliicone 而非上游;要透传上游需在 config.headers 手加 `Helicone-OpenAI-Api-Base` 与 `Helicone-Auth`——可行但需要文档化。\n- **建议动作**:无需 profile 改动;在 provider 文档标注 Helicone 双 key 用法(headers 配置)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### heroku — Heroku AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.heroku.com/inference/v1` · env=`HEROKU_API_KEY`\n- **变体**:区域端点(如 `https://us.inference.heroku.com`);`INFERENCE_URL`/`INFERENCE_KEY` 由 add-on 注入\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 🔶 官方支持表只有 `max_completion_tokens`(无 `max_tokens`);aimux 对非 reasoning 模型发 `max_tokens` 会命中\"未识别参数\"报错 | `{\"model\": \"...\", \"max_completion_tokens\": 1024}` | C | https://devcenter.heroku.com/articles/openai-compatibility-chat-completions |\n| 能力支持 | 🔶 大量参数被**忽略**但仍接受:`response_format`、`store`、`metadata`、`prediction`、`service_tier`、`safety_identifier`、`frequency_penalty`、`logit_bias`、`n`、`audio`、`verbosity` 等;`top_k` 不在支持表内 | - | C | https://devcenter.heroku.com/articles/openai-compatibility-chat-completions |\n| 思考机制 | 🔶 Extended Thinking:支持 `reasoning_effort`(low/medium/high 映射固定预算),或专有 `extended_thinking` 对象(enabled/budget_tokens/include_reasoning);Claude 系列模型 | `extra_body={\"extended_thinking\":{\"enabled\":True,\"budget_tokens\":2000,\"include_reasoning\":False}}` | C | https://devcenter.heroku.com/articles/openai-compatibility-chat-completions |\n| 流式/usage | ✅ `stream_options` 支持;usage 标准 | - | C | https://devcenter.heroku.com/articles/openai-compatibility-chat-completions |\n| 消息格式 | 无差异(developer/system/user/assistant/tool;user 不支持 audio/file 内容类型) | - | C | https://devcenter.heroku.com/articles/openai-compatibility-chat-completions |\n| 特殊字段 | 🔶 未识别参数默认**报错**,需 `allow_ignored_params=true` 才静默忽略 | `extra_body={\"allow_ignored_params\": True}` | C | https://devcenter.heroku.com/articles/openai-compatibility-chat-completions |\n| headers/认证 | 无差异(Bearer `INFERENCE_KEY`) | - | C | https://devcenter.heroku.com/articles/openai-compatibility-chat-completions |\n| URL/端点 | ⚠️ registry base_url=`api.heroku.com/inference/v1` 与官方文档不符;官方为 add-on 注入的 `INFERENCE_URL`(如 `https://us.inference.heroku.com`)+ `/v1/` | `base_url = INFERENCE_URL + \"/v1/\"` | C | https://devcenter.heroku.com/articles/openai-compatibility-chat-completions |\n| 模型 ID | 需用 Heroku 模型名(见 elements.heroku.com/addons/heroku-inference),与 OpenAI 官方 ID 不同 | - | C | https://devcenter.heroku.com/articles/openai-compatibility-chat-completions |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖 + ⚠️ base_url 不一致\n- **aimux 代码位置**:`convert.rs:1118-1138`(max_tokens 分支)、`openai_compat_registry.rs:889-897`\n- **差距说明**:① aimux 发 `max_tokens`+`top_k`,Heroku 未列入支持表→默认 400(除非 allow_ignored_params);② `extended_thinking`/`allow_ignored_params` 需 bodyOverrides;③ base_url 错误。\n- **建议动作**:profile 增加\"非 reasoning 也用 max_completion_tokens\"能力(与 groq 同源);base_url 改为 add-on 注入形式并文档化;其余用 bodyOverrides 兜底。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ max_tokens 不在支持表≠一定报错(表中未列\"忽略\"),建议实测\n\n### hetzner — Hetzner\n\n- **registry 现状**:profile=`full()` · base_url=`https://inference.hetzner.com/api/v1` · env=`HETZNER_VLLM_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://sliplane.io/blog/hetzner-inference |\n| 能力支持 | 无差异(vLLM OpenAI 兼容;当前仅 1 个模型,支持文本+图像) | - | C | https://sliplane.io/blog/hetzner-inference |\n| 思考机制 | 🔶 vLLM 的 `chat_template_kwargs.enable_thinking` 可关思考(Qwen 模板);Hetzner 未官方文档化,社区实测有效 | `extra_body={\"chat_template_kwargs\":{\"enable_thinking\":False}}` | C | https://sliplane.io/blog/hetzner-inference |\n| 流式/usage | 无差异(标准 SSE) | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异(实验性服务,无计费/SLA) | - | C | https://sliplane.io/blog/hetzner-inference |\n| headers/认证 | 无差异(Bearer `HETZNER_VLLM_API_KEY`) | - | C | https://sliplane.io/blog/hetzner-inference |\n| URL/端点 | 无差异 | - | C | https://sliplane.io/blog/hetzner-inference |\n| 模型 ID | `org/model` 形式(`Qwen/Qwen3.6-35B-A3B-FP8`) | `\"model\": \"Qwen/Qwen3.6-35B-A3B-FP8\"` | C | https://sliplane.io/blog/hetzner-inference |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(enable_thinking 需 bodyOverrides)\n- **aimux 代码位置**:`openai_compat_registry.rs:898-906`\n- **差距说明**:`chat_template_kwargs` 不在白名单,需 bodyOverrides;服务为实验性质(无 SLA)。\n- **建议动作**:无需 profile 改动;bodyOverrides 兜底即可,文档标注\"实验性\"。\n\n#### 3. 证据与验证\n\n- **证据等级**:C(第三方实测,非官方文档)\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ enable_thinking 未获官方文档背书\n\n### hosted_vllm — Hosted vLLM\n\n- **registry 现状**:profile=`full()` · base_url=`https://hosted-vllm-api.com/v1` · env=`HOSTED_VLLM_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(vLLM OpenAI 兼容) | - | ⚠️ | - |\n| 能力支持 | 无差异(支持 reasoning_effort 透传) | `reasoning_effort=\"medium\"` + `allowed_openai_params=[\"reasoning_effort\"]` | C | https://github.com/BerriAI/litellm/issues/18543 |\n| 思考机制 | 无法确认(仅见 litellm issue 中作为演示端点出现) | - | ⚠️ | - |\n| 流式/usage | 无差异(vLLM SSE) | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无法确认 | - | ⚠️ | - |\n| headers/认证 | 无法确认 | - | ⚠️ | - |\n| URL/端点 | ⚠️ `hosted-vllm-api.com` 未找到官方站点/文档,仅作为 litellm 示例端点出现;可能为演示/占位域名 | - | ⚠️ | https://github.com/BerriAI/litellm/issues/18543 |\n| 模型 ID | 无差异(vLLM 标准模型 ID) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 证据不足\n- **aimux 代码位置**:`openai_compat_registry.rs:907-915`\n- **差距说明**:域名本身缺乏权威资料;按 vLLM OpenAI 兼容处理是合理默认,但无证据。\n- **建议动作**:标记\"证据不足\";若为 vLLM 则 reasoning_effort/chat_template_kwargs 走 bodyOverrides。\n\n#### 3. 证据与验证\n\n- **证据等级**:C(仅 litellm issue 提及)\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 端点真实性/协议未确认\n\n### hpc_ai — HPC-AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.hpc-ai.com/inference/v1` · env=`INFERENCE_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://www.hpc-ai.com/doc/docs/Model-APIs/Integration/CC%20Switch/ |\n| 能力支持 | 无差异(OpenAI 兼容,模型如 `zai-org/glm-5.1`) | `\"model\": \"zai-org/glm-5.1\"` | C | https://www.hpc-ai.com/doc/docs/Model-APIs/Integration/CC%20Switch/ |\n| 思考机制 | 未发现文档化差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer key) | - | C | https://www.hpc-ai.com/blog/Helicone-Integration |\n| URL/端点 | 无差异 | - | C | https://www.hpc-ai.com/blog/Helicone-Integration |\n| 模型 ID | `org/model` 形式(`zai-org/glm-5.1`) | - | C | https://www.hpc-ai.com/doc/docs/Model-APIs/Integration/CC%20Switch/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:916-924`\n- **差距说明**:纯 OpenAI 兼容。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### hyperbolic — Hyperbolic\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.hyperbolic.xyz/v1` · env=`HYPERBOLIC_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(官方示例用 `max_tokens`) | `{\"model\":\"deepseek-ai/DeepSeek-R1\",\"max_tokens\":512,\"temperature\":0.7}` | C | https://www.hyperbolic.ai/docs/inference/text-apis |\n| 能力支持 | 🔶 工具调用仅限部分模型(`meta-llama/Llama-3.3-70B-Instruct`、`Qwen/Qwen3-Coder-480B-A35B-Instruct`);参数表仅列 model/messages/max_tokens/temperature/top_p/stream/stop | - | C | https://www.hyperbolic.ai/docs/inference/text-apis |\n| 思考机制 | 🔶 提供 DeepSeek-R1 等推理模型(模型侧思考),请求侧未文档化专用字段 | `\"model\": \"deepseek-ai/DeepSeek-R1\"` | C | https://www.hyperbolic.ai/docs/inference/text-apis |\n| 流式/usage | 无差异(标准 SSE,顶层 usage) | - | C | https://www.hyperbolic.ai/docs/inference/text-apis |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer HYPERBOLIC_API_KEY) | - | C | https://www.hyperbolic.ai/docs/inference/text-apis |\n| URL/端点 | 无差异 | - | C | https://www.hyperbolic.ai/docs/inference/text-apis |\n| 模型 ID | `org/model` 形式(`deepseek-ai/DeepSeek-R1`、`meta-llama/Llama-3.3-70B-Instruct`) | - | C | https://www.hyperbolic.ai/docs/inference/text-apis |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:925-933`\n- **差距说明**:request 构造无差异;模型 ID 透传;工具限制是模型级而非协议级。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### iflowcn — iFlow\n\n- **registry 现状**:profile=`full()` · base_url=`https://apis.iflow.cn/v1(chat`(⚠️ 字符串被截断,含垃圾字符\"(chat\") · env=`IFLOW_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 兼容) | - | C | https://platform.iflow.cn/cli/configuration/settings |\n| 能力支持 | 无差异(支持 Qwen3-Coder、Kimi 等模型) | `\"modelName\": \"Qwen3-Coder\"` | C | https://platform.iflow.cn/cli/configuration/settings |\n| 思考机制 | 未发现文档化差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`IFLOW_apiKey` Bearer) | `export IFLOW_apiKey=\"sk-...\"` | C | https://platform.iflow.cn/cli/configuration/settings |\n| URL/端点 | ⚠️ registry base_url 截断损坏;正确为 `https://apis.iflow.cn/v1` | `\"baseUrl\": \"https://apis.iflow.cn/v1\"` | C | https://platform.iflow.cn/cli/configuration/settings |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(registry base_url 数据损坏)\n- **aimux 代码位置**:`openai_compat_registry.rs:934-942`\n- **差距说明**:base_url 含截断垃圾\"(chat\";协议纯 OpenAI 兼容。\n- **建议动作**:修正 registry base_url。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ registry 数据损坏(非协议差异)\n\n### inception — Inception Labs\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.inceptionlabs.ai/v1` · env=`INCEPTION_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(官方示例用 `max_tokens`) | `{\"model\":\"mercury-coder-small\",\"messages\":[...],\"max_tokens\":100}` | C | https://www.inceptionlabs.ai/blog/introducing-inception-api |\n| 能力支持 | 🔶 Mercury 2 支持 Tool Calling + Structured Outputs;响应侧(流式)注意 diffusing 噪声块不产生计费 token | - | C | https://docs.inceptionlabs.ai/get-started/models |\n| 思考机制 | 🔶 Mercury 2 自称 \"fastest reasoning LLM\",但请求侧无文档化思考开关字段 | - | C | https://docs.inceptionlabs.ai/get-started/models |\n| 流式/usage | 无差异(支持流式) | - | C | https://www.inceptionlabs.ai/blog/introducing-inception-api |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 🔶 专有 `diffusing` 布尔字段:开启时流式返回逐步去噪的噪声 token(可视化扩散过程,噪声 token 不计费) | `{\"model\":\"mercury-coder-small\",\"diffusing\":true}` | C | https://www.inceptionlabs.ai/blog/introducing-inception-api |\n| headers/认证 | 无差异(Bearer INCEPTION_API_KEY) | - | C | https://www.inceptionlabs.ai/blog/introducing-inception-api |\n| URL/端点 | 🔶 除 /chat/completions 外还有 `/v1/fim/completions` 与 `/v1/edit/completions`(FIM/编辑端点,Mercury Edit 2) | `POST https://api.inceptionlabs.ai/v1/fim/completions` `{\"model\":\"mercury-edit-2\",\"prompt\":\"def fibonacci(\",\"suffix\":\"return a+b\",\"max_tokens\":1000}` | C | https://docs.inceptionlabs.ai/get-started/models |\n| 模型 ID | `mercury-coder-small`、`mercury-2`、`mercury-edit-2` 等专有 ID | - | C | https://docs.inceptionlabs.ai/get-started/models |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(diffusing/FIM 需 bodyOverrides)\n- **aimux 代码位置**:`openai_compat_registry.rs:943-951`\n- **差距说明**:`diffusing` 不在白名单(bodyOverrides 可注入);FIM/Edit 端点为独立 API 面,aimux chat 流不覆盖。\n- **建议动作**:diffusing 用 bodyOverrides 兜底;FIM 端点列入后续能力评估(非本 9 类范围)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### inceptron — Inceptron\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.inceptron.io/v1` · env=`INCEPTRON_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://www.inceptron.io/ |\n| 能力支持 | 无差异(\"deploy any model\",OpenAI 兼容 chat completions) | `curl https://api.inceptron.io/v1/chat/completions` | C | https://www.inceptron.io/ |\n| 思考机制 | 未发现文档化差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer key) | - | - | - |\n| URL/端点 | 无差异 | - | C | https://www.inceptron.io/ |\n| 模型 ID | 无差异(可部署任意模型) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:952-960`\n- **差距说明**:OpenAI 兼容,无特殊 request 配置。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### inference_net — Inference.net\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.inference.net/v1` · env=`INFERENCE_NET_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(支持表:model/messages/stream/max_tokens/temperature/top_p/frequency_penalty/presence_penalty/response_format/tools) | `{\"model\":\"glm-5.2\",\"stream\":true}` | C | https://docs.inference.net/api/api-quickstart |\n| 能力支持 | 无差异(response_format 支持 json_object 与 json_schema;工具调用支持) | - | C | https://docs.inference.net/api/api-quickstart |\n| 思考机制 | 未发现文档化差异(平台侧支持推理模型) | - | - | - |\n| 流式/usage | 无差异 | - | C | https://docs.inference.net/api/api-quickstart |\n| 消息格式 | 无差异(另支持 Anthropic Messages 格式,非 OpenAI 侧) | - | C | https://docs.inference.net/api/api-quickstart |\n| 特殊字段 | 🔶 代理(Catalyst)模式下有专有请求头:`x-inference-provider`(路由到 openai/anthropic/groq/cerebras 等)、`x-inference-provider-api-key`(下游 key)、`x-inference-provider-url`(按 base_url 路由)、`x-inference-environment`、`x-inference-task-id`、`x-inference-metadata-*` | `headers={\"x-inference-provider\":\"openai\",\"x-inference-provider-api-key\":\"\"}` `\"model\":\"gpt-4.1\"` | C | https://docs.inference.net/api/api-quickstart |\n| headers/认证 | 无差异(`Authorization: Bearer `;注意 registry env 名 `INFERENCE_NET_API_KEY`,官方文档用 `INFERENCE_API_KEY`) | - | C | https://docs.inference.net/api/api-quickstart |\n| URL/端点 | 无差异 | - | C | https://docs.inference.net/api/api-quickstart |\n| 模型 ID | 混合:开源模型裸 ID(`glm-5.2`)、闭源模型 `claude-haiku-4-5`/`gpt-5-mini`/`gemini-3.5-flash`、自部署 `your-team/your-model` | - | C | https://docs.inference.net/api/api-quickstart |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖(x-inference-* 头需 config.headers 手动配置)\n- **aimux 代码位置**:`openai_compat_registry.rs:961-969`;`openai/mod.rs:154-158`(`with_headers`)\n- **差距说明**:普通 serverless 调用无差异;Catalyst 代理模式需在 provider config 加 x-inference-* 头(aimux `OpenAIConfig.headers` 支持,但 profile 层无法表达)。\n- **建议动作**:无需 profile 改动;文档化 headers 配置。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### inferx — InferX\n\n- **registry 现状**:profile=`full()` · base_url=`https://model.inferx.net/v1` · env=`INFERX_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | ⚠️ 无法确认(查不到资料) | - | ⚠️ | - |\n| 能力支持 | ⚠️ 无法确认 | - | ⚠️ | - |\n| 思考机制 | ⚠️ 无法确认 | - | ⚠️ | - |\n| 流式/usage | ⚠️ 无法确认 | - | ⚠️ | - |\n| 消息格式 | ⚠️ 无法确认 | - | ⚠️ | - |\n| 特殊字段 | ⚠️ 无法确认 | - | ⚠️ | - |\n| headers/认证 | ⚠️ 无法确认 | - | ⚠️ | - |\n| URL/端点 | ⚠️ 无法确认(`model.inferx.net` 无公开文档) | - | ⚠️ | - |\n| 模型 ID | ⚠️ 无法确认 | - | ⚠️ | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 证据不足,无法对比\n- **aimux 代码位置**:`openai_compat_registry.rs:970-978`\n- **差距说明**:全库未查到该厂商资料。\n- **建议动作**:维持 full(),标记证据不足。\n\n#### 3. 证据与验证\n\n- **证据等级**:无\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 存疑——查不到任何厂商信息\n\n### infinity — Infinity AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://infinity.ai/api/v1` · env=`INFINITY_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | ⚠️ 无法确认 | - | ⚠️ | - |\n| 能力支持 | ⚠️ 无法确认(注意 \"Infinity\" 常见指向向量库/嵌入服务,与 registry 的 LLM 端点关系不明) | - | ⚠️ | - |\n| 思考机制 | ⚠️ 无法确认 | - | ⚠️ | - |\n| 流式/usage | ⚠️ 无法确认 | - | ⚠️ | - |\n| 消息格式 | ⚠️ 无法确认 | - | ⚠️ | - |\n| 特殊字段 | ⚠️ 无法确认 | - | ⚠️ | - |\n| headers/认证 | ⚠️ 无法确认 | - | ⚠️ | - |\n| URL/端点 | ⚠️ 无法确认(`infinity.ai` 无匹配的 LLM API 文档) | - | ⚠️ | - |\n| 模型 ID | ⚠️ 无法确认 | - | ⚠️ | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 证据不足,无法对比\n- **aimux 代码位置**:`openai_compat_registry.rs:979-987`\n- **差距说明**:查不到对应 LLM 服务文档;可能是名称歧义(向量库/嵌入服务)。\n- **建议动作**:标记证据不足,建议人工确认该条目的服务性质。\n\n#### 3. 证据与验证\n\n- **证据等级**:无\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 存疑——名称歧义,无法确认对应服务\n\n### io_net — IO.NET\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.intelligence.io.solutions/api/v1` · env=`IOINTELLIGENCE_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://io.net/blog/what-is-io-intelligence-unlocking-the-power-of-ai-driven-insights |\n| 能力支持 | 无差异(15+ 开源模型,OpenAI 兼容 chat completions) | - | C | https://www.truefoundry.com/docs/ai-gateway/io-net |\n| 思考机制 | 未发现文档化差异 | - | - | - |\n| 流式/usage | 无差异(/v1/models、/v1/chat/completions 标准) | - | C | https://github.com/api-evangelist/io-net |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer `$IOINTELLIGENCE_API_KEY`) | - | C | https://io.net/blog/what-is-io-intelligence-unlocking-the-power-of-ai-driven-insights |\n| URL/端点 | 无差异 | - | C | https://io.net/blog/what-is-io-intelligence-unlocking-the-power-of-ai-driven-insights |\n| 模型 ID | 无差异(开源模型 ID) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:988-996`\n- **差距说明**:纯 OpenAI 兼容。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### jiekou — Jiekou.AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.highwayapi.ai/openai` · env=`JIEKOU_API_KEY`\n- **变体**:海外端点 `https://api.jiekou.ai/openai`\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 兼容协议) | - | C | https://jiekou.ai/blog/jiekou-ai-quickstart |\n| 能力支持 | 无差异(聚合站,兼容 OpenAI SDK) | `client = OpenAI(base_url=\"https://api.highwayapi.ai/openai\")`(官方示例) | C | https://jiekou.ai/blog/jiekou-ai-quickstart |\n| 思考机制 | 无差异(透传上游模型能力) | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer key) | - | C | https://docs.jiekou.ai/docs/announcement/announcement |\n| URL/端点 | 无差异(国内直连 `https://api.highwayapi.ai/openai`;海外 `https://api.jiekou.ai/openai`) | - | C | https://docs.jiekou.ai/docs/announcement/announcement |\n| 模型 ID | `vendor-model` 形式(`claude-opus-4-7`、`minimax-minimax-m2.7`) | - | C | https://jiekou.ai/models-console/model-detail/minimax-minimax-m2.7 |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:997-1005`\n- **差距说明**:纯 OpenAI 兼容聚合站。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### kenari — Kenari\n\n- **registry 现状**:profile=`full()` · base_url=`https://kenari.id/v1` · env=`KENARI_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://models.dev/providers/kenari |\n| 能力支持 | 无差异(38+ 模型:Claude、GPT-5、DeepSeek、Qwen、Kimi、GLM、MiniMax 等;支持工具调用/结构化输出/推理) | - | C | https://models.dev/providers/kenari |\n| 思考机制 | 无差异(透传上游) | - | - | - |\n| 流式/usage | 无差异 | - | C | https://models.dev/providers/kenari |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer kn-...`) | - | C | https://github.com/diegosouzapw/OmniRoute/blob/release/v3.8.50/docs/reference/PROVIDER_REFERENCE.md |\n| URL/端点 | 无差异 | - | C | https://models.dev/providers/kenari |\n| 模型 ID | 无差异(上游模型 ID 透传) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1006-1014`\n- **差距说明**:OpenAI 兼容网关。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### kilo — Kilo\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.kilo.ai/v1` · env=`KILO_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://kilo.ai/docs/gateway/sdks-and-frameworks |\n| 能力支持 | 无差异(Kilo Code API Gateway,OpenAI 兼容) | - | C | https://kilo.ai/docs/gateway/sdks-and-frameworks |\n| 思考机制 | 无法确认(网关透传) | - | ⚠️ | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer $KILO_API_KEY`) | - | C | https://kilo.ai/docs/gateway/sdks-and-frameworks |\n| URL/端点 | ⚠️ registry base_url=`https://api.kilo.ai/v1`;官方文档 chat completions 端点为 `https://api.kilo.ai/api/gateway/chat/completions`(前缀 `/api/gateway`),`/v1` 是否可用未确认 | `POST https://api.kilo.ai/api/gateway/chat/completions` | C | https://kilo.ai/docs/gateway/sdks-and-frameworks |\n| 模型 ID | 无差异(透传) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ base_url 可能不一致(+✅ 协议无差异)\n- **aimux 代码位置**:`openai_compat_registry.rs:1015-1023`\n- **差距说明**:官方文档端点含 `/api/gateway` 前缀;registry 的 `/v1` 是否可用存疑。\n- **建议动作**:核实 base_url(大概率应为 `https://api.kilo.ai/api/gateway`);协议层无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ `/v1` 路径正确性未确认\n\n### kimi — Kimi\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.moonshot.ai/v1` · env=`MOONSHOT_API_KEY`\n- **变体**:国内端点 `https://api.moonshot.cn/v1`;`kimi_for_coding` 为另一服务(见下条)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_tokens` 与 `max_completion_tokens` 官方均接受;文档示例混用) | `{\"model\":\"kimi-k2.6\",\"max_tokens\":1024*32,\"stream\":true}` | C | https://platform.kimi.ai/docs/api/chat ;https://platform.kimi.ai/docs/guide/use-thinking-models |\n| 能力支持 | ✅ response_format(text/json_object/json_schema)与 tools 标准支持;思考模型 temperature 不可调 | - | C | https://platform.kimi.ai/docs/api/chat |\n| 思考机制 | 🔶 **by-model 三套机制**:① `kimi-k3`:永远思考,顶层 `reasoning_effort`(`\"low\"/\"high\"/\"max\"`,默认 `\"max\"`),**不接受** `thinking` 参数;② `kimi-k2.7-code`:永远思考,`thinking.type` 仅允许 `\"enabled\"`,传 `\"disabled\"` 报错;③ `kimi-k2.6`/`k2.5`:`thinking.type` `\"enabled\"(默认)/\"disabled\"`,k2.6 另有 `thinking.keep`(`null` 默认 / `\"all\"` 保留历史 reasoning_content) | `{\"model\":\"kimi-k2.6\",\"thinking\":{\"type\":\"disabled\"}}` · `{\"model\":\"kimi-k3\",\"reasoning_effort\":\"high\"}` | C | https://platform.kimi.ai/docs/guide/use-thinking-models |\n| 流式/usage | ✅ 流式 usage 顶层返回,含 `cached_tokens`;`reasoning_content` delta 先于 `content` 输出 | `data: {... \"usage\":{\"prompt_tokens\":19,\"completion_tokens\":13,\"total_tokens\":32,\"cached_tokens\":12}}` | C | https://platform.kimi.ai/docs/api/chat |\n| 消息格式 | 🔶 响应 `message.reasoning_content` 与 `content` 同级;多轮必须原样回传历史 assistant 的 `reasoning_content`(Preserved Thinking);多模态 content 支持 `image_url`/`video_url` | `{\"role\":\"assistant\",\"content\":\"...\",\"reasoning_content\":\"...\"}` | C | https://platform.kimi.ai/docs/guide/use-thinking-models |\n| 特殊字段 | 无差异(无 cache/safety 类请求字段) | - | - | - |\n| headers/认证 | 无差异(Bearer MOONSHOT_API_KEY) | - | C | https://platform.kimi.ai/docs/api/chat |\n| URL/端点 | 无差异(`https://api.moonshot.ai/v1/chat/completions`) | - | C | https://platform.kimi.ai/docs/api/chat |\n| 模型 ID | `kimi-k3`、`kimi-k2.7-code`、`kimi-k2.7-code-highspeed`、`kimi-k2.6`、`kimi-k2.5` 等;国内平台另有 `moonshot-v1-*` | - | C | https://platform.kimi.ai/docs/guide/use-thinking-models |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`openai/mod.rs:35-49`(profile 无 thinking 字段)· `convert.rs:1326-1329`(reasoning_effort 直传)· `types.rs:37-40,146-149` + `model.rs:299-302,558-561`(reasoning_content 解析)· `types.rs:69-74` + `model.rs:127-134`(Moonshot 顶层 cached_tokens 已支持)· `convert.rs:684-738`(assistant reasoning_content 回放,支持 Preserved Thinking)\n- **差距说明**:① `thinking.type/thinking.keep` 不在白名单,需 bodyOverrides 注入;② kimi-k3 的 reasoning_effort 与 OpenAI 语义一致,aimux 直传可用;③ reasoning_content 解析/回放与顶层 cached_tokens 已覆盖 ✅。\n- **建议动作**:评估 profile 新字段 `thinking`(或文档化 bodyOverrides 模板);为 kimi 补 A 级测试(cached_tokens + reasoning_content 流式)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证(aimux 的 cached_tokens/reasoning_content 逻辑有单测,但无 kimi 线上 cassette)\n- **存疑标记**:-\n\n### kimi_for_coding — Kimi For Coding\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.kimi.com/coding/v1` · env=`KIMI_API_KEY`\n- **变体**:Anthropic 兼容端点 `https://api.kimi.com/coding/`(非 OpenAI 面)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(OpenAI 兼容;`max_completion_tokens` 为标准) | - | C | https://www.kimi.com/code/docs/en/kimi-code/models |\n| 能力支持 | 🔶 部分参数报 400:未知 `reasoning_effort` 取值直接 HTTP 400;`k3` 需工具侧手动设 context window 到 1048576 才用满 1M | - | C | https://www.kimi.com/code/docs/en/kimi-code/models |\n| 思考机制 | 🔶 **`reasoning_effort` 取值映射表**(K3):`null/undefined→high`;`ultra/max/xhigh→max`;`high/medium→high`;`low/minimum/light→low`;`none→thinking.type disabled`;**未知值→HTTP 400**。`kimi-for-coding`(K2.7 Code)为 `Thinking:ON`(恒思考) | `{\"model\":\"k3\",\"reasoning_effort\":\"medium\"}` → 按 high 处理 | C | https://www.kimi.com/code/docs/en/kimi-code/models |\n| 流式/usage | ✅ 自动上下文缓存(context cache),**切换模型 ID 使缓存失效**(重新 prefill 计费更高) | - | C | https://www.kimi.com/code/docs/en/kimi-code/models |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 🔶 K3 恒思考 + Preserved Thinking(切换 reasoning_effort 使缓存失效) | - | C | https://www.kimi.com/code/docs/en/kimi-code/models |\n| headers/认证 | 无差异(Bearer KIMI_API_KEY,与 Moonshot Open Platform key 不通用) | - | C | https://www.kimi.com/code/docs/en/kimi-code/models |\n| URL/端点 | 无差异(`https://api.kimi.com/coding/v1`;另有 Anthropic 面 `/coding/`) | - | C | https://www.kimi.com/code/docs/en/kimi-code/models |\n| 模型 ID | 固定 4 个:`k3`、`k3-256k`、`kimi-for-coding`、`kimi-for-coding-highspeed`(填\"模型版本名\"如 `Kimi K3` 会调用失败;highspeed 拼错静默回退普通版) | `\"model\": \"kimi-for-coding\"` | C | https://www.kimi.com/code/docs/en/kimi-code/models |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:🔶 部分覆盖\n- **aimux 代码位置**:`convert.rs:1326-1329`(reasoning_effort 直传,不做取值映射/400 校验)\n- **差距说明**:① aimux 直传 `reasoning_effort`,若用户传 `ultra/xhigh/minimum/light` 等值,Kimi 端可接受(有映射),但 `medium`(OpenAI 标准档)在 kimi-k3 会映射为 high(语义 OK);真正风险是**未知值 400**——aimux 不校验;② `thinking.type disabled`(reasoning_effort=none)需 bodyOverrides;③ 模型 ID 需严格透传。\n- **建议动作**:文档化模型 ID 清单与 reasoning_effort 映射表;thinking disabled 用 bodyOverrides;不建议在 profile 层做映射(映射属于 Kimi 端行为)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### kiro — Kiro\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.kiro.dev/v1` · env=`KIRO_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | ⚠️ 无法确认 | - | ⚠️ | - |\n| 能力支持 | ⚠️ 无法确认(kiro.dev 是 AWS 的 AI IDE/编码代理,提供跨区域推理;`api.kiro.dev/v1` 的 OpenAI 端点无文档) | - | ⚠️ | https://kiro.dev/ ;https://kiro.dev/docs/models/ |\n| 思考机制 | ⚠️ 无法确认 | - | ⚠️ | - |\n| 流式/usage | ⚠️ 无法确认 | - | ⚠️ | - |\n| 消息格式 | ⚠️ 无法确认 | - | ⚠️ | - |\n| 特殊字段 | ⚠️ 无法确认 | - | ⚠️ | - |\n| headers/认证 | ⚠️ 无法确认 | - | ⚠️ | - |\n| URL/端点 | ⚠️ 无法确认(`api.kiro.dev/v1` 未在 kiro.dev 文档中找到对应说明) | - | ⚠️ | https://kiro.dev/docs/models/ |\n| 模型 ID | ⚠️ 无法确认 | - | ⚠️ | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 证据不足,无法对比\n- **aimux 代码位置**:`openai_compat_registry.rs:1042-1050`\n- **差距说明**:kiro.dev 主体是 AWS AI IDE;`api.kiro.dev/v1` 端点无公开文档。\n- **建议动作**:标记证据不足;如确认是 Kiro 的 OpenAI 兼容代理端点则维持 full()。\n\n#### 3. 证据与验证\n\n- **证据等级**:无\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 存疑——端点与产品形态未确认\n\n### kluster_ai — Kluster AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.kluster.ai/v1` · env=`KLUSTER_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(历史:OpenAI 兼容,`baseURL: \"https://api.kluster.ai/v1/\"`) | - | C | https://raw.githubusercontent.com/LibreChat-AI/librechat-config-yaml/main/librechat-env-f.yaml |\n| 能力支持 | 无差异(历史:vLLM 系 OpenAI 兼容) | - | C | https://raw.githubusercontent.com/LibreChat-AI/librechat-config-yaml/main/librechat-env-f.yaml |\n| 思考机制 | 无法确认 | - | ⚠️ | - |\n| 流式/usage | 无差异(历史) | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(历史:Bearer KLUSTER_API_KEY) | - | C | https://raw.githubusercontent.com/LibreChat-AI/librechat-config-yaml/main/librechat-env-f.yaml |\n| URL/端点 | ⚠️ **服务已转型**:官方 docs.kluster.ai 声明 \"kluster.ai has joined MITO\",原 LLM 推理服务已随团队转做 AI 视频;inference API 大概率已停 | - | C | https://docs.kluster.ai/getting-started/quickstart |\n| 模型 ID | 无法确认(历史:vLLM 标准 ID) | - | ⚠️ | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:⚠️ 不一致(服务疑似已停)\n- **aimux 代码位置**:`openai_compat_registry.rs:1051-1059`\n- **差距说明**:docs.kluster.ai 首页声明团队并入 MITO(AI 视频),原推理服务状态存疑;API key 领取入口 `platform.kluster.ai/apikeys` 仍被第三方引用。\n- **建议动作**:人工确认服务是否下线;若下线则移除/标注条目。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 服务存续状态存疑(2026-07 文档声明转型)\n\n### krutrim — Krutrim\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.krutrim.ai/v1` · env=`KRUTRIM_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 🔶 官方参数表为 `max_tokens`(非 `max_completion_tokens`):temperature/top_p/max_tokens/frequency_penalty/presence_penalty/logit_bias/stop/stream | - | C | https://docs.cloud.olakrutrim.com/basics/ai-studio/ai-jobs/inferencing.md |\n| 能力支持 | 无差异(OpenAI-compatible,支持 openai SDK;模型按 KMS key 分组授权) | - | C | https://docs.cloud.olakrutrim.com/basics/ai-studio/ai-jobs/inferencing.md |\n| 思考机制 | 未发现文档化差异 | - | - | - |\n| 流式/usage | 无差异(支持 stream) | - | C | https://docs.cloud.olakrutrim.com/basics/ai-studio/ai-jobs/inferencing.md |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer `;KMS 生成,模型组作用域) | `curl https://cloud.olakrutrim.com/v1/chat/completions -H \"Authorization: Bearer ...\"` | C | https://docs.cloud.olakrutrim.com/basics/key-management-system/model-api-keys |\n| URL/端点 | ⚠️ registry base_url=`api.krutrim.ai/v1`;官方文档为 `https://cloud.olakrutrim.com/v1` | `client = OpenAI(api_key=\"...\", base_url=\"https://cloud.olakrutrim.com/v1\")` | C | https://docs.cloud.olakrutrim.com/basics/ai-studio/ai-jobs/inferencing.md |\n| 模型 ID | 官方示例 `krutrim-1`;以 Model Card 中字符串为准(填错报 invalid model) | `\"model\": \"krutrim-1\"` | C | https://docs.cloud.olakrutrim.com/basics/ai-studio/ai-jobs/inferencing.md |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 协议已覆盖(max_tokens 路径匹配 aimux 非 reasoning 分支)+ ⚠️ base_url 不一致\n- **aimux 代码位置**:`convert.rs:1131-1137`(非 reasoning 发 max_tokens ✓);`openai_compat_registry.rs:1060-1068`\n- **差距说明**:Krutrim 用 `max_tokens`,aimux 非 reasoning 模型路径正好发 `max_tokens` ✓;但 base_url 与官方文档不符。\n- **建议动作**:registry base_url 更新为 `https://cloud.olakrutrim.com/v1`。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ api.krutrim.ai 是否为合法别名未确认(以官方 cloud.olakrutrim.com 为准)\n\n### kuae_cloud_coding_plan — KUAE Cloud Coding Plan\n\n- **registry 现状**:profile=`full()` · base_url=`https://coding-plan-endpoint.kuaecloud.net/v1` · env=`KUAE_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://mastra.ai/models/providers/kuae-cloud-coding-plan |\n| 能力支持 | 无差异(@ai-sdk/openai-compatible) | - | C | https://models.dev/providers/kuae-cloud-coding-plan |\n| 思考机制 | 无法确认(1 个模型:GLM-4.7 系) | - | ⚠️ | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer KUAE_API_KEY) | - | C | https://mastra.ai/models/providers/kuae-cloud-coding-plan |\n| URL/端点 | 无差异 | - | C | https://models.dev/providers/kuae-cloud-coding-plan |\n| 模型 ID | `kuae-cloud-coding-plan/GLM-4.7` 形式 | `\"model\": \"kuae-cloud-coding-plan/GLM-4.7\"` | C | https://mastra.ai/models/providers/kuae-cloud-coding-plan |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1069-1077`\n- **差距说明**:OpenAI 兼容。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### lambda_ai — Lambda AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.lambda.ai/v1` · env=`LAMBDA_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://lambda.ai/blog/deepseek-r1-0528-on-lambda-inference-api |\n| 能力支持 | 无差异(OpenAI 兼容 chat completions;/v1/models 可用) | - | C | https://docs.litellm.ai/docs/providers/lambda_ai |\n| 思考机制 | 无差异(提供 DeepSeek-R1 等推理模型,请求侧无专用字段) | `model=\"deepseek-r1-0528\"` | C | https://lambda.ai/blog/deepseek-r1-0528-on-lambda-inference-api |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer LAMBDA_API_KEY) | - | C | https://docs.litellm.ai/docs/providers/lambda_ai |\n| URL/端点 | 无差异 | - | C | https://lambda.ai/blog/deepseek-r1-0528-on-lambda-inference-api |\n| 模型 ID | 简短 ID(`deepseek-r1-0528`、`hermes-4-405b` 等) | - | C | https://lambda.ai/blog/deepseek-r1-0528-on-lambda-inference-api |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1078-1086`\n- **差距说明**:纯 OpenAI 兼容。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### lemonade — Lemonade\n\n- **registry 现状**:profile=`full()` · base_url=`http://localhost:13305/v1` · env=`LEMONADE_API_KEY`\n- **变体**:litellm 侧默认端点为 `localhost:8000/api/v1`(registry 端口 13305 为 Lemonade SDK 本地服务,两者同为本地服务形态)\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(`max_tokens`/`max_completion_tokens` 均支持) | - | C | https://docs.litellm.ai/docs/providers/lemonade |\n| 能力支持 | 无差异(支持 top_k、tools、response_format(json_schema)、logit_bias、presence_penalty、repeat_penalty 等) | `temperature=0.7, top_k=50, repeat_penalty=1.1` | C | https://docs.litellm.ai/docs/providers/lemonade |\n| 思考机制 | 无法确认(本地推理,依赖模型) | - | ⚠️ | - |\n| 流式/usage | 无差异 | - | C | https://docs.litellm.ai/docs/providers/lemonade |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异(不强制校验 key:`doesn't require strict API key validation`) | - | C | https://docs.litellm.ai/docs/providers/lemonade |\n| headers/认证 | 无差异(本地服务,key 非强校验) | - | C | https://docs.litellm.ai/docs/providers/lemonade |\n| URL/端点 | 🔶 registry `localhost:13305/v1`;官方 litellm 默认 `localhost:8000/api/v1`(端口可配 `LEMONADE_API_BASE`)——registry 端口来源未确认 | `os.environ['LEMONADE_API_BASE'] = \"http://localhost:8000/api/v1\"` | C | https://docs.litellm.ai/docs/providers/lemonade |\n| 模型 ID | 由 `/models` 端点动态列出(GGUF 模型 ID) | - | C | https://docs.litellm.ai/docs/providers/lemonade |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 协议已覆盖(top_k 支持匹配 full() profile)+ ⚠️ 本地端口存疑\n- **aimux 代码位置**:`openai_compat_registry.rs:1087-1095`\n- **差距说明**:协议完全 OpenAI 兼容且支持 top_k;registry 端口 13305 与 litellm 默认 8000 不同(Lemonade SDK 自身默认端口待确认)。\n- **建议动作**:确认 Lemonade SDK 本地端口;协议层无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 本地端口 13305 来源未确认\n\n### lemonfox_ai — Lemonfox AI\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.lemonfox.ai/v1` · env=`LEMONFOX_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://igris.mintlify.app/connect/providers |\n| 能力支持 | 无差异(chat.completions;主打低价 Whisper 转录 + 部分开源模型) | `curl https://api.lemonfox.ai/v1/chat/completions` | C | https://blog.gordonbuchan.com/blog/index.php/2025/01/28/open-source-llm-models-and-open-source-inference-software-building-blocks-of-a-commoditized-llm-inference-hosting-market/ |\n| 思考机制 | 无法确认 | - | ⚠️ | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(bearer) | - | C | https://igris.mintlify.app/connect/providers |\n| URL/端点 | 无差异 | - | C | https://igris.mintlify.app/connect/providers |\n| 模型 ID | 无差异(开源模型 ID) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1096-1104`\n- **差距说明**:OpenAI 兼容(Whisper 转录也走 /v1/audio/transcriptions,标准路径)。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### libertai — Libertai\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.libertai.io/v1` · env=`LIBERTAI_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://docs.libertai.io/quickstart.html |\n| 能力支持 | 无差异(OpenAI 兼容;支持流式与工具调用) | - | C | https://libertai.io/ |\n| 思考机制 | 未发现文档化差异 | - | - | - |\n| 流式/usage | 无差异 | - | C | https://libertai.io/ |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer $LIBERTAI_API_KEY`) | `curl -X POST https://api.libertai.io/v1/chat/completions -H \"Authorization: Bearer $LIBERTAI_API_KEY\"` | C | https://docs.libertai.io/quickstart.html |\n| URL/端点 | 无差异 | - | C | https://blog.libertai.io/unleash-decentralized-ai-your-ultimate-guide-to-the-libertai-inference-api |\n| 模型 ID | 无差异 | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1105-1113`\n- **差距说明**:去中心化推理,协议 OpenAI 兼容。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### lilac — Lilac\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.getlilac.com/v1` · env=`LILAC_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异(/v1/models 公开可探测,OpenAI schema) | - | C | https://llm24.net/model-api-check |\n| 能力支持 | 无差异(4 个模型走 OpenAI schema) | - | C | https://llm24.net/model-api-check |\n| 思考机制 | 无法确认 | - | ⚠️ | - |\n| 流式/usage | 无法确认 | - | ⚠️ | - |\n| 消息格式 | 无法确认 | - | ⚠️ | - |\n| 特殊字段 | 无法确认 | - | ⚠️ | - |\n| headers/认证 | 无差异(GPU 云服务,API key 认证) | - | - | - |\n| URL/端点 | 无差异(`https://api.getlilac.com/v1`,`/v1/models` 可达) | - | C | https://llm24.net/model-api-check |\n| 模型 ID | 无差异(标准模型 ID) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖(证据较薄)\n- **aimux 代码位置**:`openai_compat_registry.rs:1114-1122`\n- **差距说明**:getlilac.com 为 GPU 云(边缘推理),/v1/models 走 OpenAI schema。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 详细参数(stream/usage/思考)未确认\n\n### lingyiwanwu — Lingyiwanwu (零一万物)\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.lingyiwanwu.com/v1` · env=`LINGYIWANWU_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://docs.emqx.com/zh/neuronex/latest/best-practise/llm-example.html |\n| 能力支持 | 无差异(OpenAI SDK 直接调用,标准参数) | `client = OpenAI(api_key=..., base_url=\"https://api.lingyiwanwu.com/v1\")` | C | https://developer.aliyun.com/article/1586831 |\n| 思考机制 | 未发现文档化差异(Yi-Lightning 等无思考开关文档) | - | ⚠️ | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer LINGYIWANWU_API_KEY) | - | C | https://developer.aliyun.com/article/1586831 |\n| URL/端点 | 无差异 | - | C | https://platform.lingyiwanwu.com/docs |\n| 模型 ID | `yi-large`、`yi-lightning`、`yi-medium`、`yi-spark`、`yi-vision` 等 | `\"model\": \"yi-lightning\"` | C | https://docs.emqx.com/zh/neuronex/latest/best-practise/llm-example.html |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1123-1131`\n- **差距说明**:纯 OpenAI 兼容。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C(官方 docs 页为 SPA 未能抓取原文,引用了官方 platform 域名 + 多个可靠第三方示例)\n- **验证状态**:🔲 未验证\n- **存疑标记**:⚠️ 思考机制未确认(官方文档未公开 Yi 思考开关)\n\n### llama — Llama\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.llama.com/compat/v1/` · env=`LLAMA_API_KEY`\n- **变体**:Meta Model API(`api.meta.ai`,Muse 模型)已被官方称为 Llama API 的继任者\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://developer.puter.com/tutorials/how-to-get-llama-api-key/ |\n| 能力支持 | 无差异(OpenAI 兼容模式) | - | C | https://muddyterrain.com/docs/genai-unreal/openai-compatible-mode/ |\n| 思考机制 | 无法确认(模型侧) | - | ⚠️ | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(`Authorization: Bearer `;Meta 开发者平台签发) | - | C | https://developer.puter.com/tutorials/how-to-get-llama-api-key/ |\n| URL/端点 | 无差异(`https://api.llama.com/compat/v1/`;注意 registry 无尾斜杠,官方示例带尾斜杠,一般无影响) | `new OpenAI({ baseURL: \"https://api.llama.com/compat/v1/\", apiKey: process.env.LLAMA_API_KEY })` | C | https://developer.puter.com/tutorials/how-to-get-llama-api-key/ |\n| 模型 ID | `meta-llama/Llama-*` 形式(`meta-llama/Llama-4-Scout` 等) | - | C | https://muddyterrain.com/docs/genai-unreal/openai-compatible-mode/ |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1132-1140`\n- **差距说明**:OpenAI 兼容;模型 ID org/model 形式透传。\n- **建议动作**:无需动作(可关注 Meta Model API `api.meta.ai` 迁移)。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n### llamagate — Llamagate\n\n- **registry 现状**:profile=`full()` · base_url=`https://api.llamagate.dev/v1` · env=`LLAMAGATE_API_KEY`\n- **变体**:-\n\n#### 1. request 差异发现\n\n| 类别 | 差异 | 例子(请求/响应体片段) | 证据等级 | 来源 |\n|------|------|----------------------|---------|------|\n| 参数命名 | 无差异 | - | C | https://docs.litellm.ai/docs/providers/llamagate |\n| 能力支持 | 无差异(26+ 开源 LLM 的 OpenAI 兼容网关) | - | C | https://ai-sdk.dev/providers/community-providers/llamagate |\n| 思考机制 | 未发现文档化差异 | - | - | - |\n| 流式/usage | 无差异 | - | - | - |\n| 消息格式 | 无差异 | - | - | - |\n| 特殊字段 | 无差异 | - | - | - |\n| headers/认证 | 无差异(Bearer LLAMAGATE_API_KEY) | - | C | https://docs.litellm.ai/docs/providers/llamagate |\n| URL/端点 | 无差异 | - | C | https://docs.litellm.ai/docs/providers/llamagate |\n| 模型 ID | 无差异(开源模型 ID) | - | - | - |\n\n#### 2. aimux 现状对比\n\n- **对比结论**:✅ 已覆盖\n- **aimux 代码位置**:`openai_compat_registry.rs:1141-1149`\n- **差距说明**:OpenAI 兼容网关。\n- **建议动作**:无需动作。\n\n#### 3. 证据与验证\n\n- **证据等级**:C\n- **验证状态**:🔲 未验证\n- **存疑标记**:-\n\n---\n\n## 汇总\n\n- **完成条目**:42/42(每家均有 9 类差异表 + aimux 现状对比 + 证据状态)\n- **协议级差异(request 构造相关)11 家**:groq(max_tokens 弃用方向)、gigachat(OAuth 认证 + TLS + 端点)、heroku(仅 max_completion_tokens + allow_ignored_params + extended_thinking)、hetzner(chat_template_kwargs.enable_thinking)、inception(diffusing 专有字段 + FIM 端点)、inference_net(x-inference-* 代理头)、kimi(thinking.type/thinking.keep by-model)、kimi_for_coding(reasoning_effort 映射/400 + 固定模型 ID)、helicone(双 key 认证头)、github(服务已退役)、kluster_ai(服务疑似下线)\n- **registry 数据问题 6 家**:freemodel/gmi/iflowcn(base_url 被截断成垃圾字符串)、krutrim(官方端点为 cloud.olakrutrim.com/v1)、kilo(官方端点为 /api/gateway)、lemonade(本地端口待确认)\n- **存疑条目 7 家**:gdc、inferx、infinity、kiro、hosted_vllm、lilac(资料不足)、lingyiwanwu(仅思考机制未确认)\n- **证据等级分布**:全部为 C(官方/权威网页);本批无 A 级(仓库 cassette)与 B 级(reference 代码,因 reference/ 多为文档剪枝版,未含厂商适配代码)\n"}}}}