HR 流程:简历/岗位 → Neo4j 知识图谱 → 混合打分(图谱评分 + LLM 评估)
flowchart LR
FE_HR[前端·HR 页面] --> GW_HR[API 网关/路由]
subgraph Backend_HR [后端服务·Spring Boot + Spring AI]
GW_HR --> ResumeSvc[简历解析]
GW_HR --> MatchSvc[匹配/图谱]
GW_HR --> PositionSvc[岗位]
end
MatchSvc --> Neo4j[(Neo4j\n技能图谱)]
MatchSvc --> HybridScore[混合打分\n图谱覆盖率/深度/前置完整度 + LLM 评估]
HybridScore --> ModelRouter[模型路由器]
ModelRouter --> Dashscope[阿里云百炼]
ModelRouter --> OpenAI[OpenAI]
PositionSvc --> PG[(PostgreSQL\n业务数据)]
ResumeSvc --> PG
MatchSvc --> PG
面试官流程:岗位/技能 → RAG(Milvus 题库/技能向量)→ LLM
flowchart LR
FE_INT[前端·面试官页面] --> GW_INT[API 网关/路由]
subgraph Backend_INT [后端服务·Spring Boot + Spring AI]
GW_INT --> InterviewSvc[面试题生成]
GW_INT --> PositionSvc2[岗位]
end
InterviewSvc --> Milvus2[(Milvus\nRAG:题库/技能向量检索)]
InterviewSvc --> ModelRouter2[模型路由器]
ModelRouter2 --> Dashscope2[阿里云百炼]
ModelRouter2 --> OpenAI2[OpenAI]
PositionSvc2 --> PG2[(PostgreSQL\n业务数据)]
HR 通过 Neo4j 图谱进行技能匹配后送入 LLM;面试官流程以 Milvus RAG 检索题库/技能语义,再送入 LLM。



back/:Spring Boot 后端。front/:React 前端。docker/:基础设施与一键部署的 Compose 文件、初始化脚本。详细步骤请参见
DEV_GUIDE.md。
1) 启动基础设施(本地开发)
cd docker
docker-compose -f docker-compose.dev.yml up -d
2) 初始化 Neo4j 知识图谱
- 浏览器执行 docker/neo4j/init.cypher 和 docker/neo4j/init-skills-extended.cypher,或使用 cypher-shell(详见 DEV_GUIDE)。
3) 配置大模型 API Key(至少需阿里云百炼,OpenAI 可选)
export DASHSCOPE_API_KEY=你的阿里云百炼API_KEY
export OPENAI_API_KEY=你的OpenAI_API_KEY # 可选
4) 启动后端(本地开发)
cd back
./mvnw spring-boot:run
5) 启动前端(本地开发)
cd front
npm install
npm run dev
6) 全栈 Docker 一键启动(可选)
cd docker
export DASHSCOPE_API_KEY=你的阿里云百炼API_KEY
export OPENAI_API_KEY=你的OpenAI_API_KEY # 可选
docker-compose up -d
http://localhost:8080/swagger-ui.html(更多启动、调试与排障说明,请查看 DEV_GUIDE.md)
1) 引入 SDK 依赖:在 back/pom.xml 添加对应模型的官方 SDK 或 HTTP 客户端依赖,并配置密钥环境变量。
2) 实现适配器:参考 AliyunAdapter,实现 AIModelAdapter 接口,封装 chat / embedding 调用和模型 ID。
3) 注册模型:在模型注册/路由处(如 ModelRegistry、ModelRouter)将新 Adapter 注册并开放配置。
4) 配置密钥:在 application.yml 或环境变量中新增该模型的 API Key/Endpoint。
5) 前端暴露:如需在前端选择模型,补充模型枚举/下拉项即可,无需改后端协议。
本项目使用 Apache License 2.0
$ claude mcp add smart-hr \
-- python -m otcore.mcp_server <graph>