feat: QYLAW 法律法规知识库
- 语义检索(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>
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
"""配置模块 — 路径、端口、外部服务地址"""
|
||||
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"))
|
||||
Reference in New Issue
Block a user