feat: 新增多格式文件上传入库与认证体系
- 新增 JWT 认证模块,支持登录/注册/用户管理 - 新增文件上传接口,支持 .txt/.md/.html/.pdf/.docx 等格式解析入库 - 新增检索结果 AI 总结功能 - 新增文本去重缓存机制 - 新增全局认证夹具简化测试 - 新增配置项与环境变量支持 - 完善文档与测试覆盖
This commit is contained in:
@@ -148,6 +148,69 @@ class TestQueryParserParse:
|
||||
|
||||
assert [c.name for c in parsed.categories] == ["财务行政"]
|
||||
|
||||
async def test_parse_new_fields_populated(self):
|
||||
"""JSON 含 entities/intent/time_range → 正确填充字段"""
|
||||
response = json.dumps(
|
||||
{
|
||||
"categories": [{"name": "技术文档", "confidence": 0.9}],
|
||||
"rewrite": "如何设计微服务架构",
|
||||
"keywords": ["架构"],
|
||||
"entities": ["微服务", "Kubernetes"],
|
||||
"intent": "操作",
|
||||
"time_range": "2023年",
|
||||
},
|
||||
ensure_ascii=False,
|
||||
)
|
||||
parser = _make_parser(response)
|
||||
|
||||
parsed = await parser.parse("怎么做微服务部署")
|
||||
|
||||
assert parsed.parse_failed is False
|
||||
assert parsed.entities == ["微服务", "Kubernetes"]
|
||||
assert parsed.intent == "操作"
|
||||
assert parsed.time_range == "2023年"
|
||||
|
||||
async def test_parse_new_fields_missing_defaults(self):
|
||||
"""JSON 缺 entities/intent/time_range → 降级为默认值,parse_failed=False(向后兼容)"""
|
||||
response = json.dumps(
|
||||
{
|
||||
"categories": [{"name": "技术文档", "confidence": 0.9}],
|
||||
"rewrite": "如何设计架构",
|
||||
"keywords": ["架构"],
|
||||
},
|
||||
ensure_ascii=False,
|
||||
)
|
||||
parser = _make_parser(response)
|
||||
|
||||
parsed = await parser.parse("怎么做架构设计")
|
||||
|
||||
assert parsed.parse_failed is False
|
||||
assert parsed.entities == []
|
||||
assert parsed.intent == ""
|
||||
assert parsed.time_range == ""
|
||||
|
||||
async def test_parse_new_fields_wrong_type_defaults(self):
|
||||
"""entities 非列表 / intent 非字符串 / time_range 非字符串 → 置空,parse_failed=False(容错)"""
|
||||
response = json.dumps(
|
||||
{
|
||||
"categories": [{"name": "技术文档", "confidence": 0.9}],
|
||||
"rewrite": "如何设计架构",
|
||||
"keywords": ["架构"],
|
||||
"entities": "微服务", # 非列表
|
||||
"intent": 123, # 非字符串
|
||||
"time_range": ["2023"], # 非字符串
|
||||
},
|
||||
ensure_ascii=False,
|
||||
)
|
||||
parser = _make_parser(response)
|
||||
|
||||
parsed = await parser.parse("怎么做架构设计")
|
||||
|
||||
assert parsed.parse_failed is False
|
||||
assert parsed.entities == []
|
||||
assert parsed.intent == ""
|
||||
assert parsed.time_range == ""
|
||||
|
||||
|
||||
class TestDecideRoute:
|
||||
"""decide_route 纯函数的四个分支"""
|
||||
|
||||
Reference in New Issue
Block a user