| # Уніфікація конфігурації 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 токенів на вихід, тому можна встановити більше значення при потребі. | |