feat: добавить поддержку Kimi K2.7 Code в ai-kimi
- Opus/Sonnet: kimi-k2.7 (флагманский программист) - Haiku/Subagent: kimi-k2.6 (быстрый универсал) - Проверка ключа тестирует kimi-k2.7 - Обновлён EFFORT_MAPPING.md и тесты Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -9,9 +9,9 @@
|
|||||||
|
|
||||||
## Таблица маппинга
|
## Таблица маппинга
|
||||||
|
|
||||||
> Актуально на 30 мая 2026 г.
|
> Актуально на 12 июня 2026 г.
|
||||||
|
|
||||||
| Claude Code<br>`/effort` | Anthropic<br>(Claude) | GPT-5.5<br>(ChatGPT) | DeepSeek V4 | Kimi K2.6<br>(Moonshot) | Gemini 3.x |
|
| Claude Code<br>`/effort` | Anthropic<br>(Claude) | GPT-5.5<br>(ChatGPT) | DeepSeek V4 | Kimi K2.7<br>(Moonshot) | Gemini 3.x |
|
||||||
|:---:|:---:|:---:|:---:|:---:|:---:|
|
|:---:|:---:|:---:|:---:|:---:|:---:|
|
||||||
| `low` | ✅ `low` | ✅ `low` | ⬆ `high` | 🔛 thinking on | ✅ `LOW` |
|
| `low` | ✅ `low` | ✅ `low` | ⬆ `high` | 🔛 thinking on | ✅ `LOW` |
|
||||||
| `medium` | ✅ `medium` | ✅ `medium` | ⬆ `high` | 🔛 thinking on | ✅ `MEDIUM` |
|
| `medium` | ✅ `medium` | ✅ `medium` | ⬆ `high` | 🔛 thinking on | ✅ `MEDIUM` |
|
||||||
@@ -54,7 +54,7 @@ high → max
|
|||||||
- `xhigh` → автоматически поднимается до `max`
|
- `xhigh` → автоматически поднимается до `max`
|
||||||
- Маппинг выполняется на стороне DeepSeek API
|
- Маппинг выполняется на стороне DeepSeek API
|
||||||
|
|
||||||
### Kimi K2.6 (Moonshot AI)
|
### Kimi K2.7 (Moonshot AI)
|
||||||
```
|
```
|
||||||
on / off
|
on / off
|
||||||
```
|
```
|
||||||
@@ -80,7 +80,7 @@ MINIMAL → LOW → MEDIUM → HIGH
|
|||||||
| Anthropic | Не нужен | — |
|
| Anthropic | Не нужен | — |
|
||||||
| GPT-5.5 | effort-proxy (наш) | `~/.local/bin/claude-gpt-effort-proxy.py` |
|
| GPT-5.5 | effort-proxy (наш) | `~/.local/bin/claude-gpt-effort-proxy.py` |
|
||||||
| DeepSeek V4 | DeepSeek API | На стороне сервера |
|
| DeepSeek V4 | DeepSeek API | На стороне сервера |
|
||||||
| Kimi K2.6 | Moonshot API | На стороне сервера |
|
| Kimi K2.7 | Moonshot API | На стороне сервера |
|
||||||
| Gemini 3.x | antigravity-claude-proxy | npm пакет |
|
| Gemini 3.x | antigravity-claude-proxy | npm пакет |
|
||||||
|
|
||||||
## Persistence effort между сессиями
|
## Persistence effort между сессиями
|
||||||
|
|||||||
@@ -1408,7 +1408,7 @@ api_key=""
|
|||||||
|
|
||||||
if [ -n "$api_key" ]; then
|
if [ -n "$api_key" ]; then
|
||||||
echo -n "Проверка сохранённого Kimi ключа... "
|
echo -n "Проверка сохранённого Kimi ключа... "
|
||||||
_claude_test_api "https://api.kimi.com/coding/v1/messages" "x-api-key: $api_key" "kimi-k2.6"
|
_claude_test_api "https://api.kimi.com/coding/v1/messages" "x-api-key: $api_key" "kimi-k2.7"
|
||||||
_handle_api_response "Kimi" "$_CLAUDE_TEST_CODE" "$_CLAUDE_TEST_BODY" "Пополните баланс: https://www.kimi.com/code"
|
_handle_api_response "Kimi" "$_CLAUDE_TEST_CODE" "$_CLAUDE_TEST_BODY" "Пополните баланс: https://www.kimi.com/code"
|
||||||
ret=$_API_RET
|
ret=$_API_RET
|
||||||
if [ $ret -eq 401 ]; then
|
if [ $ret -eq 401 ]; then
|
||||||
@@ -1428,7 +1428,7 @@ if [ -z "$api_key" ]; then
|
|||||||
[ -z "$api_key" ] && { echo "Выход."; exit 1; }
|
[ -z "$api_key" ] && { echo "Выход."; exit 1; }
|
||||||
|
|
||||||
echo -n "Проверяю ключ и баланс... "
|
echo -n "Проверяю ключ и баланс... "
|
||||||
_claude_test_api "https://api.kimi.com/coding/v1/messages" "x-api-key: $api_key" "kimi-k2.6"
|
_claude_test_api "https://api.kimi.com/coding/v1/messages" "x-api-key: $api_key" "kimi-k2.7"
|
||||||
_handle_api_response "Kimi" "$_CLAUDE_TEST_CODE" "$_CLAUDE_TEST_BODY" "Пополните баланс: https://www.kimi.com/code"
|
_handle_api_response "Kimi" "$_CLAUDE_TEST_CODE" "$_CLAUDE_TEST_BODY" "Пополните баланс: https://www.kimi.com/code"
|
||||||
ret=$_API_RET
|
ret=$_API_RET
|
||||||
if [ $ret -eq 0 ] || [ $ret -eq 429 ]; then
|
if [ $ret -eq 0 ] || [ $ret -eq 429 ]; then
|
||||||
@@ -1457,23 +1457,23 @@ trap 'rm -f "$_PROMPT_FILE"' EXIT INT TERM
|
|||||||
_build_ai_sys_prompt > "$_PROMPT_FILE"
|
_build_ai_sys_prompt > "$_PROMPT_FILE"
|
||||||
export AI_LAUNCHER=kimi
|
export AI_LAUNCHER=kimi
|
||||||
export CLAUDE_CONFIG_DIR="$HOME/.config/ai-setup/cfg/kimi"
|
export CLAUDE_CONFIG_DIR="$HOME/.config/ai-setup/cfg/kimi"
|
||||||
# Пикер: Kimi K2.6 - единственная модель провайдера. availableModels НЕ задаём
|
# Пикер: Opus/Sonnet = Kimi K2.7 Code, Haiku = Kimi K2.6. availableModels НЕ задаём
|
||||||
# (он схлопывает пикер в Default). Claude Code навязывает 3 слота opus/sonnet/haiku;
|
# (он схлопывает пикер в Default). Claude Code навязывает 3 слота opus/sonnet/haiku;
|
||||||
# незаданный показал бы чужой Claude, поэтому все три мапим на Kimi K2.6
|
# незаданный показал бы чужой Claude, поэтому opus+sonnet = K2.7, haiku = K2.6
|
||||||
# (в пикере 3 одинаковых пункта, но все - Kimi). DISABLE_1M убирает [1M] дубли.
|
# DISABLE_1M убирает [1M] дубли из пикера.
|
||||||
_setup_isolated_config kimi opus high ''
|
_setup_isolated_config kimi opus high ''
|
||||||
_apply_effort kimi high
|
_apply_effort kimi high
|
||||||
ANTHROPIC_BASE_URL=https://api.kimi.com/coding \
|
ANTHROPIC_BASE_URL=https://api.kimi.com/coding \
|
||||||
ANTHROPIC_AUTH_TOKEN="$api_key" \
|
ANTHROPIC_AUTH_TOKEN="$api_key" \
|
||||||
ANTHROPIC_DEFAULT_OPUS_MODEL=kimi-k2.6 \
|
ANTHROPIC_DEFAULT_OPUS_MODEL=kimi-k2.7 \
|
||||||
ANTHROPIC_DEFAULT_OPUS_MODEL_NAME="Kimi K2.6" \
|
ANTHROPIC_DEFAULT_OPUS_MODEL_NAME="Kimi K2.7 Code" \
|
||||||
ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION="Kimi K2.6 (Moonshot AI)" \
|
ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION="Kimi K2.7 Code — флагманский программист (Moonshot AI)" \
|
||||||
ANTHROPIC_DEFAULT_SONNET_MODEL=kimi-k2.6 \
|
ANTHROPIC_DEFAULT_SONNET_MODEL=kimi-k2.7 \
|
||||||
ANTHROPIC_DEFAULT_SONNET_MODEL_NAME="Kimi K2.6" \
|
ANTHROPIC_DEFAULT_SONNET_MODEL_NAME="Kimi K2.7 Code" \
|
||||||
ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION="Kimi K2.6 (Moonshot AI)" \
|
ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION="Kimi K2.7 Code — флагманский программист (Moonshot AI)" \
|
||||||
ANTHROPIC_DEFAULT_HAIKU_MODEL=kimi-k2.6 \
|
ANTHROPIC_DEFAULT_HAIKU_MODEL=kimi-k2.6 \
|
||||||
ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME="Kimi K2.6" \
|
ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME="Kimi K2.6" \
|
||||||
ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION="Kimi K2.6 (Moonshot AI)" \
|
ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION="Kimi K2.6 — быстрый универсал (Moonshot AI)" \
|
||||||
CLAUDE_CODE_SUBAGENT_MODEL=kimi-k2.6 \
|
CLAUDE_CODE_SUBAGENT_MODEL=kimi-k2.6 \
|
||||||
CLAUDE_CODE_DISABLE_1M_CONTEXT=1 \
|
CLAUDE_CODE_DISABLE_1M_CONTEXT=1 \
|
||||||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 \
|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 \
|
||||||
@@ -1662,7 +1662,7 @@ echo ""
|
|||||||
echo " На базе Claude Code:"
|
echo " На базе Claude Code:"
|
||||||
echo -e " ${CYAN}ai-claude${NC} - Оригинальный Claude Code (Anthropic)"
|
echo -e " ${CYAN}ai-claude${NC} - Оригинальный Claude Code (Anthropic)"
|
||||||
echo -e " ${CYAN}ai-deepseek${NC} - DeepSeek (через Claude Code, API ключ сохраняется)"
|
echo -e " ${CYAN}ai-deepseek${NC} - DeepSeek (через Claude Code, API ключ сохраняется)"
|
||||||
echo -e " ${CYAN}ai-kimi${NC} - Kimi K2.6 (через Claude Code, API ключ сохраняется)"
|
echo -e " ${CYAN}ai-kimi${NC} - Kimi K2.7 Code (через Claude Code, API ключ сохраняется)"
|
||||||
echo -e " ${CYAN}ai-openrouter${NC} - OpenRouter (через Claude Code: GPT-5.5, Opus 4.8, Sonnet 4.6)"
|
echo -e " ${CYAN}ai-openrouter${NC} - OpenRouter (через Claude Code: GPT-5.5, Opus 4.8, Sonnet 4.6)"
|
||||||
echo ""
|
echo ""
|
||||||
echo " Нативные CLI:"
|
echo " Нативные CLI:"
|
||||||
|
|||||||
@@ -48,11 +48,12 @@ test_kimi_claude_launcher() {
|
|||||||
# ── ai-kimi: uses official Kimi API ──────────────────────────────────────
|
# ── ai-kimi: uses official Kimi API ──────────────────────────────────────
|
||||||
test_kimi_official_api() {
|
test_kimi_official_api() {
|
||||||
if echo "$KIMI_SECTION" | grep -q 'api.kimi.com/coding' \
|
if echo "$KIMI_SECTION" | grep -q 'api.kimi.com/coding' \
|
||||||
&& echo "$KIMI_SECTION" | grep -q 'ANTHROPIC_DEFAULT_OPUS_MODEL=kimi-k2.6' \
|
&& echo "$KIMI_SECTION" | grep -q 'ANTHROPIC_DEFAULT_OPUS_MODEL=kimi-k2.7' \
|
||||||
|
&& echo "$KIMI_SECTION" | grep -q 'ANTHROPIC_DEFAULT_HAIKU_MODEL=kimi-k2.6' \
|
||||||
&& ! echo "$KIMI_SECTION" | grep -q 'artemox'; then
|
&& ! echo "$KIMI_SECTION" | grep -q 'artemox'; then
|
||||||
ok "ai-kimi: uses official Kimi API and model"
|
ok "ai-kimi: uses official Kimi API (K2.7 opus/sonnet, K2.6 haiku)"
|
||||||
else
|
else
|
||||||
fail "ai-kimi: must use official Kimi API (api.kimi.com/coding) and model kimi-k2.6"
|
fail "ai-kimi: must use official Kimi API (api.kimi.com/coding) with K2.7 opus/sonnet, K2.6 haiku"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user