autoreg-skills-max: initial public release (restored, redacted, hardened)
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
# Token Placement Pitfall — 2026-07-04
|
||||
|
||||
## Ситуация
|
||||
|
||||
Сервер chatgpt2api-pro на `:5005` отвечал на `/v1/models` (13 моделей), но `/v1/chat/completions` возвращал:
|
||||
```json
|
||||
{"detail": "Could not parse your authentication token. Please try signing in again."}
|
||||
```
|
||||
|
||||
## Диагностика
|
||||
|
||||
1. Сервер читает ChatGPT-токены из `data/token.txt` (через `utils/globals.py`):
|
||||
```python
|
||||
TOKENS_FILE = os.path.join(DATA_FOLDER, "token.txt")
|
||||
```
|
||||
2. Файл `data/token.txt` был **0 байт** (пустой)
|
||||
3. Токен лежал в `tokens.txt` (корень проекта) — это пользовательский бэкап, сервер его **не читает**
|
||||
|
||||
## Проверка
|
||||
|
||||
```bash
|
||||
# Содержимое data/token.txt
|
||||
cat data/token.txt | wc -c
|
||||
# Если 0 — токенов нет
|
||||
|
||||
# Проверка через эндпоинт
|
||||
curl -s http://localhost:5005/tokens
|
||||
# Internal Server Error = data/token.txt пуст или нет data/ папки
|
||||
```
|
||||
|
||||
## Фикс
|
||||
|
||||
```bash
|
||||
# Скопировать токен в правильное место
|
||||
cp tokens.txt data/token.txt
|
||||
|
||||
# Или через API (без рестарта)
|
||||
curl -X POST "http://localhost:5005/tokens/add/$(cat tokens.txt)"
|
||||
|
||||
# Перезапустить сервер
|
||||
taskkill //F //PID <pid>
|
||||
cd "C:/Users/User/AppData/Local/hermes/chatgpt2api-pro"
|
||||
.venv/Scripts/python -u app.py
|
||||
```
|
||||
|
||||
## Проверка после фикса
|
||||
|
||||
```bash
|
||||
# data/token.txt должен быть ~1980 байт
|
||||
ls -la data/token.txt
|
||||
|
||||
# Chat completion
|
||||
curl -s -X POST http://127.0.0.1:5005/v1/chat/completions \
|
||||
-H "Authorization: Bearer $(cat .env | grep ^AUTHORIZATION= | cut -d= -f2)" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"model":"gpt-5.5","messages":[{"role":"user","content":"hi"}],"max_tokens":10}'
|
||||
# Должен вернуть choices[0].message.content
|
||||
```
|
||||
|
||||
## Два типа токенов
|
||||
|
||||
| Файл | Назначение | Длина |
|
||||
|------|-----------|-------|
|
||||
| `.env` → `AUTHORIZATION` | Аутентификация клиентов (Bearer-токен в запросах) | 1979 (JWT) |
|
||||
| `data/token.txt` | ChatGPT токен для бэкенд-запросов к chatgpt.com | 1979 (JWT) или 45 (refresh) |
|
||||
|
||||
Оба могут быть одним и тем же JWT-токеном — это работает.
|
||||
Reference in New Issue
Block a user