Технологии извлечения и анализа данных

Окружения

Pastukhov Code использует два типа переменных окружения, которые служат различным целям:

  • Переменные уровня приложения — настраивают сам Pastukhov Code (учетные данные для входа, путь к проекту, лицензия, ключи API для аутентификации). Они должны быть установлены до запуска приложения — через системные переменные окружения, аргументы CLI или файлы .env — и не могут быть изменены через страницу “Окружения”.
  • Переменные уровня Claude Code — настраивают ИИ-модель и управляются полностью через страницу Окружения. Каждое окружение — это именованный набор переменных (ключи API, названия моделей, базовые URL-адреса, цены), который передается процессу CLI Claude Code. Вы можете создать несколько окружений и переключаться между ними в любое время.

Переменные окружения уровня приложения

Эти переменные настраивают сам Pastukhov Code и должны быть установлены до запуска приложения. Они не могут управляться через страницу “Окружения” — используйте системные переменные окружения, аргументы CLI (KEY=VALUE) или файл .env (загружаемый через --env filename).

Основные настройки

  • PASTUKHOV_CODE_LOGIN — Имя пользователя для входа. Автоматически генерируется как code, если не задано.
  • PASTUKHOV_CODE_PASSWORD — Пароль в виде хеша SHA256. Автоматически генерируется, если не задано, и выводится в консоль (временно до перезапуска). Вы можете сгенерировать хеш с помощью встроенного генератора SHA256 на странице входа — нажмите ссылку “▸ SHA256 generator” под кнопкой входа.
  • PASTUKHOV_CODE_PROJECT_PATH — Путь к каталогу проекта. Требуется для ручной установки и Docker. Папка может быть пустой или не существовать — в этом случае приложение автоматически проверяет проект из настроенного Git URL.
  • PASTUKHOV_CODE_LICENSE — Ключ лицензии. Используется пробная лицензия, если не задано.
  • PASTUKHOV_CODE_API_KEY — Хеш SHA256 ключа API для удаленного API. Отключено, если не задано.
  • PASTUKHOV_CODE_DATABASE — Пользовательский путь к базе данных или строка подключения PostgreSQL. По умолчанию .pastukhov/project.db (SQLite), хранится относительно папки проекта, чтобы вы могли закоммитить его в репозиторий. Дляproduction использования рекомендуется база данных PostgreSQL — она быстрее и надежнее SQLite.
  • JWT_SECRET_KEY — Пользовательский ключ подписи JWT (минимум 32 символа). Автоматически генерируется, если не задано. Этот ключ не должен быть легко угадываем — любой, кто знает его, может генерировать действительные токены аутентификации. Если вы не предоставите свой ключ, он будет перегенерирован при пересоздании контейнера Docker, что потребует всем пользователям повторного входа.
  • PASTUKHOV_CODE_CLICKHOUSE_URL — Строка подключения ClickHouse для отправки статистики чатов в централизованное хранилище для визуализации и мониторинга. Позволяет создавать дашборды Grafana или пользовательские графики вашей продуктивности по всем проектам сразу, а не просматривать каждый проект изолированно. Пример: Host=172.17.0.1;Port=8127;Protocol=http;Database=;Username=;Password=

Интеграция с Git

  • PASTUKHOV_CODE_PROJECT_GIT_URL — Git URL для клонирования репозитория проекта. По умолчанию репозиторий демо-проекта.
  • PASTUKHOV_CODE_PROJECT_GIT_LOGIN — Логин Git для репозитория проекта.
  • PASTUKHOV_CODE_PROJECT_GIT_PASSWORD — Пароль Git для репозитория проекта.
  • PASTUKHOV_CODE_SKILLS_GIT_URL — Git URL для клонирования репозитория навыков. По умолчанию репозиторий демо-навыков.
  • PASTUKHOV_CODE_SKILLS_GIT_LOGIN — Логин Git для репозитория навыков.
  • PASTUKHOV_CODE_SKILLS_GIT_PASSWORD — Пароль Git для репозитория навыков.
  • PASTUKHOV_CODE_GIT_USER_NAME — Имя пользователя Git, используемое для коммитов.
  • PASTUKHOV_CODE_GIT_USER_EMAIL — Email пользователя Git, используемый для коммитов.

