Руководство по настройке переменных среды
намекать
В этом документе представлены все переменные среды, поддерживаемые 88API, и инструкции по их настройке. Вы можете настроить поведение вашей системы, установив эти переменные среды.
88API поддерживает чтение переменных среды из файла .env, см. .env.example.
файл, при его использовании переименуйте его в .env.
Базовая конфигурация
| Переменные среды | Описание | Значение по умолчанию | Пример |
|---|---|---|---|
PORT | Порт прослушивания службы | 3000 | PORT=8080 |
PORT | Настройки часового пояса | 3000 | PORT=8080 |
Конфигурация базы данных
| Переменные среды | Описание | Значения по умолчанию | Примеры |
|---|---|---|---|
PORT | Строка подключения к базе данных | SQLite (данные/one-api.db) | MySQL: 3000 | PostgreSQL: PORT=8080 |
PORT | Максимальное количество соединений в пуле простаивающих соединений | 3000 | PORT=8080 |
SQL_MAX_OPEN_CONNS | Максимальное количество открытых соединений в пуле соединений | 1000 | SQL_MAX_OPEN_CONNS=500 |
SQL_MAX_OPEN_CONNS | Максимальное время жизни соединения (минуты) | 1000 | SQL_MAX_OPEN_CONNS=500 |
SQL_MAX_OPEN_CONNS | Строка подключения к независимой базе данных от таблицы журнала | - | 1000 |
SQL_MAX_OPEN_CONNS | Тайм-аут ожидания блокировки SQLite (миллисекунды) | 1000 | SQL_MAX_OPEN_CONNS=500 |
Конфигурация кэша
| Переменные среды | Описание | Значение по умолчанию | Пример |
|---|---|---|---|
SQL_MAX_OPEN_CONNS | Строка подключения Redis | - | 1000 |
SQL_MAX_OPEN_CONNS | Включить ли кэширование памяти | 1000 | SQL_MAX_OPEN_CONNS=500 |
REDIS_CONN_POOL_SIZE | Размер пула соединений Redis | - | REDIS_CONN_POOL_SIZE=10 |
REDIS_CONN_POOL_SIZE | Пароль кластера Redis или режима дозорного | - | REDIS_CONN_POOL_SIZE=10 |
REDIS_CONN_POOL_SIZE | Имя главного узла режима Redis Sentinel | - | REDIS_CONN_POOL_SIZE=10 |
REDIS_CONN_POOL_SIZE | Включить агрегирование пакетных обновлений базы данных | REDIS_CONN_POOL_SIZE=10 | BATCH_UPDATE_ENABLED=true |
REDIS_CONN_POOL_SIZE | Интервал агрегирования пакетного обновления (секунды) | REDIS_CONN_POOL_SIZE=10 | BATCH_UPDATE_ENABLED=true |
Многоузловая конфигурация и конфигурация безопасности
| Переменные среды | Описание | Значение по умолчанию | Пример |
|---|---|---|---|
REDIS_CONN_POOL_SIZE | Ключ сеанса (требуется для развертывания на нескольких компьютерах) | - | REDIS_CONN_POOL_SIZE=10 |
REDIS_CONN_POOL_SIZE | Ключ шифрования (шифрует содержимое базы данных) | - | REDIS_CONN_POOL_SIZE=10 |
REDIS_CONN_POOL_SIZE | Основной URL-адрес внешнего интерфейса | - | REDIS_CONN_POOL_SIZE=10 |
REDIS_CONN_POOL_SIZE | Частота синхронизации кэша и базы данных (секунды) | REDIS_CONN_POOL_SIZE=10 | BATCH_UPDATE_ENABLED=true |
Развертывание кластера
| NODE_TYPE | Тип узла | master | NODE_TYPE=slave |
| NODE_TYPE | токен пользователя root, созданный при первой загрузке | - | master |
| NODE_TYPE | Токен управления системой, созданный при первой загрузке | - | master |
Информацию о том, как использовать эти переменные среды для создания полного развертывания кластера, см. в [Руководстве по развертыванию кластера] (cluster-deployment.md).
Конфигурация пользователя и токена
| Переменные среды | Описание | Значение по умолчанию | Пример |
|---|---|---|---|
DEFAULT_QUOTA | Квота по умолчанию для новых пользователей | 0 | DEFAULT_QUOTA=10 |
DEFAULT_QUOTA | Глобальный лимит квот пользователей | - | 0 |
DEFAULT_QUOTA | Сгенерировать первоначальный токен для новых зарегистрированных пользователей | 0 | DEFAULT_QUOTA=10 |
DEFAULT_QUOTA | Продолжительность ограничения уведомлений (минуты) | 0 | DEFAULT_QUOTA=10 |
DEFAULT_QUOTA | Максимальное количество уведомлений в течение указанного периода | 0 | DEFAULT_QUOTA=10 |
Настройка ограничения запроса
| Переменные среды | Описание | Значения по умолчанию | Примеры |
|---|---|---|---|
DEFAULT_QUOTA | Ограничение скорости глобального API (три минуты для одного IP) | 0 | DEFAULT_QUOTA=10 |
DEFAULT_QUOTA | Глобальный лимит скорости Интернета (три минуты для одного IP) | 0 | DEFAULT_QUOTA=10 |
RELAY_TIMEOUT установил предупреждение
| RELAY_TIMEOUT | Тайм-аут запроса реле (секунды) | - | RELAY_TIMEOUT=60 |
| RELAY_TIMEOUT | Тайм-аут загрузки пользовательского контента (секунды) | - | RELAY_TIMEOUT=60 |
| RELAY_TIMEOUT | Таймаут для потоковой передачи одного ответа (секунды) | RELAY_TIMEOUT=60 | STREAMING_TIMEOUT=120 |
| RELAY_TIMEOUT | Максимальный размер загружаемого файла (МБ) | RELAY_TIMEOUT=60 | STREAMING_TIMEOUT=120 |
Будьте осторожны при настройке переменной среды RELAY_TIMEOUT. Установка слишком короткого значения может вызвать следующие проблемы:
-
Восходящий API выполнил запрос и выставил счет, но локальное выставление счетов не было завершено из-за тайм-аута.
-
Вызывает рассинхронизацию выставления счетов, что может привести к системным потерям.
-
Не рекомендуется, если вы не знаете, что делаете.
-
Конфигурация управления каналами
| Переменные среды | Описание | Значение по умолчанию | Пример |
|---|---|---|---|
CHANNEL_UPDATE_FREQUENCY | Регулярное обновление баланса канала (минуты) | - | CHANNEL_UPDATE_FREQUENCY=1440 |
CHANNEL_UPDATE_FREQUENCY | Периодическая проверка канала (минуты) | - | CHANNEL_UPDATE_FREQUENCY=1440 |
CHANNEL_UPDATE_FREQUENCY | Интервал запроса (секунды) при пакетном обновлении каналов | CHANNEL_UPDATE_FREQUENCY=1440 | POLLING_INTERVAL=5 |
CHANNEL_UPDATE_FREQUENCY | Отключать ли каналы на основе успешности запроса | CHANNEL_UPDATE_FREQUENCY=1440 | POLLING_INTERVAL=5 |
CHANNEL_UPDATE_FREQUENCY | Размер очереди статистики успешности запроса | CHANNEL_UPDATE_FREQUENCY=1440 | POLLING_INTERVAL=5 |
CHANNEL_UPDATE_FREQUENCY | Порог успеха запроса | CHANNEL_UPDATE_FREQUENCY=1440 | POLLING_INTERVAL=5 |
CHANNEL_UPDATE_FREQUENCY | Подсказка пользователю при тестировании модели | CHANNEL_UPDATE_FREQUENCY=1440 | POLLING_INTERVAL=5 |
Конфигурация агента
| Переменные среды | Описание | Значение по умолчанию | Пример |
|---|---|---|---|
RELAY_PROXY | Прокси, используемый для ретрансляции запросов | - | RELAY_PROXY=http://127.0.0.1:7890 |
RELAY_PROXY | Прокси, используемый для запросов пользовательского контента | - | RELAY_PROXY=http://127.0.0.1:7890 |
Конфигурация модели и обработки запросов
| Переменные среды | Описание | Значения по умолчанию | Примеры |
|---|---|---|---|
RELAY_PROXY | Переопределить параметр клиентаstream_options | RELAY_PROXY=http://127.0.0.1:7890 | FORCE_STREAM_OPTION=false |
RELAY_PROXY | Считать ли токены изображений | RELAY_PROXY=http://127.0.0.1:7890 | FORCE_STREAM_OPTION=false |
RELAY_PROXY | Считать ли токены изображений в непотоковом режиме | RELAY_PROXY=http://127.0.0.1:7890 | FORCE_STREAM_OPTION=false |
RELAY_PROXY | Стоит ли обновлять асинхронные задачи (MJ, Suno) | RELAY_PROXY=http://127.0.0.1:7890 | FORCE_STREAM_OPTION=false |
Конфигурация файла Tiktoken
| ENFORCE_INCLUDE_USAGE | Возвращение использования в режиме принудительного потока | false | ENFORCE_INCLUDE_USAGE=true |
| ENFORCE_INCLUDE_USAGE | Каталог кэша кодировщика Tiktoken, используемый для хранения файлов сегментации слов во избежание загрузки по сети | - | false |
| ENFORCE_INCLUDE_USAGE | Каталог кэша DataGym | - | false |
После загрузки файла tiktoken переименуйте его следующим образом:
ENFORCE_INCLUDE_USAGEпереименован вfalse.ENFORCE_INCLUDE_USAGEпереименован вfalse.
Эти файлы следует разместить в каталоге, указанном ENFORCE_INCLUDE_USAGE, чтобы повысить производительность расчета токенов и уменьшить зависимость от сети.
Пример конфигурации Tiktoken
# Пример среды Docker
TIKTOKEN_CACHE_DIR=/app/data/tiktoken
# Затем скачайте и переименуйте файл тиктокена и поместите его в этот каталог:
# /app/data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4
# /app/data/tiktoken/fb374d419588a4632f3f557e76b4b70aebbca790Tiktoken — это токенизатор, используемый OpenAI для расчета количества токенов в тексте. Кэшируя эти файлы локально, вы избегаете их загрузки из сети при каждом запуске системы, что повышает стабильность и производительность, особенно в средах с ограничениями по сети.
Конкретная конфигурация модели
| Переменные среды | Описание | Значение по умолчанию | Пример |
|---|---|---|---|
AZURE_DEFAULT_API_VERSION | Версия API канала Azure по умолчанию | 2024-12-01-preview | AZURE_DEFAULT_API_VERSION=2023-05-15 |
AZURE_DEFAULT_API_VERSION | Параметры безопасности модели Cohere | 2024-12-01-preview | AZURE_DEFAULT_API_VERSION=2023-05-15 |
AZURE_DEFAULT_API_VERSION | Максимальное количество фотографий для модели Gemini | 2024-12-01-preview | AZURE_DEFAULT_API_VERSION=2023-05-15 |
AZURE_DEFAULT_API_VERSION | Версия Близнецов | 2024-12-01-preview | AZURE_DEFAULT_API_VERSION=2023-05-15 |
AZURE_DEFAULT_API_VERSION | Рабочий процесс вывода канала Dify и информация об узлах | 2024-12-01-preview | AZURE_DEFAULT_API_VERSION=2023-05-15 |
Другие конфигурации
| Переменные среды | Описание | Значение по умолчанию | Пример |
|---|---|---|---|
AZURE_DEFAULT_API_VERSION | Конфигурация почтового сервера | - | 2024-12-01-preview |
AZURE_DEFAULT_API_VERSION | Адрес отправителя электронной почты | - | 2024-12-01-preview |
EMAIL_PASSWORD | Пароль почтового сервера | - | EMAIL_PASSWORD=yourpassword |
EMAIL_PASSWORD | Записывать и отображать журналы ошибок во внешнем интерфейсе | ложный | EMAIL_PASSWORD=yourpassword |
Устаревшие переменные среды
Следующие переменные среды устарели. Используйте соответствующие параметры в интерфейсе системных настроек:
| Переменные среды | Альтернативы |
|---|---|
EMAIL_PASSWORD | Пожалуйста, установите его в Системные настройки-Настройки, связанные с моделью |
EMAIL_PASSWORD | Пожалуйста, установите его в Системные настройки-Настройки, связанные с моделью |
Пример развертывания на нескольких машинах
В сценарии развертывания на нескольких компьютерах необходимо установить следующие переменные среды:
Конфигурация главного узла
# Конфигурация базы данных — использование удаленной базы данных
SQL_DSN=root:password@tcp(db-server:3306)/oneapi
# Конфигурация безопасности
SESSION_SECRET=your_unique_session_secret
CRYPTO_SECRET=your_unique_crypto_secret
# Конфигурация кэша Redis
REDIS_CONN_STRING=redis://default:password@redis-server:6379Конфигурация подчиненного узла
# Конфигурация базы данных — используйте ту же удаленную базу данных
SQL_DSN=root:password@tcp(db-server:3306)/oneapi
# Конфигурация безопасности — используйте тот же ключ, что и главный узел.
SESSION_SECRET=your_unique_session_secret
CRYPTO_SECRET=your_unique_crypto_secret
# Конфигурация кэша Redis — используйте тот же Redis в качестве главного узла.
REDIS_CONN_STRING=redis://default:password@redis-server:6379
# Настройки типа узла
NODE_TYPE=slave
# Необязательно: базовый URL-адрес внешнего интерфейса.
FRONTEND_BASE_URL=https://your-domain.com
# Дополнительно: частота синхронизации
SYNC_FREQUENCY=60Полная настройка кластера
Это всего лишь базовый пример конфигурации с несколькими узлами. Полную настройку развертывания кластера, описание архитектуры и рекомендации см. в [Руководстве по развертыванию кластера] (cluster-deployment.md).
Пример переменных среды в Docker Compose
Вот краткий пример установки переменных среды в файле конфигурации Docker Compose:
services:
new-api:
image: calciumion/new-api:latest
environment:
- TZ=Asia/Shanghai
- SQL_DSN=root:123456@tcp(mysql:3306)/oneapi
- REDIS_CONN_STRING=redis://default:redispw@redis:6379
- SESSION_SECRET=your_unique_session_secret
- CRYPTO_SECRET=your_unique_crypto_secret
- MEMORY_CACHE_ENABLED=true
- GENERATE_DEFAULT_TOKEN=true
- STREAMING_TIMEOUT=120
- CHANNEL_UPDATE_FREQUENCY=1440Полную настройку Docker Compose, включая дополнительные параметры настройки переменных среды, см. в документе [Инструкции по настройке Docker Compose] (docker-compose-yml.md).