LP_2-test / docs /MAX_TOKENS_CONFIG.md
DocUA's picture
Clean deployment without large index files
461adca
# Уніфікація конфігурації Max Tokens
## Що було зроблено
Параметр `max_tokens` було винесено з коду в централізовану конфігурацію YAML для спрощення управління та уніфікації налаштувань.
## Зміни в конфігурації
### 1. Додано нову секцію в `config/environments/default.yaml`:
```yaml
# Generation Settings
generation:
max_tokens:
openai: 8192
anthropic: 8192
gemini: 8192
deepseek: 8192
max_tokens_analysis: 2000
temperature: 0
```
### 2. Оновлено Pydantic моделі (`config/settings.py`):
Додано нові класи:
- `MaxTokensConfig` - конфігурація max_tokens для кожного провайдера
- `GenerationConfig` - загальні налаштування генерації
### 3. Експортовано нові змінні в `config/__init__.py`:
- `MAX_TOKENS_CONFIG` - словник з max_tokens для кожного провайдера
- `MAX_TOKENS_ANALYSIS` - max_tokens для аналізу (2000)
- `GENERATION_TEMPERATURE` - температура генерації (0.0)
### 4. Оновлено `main.py`:
Всі жорстко закодовані значення замінено на використання конфігурації:
**Було:**
```python
max_tokens=8192 # жорстко закодовано
temperature=0 # жорстко закодовано
```
**Стало:**
```python
max_tokens=MAX_TOKENS_CONFIG["anthropic"] # з конфігурації
temperature=GENERATION_TEMPERATURE # з конфігурації
```
## Переваги
**Централізоване управління** - всі налаштування в одному місці (YAML)
**Легке налаштування** - зміна параметрів без редагування коду
**Уніфікація** - однакові значення для всіх провайдерів (можна змінювати окремо)
**Типобезпека** - валідація через Pydantic
**Backward compatibility** - старий код продовжує працювати
## Як змінити max_tokens
### Варіант 1: Через YAML (рекомендовано)
Відредагуйте `config/environments/default.yaml`:
```yaml
generation:
max_tokens:
anthropic: 16384 # збільшити для Claude
openai: 4096 # зменшити для OpenAI
```
### Варіант 2: Через environment-specific конфігурацію
Створіть `config/environments/production.yaml` з override значеннями:
```yaml
generation:
max_tokens:
anthropic: 32000
```
## Тестування
Запустіть тестовий скрипт для перевірки конфігурації:
```bash
python test_max_tokens_config.py
```
Очікуваний вивід:
```
📊 MAX_TOKENS_CONFIG:
- openai: 8192
- anthropic: 8192
- gemini: 8192
- deepseek: 8192
📊 MAX_TOKENS_ANALYSIS: 2000
📊 GENERATION_TEMPERATURE: 0.0
```
## Оновлені файли
1. `config/environments/default.yaml` - додано секцію generation
2. `config/settings.py` - додано MaxTokensConfig, GenerationConfig
3. `config/__init__.py` - експортовано нові змінні
4. `main.py` - використання конфігурації замість жорстко закодованих значень
5. `test_max_tokens_config.py` - тестовий скрипт
## Рекомендації для моделі Claude Sonnet 4.5
Для оптимальної роботи з Claude Sonnet 4.5 рекомендується:
```yaml
generation:
max_tokens:
anthropic: 16384 # або більше для довгих текстів
temperature: 0.0 # для детермінованих результатів
```
Модель підтримує до 200k токенів на вихід, тому можна встановити більше значення при потребі.