feat: Phase 1+2 — project setup and core infrastructure

- requirements.txt, config.yaml, .env, Dockerfile, docker-compose.yml
- app/core: config (YAML+env override), logging (JSON structured),
  exceptions (typed hierarchy), json_utils (Markdown fence stripping)
- app/clients: LLMClient ABC + ZhipuAIClient (run_in_executor),
  StorageClient ABC + RustFSClient (boto3 head_object for size check)
- app/main.py: FastAPI app with health endpoint and router registration
- app/core/dependencies.py: lru_cache singleton factories
- tests/conftest.py: mock_llm, mock_storage, test_app, client fixtures
- pytest.ini: asyncio_mode=auto
- 11 unit tests passing
This commit is contained in:
wh
2026-04-10 15:22:45 +08:00
parent 4162d9f4e6
commit e1eb5e47b1
54 changed files with 716 additions and 0 deletions

16
requirements.txt Normal file
View File

@@ -0,0 +1,16 @@
fastapi>=0.111.0
uvicorn[standard]>=0.29.0
pydantic>=2.7.0
zhipuai>=2.1.0
boto3>=1.34.0
pdfplumber>=0.11.0
python-docx>=1.1.0
opencv-python-headless>=4.9.0
numpy>=1.26.0
httpx>=0.27.0
python-dotenv>=1.0.0
pyyaml>=6.0.0
# Testing
pytest>=8.0.0
pytest-asyncio>=0.23.0