Files
RAG/backend
YoVinchen c3bad0f186
Some checks failed
verify / verify (push) Has been cancelled
Make the offline RAG chain observable without widening credential access
Expose the verified synthetic retrieval path through a typed React client and a non-root Nginx edge while keeping database credentials and data-network reachability out of the browser tier. A fixed-origin gateway preserves request boundaries and now closes upstream streams even when downstream disconnects before body iteration. The deployment ADR and runbooks record the four-network topology and its accepted Web edge-egress risk.

Constraint: The previously exposed Bailian key must be revoked and no live provider credential may enter Git, images, logs, or the browser.
Rejected: Connect Web directly to the data network | expands lateral reach to PostgreSQL.
Rejected: Publish the database-aware API on the edge network | gives a credential-bearing process a public default route.
Rejected: Buffer streaming responses in either proxy | prevents incremental chat delivery in the future.
Confidence: high
Scope-risk: moderate
Reversibility: clean
Directive: Do not mark Stage 1 or Stage 2 complete until the rotated-key live smoke and remaining stage gates pass.
Tested: make verify; 65 backend tests; 14 frontend tests; Docker image build; container health and isolation probes; real HTTP demo/status/search/docs/OpenAPI checks.
Not-tested: Live Bailian models, real document ingestion, business chat SSE generation, and final browser screenshot automation because the browser skill runtime was unavailable.
2026-07-12 17:38:57 +08:00
..

Backend

Python/FastAPI 后端代码位于本目录。实现阶段采用模块化单体,同一代码镜像分别运行 API 与持久化任务 Worker。

规划边界:

backend/
├── app/
│   ├── api/v1/            HTTP/SSE 接口
│   ├── core/              配置、安全、日志、遥测
│   ├── domain/            领域实体与状态机
│   ├── ports/             外部能力协议(依赖倒置边界)
│   ├── services/          入库、检索、生成、评测用例
│   ├── adapters/          百炼、解析器、文件存储等外部适配器
│   ├── persistence/       SQLAlchemy 模型与仓储
│   ├── workers/           PostgreSQL 任务队列消费者
│   ├── tools/             模型探测、seed 与离线运维入口
│   └── prompts/           版本化提示词
└── tests/
    ├── unit/
    ├── integration/
    └── contract/

前端不得直接访问百炼API Key 读取逻辑只允许存在于后端配置层。