mirror of
https://github.com/langgenius/dify.git
synced 2026-09-05 00:31:19 +08:00
117 lines
7.3 KiB
Plaintext
117 lines
7.3 KiB
Plaintext
# ------------------------------------------------------------------
|
|
# KnowledgeFS integration service (started by the default Dify Compose deployment).
|
|
# Copy to knowledge-fs.env and configure durable dependencies before enabling product traffic.
|
|
# The Dify product flag remains disabled by default and no public proxy route is added.
|
|
# Dify inner API connection values and integrated mode are injected by docker-compose.yaml.
|
|
# Physical object storage is owned by Dify's configured STORAGE_TYPE and credentials; do not copy
|
|
# provider endpoints, bucket names, access keys, or secret keys into this service.
|
|
# Optional feature flags and capacity tunables use safe runtime defaults and belong here only when
|
|
# an operator intentionally enables or overrides that feature.
|
|
# ------------------------------------------------------------------
|
|
|
|
# Required durable database. Do not point this at Dify's application database or reuse
|
|
# Dataset/Document tables. Apply KnowledgeFS migrations before starting product traffic.
|
|
DATABASE_URL=
|
|
KNOWLEDGE_DOCUMENT_COMPILATION_RUNTIME=on
|
|
# A quiescing step performs several bounded cleanup statements in one transaction. Keep this
|
|
# comfortably below the derived worker lease while allowing normal database round trips to finish.
|
|
DURABLE_DELETION_STEP_TIMEOUT_MS=30000
|
|
|
|
# Source reads, parsing, archive/media extraction, thumbnails, and artifact writes share this
|
|
# process-wide admission budget across every supported document format.
|
|
KNOWLEDGE_DOCUMENT_MATERIALIZATION_MAX_CONCURRENCY=2
|
|
# A canonical ParseArtifact stays live through outline, semantic, graph, and index consumers.
|
|
# These process-wide limits prevent the compilation claim batch from retaining many large parser
|
|
# responses at once. One artifact charged at the byte ceiling is allowed to run exclusively.
|
|
KNOWLEDGE_DOCUMENT_RETAINED_ARTIFACT_MAX_CONCURRENCY=4
|
|
KNOWLEDGE_DOCUMENT_RETAINED_ARTIFACT_MAX_BYTES=134217728
|
|
|
|
# PDF image elements are rasterized by the Poppler executable bundled in the API image. The
|
|
# limits are per document/asset operation. Set the mode to off as an emergency or low-resource
|
|
# kill switch; do not set a host-specific command path when using the published image.
|
|
KNOWLEDGE_PDF_RASTERIZER=poppler
|
|
KNOWLEDGE_PDF_RASTERIZER_DPI=144
|
|
KNOWLEDGE_PDF_RASTERIZER_THUMBNAIL_DPI=48
|
|
KNOWLEDGE_PDF_RASTERIZER_TIMEOUT_MS=30000
|
|
KNOWLEDGE_PDF_RASTERIZER_MAX_ASSETS=500
|
|
KNOWLEDGE_PDF_RASTERIZER_MAX_CONCURRENCY=2
|
|
|
|
# Ingestion-time LLM concurrency. The per-document outline limit improves one document's latency;
|
|
# the process-wide fair limit prevents simultaneous imports from multiplying provider pressure.
|
|
# The global value is per API replica and also covers embedding transport requests.
|
|
KNOWLEDGE_OUTLINE_SUMMARY_MAX_CONCURRENCY=8
|
|
KNOWLEDGE_OUTLINE_SUMMARY_BATCH_SIZE=8
|
|
KNOWLEDGE_OUTLINE_SUMMARY_BATCH_MAX_INPUT_CHARS=32000
|
|
KNOWLEDGE_MODEL_RUNTIME_GLOBAL_CONCURRENCY=16
|
|
KNOWLEDGE_SEMANTIC_EXTRACTION_BATCH_SIZE=8
|
|
KNOWLEDGE_SEMANTIC_EXTRACTION_MAX_CONCURRENCY=4
|
|
# Dify/plugin-daemon embedding requests carry at most 16 texts each. Two concurrent requests
|
|
# improve large-document latency while keeping high-dimensional response memory bounded.
|
|
KNOWLEDGE_EMBEDDING_REQUEST_CONCURRENCY=2
|
|
# Visual embeddings are opt-in, but keep each enabled image-byte request below both a count and
|
|
# raw-byte ceiling. The byte ceiling bounds retained image bytes before transient base64 encoding.
|
|
# The lifecycle limit also caps documents that may read and retain image bodies concurrently.
|
|
KNOWLEDGE_VISUAL_EMBEDDING_MAX_BATCH_ASSETS=8
|
|
KNOWLEDGE_VISUAL_EMBEDDING_MAX_BATCH_BYTES=33554432
|
|
KNOWLEDGE_VISUAL_EMBEDDING_MAX_CONCURRENCY=2
|
|
|
|
# Required before enabling integrated product traffic. Set ENABLED=true only after providing the
|
|
# public-only current/previous JWKS that matches Dify's signer. Never copy Dify's private key here.
|
|
KNOWLEDGE_FS_CAPABILITY_V2_ENABLED=false
|
|
KNOWLEDGE_FS_CAPABILITY_V2_PUBLIC_JWKS=
|
|
|
|
# Internal Dify API-to-KnowledgeFS data paths. These flags do not expose browser CORS routes.
|
|
# Integrated document staging depends on upload sessions. Keep the default upload, multipart,
|
|
# and parser envelopes aligned with Dify's current 15 MiB document limit. Direct KnowledgeFS
|
|
# clients may raise the upload/parser limits together up to the documented 50 MiB hard ceiling;
|
|
# Dify product routes remain capped by their 15 MiB product-operation contract.
|
|
KNOWLEDGE_DIRECT_UPLOAD_ENABLED=on
|
|
KNOWLEDGE_DIRECT_UPLOAD_MAX_FILE_BYTES=15728640
|
|
KNOWLEDGE_DIRECT_UPLOAD_MULTIPART_THRESHOLD_BYTES=15728640
|
|
KNOWLEDGE_DIRECT_UPLOAD_SMALL_FALLBACK_MAX_BYTES=15728640
|
|
# The integrated Dify adapter cannot presign uploads, so this compatibility path buffers request
|
|
# bytes before writing them. Bound both active uploads and their aggregate retained payload bytes.
|
|
KNOWLEDGE_DIRECT_UPLOAD_SMALL_FALLBACK_MAX_CONCURRENCY=2
|
|
KNOWLEDGE_DIRECT_UPLOAD_SMALL_FALLBACK_MAX_RESERVED_BYTES=31457280
|
|
# Direct multipart document routes use a separate pre-validator gate. The retained-byte charge is
|
|
# conservative (bounded stream chunks + Hono caches + File.arrayBuffer), not an RSS measurement.
|
|
KNOWLEDGE_BUFFERED_DOCUMENT_UPLOAD_MAX_CONCURRENCY=2
|
|
KNOWLEDGE_BUFFERED_DOCUMENT_UPLOAD_MAX_RESERVED_BYTES=201326592
|
|
KNOWLEDGE_BUFFERED_DOCUMENT_UPLOAD_IDLE_TIMEOUT_MS=30000
|
|
KNOWLEDGE_BUFFERED_DOCUMENT_UPLOAD_TOTAL_TIMEOUT_MS=600000
|
|
# Enable Research task SSE only when the durable task progress repository is ready.
|
|
KNOWLEDGE_DIRECT_STREAM_ENABLED=off
|
|
# One generous cap avoids a second full Judge call when a reasoning model consumes hidden tokens.
|
|
# Judge prompts still require compact JSON and supported OpenAI reasoning models use low effort.
|
|
KNOWLEDGE_RESEARCH_REASONING_MAX_OUTPUT_TOKENS=8192
|
|
KNOWLEDGE_RESEARCH_REASONING_TIMEOUT_MS=60000
|
|
|
|
# Optional image-query retrieval. This remains off unless the existing visual-embedding provider,
|
|
# model/plugin selection, visual index, and query mode are configured for the deployment.
|
|
KNOWLEDGE_QUERY_IMAGE_RETRIEVAL_ENABLED=false
|
|
# Deep/Research perform at most one vision expansion per query; durable Research retries reuse it.
|
|
KNOWLEDGE_QUERY_IMAGE_EXPANSION_TIMEOUT_MS=8000
|
|
|
|
# The bundled profile uses this internal service name. Override it with an external
|
|
# Unstructured-compatible endpoint when the deployment owns that provider instead.
|
|
UNSTRUCTURED_API_URL=http://knowledge_fs_unstructured:8000
|
|
UNSTRUCTURED_API_KEY=
|
|
# This is the process-wide ceiling shared by all remote parser requests. The nested heavy limit
|
|
# covers every PDF plus structurally/byte-heavy Office, email, EPUB, ODT, and RTF request.
|
|
UNSTRUCTURED_MAX_CONCURRENCY=2
|
|
UNSTRUCTURED_HEAVY_MAX_CONCURRENCY=1
|
|
# Keep the parser cap aligned with the default 15 MiB product upload limit. Operators increasing
|
|
# the upload cap must raise this value deliberately; the API rejects values above 50 MiB.
|
|
UNSTRUCTURED_MAX_INPUT_BYTES=15728640
|
|
# Ordinary documents use a generic ten-minute deadline. Only classified heavy documents get
|
|
# bounded extra headroom, so a small DOCX/PPTX/XLSX does not inherit the 40-minute ceiling.
|
|
UNSTRUCTURED_REQUEST_TIMEOUT_MS=600000
|
|
UNSTRUCTURED_HEAVY_REQUEST_TIMEOUT_MS=2400000
|
|
UNSTRUCTURED_MAX_RESPONSE_BYTES=33554432
|
|
# Durable compilation owns attempt retries. Do not multiply them with parser-client retries.
|
|
UNSTRUCTURED_MAX_RETRIES=0
|
|
|
|
# Bound authenticated Dify object-storage calls so cleanup cannot hang a compilation lease forever.
|
|
DIFY_OBJECT_STORAGE_REQUEST_TIMEOUT_MS=60000
|
|
DIFY_REMOTE_IMAGE_REQUEST_TIMEOUT_MS=30000
|