641e33b834
- 语义检索(FAISS + embedding)+ 精确查找(法规名+条号) - RAG 问答(SSE 流式,支持 thinking 折叠显示) - 法规浏览(原文阅读) - 历史记录(检索+对话持久化到 SQLite) - 设置页(系统提示词/模板/LLM 参数可配置) - 检索质量评估脚本 Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
75 lines
1.9 KiB
Python
75 lines
1.9 KiB
Python
"""配置模块 — 路径、端口、外部服务地址"""
|
|
import os
|
|
from pathlib import Path
|
|
|
|
# ===== 路径配置 =====
|
|
# 法规原文目录(容器内挂载点,只读)
|
|
LAW_PACK_DIR = Path(os.getenv("LAW_PACK_DIR", "/data/law-pack-2026-07-01-markdown"))
|
|
|
|
# 索引数据目录(容器内挂载点,读写)
|
|
LAW_KB_DATA_DIR = Path(os.getenv("LAW_KB_DATA_DIR", "/data/law-kb-data"))
|
|
|
|
# FAISS 索引文件路径
|
|
FAISS_INDEX_PATH = LAW_KB_DATA_DIR / "faiss" / "index.faiss"
|
|
|
|
# SQLite metadata 数据库路径
|
|
SQLITE_PATH = LAW_KB_DATA_DIR / "metadata.db"
|
|
|
|
# 构建日志目录
|
|
LOGS_DIR = LAW_KB_DATA_DIR / "logs"
|
|
|
|
# 地方性法规区域映射文件
|
|
REGION_MAPPING_PATH = LAW_PACK_DIR / "地方性法规区域映射.json"
|
|
|
|
# 法规类别与目录名映射
|
|
CATEGORY_DIRS = {
|
|
"法律": "法律",
|
|
"行政法规": "行政法规",
|
|
"监察法规": "监察法规",
|
|
"司法解释": "司法解释",
|
|
"地方性法规": "地方性法规",
|
|
}
|
|
|
|
# ===== 外部服务地址 =====
|
|
# 容器内通过 localhost 访问(--network host 模式)
|
|
EMBEDDING_URL = os.getenv("EMBEDDING_URL", "http://localhost:8003/v1")
|
|
LLM_URL = os.getenv("LLM_URL", "http://localhost:7000/v1")
|
|
|
|
# embedding 模型名(与 114 上 vLLM served-model-name 一致)
|
|
EMBEDDING_MODEL = os.getenv("EMBEDDING_MODEL", "qwen3-embedding-0.6b")
|
|
|
|
# LLM 模型名
|
|
LLM_MODEL = os.getenv("LLM_MODEL", "qwen3.5-35b")
|
|
|
|
# ===== 索引参数 =====
|
|
# embedding 批量大小
|
|
EMBEDDING_BATCH_SIZE = int(os.getenv("EMBEDDING_BATCH_SIZE", "32"))
|
|
|
|
# FAISS HNSW 参数
|
|
HNSW_M = 32
|
|
HNSW_EF_CONSTRUCTION = 200
|
|
HNSW_EF_SEARCH = 64
|
|
|
|
# 检索默认 Top-K
|
|
DEFAULT_TOP_K = 20
|
|
|
|
# RAG 检索 Top-K
|
|
RAG_TOP_K = 10
|
|
|
|
# RAG 相似度阈值(低于此值不调用 LLM)
|
|
RAG_SIMILARITY_THRESHOLD = 0.3
|
|
|
|
# ===== API 参数 =====
|
|
# 查询最大长度
|
|
MAX_QUERY_LENGTH = 1000
|
|
|
|
# 分页默认值
|
|
DEFAULT_PAGE_SIZE = 20
|
|
MAX_PAGE_SIZE = 100
|
|
|
|
# 浏览页分页
|
|
BROWSE_PAGE_SIZE = 50
|
|
|
|
# ===== 服务端口 =====
|
|
APP_PORT = int(os.getenv("APP_PORT", "8090"))
|