flowchart TB
User([用户浏览器]) subgraph Frontend["前端 (React + Vite)"] SPA["App.jsx
单页应用"] ViteProxy["Vite Dev Proxy
/api/* → 127.0.0.1:8000"] end subgraph Backend["后端 (FastAPI)"] direction TB Router["main.py
路由与 Lifespan"] Imports["imports.py
导入 / 去重 / 归档"] Candidates["candidates.py
候选人合并"] TableView["table_view.py
表格视图 / 行编辑"] Review["review.py
字段审核"] ExtractionMod["extraction.py
抽取队列 + 后台 Worker"] Router --> Imports Router --> Candidates Router --> TableView Router --> Review Router --> ExtractionMod end subgraph ExtractorLayer["抽取层 (Extractor 抽象)"] direction TB ExtractorIface{{"Extractor
接口"}} RuleExtractor["RuleExtractor
本地 regex / 启发式"] CodexExtractor["CodexExtractor
Codex CLI 子进程"] ExtractorIface --> RuleExtractor ExtractorIface --> CodexExtractor end subgraph Storage["本地存储"] direction TB SQLite[("SQLite
data/db/*.sqlite3")] Archive[("Archive
data/archive/")] end LLM[/"外部 LLM API
(仅 Codex 模式)"/] User -->|HTTP| ViteProxy ViteProxy --> SPA SPA -->|REST /api/*| Router Imports --> Archive Imports --> SQLite Candidates --> SQLite TableView --> SQLite Review --> SQLite ExtractionMod --> SQLite ExtractionMod --> ExtractorIface CodexExtractor -.->|网络外发
简历文本| LLM classDef external fill:#fde68a,stroke:#b45309,color:#78350f; classDef storage fill:#dbeafe,stroke:#1d4ed8,color:#1e3a8a; classDef iface fill:#ede9fe,stroke:#6d28d9,color:#4c1d95; class LLM external; class SQLite,Archive storage; class ExtractorIface iface;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/272097.html