fix: 修复 11 个代码架构审计问题

H1: AppConfig 自定义 __init__ 改用 from_dict() 类方法
H2: list_collections_with_stats 改为从 ChromaDB 直接查询
H3: RateLimiter 过期 key 自动清理, 防止内存泄漏
M1: delete_by_source 区分 ValueError 与真实异常, 记日志
M2: VectorDB 新增 list_collections() 封装方法
M3: _remove_by_source 异常记日志, 不再静默吞掉
M4: CLI 集合回退支持 MD_VECTOR_DB_COLLECTION 环境变量
L1: DEFAULT_CONFIG_PATH 自动从项目根目录解析
L2: ingest 命令内重复 import 移至模块顶部
L3: 新增死循环回归测试 + 密集分隔符分块测试
L4: 统一 logger 名称为 md-vector-db
删除旧版审计文档

测试: 48 passed
This commit is contained in:
2026-07-06 13:16:26 +08:00
parent 7e77c31e16
commit 832201186d
13 changed files with 815 additions and 50 deletions
+3 -3
View File
@@ -14,7 +14,7 @@ class TestEmbedConfig:
def test_local_mode_defaults(self):
"""默认 local 模式,带默认模型名."""
data = {"embed": {"mode": "local"}}
cfg = AppConfig(**data)
cfg = AppConfig.from_dict(data)
assert cfg.embed.mode == "local"
assert cfg.embed.local_model == "BAAI/bge-small-zh-v1.5"
assert cfg.embed.api_base == ""
@@ -28,7 +28,7 @@ class TestEmbedConfig:
"api_key": "sk-test",
}
}
cfg = AppConfig(**data)
cfg = AppConfig.from_dict(data)
assert cfg.embed.mode == "api"
assert cfg.embed.api_base == "https://api.openai.com/v1"
assert cfg.embed.api_key == "sk-test"
@@ -40,7 +40,7 @@ class TestChunkConfig:
def test_default_values(self):
"""分块默认值正确."""
data = {"chunk": {}}
cfg = AppConfig(**data)
cfg = AppConfig.from_dict(data)
assert cfg.chunk.max_size == 1000
assert cfg.chunk.overlap == 100