Môi Trường

Biến chung

CONSOLE_API_URL

URL phụ trợ của bảng điều khiển API, dùng để nối lệnh gọi lại ủy quyền. Nếu trống thì đó là cùng một tên miền. Ví dụ: https://api.console.chatx.ai

CONSOLE_WEB_URL

URL giao diện người dùng của bảng điều khiển web, được sử dụng để nối một số địa chỉ giao diện người dùng và để sử dụng cấu hình CORS. Nếu trống thì đó là cùng một tên miền. Ví dụ: https://console.chatx.ai

SERVICE_API_URL

Service API Url, được sử dụng để hiển thị Url cơ sở API dịch vụ cho giao diện người dùng. Nếu trống thì đó là cùng một tên miền. Ví dụ: https://api.chatx.ai

APP_API_URL

Url phụ trợ API WebApp, được sử dụng để khai báo URL phụ trợ cho front-end API. Nếu trống thì đó là cùng một tên miền. Ví dụ: https://app.chatx.ai

APP_WEB_URL

Url WebApp, được sử dụng để hiển thị Url cơ sở API WebAPP cho giao diện người dùng. Nếu trống thì đó là cùng một tên miền. Ví dụ: https://api.app.chatx.ai

FILES_URL

Tiền tố URL tải xuống hoặc xem trước tệp, được sử dụng để hiển thị bản xem trước tệp hoặc URL tải xuống ở giao diện người dùng hoặc dưới dạng đầu vào mô hình đa phương thức; Để ngăn người khác giả mạo, URL xem trước hình ảnh được ký và có thời gian hết hạn là 5 phút.

Máy chủ

MODE

Chế độ khởi động, chỉ khả dụng khi bắt đầu bằng docker, không hiệu quả khi bắt đầu từ mã nguồn.

  • api

    Khởi động máy chủ API.

  • worker

    Bắt đầu công việc xử lý hàng đợi bất đồng bộ.

DEBUG

Chế độ gỡ lỗi, mặc định là sai. Bạn nên bật cấu hình này để phát triển cục bộ nhằm ngăn ngừa một số sự cố do monkey patch gây ra.

FLASK_DEBUG

Chế độ Flask debug, nó có thể xuất thông tin theo dõi tại giao diện khi bật, thuận tiện cho việc gỡ lỗi.

SECRET_KEY

Khóa được sử dụng để ký cookie phiên một cách an toàn và mã hóa thông tin nhạy cảm trong cơ sở dữ liệu.

Biến này cần được đặt khi bắt đầu lần đầu tiên.

Bạn có thể dùng openssl rand -base64 42 để tạo ra một khóa mạnh.

DEPLOY_ENV

Môi trường triển khai.

  • PRODUCTION (mặc định)

    Môi trường sản xuất.

  • TESTING

    Môi trường thử nghiệm. Sẽ có một nhãn màu riêng biệt trên trang giao diện người dùng, cho biết môi trường này là môi trường thử nghiệm.

LOG_LEVEL

Mức đầu ra nhật ký, mặc định là INFO.

Bạn nên đặt nó thành ERROR để sản xuất.

MIGRATION_ENABLED

Khi được đặt thành true, quá trình di chuyển cơ sở dữ liệu sẽ được thực hiện tự động khi vùng chứa khởi động, chỉ khả dụng khi bắt đầu bằng docker, không hiệu quả khi bắt đầu từ mã nguồn.

Bạn cần thực hiện flask db upgrade theo cách thủ công trong thư mục api khi bắt đầu từ mã nguồn.

CHECK_UPDATE_URL

Có nên kích hoạt chính sách kiểm tra phiên bản hay không. Nếu đặt thành false, https://updates.dify.ai sẽ không được gọi để kiểm tra phiên bản.

Do hiện tại không thể truy cập trực tiếp giao diện phiên bản dựa trên CloudFlare Worker ở Trung Quốc nên việc đặt biến này thành trống có thể bảo vệ lệnh gọi giao diện này.

OPENAI_API_BASE

Khi OpenAI không thể truy cập được ở Trung Quốc, hãy thay thế nó bằng địa chỉ nhân bản trong nước hoặc khi một mô hình địa phương cung cấp API tương thích OpenAI, nó có thể được thay thế.

Cấu hình liên quan đến khởi động vùng chứa

