Files
AIRegulation-DocAnalysis/backend/README.md
ash66 091a02c522 Add AgentSessionService and refactor agent routes
Move session-related responsibilities into a new application-layer AgentSessionService (and AgentSessionFeedbackResult dataclass), provide a bootstrap factory (get_agent_session_service), and update agent API routes to call the service instead of accessing ConversationStore directly. Routes now translate ValueError into 404 responses and use service methods for get/list/history/delete/feedback. Also update package exports and docs/READMEs to declare the backend architecture authority, enforce api -> application -> domain ports -> infrastructure boundaries, and call out legacy services/workflows as migration-only. These changes centralize session logic in the application layer and tighten architecture guidance for future backend work.
2026-05-22 09:50:30 +08:00

71 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AI+合规智能中枢后端
`backend` 是当前正式使用的 FastAPI 后端目录,入口为 `app.main:app`
## 架构约束入口
- Backend authoritative architecture 文档:`docs/architecture/backend-project-architecture.md`
- Backend migration RFC`docs/rfc/backend-api-parsing-embedding-migration-requirements.md`
- 后续 backend 新增功能和重构默认遵守:`api -> application -> domain ports -> infrastructure`
- `backend/app/services/*``backend/app/workflows/*` 为迁移期 legacy 目录,除迁移或兼容修复外,不应新增业务编排逻辑。
## 启动
```bash
pip install -r backend/requirements.txt
PYTHONPATH=backend uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
```
也可以直接使用根目录统一脚本:
```bash
./dev.sh start api --foreground
```
## 主要接口
- `GET /health`
- `GET /`
- `POST /api/v1/documents/upload`
- `GET /api/v1/documents/list`
- `GET /api/v1/documents/management-list`
- `GET /api/v1/documents/download/{doc_id}`
- `POST /api/v1/knowledge/search`
- `POST /api/v1/knowledge/retrieval`
- `POST /api/v1/agent/ask`
- `POST /api/v1/agent/chat`
- `GET /api/v1/agent/chat/stream`
## 目录说明
```text
backend/
├── app/
│ ├── api/ # FastAPI 路由与 transport models
│ ├── application/ # 用例编排层
│ ├── domain/ # 核心业务模型与稳定端口
│ ├── infrastructure/ # 外部系统适配器
│ ├── shared/ # composition root 与横切支撑
│ ├── config/ # 配置与日志
│ ├── services/ # legacy façade / 兼容入口
│ ├── workflows/ # legacy workflow 入口
│ └── workers/ # 任务相关代码
├── .env.example
├── requirements.txt
└── main.py
```
## 说明
- 路由前缀保持为 `/api/v1`,以兼容当前前端。
- 当前主业务链路入口是 `documents``knowledge``agent`
- `compliance.py` 当前仍被挂载,但尚未满足目标架构约束;在迁移前不应继续扩展业务编排。
- `docs.py``rag.py` 为遗留/非主入口,不应继续扩展。
## 开发约束
- backend 开发前先阅读 `docs/architecture/backend-project-architecture.md`
- 新增业务能力默认落在 `application` 层,由 `api` 调用,不要直接写进 route。
- route 不应直接访问 MinIO、Milvus、Parser SDK、LLM SDK 或 `ConversationStore`
- `backend/app/shared/bootstrap.py` 是当前 composition root依赖装配优先收口到这里。