コンテンツにスキップ

環境変数設定ガイド

本ドキュメントでは、New APIがサポートするすべての環境変数とその設定について説明します。これらの環境変数を設定することで、システムの動作をカスタマイズできます。

ヒント

New API は、.env ファイルから環境変数を読み込むことをサポートしています。.env.example ファイルを参照し、使用する際は .env にリネームしてください。

基本設定

環境変数 説明 デフォルト値
PORT サービスリスニングポート 3000 PORT=8080
TZ タイムゾーン設定 Asia/Shanghai TZ=America/New_York

データベース設定

環境変数 説明 デフォルト値
SQL_DSN データベース接続文字列 SQLite (data/one-api.db) MySQL: SQL_DSN=root:123456@tcp(localhost:3306)/new-api | PostgreSQL: SQL_DSN=postgresql://root:123456@postgres:5432/new-api
SQL_MAX_IDLE_CONNS アイドル接続プール最大接続数 100 SQL_MAX_IDLE_CONNS=50
SQL_MAX_OPEN_CONNS 接続プール最大オープン接続数 1000 SQL_MAX_OPEN_CONNS=500
SQL_CONN_MAX_LIFETIME 接続の最大ライフタイム (分) 60 SQL_CONN_MAX_LIFETIME=120
LOG_SQL_DSN ログテーブル用独立データベース接続文字列 - LOG_SQL_DSN=root:123456@tcp(localhost:3306)/oneapi_logs
SQLITE_BUSY_TIMEOUT SQLiteロック待機タイムアウト (ミリ秒) 3000 SQLITE_BUSY_TIMEOUT=5000

キャッシュ設定

環境変数 説明 デフォルト値
REDIS_CONN_STRING Redis接続文字列 - REDIS_CONN_STRING=redis://default:redispw@localhost:6379
MEMORY_CACHE_ENABLED インメモリキャッシュを有効にするか false MEMORY_CACHE_ENABLED=true
REDIS_CONN_POOL_SIZE Redis接続プールサイズ - REDIS_CONN_POOL_SIZE=10
REDIS_PASSWORD RedisクラスターまたはSentinelモードのパスワード - REDIS_PASSWORD=your_password
REDIS_MASTER_NAME Redis Sentinelモードのマスターノード名 - REDIS_MASTER_NAME=mymaster
BATCH_UPDATE_ENABLED データベース一括更新の集約を有効化 false BATCH_UPDATE_ENABLED=true
BATCH_UPDATE_INTERVAL 一括更新集約の時間間隔 (秒) 5 BATCH_UPDATE_INTERVAL=10

マルチノードとセキュリティ設定

環境変数 説明 デフォルト値
SESSION_SECRET セッションキー (マルチサーバーデプロイに必須) - SESSION_SECRET=random_string
CRYPTO_SECRET 暗号化キー (データベース内容の暗号化に使用) - CRYPTO_SECRET=your_crypto_secret
FRONTEND_BASE_URL フロントエンドベースURL - FRONTEND_BASE_URL=https://your-domain.com
SYNC_FREQUENCY キャッシュとデータベースの同期頻度 (秒) 600 SYNC_FREQUENCY=60
NODE_TYPE ノードタイプ master NODE_TYPE=slave
INITIAL_ROOT_TOKEN 初回起動時に作成されるrootユーザーのトークン - INITIAL_ROOT_TOKEN=your_token
INITIAL_ROOT_ACCESS_TOKEN 初回起動時に作成されるシステム管理トークン - INITIAL_ROOT_ACCESS_TOKEN=your_token

クラスターデプロイ

これらの環境変数を使用して完全なクラスターデプロイを構築する方法については、クラスターデプロイガイドを参照してください。

ユーザーおよびトークン設定

環境変数 説明 デフォルト値
DEFAULT_QUOTA 新規ユーザーのデフォルトクォータ 0 DEFAULT_QUOTA=10
GLOBAL_USER_QUOTA グローバルユーザーのクォータ制限 - GLOBAL_USER_QUOTA=100
GENERATE_DEFAULT_TOKEN 新規登録ユーザー向けに初期トークンを生成するか false GENERATE_DEFAULT_TOKEN=true
NOTIFICATION_LIMIT_DURATION_MINUTE 通知制限の持続時間 (分) 10 NOTIFICATION_LIMIT_DURATION_MINUTE=15
NOTIFY_LIMIT_COUNT 指定された持続時間内の最大通知数 2 NOTIFY_LIMIT_COUNT=3

リクエスト制限設定

環境変数 説明 デフォルト値
GLOBAL_API_RATE_LIMIT グローバルAPIレート制限 (単一IP、3分間) 180 GLOBAL_API_RATE_LIMIT=100
GLOBAL_WEB_RATE_LIMIT グローバルWebレート制限 (単一IP、3分間) 60 GLOBAL_WEB_RATE_LIMIT=30
RELAY_TIMEOUT リレーリクエストのタイムアウト時間 (秒) - RELAY_TIMEOUT=60
USER_CONTENT_REQUEST_TIMEOUT ユーザーコンテンツダウンロードのタイムアウト時間 (秒) - USER_CONTENT_REQUEST_TIMEOUT=30
STREAMING_TIMEOUT ストリーミング応答の単一応答タイムアウト時間 (秒) 60 STREAMING_TIMEOUT=120
MAX_FILE_DOWNLOAD_MB 最大ファイルダウンロードサイズ (MB) 20 MAX_FILE_DOWNLOAD_MB=50

RELAY_TIMEOUT 設定に関する警告