Chỉ hiệu quả khi bắt đầu với hình ảnh docker hoặc docker-compose.

  • DIFY_BIND_ADDRESS

    Địa chỉ liên kết dịch vụ API, mặc định: 0.0.0.0, tức là tất cả các địa chỉ đều có thể được truy cập.

  • DIFY_PORT

    Số cổng liên kết dịch vụ API, mặc định là 5001.

  • SERVER_WORKER_AMOUNT

    Số lượng API server workers, tức là số lượng gevent workers. Công thức: number of cpu cores x 2 + 1

  • SERVER_WORKER_CLASS

    Mặc định là gevent. Nếu dùng windows có thể chuyển sang sync hoặc solo.

  • GUNICORN_TIMEOUT

    Yêu cầu hết thời gian xử lý. Mặc định là 200, nên đặt thành 360 để hỗ trợ thời gian kết nối lâu hơn.

  • CELERY_WORKER_CLASS

    Tương tự như SERVER_WORKER_CLASS. Mặc định là gevent. Nếu dùng windows có thể chuyển sang sync hoặc solo.

  • CELERY_WORKER_AMOUNT

    Số lượng Celery workers. Giá trị mặc định là 1 và có thể được đặt khi cần.

Cấu hình cơ sở dữ liệu

Cơ sở dữ liệu sử dụng PostgreSQL. Vui lòng sử dụng lược đồ công khai.

  • DB_USERNAME: tài khoản

  • DB_PASSWORD: mật khẩu

  • DB_HOST: máy chủ cơ sở dữ liệu

  • DB_PORT: số cổng cơ sở dữ liệu, mặc định là 5432

  • DB_DATABASE: tên cơ sở dữ liệu

  • SQLALCHEMY_POOL_SIZE: Kích thước của nhóm kết nối cơ sở dữ liệu. Mặc định là 30 kết nối, có thể tăng lên một cách thích hợp.

  • SQLALCHEMY_POOL_RECYCLE: Thời gian tái chế nhóm kết nối cơ sở dữ liệu, mặc định là 3600 giây.

  • SQLALCHEMY_ECHO: Có in SQL hay không, mặc định là false.

Cấu hình Redis

Cấu hình Redis này được sử dụng để lưu vào bộ nhớ đệm và cho pub/sub trong khi trò chuyện.

  • REDIS_HOST: Máy chủ Redis

  • REDIS_PORT: Cổng Redis, mặc định là 6379

  • REDIS_DB: Cơ sở dữ liệu Redis, mặc định là 0. Vui lòng sử dụng Cơ sở dữ liệu khác với Session Redis và Celery Broker.

  • REDIS_USERNAME: Tài khoản Redis, mặc định trống

  • REDIS_PASSWORD: Mật khẩu Redis, mặc định trống. Chúng tôi thực sự khuyên bạn nên đặt mật khẩu.

  • REDIS_USE_SSL: Có sử dụng giao thức SSL để kết nối hay không, mặc định là false

Cấu hình Celery

  • CELERY_BROKER_URL

    Định dạng như sau:

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

    Ví dụ: redis://:difyai123456@redis:6379/1

  • BROKER_USE_SSL

    Nếu được đặt thành true, hãy sử dụng giao thức SSL để kết nối, mặc định là false

Cấu hình CORS

Được sử dụng để đặt chính sách truy cập front-end cross-domain.

  • CONSOLE_CORS_ALLOW_ORIGINS

    Chính sách đa miền của Console CORS, mặc định là *, tức là tất cả các miền đều có thể truy cập.

  • WEB_API_CORS_ALLOW_ORIGINS

    Chính sách cross-domain WebAPP CORS, mặc định là *, tức là tất cả các miền đều có thể truy cập.

Cấu hình lưu trữ tệp

Được sử dụng để lưu trữ các tệp tập dữ liệu đã tải lên, khóa mã hóa nhóm/đối tượng thuê và các tệp khác.

  • STORAGE_TYPE

    Loại cơ sở lưu trữ

    • local (mặc định)

      Bộ nhớ tệp cục bộ, nếu tùy chọn này được chọn thì cần phải đặt cấu hình STORAGE_LOCAL_PATH sau.

    • s3

      Lưu trữ đối tượng S3, nếu tùy chọn này được chọn, các cấu hình có tiền tố S3_ sau đây cần được thiết lập.

    • azure-blob

      Lưu trữ đối tượng Azure Blob, nếu tùy chọn này được chọn, các cấu hình có tiền tố AZURE_BLOB_ sau đây cần được thiết lập.

  • STORAGE_LOCAL_PATH

    Mặc định là storage, tức là nó được lưu trữ trong thư mục storage của thư mục hiện tại. Nếu bạn đang triển khai bằng docker hoặc docker-compose, hãy đảm bảo gắn thư mục /app/api/storage trong cả hai vùng chứa vào cùng một thư mục cục bộ, nếu không, bạn có thể gặp phải lỗi không tìm thấy tệp.

  • S3_ENDPOINT: Địa chỉ điểm cuối S3

  • S3_BUCKET_NAME: Tên nhóm S3

  • S3_ACCESS_KEY: Khóa truy cập S3

  • S3_SECRET_KEY: Khóa bí mật S3

  • S3_REGION: Thông tin khu vực S3, chẳng hạn như: us-east-1

  • AZURE_BLOB_ACCOUNT_NAME: tên tài khoản của bạn, ví dụ: 'chatxai'

  • AZURE_BLOB_ACCOUNT_KEY: khóa tài khoản của bạn, ví dụ: 'chatxai'

  • AZURE_BLOB_CONTAINER_NAME: tên-container của bạn, ví dụ: 'chatxai-container'

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

