mirror of
https://github.com/Tencent/WeKnora.git
synced 2026-06-04 13:30:32 +08:00
560 lines
20 KiB
Plaintext
560 lines
20 KiB
Plaintext
# 使用说明
|
||
# 1. 复制此文件为 .env
|
||
# 2. 替换所有占位符为实际值
|
||
# 3. 确保 .env 文件不会被提交到版本控制系统
|
||
|
||
# ========== 镜像版本 ==========
|
||
# WeKnora 镜像版本标签,可选值: latest(稳定版), main(最新开发版)
|
||
# WEKNORA_VERSION=latest
|
||
|
||
# gin mod
|
||
# 可选值: debug(开发模式,有详细日志), release(生产模式,禁用Swagger文档)
|
||
GIN_MODE=release
|
||
|
||
# 日志级别,可选值:debug, info, warn, error, fatal,默认为debug
|
||
# LOG_LEVEL=debug
|
||
|
||
# LLM 调试日志:将每次大模型调用的完整请求和响应写入独立日志文件,便于排查上下文问题
|
||
# 可选值:true(自动放在 LOG_PATH 同目录下 llm_debug.log)、false/空(关闭)、或指定文件路径
|
||
# LLM_DEBUG_LOG=true
|
||
|
||
# ========== Langfuse 可观测性(可选) ==========
|
||
# 用于追踪 chat / embedding / rerank / VLM / ASR 模型调用,统计 token 消耗。
|
||
# 详细说明:docs/Langfuse集成.md
|
||
#
|
||
# 方案 A:接入 Langfuse Cloud(最简单)
|
||
# 1) 登录 https://cloud.langfuse.com 生成 API Key
|
||
# 2) 填入下方 PUBLIC_KEY / SECRET_KEY
|
||
# 3) docker compose up -d app
|
||
#
|
||
# 方案 B:自建 Langfuse(局域网/内网环境)
|
||
# 1) 启动自建栈:docker compose --profile langfuse up -d
|
||
# 首次启动后 ClickHouse 迁移约 1-2 分钟,耐心等待 langfuse-web 健康
|
||
# 2) 浏览器打开 http://localhost:3000 注册管理员账号并生成 API Key
|
||
# 3) 取消注释下方 LANGFUSE_HOST=http://langfuse-web:3000
|
||
# 填入刚生成的 PUBLIC_KEY / SECRET_KEY
|
||
# 4) docker compose up -d app
|
||
#
|
||
# 只要同时设置了 PUBLIC_KEY + SECRET_KEY 就会自动启用,无需显式开关。
|
||
LANGFUSE_PUBLIC_KEY=pk-lf-xxxxxxxx
|
||
LANGFUSE_SECRET_KEY=sk-lf-xxxxxxxx
|
||
LANGFUSE_HOST=http://langfuse-web:3000
|
||
# 自建模式下改成:LANGFUSE_HOST=http://langfuse-web:3000
|
||
#
|
||
# 可选:显式开关(true/false,默认根据 key 自动判断)
|
||
# LANGFUSE_ENABLED=true
|
||
# 可选:版本 / 环境标签,便于在 Langfuse UI 过滤
|
||
# LANGFUSE_RELEASE=v0.4.2
|
||
# LANGFUSE_ENVIRONMENT=production
|
||
# 可选:批量上报与采样策略(生产高流量建议调大 FLUSH_AT、降低 SAMPLE_RATE)
|
||
# LANGFUSE_FLUSH_AT=15
|
||
# LANGFUSE_FLUSH_INTERVAL=3s
|
||
# LANGFUSE_QUEUE_SIZE=2048
|
||
# LANGFUSE_REQUEST_TIMEOUT=10s
|
||
# LANGFUSE_SAMPLE_RATE=1.0
|
||
# LANGFUSE_DEBUG=false
|
||
|
||
# ========== Langfuse 自建栈配置(仅在使用 --profile langfuse 时需要) ==========
|
||
# 设计说明:为了最小化资源占用,Langfuse 自建栈会**复用** WeKnora 已有的
|
||
# - postgres:创建独立的 "langfuse" 数据库(由 langfuse-db-init 容器一次性创建)
|
||
# - redis :使用独立的 Redis DB 号(默认 1,WeKnora 用 0)
|
||
# 真正新增的只有 3 个常驻容器:langfuse-web、langfuse-worker、langfuse-clickhouse
|
||
# + 1 个专用 S3:langfuse-minio
|
||
# + 1 个一次性 init:langfuse-db-init
|
||
#
|
||
# Langfuse Web UI 对外端口
|
||
# LANGFUSE_WEB_PORT=3000
|
||
#
|
||
# Langfuse 专用 MinIO 端口(避免和 WeKnora 主 MinIO 9000/9001 冲突)
|
||
# LANGFUSE_MINIO_S3_PORT=9100
|
||
# LANGFUSE_MINIO_CONSOLE_PORT=9101
|
||
#
|
||
# 在 WeKnora-postgres 中创建的 Langfuse 库名
|
||
# LANGFUSE_DB_NAME=langfuse
|
||
#
|
||
# 在 WeKnora-redis 中使用的 DB 号(1~15,不要和 WeKnora 的 0 冲突)
|
||
# LANGFUSE_REDIS_DB=1
|
||
#
|
||
# ClickHouse / Langfuse 专用 MinIO 凭证(生产请务必修改)
|
||
# LANGFUSE_CLICKHOUSE_USER=clickhouse
|
||
# LANGFUSE_CLICKHOUSE_PASSWORD=clickhouse
|
||
# LANGFUSE_MINIO_USER=langfuseminio
|
||
# LANGFUSE_MINIO_PASSWORD=langfuseminiosecret
|
||
#
|
||
# Langfuse 核心安全字段,生产必须重新生成:
|
||
# LANGFUSE_SALT=$(openssl rand -base64 32)
|
||
# LANGFUSE_ENCRYPTION_KEY=$(openssl rand -hex 32)
|
||
# LANGFUSE_NEXTAUTH_SECRET=$(openssl rand -base64 32)
|
||
# LANGFUSE_SALT=
|
||
# LANGFUSE_ENCRYPTION_KEY=
|
||
# LANGFUSE_NEXTAUTH_SECRET=
|
||
# LANGFUSE_NEXTAUTH_URL=http://localhost:3000
|
||
# LANGFUSE_TELEMETRY_ENABLED=false
|
||
#
|
||
# 可选:自动化首次启动(填写后直接注入管理员+项目,跳过 UI 注册)
|
||
# LANGFUSE_INIT_ORG_NAME=WeKnora
|
||
# LANGFUSE_INIT_PROJECT_NAME=WeKnora
|
||
# LANGFUSE_INIT_PROJECT_PUBLIC_KEY=pk-lf-weknora-init
|
||
# LANGFUSE_INIT_PROJECT_SECRET_KEY=sk-lf-weknora-init
|
||
# LANGFUSE_INIT_USER_EMAIL=admin@example.com
|
||
# LANGFUSE_INIT_USER_NAME=Admin
|
||
# LANGFUSE_INIT_USER_PASSWORD=change-me-please
|
||
|
||
# 时区设置,默认为 Asia/Shanghai
|
||
# 影响系统时间显示和日志时间戳
|
||
# 常用值:Asia/Shanghai, Asia/Tokyo, America/New_York, Europe/London, UTC
|
||
TZ=Asia/Shanghai
|
||
|
||
# 系统默认语言(BCP-47 格式),用于 Prompt 中 {{language}} 占位符的回退值
|
||
# 优先级:Accept-Language 请求头 > 此环境变量 > 内置默认值 (en-US)
|
||
# 常用值:zh-CN, en-US, ja-JP, ko-KR, ru-RU
|
||
# WEKNORA_LANGUAGE=zh-CN
|
||
|
||
# 禁止新用户注册(生产环境建议设为 true)
|
||
DISABLE_REGISTRATION=false
|
||
|
||
# Ollama 服务的基准 URL,用于连接本地/其他服务器上运行的 Ollama 服务
|
||
OLLAMA_BASE_URL=http://host.docker.internal:11434
|
||
|
||
# 存储配置
|
||
# 主数据库类型(postgres/mysql)
|
||
DB_DRIVER=postgres
|
||
|
||
# 向量存储类型(postgres/elasticsearch_v7/elasticsearch_v8/qdrant/milvus/weaviate/doris/tencent_vectordb)
|
||
RETRIEVE_DRIVER=postgres
|
||
|
||
# 允许用户使用哪些文件存储类型,使用逗号分隔,留空则允许所有类型的存储
|
||
# STORAGE_ALLOW_LIST=local,minio,cos,tos,s3
|
||
|
||
# 文件存储类型(local/minio/cos/tos/s3)
|
||
STORAGE_TYPE=local
|
||
|
||
# 流处理后端(memory/redis)
|
||
STREAM_MANAGER_TYPE=redis
|
||
|
||
# 应用服务主机名,默认为app(Docker内部服务名)
|
||
# 如需代理到远程后端,可设为远程地址,如 remote-app.example.com
|
||
APP_HOST=app
|
||
|
||
# 应用服务宿主机映射端口,默认为8080(仅影响宿主机访问,不影响容器间通信)
|
||
APP_PORT=8080
|
||
|
||
# NGINX 代理到后端的目标端口,默认为8080(App容器内部监听端口)
|
||
# 本地部署:保持默认即可,无需随 APP_PORT 修改
|
||
# 远程部署:设为远程 App 服务的实际端口
|
||
# APP_BACKEND_PORT=8080
|
||
|
||
# NGINX 代理到后端的协议,默认为http
|
||
# 远程部署如后端为 HTTPS,需设为 https
|
||
# APP_SCHEME=http
|
||
|
||
# 应用外部访问地址(用于 IM 渠道中生成图片等文件的可访问链接)
|
||
# 设置为 WeKnora 实例的外部可访问 URL,如 https://weknora.example.com
|
||
# 不设置时,IM 渠道中本地存储的图片将无法正常显示(云存储不受影响)
|
||
# APP_EXTERNAL_URL=
|
||
|
||
# 前端服务端口,默认为80
|
||
FRONTEND_PORT=80
|
||
|
||
# 文档解析模块端口,默认为50051
|
||
DOCREADER_PORT=50051
|
||
|
||
# 数据库主机地址
|
||
DB_HOST=localhost
|
||
|
||
# 数据库端口
|
||
DB_PORT=5432
|
||
|
||
# 数据库用户名
|
||
DB_USER=postgres
|
||
|
||
# 数据库密码
|
||
DB_PASSWORD=postgres123!@#
|
||
|
||
# 数据库名称
|
||
DB_NAME=WeKnora
|
||
|
||
# 如果使用 redis 作为流处理后端,需要配置以下参数
|
||
# Redis用户名,Redis 6.0+ ACL 功能支持(可选)
|
||
# REDIS_USERNAME=
|
||
|
||
# Redis密码,如果没有设置密码,可以留空
|
||
REDIS_PASSWORD=redis123!@#
|
||
|
||
# Redis数据库索引,默认为0
|
||
REDIS_DB=0
|
||
|
||
# Redis key的前缀,用于命名空间隔离
|
||
REDIS_PREFIX=stream:
|
||
|
||
# 当使用本地存储时,文件保存的基础目录路径
|
||
LOCAL_STORAGE_BASE_DIR=/data/files
|
||
|
||
# 是否自动恢复脏数据
|
||
AUTO_RECOVER_DIRTY=true
|
||
|
||
TENANT_AES_KEY=weknorarag-api-key-secret-secret
|
||
|
||
# AES-256 密钥,用于数据库中 API Key 等敏感字段的落盘加密(必须为32字节)
|
||
SYSTEM_AES_KEY=weknora-system-aes-key-32bytes!!
|
||
|
||
# SSRF 校验白名单(可选)。逗号分隔;每条可为:精确域名(api.internal)、通配域名(*.example.com)、
|
||
# IPv4(203.0.113.5)、IPv6(2001:db8::1,不带方括号)或 CIDR(10.0.0.0/8, 2001:db8::/32)。
|
||
# 列入者会在 URL 校验等地方绕过常规 SSRF 规则,生产环境请谨慎配置。
|
||
# SSRF_WHITELIST=internal.service,*.corp.example,172.16.0.0/12,2001:db8::1,fd00::/8
|
||
|
||
# ===== SearXNG(可选自建网络搜索)=====
|
||
# 启用:`docker compose --profile searxng up -d`。
|
||
# SEARXNG_SECRET 不设时使用 docker-compose 中的写死默认值,足够本机/loopback
|
||
# 部署使用;如果改 SEARXNG_BIND=0.0.0.0 把实例暴露到 LAN/公网,请务必用
|
||
# `openssl rand -hex 32` 生成并显式设置 SEARXNG_SECRET,否则默认值会被任何人
|
||
# 用于签名 image-proxy URL。
|
||
#
|
||
# 后端访问方式(容器化部署):控制台中 Provider 类型选 "SearXNG",
|
||
# Instance URL 填 http://searxng:8080 ;docker compose 已默认把 `searxng` 主机名
|
||
# 注入 SSRF_WHITELIST_EXTRA,无需额外配置。
|
||
#
|
||
# 本地开发(go run + docker compose -f docker-compose.dev.yml --profile searxng up):
|
||
# 后端跑在宿主机,需走 published 端口;Instance URL 填 http://127.0.0.1:8888 ,
|
||
# 并把 127.0.0.1 加入下方 SSRF_WHITELIST:
|
||
# SSRF_WHITELIST=127.0.0.1
|
||
#
|
||
# 端口默认仅监听 127.0.0.1,避免把开了 limiter:false 的实例暴露到 LAN。
|
||
# 如需对内网开放,显式覆盖 SEARXNG_BIND=0.0.0.0 并自行加固。
|
||
# SEARXNG_PORT=8888
|
||
# SEARXNG_BIND=127.0.0.1
|
||
# SEARXNG_SECRET=
|
||
# SSRF_WHITELIST_EXTRA=searxng
|
||
|
||
# 是否开启知识图谱构建和检索(构建阶段需调用大模型,耗时较长)
|
||
ENABLE_GRAPH_RAG=false
|
||
|
||
|
||
# 配置 JWT_SECRET 用于前端登录刷新Token
|
||
JWT_SECRET=weknora-jwt-secret
|
||
|
||
# MinIO端口
|
||
# MINIO_PORT=9000
|
||
|
||
# MinIO控制台端口
|
||
# MINIO_CONSOLE_PORT=9001
|
||
|
||
# Embedding并发数,出现429错误时,可调小此参数
|
||
CONCURRENCY_POOL_SIZE=5
|
||
|
||
# (Removed: IMAGE_MAX_CONCURRENT, OCR_BACKEND — moved to Go App module after lightweight refactoring)
|
||
|
||
# 如果使用ElasticSearch作为向量存储,需要配置以下参数
|
||
# ElasticSearch地址,例如 http://localhost:9200
|
||
# ELASTICSEARCH_ADDR=your_elasticsearch_addr
|
||
|
||
# ElasticSearch用户名,如果需要身份验证
|
||
# ELASTICSEARCH_USERNAME=your_elasticsearch_username
|
||
|
||
# ElasticSearch密码,如果需要身份验证
|
||
# ELASTICSEARCH_PASSWORD=your_elasticsearch_password
|
||
|
||
# ElasticSearch索引名称,用于存储向量数据
|
||
# ELASTICSEARCH_INDEX=WeKnora
|
||
|
||
# 如果使用Qdrant作为向量存储,需要配置以下参数
|
||
# Qdrant服务主机地址
|
||
# QDRANT_HOST=localhost
|
||
|
||
# Qdrant服务端口
|
||
# QDRANT_PORT=6334
|
||
|
||
# Qdrant集合名称,用于存储向量数据
|
||
# QDRANT_COLLECTION=weknora_embeddings
|
||
|
||
# Qdrant API密钥,如果需要身份验证(可选)
|
||
# QDRANT_API_KEY=your_qdrant_api_key
|
||
|
||
# 是否启用TLS加密连接(可选,默认为false)
|
||
# QDRANT_USE_TLS=false
|
||
|
||
# 如果使用腾讯云 Tencent VectorDB 作为向量存储,需要配置以下参数
|
||
# Tencent VectorDB 访问地址
|
||
# TENCENT_VECTORDB_ADDR=http://your-instance.tencentvectordb.com
|
||
|
||
# Tencent VectorDB 用户名
|
||
# TENCENT_VECTORDB_USERNAME=root
|
||
|
||
# Tencent VectorDB API Key
|
||
# TENCENT_VECTORDB_API_KEY=your_tencent_vectordb_api_key
|
||
|
||
# Tencent VectorDB 数据库名称(可选,默认 weknora)
|
||
# TENCENT_VECTORDB_DATABASE=weknora
|
||
|
||
# Tencent VectorDB 集合名前缀(可选,默认 weknora_embeddings;实际集合会按向量维度追加后缀)
|
||
# TENCENT_VECTORDB_COLLECTION=weknora_embeddings
|
||
|
||
# 如果使用MinIO作为文件存储,需要配置以下参数
|
||
# MinIO访问端点(host:port),连接外部MinIO时需修改
|
||
# MINIO_ENDPOINT=minio:9000
|
||
|
||
# MinIO访问密钥
|
||
# MINIO_ACCESS_KEY_ID=your_minio_access_key
|
||
|
||
# MinIO密钥
|
||
# MINIO_SECRET_ACCESS_KEY=your_minio_secret_key
|
||
|
||
# MinIO桶名称,用于存储文件
|
||
# MINIO_BUCKET_NAME=your_minio_bucket_name
|
||
|
||
# 如果使用腾讯云COS作为文件存储,需要配置以下参数
|
||
# 腾讯云COS的访问密钥ID
|
||
# COS_SECRET_ID=your_cos_secret_id
|
||
|
||
# 腾讯云COS的密钥
|
||
# COS_SECRET_KEY=your_cos_secret_key
|
||
|
||
# 腾讯云COS的区域,例如 ap-guangzhou
|
||
# COS_REGION=your_cos_region
|
||
|
||
# 腾讯云COS的桶名称
|
||
# COS_BUCKET_NAME=your_cos_bucket_name
|
||
|
||
# 腾讯云COS的应用ID
|
||
# COS_APP_ID=your_cos_app_id
|
||
|
||
# 腾讯云COS的路径前缀,用于存储文件
|
||
# COS_PATH_PREFIX=your_cos_path_prefix
|
||
|
||
# COS_ENABLE_OLD_DOMAIN=true 表示启用旧的域名格式,默认为 true
|
||
COS_ENABLE_OLD_DOMAIN=true
|
||
|
||
# 如果使用火山引擎TOS作为文件存储,需要配置以下参数
|
||
# 火山引擎TOS的访问端点,例如 https://tos-cn-beijing.volces.com
|
||
# TOS_ENDPOINT=https://tos-cn-beijing.volces.com
|
||
|
||
# 火山引擎TOS的区域,例如 cn-beijing
|
||
# TOS_REGION=cn-beijing
|
||
|
||
# 火山引擎TOS访问密钥 Access Key
|
||
# TOS_ACCESS_KEY=your_tos_access_key
|
||
|
||
# 火山引擎TOS访问密钥 Secret Key
|
||
# TOS_SECRET_KEY=your_tos_secret_key
|
||
|
||
# 火山引擎TOS桶名称
|
||
# TOS_BUCKET_NAME=your_tos_bucket_name
|
||
|
||
# 火山引擎TOS可选路径前缀(可选)
|
||
# TOS_PATH_PREFIX=your_tos_path_prefix
|
||
|
||
# 火山引擎TOS临时桶名称(可选,用于存放自动过期临时文件)
|
||
# TOS_TEMP_BUCKET_NAME=your_tos_temp_bucket_name
|
||
|
||
# 火山引擎TOS临时桶区域(可选,默认与主桶相同)
|
||
# TOS_TEMP_REGION=your_tos_temp_region
|
||
|
||
# 如果使用AWS S3作为文件存储,需要配置以下参数
|
||
# AWS S3的访问端点,例如 https://s3.amazonaws.com
|
||
# S3_ENDPOINT=https://s3.amazonaws.com
|
||
|
||
# AWS S3的区域,例如 us-east-1
|
||
# S3_REGION=us-east-1
|
||
|
||
# AWS S3访问密钥 Access Key
|
||
# S3_ACCESS_KEY=your_s3_access_key
|
||
|
||
# AWS S3访问密钥 Secret Key
|
||
# S3_SECRET_KEY=your_s3_secret_key
|
||
|
||
# AWS S3桶名称
|
||
# S3_BUCKET_NAME=your_s3_bucket_name
|
||
|
||
# AWS S3可选路径前缀(可选)
|
||
# S3_PATH_PREFIX=your_s3_path_prefix
|
||
|
||
# 如果使用华为云OBS作为文件存储,需要配置以下参数
|
||
# 华为云OBS的访问端点,例如 obs.cn-north-4.myhuaweicloud.com
|
||
# OBS_ENDPOINT=obs.cn-north-4.myhuaweicloud.com
|
||
|
||
# 华为云OBS的区域,默认 cn-north-4
|
||
# OBS_REGION=cn-north-4
|
||
|
||
# 华为云OBS访问密钥 Access Key
|
||
# OBS_ACCESS_KEY=your_obs_access_key
|
||
|
||
# 华为云OBS访问密钥 Secret Key
|
||
# OBS_SECRET_KEY=your_obs_secret_key
|
||
|
||
# 华为云OBS桶名称
|
||
# OBS_BUCKET_NAME=your_obs_bucket_name
|
||
|
||
# 华为云OBS可选路径前缀(可选)
|
||
# OBS_PATH_PREFIX=weknora/
|
||
|
||
|
||
# 华云OBS代理域名(可选,优先级最高)
|
||
# OBS_PROXY_DOMAIN=https://your-domain.com/obs
|
||
|
||
# 如果解析网络连接使用Web代理,需要配置以下参数
|
||
# WEB_PROXY=your_web_proxy
|
||
|
||
# Neo4j 开关
|
||
# NEO4J_ENABLE=false
|
||
|
||
# Neo4j的访问地址
|
||
# NEO4J_URI=neo4j://neo4j:7687
|
||
|
||
# Neo4j的用户名和密码
|
||
# NEO4J_USERNAME=neo4j
|
||
|
||
# Neo4j的密码
|
||
# NEO4J_PASSWORD=password
|
||
|
||
# ========== 文件上传大小限制 ==========
|
||
# 统一的文件大小限制(MB),默认为50MB
|
||
# 影响:单文件上传、gRPC消息大小、Nginx请求体大小
|
||
# MAX_FILE_SIZE_MB=50
|
||
|
||
# ========== Agent Skills Sandbox 配置 ==========
|
||
# Sandbox 模式: docker(默认), local, disabled
|
||
WEKNORA_SANDBOX_MODE=docker
|
||
|
||
# 脚本执行超时时间(秒),默认60
|
||
WEKNORA_SANDBOX_TIMEOUT=60
|
||
|
||
|
||
# ========== Agent 配置 ==========
|
||
# 智能体大模型调用默认超时时间(秒),默认 120
|
||
# 对于复杂的推理行为,建议调大此值(如 300 或 600)
|
||
# 注:此值为全局默认值。若单个智能体在数据库中配置了独立的 llm_call_timeout,则以智能体配置为准(优先级更高)。
|
||
# WEKNORA_AGENT_LLM_TIMEOUT=300
|
||
|
||
# MCP 工具人工审核等待超时(秒)(可选)
|
||
# 当某个 MCP 工具被标记为「需人工审核」后,Agent 会暂停并等待用户确认;
|
||
# 该值控制最长等待时间,超时视为拒绝。默认 600(10 分钟)。
|
||
# 也支持 Go duration 写法(如 30s / 5m / 1h)。
|
||
# WEKNORA_AGENT_TOOL_APPROVAL_TIMEOUT=600
|
||
|
||
# APK 镜像源设置(可选)
|
||
APK_MIRROR_ARG=mirrors.tencent.com
|
||
|
||
# 如果使用Milvus作为向量存储,需要配置以下参数
|
||
# Milvus服务地址
|
||
# MILVUS_ADDRESS=milvus:19530
|
||
|
||
# Milvus集合名称,用于存储向量数据
|
||
# MILVUS_COLLECTION=weknora_embeddings
|
||
|
||
# Milvus向量搜索度量类型,支持 IP(默认)、COSINE、L2
|
||
# 注意:修改度量类型后需要重建collection才能生效
|
||
# MILVUS_METRIC_TYPE=IP
|
||
|
||
# Milvus 用户名(可选)
|
||
# MILVUS_USERNAME=your_milvus_username
|
||
|
||
# Milvus 密码(可选)
|
||
# MILVUS_PASSWORD=your_milvus_password
|
||
|
||
# Milvus 数据库名称(可选)
|
||
# MILVUS_DB_NAME=your_milvus_db_name
|
||
|
||
# Docreader 地址
|
||
DOCREADER_ADDR=docreader:50051
|
||
|
||
# Docreader 连接方式
|
||
DOCREADER_TRANSPORT=grpc
|
||
|
||
# gRPC TLS 配置(可选)
|
||
# GRPC_TLS_ENABLED=false
|
||
# GRPC_TLS_CERT=/path/to/server.crt # server: 必填;client: mTLS 时填
|
||
# GRPC_TLS_KEY=/path/to/server.key # 同上
|
||
# GRPC_TLS_CA=/path/to/ca.crt # client: 校验 server 证书用;server: mTLS 时签发客户端证书的 CA
|
||
# GRPC_TLS_SERVER_NAME= # 可选;当 DOCREADER_ADDR 用 IP/与证书 CN 不一致时设为证书的 hostname
|
||
# GRPC_MTLS_REQUIRE_CLIENT_CERT=false # server 端:true 时强制要求客户端证书(mTLS)
|
||
|
||
# gRPC 认证 Token(可选,客户端和服务端需配置相同的值)
|
||
# 注意:启用 GRPC_AUTH_TOKEN 时强烈建议同时启用 TLS,否则 token 会以明文随
|
||
# 每次 RPC 在网络上传输。当 GRPC_TLS_ENABLED=true 时客户端会拒绝在不安全
|
||
# 的连接上发送 token。
|
||
# GRPC_AUTH_TOKEN=your-secret-token-at-least-16-bytes
|
||
|
||
# Docreader 中 DOCX 解析的最大页数,默认 0(不限制)
|
||
# 设为正整数(如 500)可限制超大 Word 文档的解析开销;超过页数的内容将不会继续解析
|
||
# DOCREADER_DOCX_MAX_PAGES=0
|
||
|
||
# Docreader 重型解析器并发控制,适合限制多 PDF/OCR 同时导入时的资源占用
|
||
# 设为 0 可关闭对应限流;默认 1 更适合普通单机或 GPU 资源有限的部署
|
||
# DOCREADER_MARKITDOWN_MAX_WORKERS=1
|
||
# DOCREADER_PDF_RENDER_MAX_WORKERS=1
|
||
# DOCREADER_PDF_RENDER_DPI=200
|
||
# DOCREADER_PDF_JPEG_QUALITY=90
|
||
|
||
# 如果使用Weaviate作为向量存储,需要配置以下参数
|
||
# 注意:容器内访问请使用 service:port(不要用 localhost,也不要用宿主机映射端口)
|
||
# Weaviate HTTP 地址(Docker 内:weaviate:8080;宿主机访问:localhost:9035)
|
||
# WEAVIATE_HOST=weaviate:8080
|
||
|
||
# Weaviate gRPC 地址(Docker 内:weaviate:50051;宿主机访问:localhost:50052)
|
||
# WEAVIATE_GRPC_ADDRESS=weaviate:50051
|
||
|
||
# 保留原始 URL 的图片域名白名单(可选,逗号分隔)
|
||
# 配置后,这些域名的图片仍会被下载和分析(OCR/字幕),但 markdown 中保留原始 URL,
|
||
# 不会被替换为对象存储的 provider:// URL。适用于内部稳定服务(如自建 MinerU)。
|
||
# IMAGE_HOST_KEEP_URL=mineru.internal.example.com
|
||
|
||
# Weaviate 架构模式
|
||
# WEAVIATE_SCHEME=http
|
||
|
||
# 是否开启认证(如果你在 weaviate 里启用了 APIKey/OIDC 认证,再把这里设为 true 并配置 WEAVIATE_API_KEY)
|
||
# WEAVIATE_AUTH_ENABLED=false
|
||
|
||
# API Key(可选)
|
||
# WEAVIATE_API_KEY=your_secret_key
|
||
|
||
# Weaviate 数据库名称(可选)
|
||
#WEAVIATE_COLLECTION=your_weaviate_db_name
|
||
|
||
# 如果使用 Apache Doris 4.1+ 作为向量存储,需要配置以下参数
|
||
# Doris FE 的 MySQL 协议地址(host:port)。容器内推荐用服务名 doris-fe:9030。
|
||
# DORIS_ADDR=doris-fe:9030
|
||
|
||
# Doris FE 的 HTTP 端口,用于 Stream Load 批量字段更新(partial update)。
|
||
# DORIS_HTTP_PORT=8030
|
||
|
||
# Doris 目标数据库名(建库语句:CREATE DATABASE weknora;)
|
||
# DORIS_DATABASE=weknora
|
||
|
||
# Doris 用户名(默认 root)
|
||
# DORIS_USERNAME=root
|
||
|
||
# Doris 密码(默认空)
|
||
# DORIS_PASSWORD=
|
||
|
||
# Doris 表前缀,对应每维度的物理表 <prefix>_<dim>
|
||
# DORIS_TABLE_PREFIX=weknora_embeddings
|
||
|
||
# Tavily Search API Key(可选,启用 Tavily 网页搜索提供者)
|
||
# TAVILY_API_KEY=tvly-your_tavily_api_key
|
||
|
||
# ----- OIDC Auth -----
|
||
# 如果需要启用OIDC登录,设为true并填写后续字段
|
||
# OIDC_AUTH_ENABLE=false
|
||
|
||
# (Optional) 用于OIDC自动发现端点配置
|
||
# OIDC_AUTH_ISSUER_URL=http://127.0.0.1:5556/dex
|
||
# OIDC_AUTH_DISCOVERY_URL=http://127.0.0.1:5556/dex/.well-known/openid-configuration
|
||
|
||
# OIDC_AUTH_PROVIDER_DISPLAY_NAME=OIDC
|
||
# OIDC_AUTH_CLIENT_ID=client_id_for_oidc_client
|
||
# OIDC_AUTH_CLIENT_SECRET=secret_for_oidc_client
|
||
|
||
# (Optional) OIDC 端点配置, 如果上面的OIDC_AUTH_DISCOVERY_URL填过了,下面的这些可以留空
|
||
# OIDC_AUTH_AUTHORIZATION_ENDPOINT=http://127.0.0.1:5556/dex/auth
|
||
# OIDC_AUTH_TOKEN_ENDPOINT=http://127.0.0.1:5556/dex/token
|
||
# OIDC_AUTH_USER_INFO_ENDPOINT=http://127.0.0.1:5556/dex/userinfo
|
||
|
||
# OIDC_AUTH_SCOPES="openid profile email"
|
||
|
||
# 用于OIDC用于信息中提取用户数据
|
||
# OIDC_USER_INFO_MAPPING_USER_NAME=name
|
||
# OIDC_USER_INFO_MAPPING_EMAIL=email
|
||
|
||
# Document processing task timeout. Large files may need more than Asynq's default 30m.
|
||
# WEKNORA_DOCUMENT_PROCESS_TIMEOUT=2h
|