Модели и провайдеры
Провайдеры
Creo работает с двумя типами провайдеров.
OpenAI-совместимый API
Любой endpoint, поддерживающий OpenAI Chat Completions API. Укажите base_url и API-ключ:
1{
2 "deepseek": {
3 "provider": "openai",
4 "model": "deepseek-chat",
5 "api_key": "sk-...",
6 "base_url": "https://api.deepseek.com/v1"
7 }
8}
Пустой base_url означает официальный OpenAI (https://api.openai.com/v1).
Поддерживаемые провайдеры: OpenAI, DeepSeek, GLM, vLLM, Together, Fireworks — всё, что совместимо с Chat Completions API.
Ollama
Локальный сервер Ollama. Без облачных ключей, полностью приватно:
1{
2 "local": {
3 "provider": "ollama",
4 "model": "qwen2.5-coder",
5 "base_url": "http://localhost:11434"
6 }
7}
Ollama-специфичные параметры: top_k, repeat_penalty — передаются в поле params.
Несколько моделей
В конфиге можно настроить сколько угодно моделей и переключаться между ними командой /model или через агента в чате.
1{
2 "agent": {
3 "models": {
4 "gpt4o": {
5 "provider": "openai",
6 "model": "gpt-4o",
7 "api_key": "sk-..."
8 },
9 "deepseek": {
10 "provider": "openai",
11 "model": "deepseek-chat",
12 "api_key": "sk-...",
13 "base_url": "https://api.deepseek.com/v1"
14 },
15 "local": {
16 "provider": "ollama",
17 "model": "qwen2.5-coder"
18 }
19 },
20 "current": "gpt4o",
21 "mini": "local"
22 }
23}
Dual-model архитектура
Creo использует две модели для разных задач:
| Модель | Назначение | Поле конфига |
|---|---|---|
current |
Интерактивные сессии с пользователем | agent.current |
mini |
Фоновые задачи: автоименование сессий, dreaming-ревизия, компактизация контекста | agent.mini |
Используйте мощную модель для кодинга и дешёвую — для рутины. Например: GPT-4o для работы и GPT-4o-mini для фоновых задач. Или локальную Ollama для интерактива (бесплатно) и облачную модель для фоновых задач, требующих качества.
Переключение current через /model не влияет на mini. Каждая модель настраивается независимо: свои параметры, провайдер, API-ключ.
Параметры генерации
Все параметры опциональны. Если поле не указано — провайдер использует значение по умолчанию.
| Параметр | Диапазон | Описание |
|---|---|---|
temperature |
0 — 2 | Контроль случайности. Меньше — детерминированнее |
top_p |
0 — 1 | Nucleus sampling |
top_k |
≥ 0 | Top-K sampling (Ollama) |
frequency_penalty |
−2 — 2 | Штраф за частые токены (OpenAI) |
presence_penalty |
−2 — 2 | Штраф за присутствующие токены (OpenAI) |
repeat_penalty |
≥ 0 | Штраф за повторение (Ollama) |
1{
2 "params": {
3 "temperature": 0.2,
4 "top_p": 0.95
5 }
6}
Рекомендуемые пресеты
| Сценарий | temperature | top_p | frequency_penalty | presence_penalty |
|---|---|---|---|---|
| Кодинг | 0.2 | 0.95 | 0 | 0 |
| Архитектура с нуля | 0.5 | 0.9 | 0.1 | 0.1 |
| Тесты и документация | 0.7 | 0.9 | 0 | 0 |
| Рефакторинг / перевод | 0.05 | 0.85 | 0 | 0 |
Для Ollama вместо frequency_penalty/presence_penalty используйте repeat_penalty (обычно 1.1) и при необходимости top_k.
Лимит контекста
Поле context_length переопределяет значение, получаемое от API провайдера. Полезно, когда провайдер не отдаёт корректный размер контекста или нужно задать лимит вручную:
1{
2 "model": "deepseek-chat",
3 "context_length": 64000
4}
Привязка моделей по проекту
model_bindings привязывает модель к директории. Первый матч выигрывает:
1{
2 "agent": {
3 "current": "cheap",
4 "mini": "cheap",
5 "model_bindings": [
6 {
7 "cwd": "/home/user/projects/work/*",
8 "model": "powerful",
9 "mini": "powerful"
10 }
11 ]
12 }
13}
Паттерны поддерживают glob (*, ?). Суффикс /* — для поддиректорий.
Автоименование сессий
Мини-модель автоматически генерирует краткое описание сессии по транскрипту. Обновляется каждые 20 диалоговых сообщений. Ручное переименование через /rename — автоматическое никогда не перезапишет.
Конфигурация через агента
Попросите в чате: «Поменяй текущую модель на default» или «Установи locale в en». Агент использует инструмент update_config:
- Чтение: возвращает конфиг в JSON. API-ключи маскируются как
***— агент видит, что ключ задан, но не может прочитать значение. - Запись: устанавливает значение по точечному пути (
current,models.default.api_key,tui.theme). Требует подтверждения. - Добавление/удаление моделей: через действия
add_modelиdelete_model.
Изменения вступают в силу после перезапуска Creo (кроме темы — она применяется сразу).