- 新增 system_cache 模块与 POST /settings/cache/clear,管理员可一键清理 OCR 结果/运行时配置/模型失败冷却/知识库索引/地点语义等进程内缓存 - 各服务暴露 clear_*_cache 方法(ocr/runtime_settings/runtime_chat/knowledge/application_location_semantic),SettingsCacheClearRead 汇总清理项 - OCR 转图片失败时尝试用 PDF 文本层兜底构建识别文档(有效字符≥8),并写结果缓存;OcrService 暴露 clear_result_cache - receipt_folder 车票过滤补充身份证号关键词,附件文档/操作/展示模块同步适配 - 新增 system_cache_endpoints 测试,更新 openapi_schema/ocr/receipt_folder/attachment_association_jobs 测试
57 lines
2.8 KiB
Python
57 lines
2.8 KiB
Python
from __future__ import annotations
|
|
|
|
from app.core.config import get_settings
|
|
from app.main import create_app
|
|
|
|
|
|
def test_openapi_schema_includes_documented_backend_routes() -> None:
|
|
schema = create_app().openapi()
|
|
|
|
assert schema["info"]["title"] == get_settings().app_name
|
|
assert any(tag["name"] == "agent-assets" for tag in schema["tags"])
|
|
assert any(tag["name"] == "knowledge" for tag in schema["tags"])
|
|
assert any(tag["name"] == "ocr" for tag in schema["tags"])
|
|
assert any(tag["name"] == "ontology" for tag in schema["tags"])
|
|
assert any(tag["name"] == "orchestrator" for tag in schema["tags"])
|
|
assert any(tag["name"] == "agent-feedback" for tag in schema["tags"])
|
|
assert any(tag["name"] == "analytics" for tag in schema["tags"])
|
|
|
|
agent_assets_post = schema["paths"]["/api/v1/agent-assets"]["post"]
|
|
assert agent_assets_post["summary"] == "创建 Agent 资产"
|
|
assert any(param["name"] == "x-actor" for param in agent_assets_post["parameters"])
|
|
|
|
knowledge_upload_post = schema["paths"]["/api/v1/knowledge/documents"]["post"]
|
|
assert knowledge_upload_post["summary"] == "上传知识库文档"
|
|
assert "application/octet-stream" in knowledge_upload_post["requestBody"]["content"]
|
|
|
|
knowledge_callback_post = schema["paths"][
|
|
"/api/v1/knowledge/documents/{document_id}/onlyoffice/callback"
|
|
]["post"]
|
|
assert knowledge_callback_post["summary"] == "接收 ONLYOFFICE 回调"
|
|
assert "application/json" in knowledge_callback_post["requestBody"]["content"]
|
|
|
|
ocr_post = schema["paths"]["/api/v1/ocr/recognize"]["post"]
|
|
assert ocr_post["summary"] == "识别票据或图片 OCR"
|
|
assert "multipart/form-data" in ocr_post["requestBody"]["content"]
|
|
|
|
ontology_parse_post = schema["paths"]["/api/v1/ontology/parse"]["post"]
|
|
assert ontology_parse_post["summary"] == "解析自然语言为语义本体"
|
|
assert "application/json" in ontology_parse_post["requestBody"]["content"]
|
|
|
|
orchestrator_run_post = schema["paths"]["/api/v1/orchestrator/run"]["post"]
|
|
assert orchestrator_run_post["summary"] == "运行 Orchestrator 统一调度"
|
|
assert "application/json" in orchestrator_run_post["requestBody"]["content"]
|
|
|
|
feedback_post = schema["paths"]["/api/v1/agent-feedback"]["post"]
|
|
assert feedback_post["summary"] == "记录 Agent 操作评价"
|
|
assert "application/json" in feedback_post["requestBody"]["content"]
|
|
|
|
analytics_get = schema["paths"]["/api/v1/analytics/system-dashboard"]["get"]
|
|
assert analytics_get["summary"] == "查询系统看板真实指标"
|
|
|
|
settings_cache_clear_post = schema["paths"]["/api/v1/settings/cache/clear"]["post"]
|
|
assert settings_cache_clear_post["summary"] == "清理系统缓存"
|
|
|
|
root_get = schema["paths"]["/"]["get"]
|
|
assert root_get["summary"] == "服务根检查"
|