2026-04-28 11:29:33 +08:00
|
|
|
|
# 环境变量配置 - 已有数据库服务
|
2026-05-14 15:07:34 +08:00
|
|
|
|
# AI+合规智能中枢
|
2026-04-28 11:29:33 +08:00
|
|
|
|
|
2026-05-14 15:07:34 +08:00
|
|
|
|
# ===== 应用配置 =====
|
2026-04-28 11:29:33 +08:00
|
|
|
|
APP_NAME=AI+合规智能中枢
|
|
|
|
|
|
APP_VERSION=0.1.0
|
|
|
|
|
|
DEBUG=false
|
|
|
|
|
|
|
2026-05-14 15:07:34 +08:00
|
|
|
|
# ===== Milvus向量数据库配置(已有)=====
|
2026-05-20 23:34:08 +08:00
|
|
|
|
MILVUS_HOST=6.86.80.8
|
2026-04-28 11:29:33 +08:00
|
|
|
|
MILVUS_PORT=19530
|
2026-05-26 20:21:31 +08:00
|
|
|
|
MILVUS_COLLECTION=regulations_dense_1024_v2
|
2026-04-28 11:29:33 +08:00
|
|
|
|
MILVUS_DB_NAME=default
|
2026-05-20 23:34:08 +08:00
|
|
|
|
MILVUS_INDEX_TYPE=IVF_FLAT
|
|
|
|
|
|
MILVUS_NLIST=128
|
|
|
|
|
|
MILVUS_NPROBE=16
|
2026-04-28 11:29:33 +08:00
|
|
|
|
|
2026-05-14 15:07:34 +08:00
|
|
|
|
# ===== MinIO对象存储配置(已有)=====
|
2026-05-20 23:34:08 +08:00
|
|
|
|
MINIO_ENDPOINT=6.86.80.8:9000
|
2026-04-28 11:29:33 +08:00
|
|
|
|
MINIO_ACCESS_KEY=minioadmin
|
|
|
|
|
|
MINIO_SECRET_KEY=minioadmin
|
|
|
|
|
|
MINIO_BUCKET=compliance-docs
|
|
|
|
|
|
MINIO_SECURE=false
|
|
|
|
|
|
|
2026-05-14 15:07:34 +08:00
|
|
|
|
# ===== Redis配置(已有)=====
|
2026-05-20 23:34:08 +08:00
|
|
|
|
REDIS_HOST=6.86.80.8
|
2026-04-28 11:29:33 +08:00
|
|
|
|
REDIS_PORT=6379
|
|
|
|
|
|
REDIS_PASSWORD=redis@123
|
|
|
|
|
|
REDIS_DB=0
|
|
|
|
|
|
|
2026-05-14 15:07:34 +08:00
|
|
|
|
# ===== PostgreSQL配置(已有)=====
|
2026-05-20 23:34:08 +08:00
|
|
|
|
POSTGRES_HOST=6.86.80.8
|
2026-04-28 11:29:33 +08:00
|
|
|
|
POSTGRES_PORT=5432
|
|
|
|
|
|
POSTGRES_USER=postgresql
|
|
|
|
|
|
POSTGRES_PASSWORD=postgresql123456
|
|
|
|
|
|
POSTGRES_DB=compliance_db
|
|
|
|
|
|
|
2026-05-14 15:07:34 +08:00
|
|
|
|
# ===== 嵌入模型配置 =====
|
2026-05-18 16:32:42 +08:00
|
|
|
|
EMBEDDING_MODEL=text-embedding-v3
|
2026-05-18 22:30:28 +08:00
|
|
|
|
EMBEDDING_DIM=1024
|
2026-05-18 16:32:42 +08:00
|
|
|
|
EMBEDDING_API_KEY=sk-fVr9KmDZNC4pGDBQj0EUWz9bDmFzNxjYC9EzZpe2bVDsxtz8
|
|
|
|
|
|
EMBEDDING_BASE_URL=http://6.86.80.4:30080/v1
|
|
|
|
|
|
EMBEDDING_TIMEOUT_SECONDS=120
|
2026-04-28 11:29:33 +08:00
|
|
|
|
|
2026-05-14 15:07:34 +08:00
|
|
|
|
# ===== 文档处理配置 =====
|
2026-04-28 11:29:33 +08:00
|
|
|
|
CHUNK_SIZE=512
|
|
|
|
|
|
CHUNK_OVERLAP=50
|
|
|
|
|
|
MAX_FILE_SIZE_MB=100
|
2026-05-20 23:34:08 +08:00
|
|
|
|
PARSER_BACKEND=aliyun
|
|
|
|
|
|
CHUNK_BACKEND=aliyun
|
2026-06-10 11:10:36 +08:00
|
|
|
|
# 文档元数据存储后端:启用 postgres 以激活合规分析历史记录(Direction B)及 Finding Chat 持久化(Direction C)
|
|
|
|
|
|
DOCUMENT_REPOSITORY_BACKEND=postgres
|
2026-06-05 18:00:31 +08:00
|
|
|
|
# Set to true only when a Celery worker is actually running (./dev.sh start worker).
|
|
|
|
|
|
# Default false: processing runs in FastAPI's threadpool — no external worker needed.
|
|
|
|
|
|
USE_CELERY_WORKER=false
|
2026-04-28 11:29:33 +08:00
|
|
|
|
|
2026-06-08 11:16:28 +08:00
|
|
|
|
# ===== 法规感知爬取配置 =====
|
2026-08-06 11:08:46 +08:00
|
|
|
|
# 单次 HTTP 请求超时(秒),含正文抓取(fetch_full_text)。
|
2026-06-08 11:16:28 +08:00
|
|
|
|
PERCEPTION_CRAWL_TIMEOUT_SECONDS=120
|
2026-08-06 11:08:46 +08:00
|
|
|
|
# 每个数据源单次爬取的最大条目数。
|
2026-06-08 11:16:28 +08:00
|
|
|
|
PERCEPTION_MAX_EVENTS_PER_SOURCE=100
|
2026-08-06 11:08:46 +08:00
|
|
|
|
# 变更判定的次要闸门:段落改动字符占比达到该阈值才送 LLM 分类。
|
|
|
|
|
|
# 数字变化(如 30米->20米)或情态词变化(应当/宜/不得等)无视此阈值,始终判定为显著变更。
|
|
|
|
|
|
PERCEPTION_DIFF_MIN_CHANGE_RATIO=0.02
|
|
|
|
|
|
# 定时全量爬取的执行间隔(秒),默认 21600 = 6 小时。
|
|
|
|
|
|
# 仅当 Celery Beat 进程在运行时才生效(./dev.sh start beat),Beat 未启动则完全不会自动爬取。
|
|
|
|
|
|
PERCEPTION_CRAWL_INTERVAL_SECONDS=21600
|
2026-06-08 11:16:28 +08:00
|
|
|
|
|
2026-05-14 15:07:34 +08:00
|
|
|
|
# ===== API配置 =====
|
2026-04-28 11:29:33 +08:00
|
|
|
|
API_HOST=0.0.0.0
|
2026-05-14 15:07:34 +08:00
|
|
|
|
API_PORT=8000
|
|
|
|
|
|
|
|
|
|
|
|
# ===== LLM配置 =====
|
|
|
|
|
|
# LLM提供商选择: qwen / deepseek / qwen_vl
|
|
|
|
|
|
LLM_PROVIDER=deepseek
|
|
|
|
|
|
LLM_MODEL=deepseek-v4-flash
|
|
|
|
|
|
LLM_MAX_TOKENS=4096
|
|
|
|
|
|
LLM_TEMPERATURE=0.7
|
|
|
|
|
|
|
|
|
|
|
|
# ===== Qwen API配置(阿里云DashScope)=====
|
|
|
|
|
|
# 获取API Key: https://dashscope.console.aliyun.com/
|
|
|
|
|
|
QWEN_API_KEY=sk-fVr9KmDZNC4pGDBQj0EUWz9bDmFzNxjYC9EzZpe2bVDsxtz8
|
|
|
|
|
|
QWEN_BASE_URL=http://6.86.80.4:30080/v1
|
2026-05-18 22:30:28 +08:00
|
|
|
|
QWEN_MODEL=qwen3.6-plus
|
2026-05-14 15:07:34 +08:00
|
|
|
|
QWEN_VL_MODEL=qwen3-vl-plus
|
|
|
|
|
|
|
|
|
|
|
|
# ===== DeepSeek API配置 =====
|
|
|
|
|
|
# 获取API Key: https://platform.deepseek.com/
|
|
|
|
|
|
DEEPSEEK_API_KEY=sk-fVr9KmDZNC4pGDBQj0EUWz9bDmFzNxjYC9EzZpe2bVDsxtz8
|
|
|
|
|
|
DEEPSEEK_BASE_URL=http://6.86.80.4:30080/v1
|
|
|
|
|
|
DEEPSEEK_MODEL=deepseek-v4-flash
|
|
|
|
|
|
|
|
|
|
|
|
# ===== RAG配置 =====
|
|
|
|
|
|
RAG_TOP_K=10
|
|
|
|
|
|
RAG_MAX_CONTEXT_TOKENS=4000
|
|
|
|
|
|
RAG_SUMMARY_MAX_TOKENS=1024
|
|
|
|
|
|
RAG_SKILLS_MAX_TOKENS=2048
|
2026-05-18 22:30:28 +08:00
|
|
|
|
|
|
|
|
|
|
# ===== 阿里云文档解析 =====
|
|
|
|
|
|
ALIBABA_ACCESS_KEY_ID=LTAI5t9ZjvwSU9bKuMyiExrE
|
|
|
|
|
|
ALIBABA_ACCESS_KEY_SECRET=hNvY6XocmEO6inYlrmiBwBcx5OfidL
|
|
|
|
|
|
ALIBABA_ENDPOINT=docmind-api.cn-hangzhou.aliyuncs.com
|
|
|
|
|
|
ALIYUN_PARSE_POLL_INTERVAL_SECONDS=5
|
|
|
|
|
|
ALIYUN_PARSE_TIMEOUT_SECONDS=900
|
|
|
|
|
|
ALIYUN_PARSE_LAYOUT_STEP_SIZE=50
|
|
|
|
|
|
ALIYUN_LLM_ENHANCEMENT=true
|
|
|
|
|
|
ALIYUN_ENHANCEMENT_MODE=VLM
|
|
|
|
|
|
DOCUMENT_PARSE_ARTIFACT_PREFIX=artifacts
|
|
|
|
|
|
PARSER_FAILURE_MODE=fail
|
2026-06-05 18:00:31 +08:00
|
|
|
|
|
|
|
|
|
|
# ===== Reranker 配置 =====
|
2026-07-23 14:09:33 +08:00
|
|
|
|
RERANKER_ENABLED=false
|
2026-06-05 18:00:31 +08:00
|
|
|
|
RERANKER_BASE_URL=http://6.86.80.4:30080/v1
|
|
|
|
|
|
RERANKER_MODEL=BAAI/bge-reranker-v2-m3
|
2026-07-02 22:03:39 +08:00
|
|
|
|
RERANKER_API_KEY=sk-fVr9KmDZNC4pGDBQj0EUWz9bDmFzNxjYC9EzZpe2bVDsxtz8
|
2026-06-05 18:00:31 +08:00
|
|
|
|
RERANKER_TOP_K=5
|
|
|
|
|
|
|
|
|
|
|
|
# ===== 会话持久化 =====
|
|
|
|
|
|
SESSION_BACKEND=redis
|
|
|
|
|
|
|
|
|
|
|
|
# ===== 认证配置 =====
|
|
|
|
|
|
# 生产环境请修改为强随机密钥: python -c "import secrets; print(secrets.token_hex(32))"
|
|
|
|
|
|
AUTH_SECRET_KEY=ai-compliance-hub-jwt-secret-2026-tsystems
|
|
|
|
|
|
AUTH_ALGORITHM=HS256
|
|
|
|
|
|
AUTH_TOKEN_EXPIRE_MINUTES=480
|
|
|
|
|
|
AUTH_ENABLED=true
|
|
|
|
|
|
|
|
|
|
|
|
# ===== CORS =====
|
|
|
|
|
|
CORS_ALLOW_ORIGINS=http://localhost:5173
|
2026-07-02 22:03:39 +08:00
|
|
|
|
|
|
|
|
|
|
# ===== HyDE ???? =====
|
|
|
|
|
|
HYDE_ENABLED=true
|
|
|
|
|
|
HYDE_MAX_TOKENS=200
|
|
|
|
|
|
HYDE_LLM_PROVIDER=qwen
|
2026-08-06 11:08:46 +08:00
|
|
|
|
HYDE_LLM_MODEL=qwen3.6-flash
|
2026-07-02 22:03:39 +08:00
|
|
|
|
|
2026-08-06 11:08:46 +08:00
|
|
|
|
|
|
|
|
|
|
# ===== MCP 服务配置 =====
|
|
|
|
|
|
# MCP SDK 在传输层绑定回环地址时会自动启用 DNS 重绑定防护:Host 头不在下表内的
|
|
|
|
|
|
# 请求一律返回 HTTP 421,且发生在进入工具逻辑之前。部署在 6.86.80.9 必须显式列出
|
|
|
|
|
|
# 该地址,否则所有远程 MCP 客户端(Claude Desktop / IDE 等)100% 连不上。
|
|
|
|
|
|
# 语法:`:*` 后缀匹配任意端口;填 `*` 表示彻底关闭该防护(不推荐)。
|
|
|
|
|
|
MCP_ALLOWED_HOSTS=6.86.80.9:*,127.0.0.1:*,localhost:*,[::1]:*
|
|
|
|
|
|
|
|
|
|
|
|
# 系统状态页 MCP 卡片展示、以及"复制接入配置"按钮写入的对外访问地址。
|
|
|
|
|
|
# 留空则由后端从请求 Host 头推导;但前端经 Vite 代理(changeOrigin: true)转发后
|
|
|
|
|
|
# Host 会被改写成 API_HOST:API_PORT,推导结果是 0.0.0.0/127.0.0.1,客户端无法使用,
|
|
|
|
|
|
# 因此远程部署必须显式指定。结尾的斜杠不能省略。
|
|
|
|
|
|
MCP_PUBLIC_URL=http://6.86.80.9:8000/mcp/
|