Разное

  • PASTUKHOV_CODE_CLAUDE_PATH — Пользовательский путь к исполняемому файлу CLI Claude Code.
  • PASTUKHOV_CODE_ICON_PATH — Путь к пользовательскому значку, отображаемому в интерфейсе.
  • DISABLE_AUTOUPDATER — Установите в 1, чтобы отключить автообновление Claude Code (часто используется в Docker).
  • DOTNET_ROOT — Путь к среде выполнения .NET (используется системой сборки).
  • DEV_BASE_PATH — Базовый путь для конфигурации dev proxy.

Переменные уровня Claude Code

Эти переменные настраивают ИИ-модель и управляются через страницу “Окружения”. Они хранятся в .pastukhov/environments.yml и передаются напрямую процессу CLI Claude Code при запуске сессии чата. Переменные окружения переопределяют системные переменные, а системные переменные служат резервными.

Раздел переменных уровня Claude Code на странице окружений

Аутентификация & API

  • ANTHROPIC_API_KEY — Ключ API Anthropic. Используется прямым API Anthropic.
  • ANTHROPIC_AUTH_TOKEN — Токен аутентификации для сторонних поставщиков (z.ai, OpenRouter, xAI, MiniMax, Kimi). Альтернатива ANTHROPIC_API_KEY.
  • ANTHROPIC_BASE_URL — Базовый URL API. По умолчанию endpoint Anthropic; переопределяется для сторонних поставщиков.
  • MAX_MCP_OUTPUT_TOKENS — Максимум токенов для вывода MCP-сервера. По умолчанию: 100000.

Конфигурация модели

  • ANTHROPIC_MODEL — Название основной модели, используемой для ответов чата.
  • ANTHROPIC_DEFAULT_OPUS_MODEL — Модель, используемая для сложных подзадач, требующих наивысших возможностей.
  • ANTHROPIC_DEFAULT_SONNET_MODEL — Модель, используемая для сбалансированных подзадач (скорость против интеллекта).
  • ANTHROPIC_DEFAULT_HAIKU_MODEL — Модель, используемая для быстрых, легких подзадач.
  • CLAUDE_CODE_SUBAGENT_MODEL — Модель, используемая для операций субагента Claude Code (разветвленные агенты).
  • MODEL_CONTEXT_LENGTH — Размер контекстного окна в токенах. Используется для расчета стоимости и отображения.

Цены (за миллион токенов)

  • MODEL_INPUT_PRICE — Цена входного токена.
  • MODEL_OUTPUT_PRICE — Цена выходного токена.
  • MODEL_CACHE_READ_PRICE — Цена токена чтения кеша.
  • MODEL_CACHE_WRITE_PRICE — Цена токена записи кеша.

Управление поведением

  • CLAUDE_DISABLE_EXPERIMENTAL_BETAS — Установите в true, чтобы отключить экспериментальные бета-функции (рекомендуется для сторонних поставщиков).
  • DISABLE_NON_ESSENTIAL_MODEL_CALLS — Установите в true, чтобы отключить несущественные вызовы API модели (рекомендуется для сторонних поставщиков).
  • ENABLE_TOOL_SEARCH — Установите в false, чтобы отключить поиск инструментов (используется некоторыми поставщиками, которые не поддерживают его).

Примечание: При создании окружения из встроенного поставщика (Anthropic, z.ai, OpenRouter и т. д.) большинство переменных предварительно настраивается автоматически. Вам нужно только предоставить свой ключ API — шаблон поставщика заполняет названия моделей, базовый URL, цены и флаги поведения. См. раздел Настройка первого окружения в руководстве “Начало работы”.


Что такое окружения?

Окружение — это именованная коллекция переменных уровня Claude Code, которые ИИ использует при ответе на ваши сообщения. Вместо жесткого кодирования одного ключа API или названия модели вы можете создать несколько окружений и переключаться между ними на лету.

Например, вы можете создать:

  • Claude — настроен с ключом API Anthropic и моделью Claude
  • GPT-4 — настроен с ключом API OpenRouter и GPT-4
  • GLM — настроен с ключом API z.ai и моделью GLM
  • Testing — более дешевая или быстрая модель для экспериментов

Каждое окружение имеет свой набор переменных. При переключении окружений ИИ немедленно начинает использовать новую конфигурацию для всех последующих сообщений.

Иерархическое наследование: Названия окружений поддерживают наследование на основе сегментов, разделенных дефисами. Например, окружение с именем glm-5-turbo автоматически наследует переменные из glm-5 и glm. Это позволяет определить общие настройки (например, ключ API и базовый URL) в родительском окружении и переопределить только то, что отличается в дочерних окружениях (например, название модели или цены). Дочерние переменные всегда имеют приоритет над родительскими переменными.


Просмотр окружений

