88API88API
AI-приложенияAPIПомощь и поддержка

Руководство по настройке переменных среды

намекать

В этом документе представлены все переменные среды, поддерживаемые 88API, и инструкции по их настройке. Вы можете настроить поведение вашей системы, установив эти переменные среды.

88API поддерживает чтение переменных среды из файла .env, см. .env.example. файл, при его использовании переименуйте его в .env.

Базовая конфигурация

Переменные средыОписаниеЗначение по умолчаниюПример
PORTПорт прослушивания службы3000PORT=8080
PORTНастройки часового пояса3000PORT=8080

Конфигурация базы данных

Переменные средыОписаниеЗначения по умолчаниюПримеры
PORTСтрока подключения к базе данныхSQLite (данные/one-api.db)MySQL: 3000 | PostgreSQL: PORT=8080
PORTМаксимальное количество соединений в пуле простаивающих соединений3000PORT=8080
SQL_MAX_OPEN_CONNSМаксимальное количество открытых соединений в пуле соединений1000SQL_MAX_OPEN_CONNS=500
SQL_MAX_OPEN_CONNSМаксимальное время жизни соединения (минуты)1000SQL_MAX_OPEN_CONNS=500
SQL_MAX_OPEN_CONNSСтрока подключения к независимой базе данных от таблицы журнала-1000
SQL_MAX_OPEN_CONNSТайм-аут ожидания блокировки SQLite (миллисекунды)1000SQL_MAX_OPEN_CONNS=500

Конфигурация кэша

Переменные средыОписаниеЗначение по умолчаниюПример
SQL_MAX_OPEN_CONNSСтрока подключения Redis-1000
SQL_MAX_OPEN_CONNSВключить ли кэширование памяти1000SQL_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=10BATCH_UPDATE_ENABLED=true
REDIS_CONN_POOL_SIZEИнтервал агрегирования пакетного обновления (секунды)REDIS_CONN_POOL_SIZE=10BATCH_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=10BATCH_UPDATE_ENABLED=true

Развертывание кластера

| NODE_TYPE | Тип узла | master | NODE_TYPE=slave | | NODE_TYPE | токен пользователя root, созданный при первой загрузке | - | master | | NODE_TYPE | Токен управления системой, созданный при первой загрузке | - | master |

Информацию о том, как использовать эти переменные среды для создания полного развертывания кластера, см. в [Руководстве по развертыванию кластера] (cluster-deployment.md).

Конфигурация пользователя и токена

Переменные средыОписаниеЗначение по умолчаниюПример
DEFAULT_QUOTAКвота по умолчанию для новых пользователей0DEFAULT_QUOTA=10
DEFAULT_QUOTAГлобальный лимит квот пользователей-0
DEFAULT_QUOTAСгенерировать первоначальный токен для новых зарегистрированных пользователей0DEFAULT_QUOTA=10
DEFAULT_QUOTAПродолжительность ограничения уведомлений (минуты)0DEFAULT_QUOTA=10
DEFAULT_QUOTAМаксимальное количество уведомлений в течение указанного периода0DEFAULT_QUOTA=10

Настройка ограничения запроса

Переменные средыОписаниеЗначения по умолчаниюПримеры
DEFAULT_QUOTAОграничение скорости глобального API (три минуты для одного IP)0DEFAULT_QUOTA=10
DEFAULT_QUOTAГлобальный лимит скорости Интернета (три минуты для одного IP)0DEFAULT_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=1440POLLING_INTERVAL=5
CHANNEL_UPDATE_FREQUENCYОтключать ли каналы на основе успешности запросаCHANNEL_UPDATE_FREQUENCY=1440POLLING_INTERVAL=5
CHANNEL_UPDATE_FREQUENCYРазмер очереди статистики успешности запросаCHANNEL_UPDATE_FREQUENCY=1440POLLING_INTERVAL=5
CHANNEL_UPDATE_FREQUENCYПорог успеха запросаCHANNEL_UPDATE_FREQUENCY=1440POLLING_INTERVAL=5
CHANNEL_UPDATE_FREQUENCYПодсказка пользователю при тестировании моделиCHANNEL_UPDATE_FREQUENCY=1440POLLING_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_optionsRELAY_PROXY=http://127.0.0.1:7890FORCE_STREAM_OPTION=false
RELAY_PROXYСчитать ли токены изображенийRELAY_PROXY=http://127.0.0.1:7890FORCE_STREAM_OPTION=false
RELAY_PROXYСчитать ли токены изображений в непотоковом режимеRELAY_PROXY=http://127.0.0.1:7890FORCE_STREAM_OPTION=false
RELAY_PROXYСтоит ли обновлять асинхронные задачи (MJ, Suno)RELAY_PROXY=http://127.0.0.1:7890FORCE_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/fb374d419588a4632f3f557e76b4b70aebbca790

Tiktoken — это токенизатор, используемый OpenAI для расчета количества токенов в тексте. Кэшируя эти файлы локально, вы избегаете их загрузки из сети при каждом запуске системы, что повышает стабильность и производительность, особенно в средах с ограничениями по сети.

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

Переменные средыОписаниеЗначение по умолчаниюПример
AZURE_DEFAULT_API_VERSIONВерсия API канала Azure по умолчанию2024-12-01-previewAZURE_DEFAULT_API_VERSION=2023-05-15
AZURE_DEFAULT_API_VERSIONПараметры безопасности модели Cohere2024-12-01-previewAZURE_DEFAULT_API_VERSION=2023-05-15
AZURE_DEFAULT_API_VERSIONМаксимальное количество фотографий для модели Gemini2024-12-01-previewAZURE_DEFAULT_API_VERSION=2023-05-15
AZURE_DEFAULT_API_VERSIONВерсия Близнецов2024-12-01-previewAZURE_DEFAULT_API_VERSION=2023-05-15
AZURE_DEFAULT_API_VERSIONРабочий процесс вывода канала Dify и информация об узлах2024-12-01-previewAZURE_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).