環境変数の説明

公共変数

CONSOLE_API_URL

コンソールAPIのバックエンドのURLです。認証コールバックを組み合わせるために使用され、空の場合は同じドメインになります。例:https://api.console.dify.ai

CONSOLE_WEB_URL

コンソールウェブのフロントエンドのURLです。フロントエンドアドレスの一部を組み合わせたり、CORS設定に使用されます。空の場合は同じドメインになります。例:https://console.dify.ai

SERVICE_API_URL

サービスAPIのURLです。フロントエンドにサービスAPIのベースURLを表示するために使用されます。空の場合は同じドメインになります。例:https://api.dify.ai

APP_API_URL

WebアプリAPIのバックエンドURLです。フロントエンドAPIのバックエンドアドレスを宣言するために使用されます。空の場合は同じドメインになります。例:https://app.dify.ai

APP_WEB_URL

WebアプリのURLです。ファイルプレビューのためとフロントエンドにダウンロード用のURLを表示します、またはマルチモデル入力として使用されます。空の場合は、アプリと同じドメインになります。例:https://udify.app/

FILES_URL

ファイルプレビューまたはダウンロード用のURLプレフィックスです。ファイルプレビューやダウンロードURLをフロントエンドに表示したり、マルチモーダルモデルの入力として使用します。他人による偽造を防ぐため、画像プレビューURLは署名付きで、5分の有効期限があります。


サーバー側

MODE

起動モードです。dockerによる起動時にのみ有効で、ソースコード起動では無効です。

  • api

    APIサーバーを起動します。

  • worker

    非同期キューのワーカーを起動します。

DEBUG

デバッグモード。デフォルトはfalse。ローカル開発時にはこの設定をオンにすることを推奨します。これにより、モンキーパッチによって発生する問題を防ぐことができます。

FLASK_DEBUG

Flaskのデバッグモード。オンにすると、インターフェースでトレース情報が出力され、デバッグが容易になります。

SECRET_KEY

セッションクッキーを安全に署名し、データベース上の機密情報を暗号化するためのキー。

初回起動時にこの変数を設定する必要があります。

openssl rand -base64 42を使用して強力なキーを生成できます。

DEPLOY_ENV

デプロイ環境。

  • PRODUCTION(デフォルト)

    プロダクション環境。

  • TESTING

    テスト環境。フロントエンドページにはテスト環境を示す明確な色の識別が表示されます。

LOG_LEVEL

ログ出力レベル。デフォルトはINFO。プロダクション環境ではERRORに設定することを推奨します。

MIGRATION_ENABLED

trueに設定した場合、コンテナ起動時に自動的にデータベースのマイグレーションが実行されます。dockerによる起動時にのみ有効で、ソースコード起動では無効です。ソースコード起動の場合、apiディレクトリで手動でflask db upgradeを実行する必要があります。

CHECK_UPDATE_URL

バージョンチェックポリシーを有効にするかどうか。falseに設定した場合、https://updates.dify.aiを呼び出してバージョンチェックを行いません。現在、国内から直接CloudFlare Workerのバージョンインターフェースにアクセスできないため、この変数を空に設定すると、このインターフェースの呼び出しをブロックできます。

TEXT_GENERATION_TIMEOUT_MS

デフォルト値は60000 (milliseconds). 一部のプロセスが進行中にタイムアウトの原因で全部のサービスが利用できなくなるのを防ぐために、テキストの生成やワークフロー進行中にタイムアウトの時間を指定するために使用されます。

CSP_WHITELIST

コンテンツセキュリティポリシー (CSP) ホワイトリスト。デフォルトでは有効になっていません。この変数に許可されるドメイン名のリストを入力すると、この変数が自動的に有効になり、潜在的な XSS 攻撃を減らすのに役立ちます。オンにすると、ホワイトリストには次のドメイン名が自動的に含まれます。

*.sentry.io http://localhost:* http://127.0.0.1:* https://analytics.google.com https://googletagmanager.com https://api.github.com

コンテナ起動関連設定