Перейдите в раздел Окружения из главного меню. Страница окружений отображает все настроенные окружения, каждое показывает свое имя и ключевые переменные на первый взгляд. Нажмите на любое окружение, чтобы открыть его страницу подробностей, где вы можете просматривать и редактировать все переменные.

Пункт меню Окружения и список окружений

Страница подробностей окружения

Когда вы нажимаете на окружение, открывается его страница подробностей, отображающая все переменные в виде пар “ключ-значение”. Здесь вы настраиваете и точно настраиваете каждое окружение.

Страница подробностей окружения, отображающая пары ключ-значение

Редактирование переменной: Нажмите на поле значения и введите новое значение. Изменения сохраняются автоматически после короткой задержки — не нужно нажимать кнопку сохранения.

Добавление переменной: Нажмите “Add Variable”, чтобы создать новую пару “ключ-значение”. Введите имя переменной и ее значение.

Добавление ссылочной переменной: Нажмите “Add Reference Variable”, чтобы создать переменную, значение которой ссылается на другую переменную. Это полезно для поддержания организации вашей конфигурации (см. раздел Подстановка переменных ниже).

Изменение порядка переменных: Перетаскивайте переменные вверх или вниз, чтобы расположить их в предпочтительном порядке. Это чисто организационная мера — это не влияет на работу переменных.

Контекстное меню: Щелкните правой кнопкой мыши по переменной для дополнительных опций, таких как редактирование, удаление или копирование.


Подстановка переменных

Переменные могут ссылаться на другие переменные, используя синтаксис $VARIABLE_NAME. При использовании окружения ссылки автоматически разрешаются в их фактические значения.

Например, вы можете настроить свои переменные так:

  • API_KEY = sk-abc123... (ваш фактический ключ API)
  • BASE_URL = https://api.example.com
  • FULL_ENDPOINT = $BASE_URL/v1/chat (ссылается на BASE_URL)

Этот подход поддерживает вашу конфигурацию чистой и поддерживаемой. Измените базовый URL один раз, и каждая переменная, которая ссылается на него, обновляется автоматически. Установите свой ключ API в одном месте и ссылайтесь на него по всей конфигурации.

Совет по безопасности: Синтаксис $VARIABLE_NAME также работает с системными переменными окружения. Это означает, что вы можете предоставить конфиденциальные значения (ключи API, ключи лицензии, пароли) через переменные окружения Docker, системные переменные окружения или аргументы CLI и ссылаться на них в environments.yml, не фиксируя никаких секретов в репозитории:

# .pastukhov/environments.yml — безопасно для коммита
environments:
  production:
    variables:
      - ANTHROPIC_API_KEY=$MY_API_KEY          # разрешается из системного env во время выполнения
      - ANTHROPIC_AUTH_TOKEN=$MY_AUTH_TOKEN     # не зафиксировано в git
      - ANTHROPIC_BASE_URL=https://api.anthropic.com  # не чувствительно, можно коммитить

Таким образом фактические секретные значения остаются в вашей конфигурации Docker (файл compose, файл .env или флаги -e), а environments.yml остается безопасным для коммита и совместного использования.


Создание нового окружения

Чтобы создать новое окружение:

Диалог нового окружения для создания окружения
  1. Перейдите на страницу Окружения из главного меню
  2. Нажмите “New Environment” или используйте контекстное меню
  3. Введите имя для окружения (например: “Claude” или “GPT-4”)
  4. Добавьте необходимые переменные для вашего поставщика ИИ (обычно ключ API, название модели и базовый URL)
  5. Добавьте любые дополнительные переменные, необходимые вашему проекту
  6. Окружение готово к использованию — переключитесь на него из поля ввода чата

Переименование окружения

Нажмите на имя окружения на странице окружений, чтобы открыть редактор имени. Введите новое имя и подтвердите. Переименование применяется везде, где упоминается окружение, включая селектор поля ввода чата.


Переключение окружений в чате

Самый быстрый способ переключения окружений — напрямую из области ввода чата:

Селектор окружений в элементе управления вводом сообщений
  1. Найдите выпадающий селектор окружений рядом с полем ввода чата
  2. Нажмите на него, чтобы увидеть список доступных окружений
  3. Выберите окружение, которое хотите использовать
  4. Все последующие сообщения будут использовать конфигурацию выбранного окружения

Переключение происходит мгновенно — вам не нужно начинать новую сессию чата или обновлять страницу. ИИ начнет использовать новую модель и настройки немедленно для вашего следующего сообщения. См. раздел Чат для получения более подробной информации об области ввода чата.