Cấu hình cơ sở dữ liệu vectơ

  • VECTOR_STORE

    • Các kiểu liệt kê có sẵn bao gồm:

      • weaviate

      • qdrant

      • milvus

      • zilliz (chia sẻ cấu hình tương tự như milvus)

      • pinecone (chưa mở)

  • WEAVIATE_ENDPOINT

    Địa chỉ điểm cuối weaviate, chẳng hạn như: http://weaviate:8080.

  • WEAVIATE_API_KEY

    Thông tin xác thực khóa api được sử dụng để kết nối với Weaviate.

  • WEAVIATE_BATCH_SIZE

  • WEAVIATE_GRPC_ENABLED

    Dù có sử dụng phương pháp gRPC để tương tác với Weaviate hay không, hiệu suất sẽ tăng lên rất nhiều khi được bật, có thể không sử dụng được cục bộ, mặc định là đúng.

  • QDRANT_URL

    Địa chỉ điểm cuối Qdrant, chẳng hạn như: https://your-qdrant-cluster-url.qdrant.tech/

  • QDRANT_API_KEY

    Thông tin xác thực khóa api được sử dụng để kết nối với Qdrant.

  • PINECONE_API_KEY

    Thông tin xác thực khóa api được sử dụng để kết nối với Pinecone.

  • PINECONE_ENVIRONMENT

    Môi trường nơi Pinecone được đặt, ví dụ: us-east4-gcp

  • MILVUS_HOST

    Cấu hình máy chủ Milvus.

  • MILVUS_PORT

    Cấu hình cổng Milvus.

  • MILVUS_USER

    Cấu hình người dùng Milvus, mặc định trống.

  • MILVUS_PASSWORD

    Cấu hình mật khẩu Milvus, mặc định trống.

  • MILVUS_SECURE

    Có phải Milvus sử dụng kết nối SSL không, mặc định là false.

Cấu hình Knowledge

  • UPLOAD_FILE_SIZE_LIMIT:

    Giới hạn kích thước tệp tải lên, mặc định là 15M.

  • UPLOAD_FILE_BATCH_LIMIT

    Số lượng tệp tối đa có thể được tải lên cùng một lúc, mặc định là 5.

  • ETL_TYPE

    Các kiểu liệt kê có sẵn bao gồm:

    • dify

      Sơ đồ trích xuất tệp độc quyền của ChatX

    • Unstructured

      Sơ đồ trích xuất tệp Unstructured.io

  • UNSTRUCTURED_API_URL

    Đường dẫn Unstructured API, cần được định cấu hình khi ETL_TYPE được kích hoạt là Unstructured. Cho ví dụ: http://unstructured:8000/general/v0/general

Cấu hình Multi-modal

  • MULTIMODAL_SEND_IMAGE_FORMAT

    Định dạng của hình ảnh được gửi khi nhập mô hình đa phương thức, mặc định là base64, tùy chọn url. Độ trễ của cuộc gọi ở chế độ url sẽ thấp hơn ở chế độ base64. Thông thường nên sử dụng chế độ base64tương thích hơn. Nếu được định cấu hình là url, bạn cần định cấu hình FILES_URL làm địa chỉ có thể truy cập từ bên ngoài để mô hình đa phương thức có thể truy cập hình ảnh.

  • UPLOAD_IMAGE_FILE_SIZE_LIMIT

    Giới hạn kích thước tệp hình ảnh tải lên, mặc định là 10M.

Cấu hình Sentry

Được sử dụng để giám sát ứng dụng và theo dõi nhật ký lỗi.

  • SENTRY_DSN

    Địa chỉ Sentry DSN, mặc định trống, khi trống thì mọi thông tin giám sát đều không được báo cáo cho Sentry.

  • SENTRY_TRACES_SAMPLE_RATE

    Tỷ lệ báo cáo của các sự kiện Sentry, nếu là 0,01 thì là 1%.

  • SENTRY_PROFILES_SAMPLE_RATE

    Tỷ lệ báo cáo của hồ sơ Sentry, nếu là 0,01 thì là 1%.