dockerイメージまたはdocker-composeによる起動時にのみ有効です。

  • DIFY_BIND_ADDRESS

    APIサービスのバインドアドレス。デフォルト:0.0.0.0、すべてのアドレスからアクセス可能にします。

  • DIFY_PORT

    APIサービスのバインドポート番号。デフォルト5001。

  • SERVER_WORKER_AMOUNT

    APIサービスのServer worker数。すなわちgevent workerの数。公式:CPUのコア数 x 2 + 1

    詳細はこちら:https://docs.gunicorn.org/en/stable/design.html#how-many-workers

  • SERVER_WORKER_CLASS

    デフォルトはgevent。Windowsの場合、syncまたはsoloに切り替えることができます。

  • GUNICORN_TIMEOUT

    リクエスト処理のタイムアウト時間。デフォルト200。360に設定することを推奨します。これにより、長時間のSSE接続をサポートできます。

  • CELERY_WORKER_CLASS

    SERVER_WORKER_CLASSと同様に、デフォルトはgevent。Windowsの場合、syncまたはsoloに切り替えることができます。

  • CELERY_WORKER_AMOUNT

    Celery workerの数。デフォルトは1。必要に応じて設定します。

  • HTTP_PROXY

    HTTPプロキシのアドレス。国内からOpenAIやHuggingFaceにアクセスできない問題を解決するために使用されます。注意:プロキシがホストマシンにデプロイされている場合(例:http://127.0.0.1:7890)、このプロキシアドレスはローカルモデルに接続する場合と同様に、dockerコンテナ内のホストマシンアドレスを使用する必要があります(例:http://192.168.1.100:7890またはhttp://172.17.0.1:7890)。

  • HTTPS_PROXY

    HTTPSプロキシのアドレス。国内からOpenAIやHuggingFaceにアクセスできない問題を解決するために使用されます。HTTPプロキシと同様に設定します。

データベース設定

データベースにはPostgreSQLを使用します。public schemaを使用してください。

  • DB_USERNAME:ユーザー名

  • DB_PASSWORD:パスワード

  • DB_HOST:データベースホスト

  • DB_PORT:データベースポート番号。デフォルト5432

  • DB_DATABASE:データベース名

  • SQLALCHEMY_POOL_SIZE:データベース接続プールのサイズ。デフォルトは30接続。必要に応じて増やせます。

  • SQLALCHEMY_POOL_RECYCLE:データベース接続プールのリサイクル時間。デフォルト3600秒。

  • SQLALCHEMY_ECHO:SQLを出力するかどうか。デフォルトはfalse。

Redis 設定

このRedis設定はキャッシュおよび対話時のpub/subに使用されます。

  • REDIS_HOST:Redisホスト

  • REDIS_PORT:Redisポート。デフォルト6379

  • REDIS_DB:Redisデータベース。デフォルトは0。セッションRedisおよびCeleryブローカーとは異なるデータベースを使用してください。

  • REDIS_USERNAME:Redisユーザー名。デフォルトは空

  • REDIS_PASSWORD:Redisパスワード。デフォルトは空。パスワードを設定することを強く推奨します。

  • REDIS_USE_SSL:SSLプロトコルを使用して接続するかどうか。デフォルトはfalse

  • REDIS_USE_SENTINEL:Redis Sentinelを使用してRedisサーバーに接続

  • REDIS_SENTINELS:Sentinelノード、フォーマット:<sentinel1_ip>:<sentinel1_port>,<sentinel2_ip>:<sentinel2_port>,<sentinel3_ip>:<sentinel3_port>

  • REDIS_SENTINEL_SERVICE_NAME:Sentinelサービス名、Master Nameと同じ

  • REDIS_SENTINEL_USERNAME:Sentinelのユーザー名

  • REDIS_SENTINEL_PASSWORD:Sentinelのパスワード

  • REDIS_SENTINEL_SOCKET_TIMEOUT:Sentinelのタイムアウト、デフォルト値:0.1、単位:秒

Celery 設定

  • CELERY_BROKER_URL

    フォーマットは以下の通りです(直接接続モード)

    redis://<redis_username>:<redis_password>@<redis_host>:<redis_port>/<redis_database>
      

    例:redis://:difyai123456@redis:6379/1

    Sentinelモード

    sentinel://<sentinel_username>:<sentinel_password>@<sentinel_host>:<sentinel_port>/<redis_database>
      

    例:sentinel://localhost:26379/1;sentinel://localhost:26380/1;sentinel://localhost:26381/1

  • BROKER_USE_SSL

    trueに設定した場合、SSLプロトコルを使用して接続します。デフォルトはfalse。

  • CELERY_USE_SENTINEL

    trueに設定すると、Sentinelモードが有効になります。デフォルトはfalse

  • CELERY_SENTINEL_MASTER_NAME

    Sentinelのサービス名、すなわちMaster Name

  • CELERY_SENTINEL_SOCKET_TIMEOUT

    Sentinelへの接続タイムアウト、デフォルト値:0.1、単位:秒

CORS 設定

フロントエンドのクロスオリジンアクセスポリシーを設定するために使用します。

  • CONSOLE_CORS_ALLOW_ORIGINS

    コンソールのCORSクロスオリジンポリシー。デフォルトは*、すべてのドメインがアクセス可能です。

  • WEB_API_CORS_ALLOW_ORIGINS

    WebアプリのCORSクロスオリジンポリシー。デフォルトは*、すべてのドメインがアクセス可能です。

詳細な設定については、次のガイドを参照してください:クロスオリジン/認証関連ガイド

ファイルストレージ設定

データセットのアップロードファイル、チーム/テナントの暗号化キーなどのファイルを保存するために使用します。

  • STORAGE_TYPE

    ストレージのタイプ

    • local(デフォルト)

      ローカルファイルストレージ。この場合、以下のSTORAGE_LOCAL_PATHを設定する必要があります。

    • s3

      S3オブジェクトストレージ。この場合、以下のS3_プレフィックスを設定する必要があります。

    • azure-blob

      Azure Blobストレージ。この場合、以下のAZURE_BLOB_ プレフィックスを設定する必要があります。

    • huawei-obs

      Huawei OBS オブジェクト ストレージ。このオプションが選択されている場合は、次の HUAWEI_OBS_ という接頭辞が付いた構成を設定する必要があります。

  • STORAGE_LOCAL_PATH

    デフォルトはstorage、すなわち現在のディレクトリのstorageディレクトリに保存します。

    dockerまたはdocker-composeでデプロイする場合、2つのコンテナにある/app/api/storageディレクトリを同じローカルディレクトリにマウントする必要があります。そうしないと、ファイルが見つからないエラーが発生する可能性があります。

  • S3_ENDPOINT:S3エンドポイントアドレス

  • S3_BUCKET_NAME:S3バケット名

  • S3_ACCESS_KEY:S3アクセスキー

  • S3_SECRET_KEY:S3シークレットキー

  • S3_REGION:S3リージョン情報(例:us-east-1)

  • AZURE_BLOB_ACCOUNT_NAME: アカウント名(例:'difyai')

  • AZURE_BLOB_ACCOUNT_KEY: アカウントキー(例:'difyai')

  • AZURE_BLOB_CONTAINER_NAME: コンテナ名(例:'difyai-container')

  • AZURE_BLOB_ACCOUNT_URL: 'https://<your_account_name>.blob.core.windows.net'

  • ALIYUN_OSS_BUCKET_NAME: your-bucket-name(例:'difyai')

  • ALIYUN_OSS_ACCESS_KEY: your-access-key(例:'difyai')

  • ALIYUN_OSS_SECRET_KEY: your-secret-key(例:'difyai')

  • ALIYUN_OSS_ENDPOINT: https://oss-ap-southeast-1-internal.aliyuncs.com # reference: https://www.alibabacloud.com/help/en/oss/user-guide/regions-and-endpoints

  • ALIYUN_OSS_REGION: ap-southeast-1 # reference: https://www.alibabacloud.com/help/en/oss/user-guide/regions-and-endpoints

  • ALIYUN_OSS_AUTH_VERSION: v4

  • ALIYUN_OSS_PATH: your-path # Don't start with '/'. OSS doesn't support leading slash in object names. reference: https://www.alibabacloud.com/help/en/oss/support/0016-00000005

  • HUAWEI_OBS_BUCKET_NAME: your-bucket-name(例:'difyai')

  • HUAWEI_OBS_SECRET_KEY: your-secret-key(例:'difyai')

  • HUAWEI_OBS_ACCESS_KEY: your-access-key(例:'difyai')

  • HUAWEI_OBS_SERVER: your-server-url # 参考文献: https://support.huaweicloud.com/sdk-python-devg-obs/obs_22_0500.html

ベクトルデータベース設定

  • VECTOR_STORE

    使用可能な列挙型は以下を含みます:

    • weaviate

    • qdrant

    • milvus

    • zillizmilvusと同じ)

    • pinecone(現在未公開)

    • tidb_vector

    • analyticdb

  • WEAVIATE_ENDPOINT

    Weaviateエンドポイントアドレス(例:http://weaviate:8080)。

  • WEAVIATE_API_KEY

    Weaviateに接続するために使用するapi-keyの資格情報。

  • WEAVIATE_BATCH_SIZE

    Weaviateでオブジェクトのバッチ作成数。デフォルトは100。詳細はこちらのドキュメントを参照してください:https://weaviate.io/developers/weaviate/manage-data/import#how-to-set-batch-parameters

  • WEAVIATE_GRPC_ENABLED

    Weaviateとの通信にgRPC方式を使用するかどうか。オンにすると性能が大幅に向上しますが、ローカルでは使用できない可能性があります。デフォルトはtrueです。

  • QDRANT_URL

    Qdrantエンドポイントアドレス(例:https://your-qdrant-cluster-url.qdrant.tech/)。

  • QDRANT_API_KEY

    Qdrantに接続するために使用するapi-keyの資格情報。

  • PINECONE_API_KEY

    Pineconeに接続するために使用するapi-keyの資格情報。

  • PINECONE_ENVIRONMENT

    Pineconeの環境(例:us-east4-gcp)。

  • MILVUS_URI

    MilvusのURI設定。例:http://localhost:19530 。Zilliz Cloudの場合は、URIとトークンを パブリックエンドポイントとAPIキー に調整してください。

  • MILVUS_TOKEN

    MilvusのTOKEN設定。デフォルトは空。

  • MILVUS_USER

    Milvusユーザーの設定。デフォルトは空。

  • MILVUS_PASSWORD

    Milvusパスワードの設定。デフォルトは空。

  • TIDB_VECTOR_HOST

    TiDB Vectorホスト設定(例:xxx.eu-central-1.xxx.tidbcloud.com

  • TIDB_VECTOR_PORT

    TiDB Vectorポート番号設定(例:4000

  • TIDB_VECTOR_USER

    TiDB Vectorユーザー設定(例:xxxxxx.root

  • TIDB_VECTOR_PASSWORD

    TiDB Vectorパスワード設定

  • TIDB_VECTOR_DATABASE

    TiDB Vectorデータベース設定(例:dify

  • ANALYTICDB_KEY_ID

    Aliyun OpenAPI認証に使用されるアクセスキーIDです。ドキュメンテーション を参照してAccessKeyを作成します。

  • ANALYTICDB_KEY_SECRET

    Aliyun OpenAPI認証に使用されるアクセスキーシークレットです。

  • ANALYTICDB_INSTANCE_ID

    あなたのAnalyticDBインスタンスのユニークな識別子で、例えば gp-xxxxxx です。ドキュメンテーション を参照してインスタンスを作成します。

  • ANALYTICDB_REGION_ID

    AnalyticDBインスタンスが位置するリージョンの識別子で、例えば cn-hangzhou です。

  • ANALYTICDB_ACCOUNT

    AnalyticDBインスタンスに接続するために使用するアカウント名です。ドキュメンテーション を参照してアカウントを作成します。

  • ANALYTICDB_PASSWORD

    AnalyticDBインスタンスに接続するために使用するアカウントのパスワードです。

  • ANALYTICDB_NAMESPACE

    AnalyticDBインスタンス内で操作したいnamespace(schema)です。例えば dify です。このnamespaceが存在しない場合、自動的に作成されます。

  • ANALYTICDB_NAMESPACE_PASSWORD

    namespace(schema)のパスワードです。このnamespaceが存在しない場合、このパスワードで作成されます。

ナレッジベース設定

  • UPLOAD_FILE_SIZE_LIMIT

    アップロードファイルのサイズ制限。デフォルトは15M。

  • UPLOAD_FILE_BATCH_LIMIT

    一度にアップロードできるファイル数の上限。デフォルトは5個。

  • ETL_TYPE

    使用可能な列挙型は以下を含みます:

    • dify

      Dify独自のファイル抽出ソリューション

    • Unstructured

      Unstructured.ioのファイル抽出ソリューション

  • UNSTRUCTURED_API_URL

    ETL_TYPEがUnstructuredの場合、Unstructured APIパスの設定が必要です。

    例:http://unstructured:8000/general/v0/general

マルチモーダルモデル設定

  • MULTIMODAL_SEND_IMAGE_FORMAT

    マルチモーダルモデルの入力時に画像を送信する形式。デフォルトはbase64、オプションでurlurlモードでは呼び出しの遅延がbase64モードよりも少なく、一般的には互換性が高いbase64モードを推奨します。urlに設定する場合、FILES\_URLを外部からアクセス可能なアドレスに設定する必要があります。これにより、マルチモーダルモデルが画像にアクセスできるようになります。

  • UPLOAD_IMAGE_FILE_SIZE_LIMIT

    アップロード画像ファイルのサイズ制限。デフォルトは10M。

Sentry 設定

アプリの監視およびエラーログトラッキングに使用されます。

  • SENTRY_DSN

    Sentry DSNアドレス。デフォルトは空。空の場合、すべての監視情報はSentryに報告されません。

  • SENTRY_TRACES_SAMPLE_RATE

    Sentryイベントの報告割合。例えば、0.01に設定すると1%となります。

  • SENTRY_PROFILES_SAMPLE_RATE

    Sentryプロファイルの報告割合。例えば、0.01に設定すると1%となります。

Notion 統合設定

Notion統合設定。変数はNotion integrationを申請することで取得できます:https://www.notion.so/my-integrations

  • NOTION_CLIENT_ID

  • NOTION_CLIENT_SECRET

メール関連の設定

  • MAIL_TYPE

    • resend

      • MAIL_DEFAULT_SEND_FROM 送信者のメール名,(例:no-reply no-reply@dify.ai)、必須ではありません。

      • RESEND_API_KEY ResendメールプロバイダーのAPIキー。APIキーから取得できます。

    • smtp

      • SMTP_SERVER SMTPサーバーアドレス

      • SMTP_PORT SMTPサーバポートnumber

      • SMTP_USERNAME SMTP ユーザー名

      • SMTP_PASSWORD SMTP パスワード

      • SMTP_USE_TLS TLSを使用するかどうか, デフォルトは false

      • MAIL_DEFAULT_SEND_FROM 送り人のメールアドレス, (例:no-reply no-reply@dify.ai)、必須ではありません。

モデルプロバイダ & ツールの位置の構成

アプリで使用できるモデルプロバイダーとツールを指定するために使用されます。これらの設定により、使用可能なツールとモデルプロバイダー、およびアプリのインターフェースでの順序と含める/除外をカスタマイズできます。

使用可能なツールモデルプロバイダのリストについては、提供されているリンクを参照してください。

  • POSITION_TOOL_PINS

    リストされたツールをリストの先頭に固定して、インターフェイスの先頭に確実に表示されるようにします。 (間にスペースを入れずにカンマ区切りの値を使用します。)

    例: POSITION_TOOL_PINS=bing,google

  • POSITION_TOOL_INCLUDES

    アプリに含めるツールを指定します。ここにリストされているツールのみが使用可能です。設定されていない場合は、POSITION_TOOL_EXCLUDES で指定されていない限り、すべてのツールが含まれます。 (間にスペースを入れずにカンマ区切りの値を使用します。)

    例: POSITION_TOOL_INCLUDES=bing,google

  • POSITION_TOOL_EXCLUDES

    特定のツールをアプリでの表示または使用から除外します。ここにリストされているツールは、固定されていない限り、使用可能なオプションから除外されます。 (間にスペースを入れずにカンマ区切りの値を使用します。)

    例: POSITION_TOOL_EXCLUDES=yahoo,wolframalpha

  • POSITION_PROVIDER_PINS

    リストされたモデルのサプライヤーをリストの先頭にピン留めして、インターフェイスの先頭に確実に表示されるようにします。 (間にスペースを入れずにカンマ区切りの値を使用します。)

    例: POSITION_PROVIDER_PINS=openai,openllm

  • POSITION_PROVIDER_INCLUDES

    アプリに含めるモデルプロバイダーを指定します。ここにリストされているサプライヤーのみが利用可能です。設定されていない場合は、POSITION_PROVIDER_EXCLUDES で指定されていない限り、すべてのプロバイダーが含まれます。 (間にスペースを入れずにカンマ区切りの値を使用します。)

    例: POSITION_PROVIDER_INCLUDES=cohere,upstage

  • POSITION_PROVIDER_EXCLUDES

    特定のモデル ベンダーをアプリでの表示から除外します。ここにリストされているサプライヤーは、固定されない限り、利用可能なオプションから削除されます。 (間にスペースを入れずにカンマ区切りの値を使用します。)

    例: POSITION_PROVIDER_EXCLUDES=openrouter,ollama

其他

  • INVITE_EXPIRY_HOURS:メンバーを招待するのリンクの有効期間(時),デフォルト:72。

  • HTTP_REQUEST_NODE_MAX_TEXT_SIZE:ワークフロー内のHTTPリクエストノードの最大テキストサイズ、デフォルト1MB。

  • HTTP_REQUEST_NODE_MAX_BINARY_SIZE:ワークフロー内のHTTPリクエストノードの最大バイナリサイズ、デフォルト10MB。


Web フロントエンド

SENTRY_DSN

Sentry DSN アドレス,デフォルトは空,空の場合、すべての監視情報は Sentry に報告されません。

廃棄されました

CONSOLE_URL

⚠️ この設定はバージョン 0.3.8 に改善し、0.4.9 から廃止されました,代わりは:CONSOLE_API_URLCONSOLE_WEB_URL です。

コンソール URL です,認定コールバックやコンソールフロントエンドのアドレスの連結するため、および CORS の配置に使用されます、空の場合は同じドメインになります。例:https://console.dify.ai

API_URL

⚠️ この設定はバージョン 0.3.8 に改善し、0.4.9 から廃止されました,代わりは SERVICE_API_URLです。

API Url です,フロントエンド で使用して、サービス API ベース URL を表示します、空の場合は同じドメインになります。例:https://api.dify.ai

APP_URL

⚠️ この設定はバージョン 0.3.8 に改善し、0.4.9 から廃止されました,代わりは APP_API_URLAPP_WEB_URL です。

WebApp Url,フロントエンド API バックエンド アドレスを宣言するために使用されます、空の場合は同じドメインになります。例:https://udify.app/

Session Configuration

⚠️ この設定はバージョン 0.3.24 から廃止されました。

API サービスによってインターフェース ID 検証にのみ使用されます。

  • SESSION_TYPE: セッションコンポーネントのタイプ

    • redis(デフォルト)

      これを選択した場合、下記の SESSION_REDIS_ で始まる環境変数を設定する必要があります。

    • sqlalchemy

      これを選択した場合、現在のデータベース接続を使用し、sessions テーブルを使用してセッションレコードを読み書きします。

  • SESSION_REDIS_HOST:Redis ホスト

  • SESSION_REDIS_PORT:Redis ポート、デフォルトは 6379

  • SESSION_REDIS_DB:Redis データベース、デフォルトは 0、Redis および Celery ブローカーとは異なるデータベースを使用してください。

  • SESSION_REDIS_USERNAME:Redis ユーザー名、デフォルトは空

  • SESSION_REDIS_PASSWORD:Redis パスワード、デフォルトは空、パスワードの設定を強く推奨します。

  • SESSION_REDIS_USE_SSL:SSL プロトコルを使用して接続するかどうか、デフォルトは false

クッキー戦略の設定

⚠️ この設定はバージョン 0.3.24 から廃止されました。

セッションクッキーのブラウザ戦略を設定するために使用されます。

  • COOKIE_HTTPONLY

    クッキーの HttpOnly 設定、デフォルトは true。

  • COOKIE_SAMESITE

    クッキーの SameSite 設定、デフォルトは Lax。

  • COOKIE_SECURE

    クッキーの Secure 設定、デフォルトは false。

Last updated