feat(ai): switch xiaomi default to api billing, add per-region token plan providers (#4112)
Built-in `xiaomi` provider now targets the API billing endpoint (https://api.xiaomimimo.com/anthropic) — a single stable URL for keys issued at platform.xiaomimimo.com. The Token Plan endpoints are exposed as three sibling providers, each with its own env var: - xiaomi-token-plan-cn: XIAOMI_TOKEN_PLAN_CN_API_KEY - xiaomi-token-plan-ams: XIAOMI_TOKEN_PLAN_AMS_API_KEY - xiaomi-token-plan-sgp: XIAOMI_TOKEN_PLAN_SGP_API_KEY BREAKING CHANGE: users who previously set XIAOMI_API_KEY against the Token Plan AMS endpoint must move to xiaomi-token-plan-ams and set XIAOMI_TOKEN_PLAN_AMS_API_KEY. This also resolves the 401 reported by on #4005, where a platform.xiaomimimo.com key fails against the Token Plan endpoint. closes #4082
This commit is contained in:
@@ -2,6 +2,14 @@
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- Switched the built-in `xiaomi` provider from Token Plan AMS to Xiaomi's API billing endpoint, and renamed its `/login` display from "Xiaomi MiMo Token Plan" to "Xiaomi MiMo". `XIAOMI_API_KEY` now refers to the API billing key from [platform.xiaomimimo.com](https://platform.xiaomimimo.com). Users on Token Plan should switch to the appropriate `xiaomi-token-plan-*` provider and set the corresponding env var.
|
||||
|
||||
### Added
|
||||
|
||||
- Added three Xiaomi MiMo Token Plan regional providers visible in `/login`: `xiaomi-token-plan-cn` (`XIAOMI_TOKEN_PLAN_CN_API_KEY`), `xiaomi-token-plan-ams` (`XIAOMI_TOKEN_PLAN_AMS_API_KEY`), `xiaomi-token-plan-sgp` (`XIAOMI_TOKEN_PLAN_SGP_API_KEY`). Each defaults to `mimo-v2.5-pro`.
|
||||
|
||||
### Changed
|
||||
|
||||
- Changed `read` tool rendering to collapse Pi documentation, AGENTS/CLAUDE context files, and `SKILL.md` contents by default in interactive output.
|
||||
|
||||
@@ -128,7 +128,10 @@ For each built-in provider, pi maintains a list of tool-capable models, updated
|
||||
- Fireworks
|
||||
- Kimi For Coding
|
||||
- MiniMax
|
||||
- Xiaomi MiMo Token Plan
|
||||
- Xiaomi MiMo
|
||||
- Xiaomi MiMo Token Plan (China)
|
||||
- Xiaomi MiMo Token Plan (Amsterdam)
|
||||
- Xiaomi MiMo Token Plan (Singapore)
|
||||
|
||||
See [docs/providers.md](docs/providers.md) for detailed setup instructions.
|
||||
|
||||
|
||||
@@ -69,9 +69,10 @@ pi
|
||||
| Kimi For Coding | `KIMI_API_KEY` | `kimi-coding` |
|
||||
| MiniMax | `MINIMAX_API_KEY` | `minimax` |
|
||||
| MiniMax (China) | `MINIMAX_CN_API_KEY` | `minimax-cn` |
|
||||
| Xiaomi MiMo Token Plan | `XIAOMI_API_KEY` | `xiaomi` |
|
||||
|
||||
The Xiaomi MiMo provider targets the Xiaomi MiMo Token Plan Anthropic-compatible endpoint.
|
||||
| Xiaomi MiMo | `XIAOMI_API_KEY` | `xiaomi` |
|
||||
| Xiaomi MiMo Token Plan (China) | `XIAOMI_TOKEN_PLAN_CN_API_KEY` | `xiaomi-token-plan-cn` |
|
||||
| Xiaomi MiMo Token Plan (Amsterdam) | `XIAOMI_TOKEN_PLAN_AMS_API_KEY` | `xiaomi-token-plan-ams` |
|
||||
| Xiaomi MiMo Token Plan (Singapore) | `XIAOMI_TOKEN_PLAN_SGP_API_KEY` | `xiaomi-token-plan-sgp` |
|
||||
|
||||
Reference for environment variables and `auth.json` keys: [`const envMap`](https://github.com/badlogic/pi-mono/blob/main/packages/ai/src/env-api-keys.ts) in [`packages/ai/src/env-api-keys.ts`](https://github.com/badlogic/pi-mono/blob/main/packages/ai/src/env-api-keys.ts).
|
||||
|
||||
@@ -87,7 +88,10 @@ Store credentials in `~/.pi/agent/auth.json`:
|
||||
"google": { "type": "api_key", "key": "..." },
|
||||
"opencode": { "type": "api_key", "key": "..." },
|
||||
"opencode-go": { "type": "api_key", "key": "..." },
|
||||
"xiaomi": { "type": "api_key", "key": "..." }
|
||||
"xiaomi": { "type": "api_key", "key": "..." },
|
||||
"xiaomi-token-plan-cn": { "type": "api_key", "key": "..." },
|
||||
"xiaomi-token-plan-ams": { "type": "api_key", "key": "..." },
|
||||
"xiaomi-token-plan-sgp": { "type": "api_key", "key": "..." }
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -320,7 +320,10 @@ ${chalk.bold("Environment Variables:")}
|
||||
CLOUDFLARE_API_KEY - Cloudflare API token (Workers AI and AI Gateway)
|
||||
CLOUDFLARE_ACCOUNT_ID - Cloudflare account id (required for both)
|
||||
CLOUDFLARE_GATEWAY_ID - Cloudflare AI Gateway slug (required for AI Gateway)
|
||||
XIAOMI_API_KEY - Xiaomi MiMo Token Plan API key
|
||||
XIAOMI_API_KEY - Xiaomi MiMo API key (api.xiaomimimo.com billing)
|
||||
XIAOMI_TOKEN_PLAN_CN_API_KEY - Xiaomi MiMo Token Plan API key (China region)
|
||||
XIAOMI_TOKEN_PLAN_AMS_API_KEY - Xiaomi MiMo Token Plan API key (Amsterdam region)
|
||||
XIAOMI_TOKEN_PLAN_SGP_API_KEY - Xiaomi MiMo Token Plan API key (Singapore region)
|
||||
AWS_PROFILE - AWS profile for Amazon Bedrock
|
||||
AWS_ACCESS_KEY_ID - AWS access key for Amazon Bedrock
|
||||
AWS_SECRET_ACCESS_KEY - AWS secret key for Amazon Bedrock
|
||||
|
||||
@@ -40,6 +40,9 @@ export const defaultModelPerProvider: Record<KnownProvider, string> = {
|
||||
"cloudflare-workers-ai": "@cf/moonshotai/kimi-k2.6",
|
||||
"cloudflare-ai-gateway": "workers-ai/@cf/moonshotai/kimi-k2.6",
|
||||
xiaomi: "mimo-v2.5-pro",
|
||||
"xiaomi-token-plan-cn": "mimo-v2.5-pro",
|
||||
"xiaomi-token-plan-ams": "mimo-v2.5-pro",
|
||||
"xiaomi-token-plan-sgp": "mimo-v2.5-pro",
|
||||
};
|
||||
|
||||
export interface ScopedModel {
|
||||
|
||||
@@ -24,5 +24,8 @@ export const BUILT_IN_PROVIDER_DISPLAY_NAMES: Record<string, string> = {
|
||||
"vercel-ai-gateway": "Vercel AI Gateway",
|
||||
xai: "xAI",
|
||||
zai: "ZAI",
|
||||
xiaomi: "Xiaomi MiMo Token Plan",
|
||||
xiaomi: "Xiaomi MiMo",
|
||||
"xiaomi-token-plan-cn": "Xiaomi MiMo Token Plan (China)",
|
||||
"xiaomi-token-plan-ams": "Xiaomi MiMo Token Plan (Amsterdam)",
|
||||
"xiaomi-token-plan-sgp": "Xiaomi MiMo Token Plan (Singapore)",
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user