Cấu hình Notion Integration

  • NOTION_INTEGRATION_TYPE: Cấu hình là "public" hoặc "internal". Vì URL chuyển hướng OAuth của Notion chỉ hỗ trợ HTTPS, nếu triển khai cục bộ, vui lòng sử dụng tích hợp nội bộ của Notion.

  • NOTION_CLIENT_SECRET: Khóa bí mật của khách hàng Notion OAuth (được sử dụng cho loại tích hợp công khai)

  • NOTION_CLIENT_ID: ID ứng dụng khách OAuth (được sử dụng cho loại tích hợp công khai)

  • NOTION_INTERNAL_SECRET: Khái niệm bí mật tích hợp nội bộ. Nếu giá trị của NOTION_INTEGRATION_TYPE là 'internal', bạn cần định cấu hình biến này.

Cấu hình Mail related

  • MAIL_TYPE

    • resend

      • RESEND_API_KEY API-Key đối với nhà cung cấp Resend email, có thể được lấy từ API-Key.

    • smtp

      • SMTP_SERVER SMTP địa chỉ máy chủ

      • SMTP_PORT SMTP số cổng máy chủ

      • SMTP_USERNAME SMTP tài khoản

      • SMTP_PASSWORD SMTP mật khẩu

      • SMTP_USE_TLS Có sử dụng TLS hay không, mặc định là false

Khác

  • INVITE_EXPIRY_HOURS: Liên kết lời mời thành viên thời gian hợp lệ (giờ), Mặc định: 72.


Web Frontend

SENTRY_DSN

Địa chỉ Sentry DSN, mặc định trống, khi trống thì mọi thông tin giám sát đều không được báo cáo cho Sentry.

Deprecated

CONSOLE_URL

⚠️ Được sửa đổi trong 0.3.8, sẽ không được dùng nữa trong 0.4.9, được thay thế bằng: CONSOLE_API_URLCONSOLE_WEB_URL.

Bảng điều khiển URL, được sử dụng để nối lệnh gọi lại ủy quyền, địa chỉ giao diện người dùng bảng điều khiển và sử dụng cấu hình CORS. Nếu trống thì đó là cùng một tên miền. Ví dụ: https://console.dify.ai.

API_URL

⚠️ Được sửa đổi trong 0.3.8, sẽ không được dùng nữa trong 0.4.9, được thay thế bằng SERVICE_API_URL.

API URL, được sử dụng để hiển thị URL cơ sở API dịch vụ cho giao diện người dùng. Nếu trống thì đó là cùng một tên miền. Ví dụ: https://api.dify.ai

APP_URL

⚠️ Được sửa đổi trong 0.3.8, sẽ không được dùng nữa trong 0.4.9, được thay thế bằng APP_API_URLAPP_WEB_URL.

WebApp Url, được sử dụng để hiển thị Url cơ sở API WebAPP cho giao diện người dùng. Nếu trống thì đó là cùng một tên miền. Ví dụ: https://api.app.dify.ai

Cấu hình Session

⚠️ Cấu hình này không còn hợp lệ kể từ v0.3.24.

Chỉ được dịch vụ API sử dụng để xác minh danh tính giao diện.

  • SESSION_TYPE:

    Loại thành phần Session

    • redis (mặc định)

      Nếu chọn tùy chọn này, bạn cần đặt các biến môi trường bắt đầu bằng SESSION_REDIS_ bên dưới.

    • sqlalchemy

      Nếu bạn chọn tùy chọn này, kết nối cơ sở dữ liệu hiện tại sẽ được sử dụng và bảng phiên sẽ được sử dụng để đọc và ghi các bản ghi phiên.

  • SESSION_REDIS_HOST: Máy chủ Redis

  • SESSION_REDIS_PORT: Cổng Redis, mặc định là 6379

  • SESSION_REDIS_DB: Cơ sở dữ liệu Redis, mặc định là 0. Vui lòng sử dụng Cơ sở dữ liệu khác với Redis và Celery Broker.

  • SESSION_REDIS_USERNAME: Tên người dùng Redis, mặc định trống

  • SESSION_REDIS_PASSWORD: Mật khẩu Redis, mặc định trống. Chúng tôi thực sự khuyên bạn nên đặt mật khẩu.

  • SESSION_REDIS_USE_SSL: Có sử dụng giao thức SSL để kết nối hay không, mặc định là false

Cấu hình Cookie Policy

⚠️ Cấu hình này không còn hợp lệ kể từ v0.3.24.

Được sử dụng để đặt chính sách trình duyệt cho các cookie phiên được sử dụng để xác minh danh tính.

  • COOKIE_HTTPONLY

    Cấu hình cookie httpOnly, mặc định là true.

  • COOKIE_SAMESITE

    Cấu hình cookie SameSite, mặc định là Lax.

  • COOKIE_SECURE

    Cấu hình Cookie Secure, mặc định là false.