88API88API
使用ガイドAPIリファレンスAIアプリケーションヘルプとサポート

環境変数設定ガイド

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

ヒント

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

基本設定

環境変数説明デフォルト値
PORTサービスリスニングポート3000PORT=8080
TZタイムゾーン設定Asia/ShanghaiTZ=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アイドル接続プール最大接続数100SQL_MAX_IDLE_CONNS=50
SQL_MAX_OPEN_CONNS接続プール最大オープン接続数1000SQL_MAX_OPEN_CONNS=500
SQL_CONN_MAX_LIFETIME接続の最大ライフタイム(分)60SQL_CONN_MAX_LIFETIME=120
LOG_SQL_DSNログテーブル独立データベース接続文字列-LOG_SQL_DSN=root:123456@tcp(localhost:3306)/oneapi_logs
SQLITE_BUSY_TIMEOUTSQLiteロック待機タイムアウト(ミリ秒)3000SQLITE_BUSY_TIMEOUT=5000

キャッシュ設定

環境変数説明デフォルト値
REDIS_CONN_STRINGRedis接続文字列-REDIS_CONN_STRING=redis://default:redispw@localhost:6379
MEMORY_CACHE_ENABLEDインメモリキャッシュを有効にするかどうかfalseMEMORY_CACHE_ENABLED=true
REDIS_CONN_POOL_SIZERedis接続プールサイズ-REDIS_CONN_POOL_SIZE=10
REDIS_PASSWORDRedisクラスターまたはセンチネルモードのパスワード-REDIS_PASSWORD=your_password
REDIS_MASTER_NAMERedisセンチネルモードのマスターノード名-REDIS_MASTER_NAME=mymaster
BATCH_UPDATE_ENABLEDデータベース一括更新の集約を有効にするfalseBATCH_UPDATE_ENABLED=true
BATCH_UPDATE_INTERVAL一括更新集約の時間間隔(秒)5BATCH_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キャッシュとデータベースの同期頻度(秒)600SYNC_FREQUENCY=60
NODE_TYPEノードタイプmasterNODE_TYPE=slave
INITIAL_ROOT_TOKEN初回起動時に作成されるrootユーザーのトークン-INITIAL_ROOT_TOKEN=your_token
INITIAL_ROOT_ACCESS_TOKEN初回起動時に作成されるシステム管理トークン-INITIAL_ROOT_ACCESS_TOKEN=your_token

クラスターデプロイ

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

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

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

リクエスト制限設定

環境変数説明デフォルト値
GLOBAL_API_RATE_LIMITグローバルAPIレート制限(単一IP、3分間)180GLOBAL_API_RATE_LIMIT=100
GLOBAL_WEB_RATE_LIMITグローバルWebレート制限(単一IP、3分間)60GLOBAL_WEB_RATE_LIMIT=30
RELAY_TIMEOUTリレーリクエストのタイムアウト時間(秒)-RELAY_TIMEOUT=60
USER_CONTENT_REQUEST_TIMEOUTユーザーコンテンツダウンロードのタイムアウト時間(秒)-USER_CONTENT_REQUEST_TIMEOUT=30
STREAMING_TIMEOUTストリーミングの1回あたりの応答タイムアウト時間(秒)60STREAMING_TIMEOUT=120
MAX_FILE_DOWNLOAD_MB最大ファイルダウンロードサイズ(MB)20MAX_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チャネルを一括更新する際のリクエスト間隔(秒)0POLLING_INTERVAL=5
ENABLE_METRICリクエスト成功率に基づいてチャネルを無効にするかどうかfalseENABLE_METRIC=true
METRIC_QUEUE_SIZEリクエスト成功率統計キューサイズ10METRIC_QUEUE_SIZE=20
METRIC_SUCCESS_RATE_THRESHOLDリクエスト成功率のしきい値0.8METRIC_SUCCESS_RATE_THRESHOLD=0.7
TEST_PROMPTモデルテスト時のユーザープロンプトPrint your model name exactly...TEST_PROMPT=Hello

代理配置

环境变量说明默认值示例
RELAY_PROXY中継请求使用的代理-RELAY_PROXY=http://127.0.0.1:7890
USER_CONTENT_REQUEST_PROXY用户内容请求使用的代理-USER_CONTENT_REQUEST_PROXY=http://127.0.0.1:7890

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

環境変数説明デフォルト値
FORCE_STREAM_OPTIONクライアントのstream_optionsパラメータを上書きするtrueFORCE_STREAM_OPTION=false
GET_MEDIA_TOKEN画像トークンをカウントするかどうかtrueGET_MEDIA_TOKEN=false
GET_MEDIA_TOKEN_NOT_STREAM非ストリームモードで画像トークンをカウントするかどうかtrueGET_MEDIA_TOKEN_NOT_STREAM=false
UPDATE_TASK非同期タスク(MJ、Suno)を更新するかどうかtrueUPDATE_TASK=false
ENFORCE_INCLUDE_USAGEストリームモードでusageの返却を強制するfalseENFORCE_INCLUDE_USAGE=true
TIKTOKEN_CACHE_DIRTiktokenエンコーダーキャッシュディレクトリ。トークン分割ファイルを格納し、ネットワークダウンロードを回避するために使用-TIKTOKEN_CACHE_DIR=/cache/tiktoken
DATA_GYM_CACHE_DIRDataGymキャッシュディレクトリ-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_VERSIONAzureチャネルのデフォルトAPIバージョン2024-12-01-previewAZURE_DEFAULT_API_VERSION=2023-05-15
COHERE_SAFETY_SETTINGCohereモデルのセキュリティ設定NONECOHERE_SAFETY_SETTING=CONTEXTUAL
GEMINI_VISION_MAX_IMAGE_NUMGeminiモデルの最大画像数16GEMINI_VISION_MAX_IMAGE_NUM=8
GEMINI_VERSIONGeminiバージョンv1GEMINI_VERSION=v1beta
DIFY_DEBUGDifyチャネルのワークフローとノード情報の出力trueDIFY_DEBUG=false

その他の設定

環境変数説明デフォルト値
EMAIL_SERVERメールサーバー設定-EMAIL_SERVER=smtp.example.com:25
EMAIL_FROMメール送信元アドレス-EMAIL_FROM=noreply@example.com
EMAIL_PASSWORDメールサーバーパスワード-EMAIL_PASSWORD=yourpassword
ERROR_LOG_ENABLEDエラーログを記録し、フロントエンドに表示するかどうかfalseERROR_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配置说明ドキュメントを参照してください。