環境変数 RELAY_TIMEOUT を設定する際は注意が必要です。短すぎる値を設定すると、以下の問題が発生する可能性があります。

  • アップストリームAPIではリクエストが完了し課金されたにもかかわらず、ローカル側でタイムアウトにより課金が完了しない

  • 課金の非同期性が発生し、システム損失につながる可能性がある

  • ご自身で何をしているか理解している場合を除き、設定しないことを推奨します

チャネル管理設定

環境変数 説明 デフォルト値
CHANNEL_UPDATE_FREQUENCY チャネル残高の定期更新頻度 (分) - CHANNEL_UPDATE_FREQUENCY=1440
CHANNEL_TEST_FREQUENCY チャネルの定期チェック頻度 (分) - CHANNEL_TEST_FREQUENCY=1440
POLLING_INTERVAL チャネルの一括更新時のリクエスト間隔 (秒) 0 POLLING_INTERVAL=5
ENABLE_METRIC リクエスト成功率に基づいてチャネルを無効化するか false ENABLE_METRIC=true
METRIC_QUEUE_SIZE リクエスト成功率統計キューのサイズ 10 METRIC_QUEUE_SIZE=20
METRIC_SUCCESS_RATE_THRESHOLD リクエスト成功率のしきい値 0.8 METRIC_SUCCESS_RATE_THRESHOLD=0.7
TEST_PROMPT モデルテスト時のユーザープロンプト Print your model name exactly... TEST_PROMPT=Hello

モデルとリクエスト処理設定

環境変数 説明 デフォルト値
FORCE_STREAM_OPTION クライアントの stream_options パラメータを上書きする true FORCE_STREAM_OPTION=false
GET_MEDIA_TOKEN 画像トークンをカウントするか true GET_MEDIA_TOKEN=false
GET_MEDIA_TOKEN_NOT_STREAM 非ストリームモードで画像トークンをカウントするか true GET_MEDIA_TOKEN_NOT_STREAM=false
UPDATE_TASK 非同期タスク (MJ、Suno) を更新するか true UPDATE_TASK=false
ENFORCE_INCLUDE_USAGE ストリームモードで usage の返却を強制する false ENFORCE_INCLUDE_USAGE=true
TIKTOKEN_CACHE_DIR Tiktokenエンコーダーキャッシュディレクトリ。トークン化ファイルを保存し、ネットワークダウンロードを回避するために使用されます - TIKTOKEN_CACHE_DIR=/cache/tiktoken
DATA_GYM_CACHE_DIR DataGymキャッシュディレクトリ - DATA_GYM_CACHE_DIR=/cache/data_gym

Tiktokenファイル設定

tiktokenファイルをダウンロードした後、以下の方法でリネームしてください。

  • cl100k_base.tiktoken9b5ad71b2ce5302211f9c61530b329a4922fc6a4 にリネーム

  • o200k_base.tiktokenfb374d419588a4632f3f557e76b4b70aebbca790 にリネーム

これらのファイルは、TIKTOKEN_CACHE_DIRで指定されたディレクトリに配置する必要があります。これにより、トークン計算のパフォーマンスが向上し、ネットワーク依存が軽減されます。

Tiktoken設定例

# Docker環境の例
TIKTOKEN_CACHE_DIR=/app/data/tiktoken

# 次に、tiktokenファイルをダウンロードしてリネームした後、このディレクトリに配置します。
/app/data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4
/app/data/tiktoken/fb374d419588a4632f3f557e76b4b70aebbca790

TiktokenはOpenAIが使用するトークナイザーであり、テキストのトークン数を計算するために使用されます。これらのファイルをローカルにキャッシュすることで、システム起動のたびにネットワークからダウンロードするのを避け、特にネットワークが制限された環境での安定性とパフォーマンスを向上させることができます。

特定モデル設定

環境変数 説明 デフォルト値
AZURE_DEFAULT_API_VERSION AzureチャネルのデフォルトAPIバージョン 2024-12-01-preview AZURE_DEFAULT_API_VERSION=2023-05-15
COHERE_SAFETY_SETTING Cohereモデルのセキュリティ設定 NONE COHERE_SAFETY_SETTING=CONTEXTUAL
GEMINI_VISION_MAX_IMAGE_NUM Geminiモデルの最大画像数 16 GEMINI_VISION_MAX_IMAGE_NUM=8
GEMINI_VERSION Geminiバージョン v1 GEMINI_VERSION=v1beta
DIFY_DEBUG Difyチャネルでワークフローとノード情報を出力する true DIFY_DEBUG=false

その他の設定

環境変数 説明 デフォルト値
EMAIL_SERVER メールサーバー設定 - EMAIL_SERVER=smtp.example.com:25
EMAIL_FROM メール送信元アドレス - [email protected]
EMAIL_PASSWORD メールサーバーパスワード - EMAIL_PASSWORD=yourpassword
ERROR_LOG_ENABLE エラーログを記録し、フロントエンドに表示するか false ERROR_LOG_ENABLED=true

廃止された環境変数

以下の環境変数は廃止されました。システム設定画面の対応するオプションを使用してください。

環境変数 代替方法
GEMINI_MODEL_MAP システム設定 - モデル関連設定で設定してください
GEMINI_SAFETY_SETTING システム設定 - モデル関連設定で設定してください

マルチサーバーデプロイの例

マルチサーバーデプロイのシナリオでは、以下の環境変数を設定する必要があります。

マスターノード設定

# データベース設定 - リモートデータベースを使用
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

完全なクラスター設定

これは基本的なマルチノード設定の例にすぎません。完全なクラスターデプロイ設定、アーキテクチャの説明、およびベストプラクティスについては、クラスターデプロイガイドを参照してください。

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設定の説明ドキュメントを参照してください。