Files
WeKnora/.env.example
T

204 lines
5.6 KiB
Bash

# 使用说明
# 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
# 禁止新用户注册(生产环境建议设为 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)
RETRIEVE_DRIVER=postgres
# 文件存储类型(local/minio/cos)
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
# 前端服务端口,默认为80
FRONTEND_PORT=80
# 文档解析模块端口,默认为50051
DOCREADER_PORT=50051
# 数据库用户名
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
# 是否开启知识图谱构建和检索(构建阶段需调用大模型,耗时较长)
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
# Docreader 并发任务数(图片OCR/Caption等异步任务),默认 1
# 默认使用的 paddleocr 在高并发场景下,会出现异常,请谨慎设置
# IMAGE_MAX_CONCURRENT=1
# Docreader OCR后端(no_ocr, paddle, nanonets)
# OCR_BACKEND=paddle
# 如果使用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
# 如果使用MinIO作为文件存储,需要配置以下参数
# 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
# 如果解析网络连接使用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
# 自定义 Sandbox Docker 镜像
WEKNORA_SANDBOX_DOCKER_IMAGE=wechatopenai/weknora-sandbox:latest
# APK 镜像源设置(可选)
APK_MIRROR_ARG=mirrors.tencent.com