Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

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

PRX читает переменные окружения для API-ключей, путей конфигурации и переопределений во время работы. Переменные окружения имеют приоритет над значениями в config.toml для критически важных с точки зрения безопасности полей, таких как API-ключи.

Пути конфигурации

ПеременнаяПо умолчаниюОписание
OPENPRX_CONFIG_DIR~/.openprxПереопределение каталога конфигурации. PRX ищет config.toml и config.d/ внутри этого каталога
OPENPRX_WORKSPACE~/.openprx/workspaceПереопределение каталога рабочей области (память, сессии, данные)

Когда OPENPRX_CONFIG_DIR задана, она имеет приоритет над OPENPRX_WORKSPACE и маркером активной рабочей области.

Порядок определения каталога конфигурации:

  1. OPENPRX_CONFIG_DIR (наивысший приоритет)
  2. OPENPRX_WORKSPACE
  3. Маркер активной рабочей области (~/.openprx/active_workspace.toml)
  4. ~/.openprx/ (по умолчанию)

API-ключи провайдеров

Для каждого провайдера существует выделенная переменная окружения. PRX проверяет их перед обращением к полю api_key в config.toml.

Основные провайдеры

ПеременнаяПровайдер
ANTHROPIC_API_KEYAnthropic (Claude)
OPENAI_API_KEYOpenAI
GEMINI_API_KEYGoogle Gemini
GOOGLE_API_KEYGoogle Gemini (альтернативная)
OPENROUTER_API_KEYOpenRouter
OLLAMA_API_KEYOllama (обычно не требуется)
GLM_API_KEYZhipu GLM
ZAI_API_KEYZ.AI
MINIMAX_API_KEYMinimax
MOONSHOT_API_KEYMoonshot
DASHSCOPE_API_KEYAlibaba Qwen (DashScope)

OAuth-токены

Некоторые провайдеры поддерживают OAuth-аутентификацию в дополнение к (или вместо) API-ключей:

ПеременнаяПровайдерОписание
ANTHROPIC_OAUTH_TOKENAnthropicOAuth-токен Claude Code
CLAUDE_CODE_ACCESS_TOKENAnthropicТокен доступа Claude Code (альтернативный)
CLAUDE_CODE_REFRESH_TOKENAnthropicТокен обновления Claude Code для автопродления
MINIMAX_OAUTH_TOKENMinimaxOAuth-токен доступа Minimax
MINIMAX_OAUTH_REFRESH_TOKENMinimaxOAuth-токен обновления Minimax
MINIMAX_OAUTH_CLIENT_IDMinimaxПереопределение ID клиента OAuth
MINIMAX_OAUTH_REGIONMinimaxРегион OAuth (global или cn)
QWEN_OAUTH_TOKENQwenOAuth-токен доступа Qwen
QWEN_OAUTH_REFRESH_TOKENQwenOAuth-токен обновления Qwen
QWEN_OAUTH_CLIENT_IDQwenПереопределение ID клиента OAuth Qwen
QWEN_OAUTH_RESOURCE_URLQwenПереопределение URL ресурса OAuth Qwen

Совместимые / сторонние провайдеры

ПеременнаяПровайдер
GROQ_API_KEYGroq
MISTRAL_API_KEYMistral
DEEPSEEK_API_KEYDeepSeek
XAI_API_KEYxAI (Grok)
TOGETHER_API_KEYTogether AI
FIREWORKS_API_KEYFireworks AI
PERPLEXITY_API_KEYPerplexity
COHERE_API_KEYCohere
NVIDIA_API_KEYNVIDIA NIM
VENICE_API_KEYVenice
LLAMACPP_API_KEYllama.cpp server
KIMI_CODE_API_KEYKimi Code (Moonshot)
QIANFAN_API_KEYBaidu Qianfan
CLOUDFLARE_API_KEYCloudflare AI
VERCEL_API_KEYVercel AI

Резервный вариант

ПеременнаяОписание
API_KEYОбщий резервный вариант, используемый когда провайдер-специфичная переменная не задана

Переменные инструментов и каналов

ПеременнаяОписание
BRAVE_API_KEYAPI-ключ Brave Search (для [web_search] с provider = "brave")
GITHUB_TOKENПерсональный токен доступа GitHub (используется навыками и интеграциями)
GOOGLE_APPLICATION_CREDENTIALSПуть к файлу Google Cloud ADC (Gemini через сервисный аккаунт)

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

ПеременнаяОписание
OPENPRX_VERSIONПереопределение строки отображаемой версии
OPENPRX_AUTOSTART_CHANNELSУстановите в "1" для автоматического запуска слушателей каналов при загрузке
OPENPRX_EVOLUTION_CONFIGПереопределение пути к конфигурации эволюции
OPENPRX_EVOLUTION_DEBUG_RAWВключение необработанного отладочного логирования эволюции

Подстановка переменных в конфигурации

PRX не поддерживает нативное раскрытие синтаксиса ${VAR_NAME} внутри config.toml. Однако подстановку переменных окружения можно реализовать следующими способами:

1. Использование переменных окружения напрямую

Для API-ключей PRX автоматически проверяет соответствующую переменную окружения. Их не нужно указывать в файле конфигурации:

toml
# api_key не нужен -- PRX автоматически проверяет ANTHROPIC_API_KEY
default_provider = "anthropic"
default_model = "anthropic/claude-sonnet-4-6"

2. Использование обёртки оболочки

Генерация config.toml из шаблона с помощью envsubst или аналогичного инструмента:

bash
envsubst < config.toml.template > ~/.openprx/config.toml

3. Использование разделённой конфигурации с секретами

Храните секреты в отдельном файле, генерируемом из переменных окружения при развёртывании:

bash
# Генерация фрагмента секретов
cat > ~/.openprx/config.d/secrets.toml << EOF
api_key = "$ANTHROPIC_API_KEY"

[channels_config.telegram]
bot_token = "$TELEGRAM_BOT_TOKEN"
EOF

Поддержка файлов .env

PRX не загружает файлы .env автоматически. Если вам нужна поддержка файлов .env, используйте один из следующих подходов:

С systemd

Добавьте EnvironmentFile в ваш юнит-файл сервиса:

ini
[Service]
EnvironmentFile=/opt/openprx/.env
ExecStart=/usr/local/bin/openprx

С обёрткой оболочки

Загрузите файл .env перед запуском PRX:

bash
#!/bin/bash
set -a
source /opt/openprx/.env
set +a
exec openprx

С direnv

Если вы используете direnv, разместите файл .envrc в вашем рабочем каталоге:

bash
# .envrc
export ANTHROPIC_API_KEY="sk-ant-..."
export TELEGRAM_BOT_TOKEN="123456:ABC-DEF..."

Рекомендации по безопасности

  • Никогда не коммитьте API-ключи в систему контроля версий. Используйте переменные окружения или зашифрованные секреты.
  • Подсистема [secrets] PRX шифрует чувствительные поля в config.toml с помощью ChaCha20-Poly1305. Включите её через [secrets] encrypt = true (включена по умолчанию).
  • .dockerignore, поставляемый с PRX, исключает файлы .env и .env.* из сборок контейнеров.
  • Журналы аудита автоматически маскируют API-ключи и токены.
  • При использовании OPENPRX_CONFIG_DIR для указания на общий каталог убедитесь в корректности прав доступа к файлам (chmod 600 config.toml).

Released under the Apache-2.0 License.