Files
autoreg-skills-max/skills/ai-provider-autoreg/references/tokenharbor-keypool-429-diagnostics.md

48 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TokenHarbor key-pool: формат, 429-диагностика, signup-статус
Операционные заметки по пулу TH-ключей для шлюза api.[REDACTED-NAME].com (one-api, VPS [REDACTED-IP], БД /opt/grok-gateway/new-api/one-api.db). Основной реger: `th_tonline_claim.py` (login t-online акков → verify → $5 claim → key → пуш). Skill `th-autoreg` user-owned — этот файл живёт здесь.
## 1. Формат tokenharbor_keys.txt — парсить поле, не строку
```
email | thk_live_<64 символа> | timestamp
email | thk_live_... | REVOKED | timestamp
```
- Bearer с ЦЕЛОЙ строкой вместо ключа → обманчивый `401 Invalid or revoked API key` (TH не различает «мусор» и «отозван»).
- Перед любым тестом: сплит по `|`, взять поле с префиксом `thk_live_`, отфильтровать `REVOKED` и `#`-комментарии.
- Ключ = `thk_live_` + 64 символа `[a-zA-Z0-9_-]`.
## 2. 429 «Hourly rate limit reached» — окно TH, не мёртвые ключи
Когда шлюз (сотни TH-каналов) выбивает часовой лимит free-модели, ВСЕ валидные live-ключи начинают отдавать 429 на прямых запросах к tokenharbor.ai. Лимит на модель/пул, НЕ на IP — повторяется с Windows и VPS одновременно.
**Диагностика (2 минуты, без SSH):**
1. Прямой запрос валидным ключом на `claude-haiku-5.5:free` → 429 hourly.
2. Тот же ключ на другой free-модели (`deepseek-v4-flash`) → если 200, ключи и роутинг ЖИВЫ, это модельное окно.
3. Через шлюз `https://api.[REDACTED-NAME].com/v1/chat/completions` (токен в ~/tmp/.testkey) проверить обе модели: 429 на haiku + 200 на другой TH-free модели = подтверждение.
**НЕ делать при таком 429:** ротацию прокси (лимит не по IP), «починку» mapping в one-api.db, перезапуск реger'а. Ждать сброса часового окна.
Free-модели TH (из /v1/models): claude-haiku-5.5, mimo-v2.6-flash, mimo-v2.5, deepseek-v4.1-flash, deepseek-v4-flash. Остальные ~60 — платные. Старые акки: `free allowance used, next period <дата>`.
## 3. Signup-путь сломан на стороне TH (не капча)
- `/login?mode=signup`: НЕТ видимого Turnstile (`[data-sitekey]`, `.cf-turnstile`, `window.turnstile`, challenges.cloudflare — все пусты).
- Форма сабмитится (React nativeSet + `input[type="password"]`), но сервер отвечает «We couldn't create your account right now» на ЛЮБЫЕ email — реальные из пула и фейковые gmx/t-online.
- Вывод: капча-солверы (2captcha/sidecar) signup не чинят; блок серверный. Не тратить баланс солверов.
- Рабочий путь пополнения пула: `th_tonline_claim.py N` — login уже существующих t-online аккаунтов (17k пул, письма доходят), claim $5, создание ключа, автопуш на шлюз.
- Волна ~1 акк/мин; лог `th_run_*.log`; прогресс `[N/200]`.
## 4. Синхронизация ключей в шлюз
- `th_sync_vps.py` — пуш ключей в one-api.db (channels tokenharbor). Прогон даёт +N свежих каналов; после синка `systemctl restart new-api`.
- Роутинг haiku: budsin-каналы с высоким priority и mapping `claude-haiku-5.5→claude-haiku-4-5` подменяют модель — при жалобе «haiku отдаёт 4.5» первым делом проверить budsin в abilities/model_mapping и удалить его haiku-строки.
- Проверка оригинальности ответа: `id` НЕ должен начинаться с `fw-` (fireworks-подмена), `model` в ответе = `claude-haiku-5.5`.
## 5. 2captcha для этого проекта (рабочий ключ в .env авторег-проекта, TWOCAPTCHA_KEY)
- Баланс/задачи ТОЛЬКО `POST https://api.2captcha.com/res.php` с lowercase-параметрами; GET → ERROR_EMPTY_METHOD; домен `2captcha.com/res.php` → 400 (Cloudflare).
- Баланс приходит в поле `request` как строка.
- Ключ из旧 записей памяти может быть опечаткой (ERROR_KEY_DOES_NOT_EXIST) — всегда валидировать getbalance перед волной.