5.2 KiB
AI-003 项目经历与自我评价 AI 优化后端整合说明
日期:2026-10-27。状态:本地实现候选,未提交AI-003、未推送、未部署;v1.2测试修复待批准。本文件须在最终验证和推送后更新。
基线与边界
实际仓库 D:/巴适/轻松聘-ai智能助手;个人分支qingsongpin-AIDevelop;origin为 https://gitea.baskbuddy.com/baskbuddy/zhangshun.git。用户个人分支已备份至backup/qingsongpin-AIDevelop-20261027;整合分支c6ccab5合入个人分支的本地合并提交ff52692。没有reset或强推,没有修改整合分支远端内容。后续合并请求目标仍须负责人确认,本批不创建/合并PR。
新增项目经历、自评各一组notice GET与优化POST;只提供建议、不持久化、不修改前端、评分、排名或可见范围。接口契约见同编号前端对接方案及仓库docs/resume-api.md、docs/openapi-rc.json。
代码结构与文件
生产新增均在 mydreamjob-server/src/main/java/com/mydreamjob/resume/optimization/:
- ResumeSection、ResumeSectionInput:固定场景及最小数据;不暴露原文toString。
- ResumeSectionInputGuard:同意/字段边界、安全拒绝、缺乏事实的本地处理。
- ResumeSectionModelClient、StubResumeSectionModelClient、DeepSeekResumeSectionModelClient、ResumeSectionModelRouter:独立模型契约、模拟、固定官方地址HTTP适配及分别开关。
- ResumeSectionConsentNotice、ResumeSectionOptimizationService、ResumeSectionOptimizationController、ResumeSectionOptimizationExceptionHandler:告知、STUDENT鉴权、共享配额、四路由及安全错误。
- ResumeSectionOptimizationOpenApiConfiguration:运行时布尔同意枚举。
- dto/ProjectExperienceOptimizationRequest、dto/SelfEvaluationOptimizationRequest、dto/ResumeSectionOptimizationResponse:两类请求与统一建议响应。
资源新增在src/main/resources/ai/:project-experience-v1.txt、project-experience-deepseek-v1.txt、self-evaluation-v1.txt、self-evaluation-deepseek-v1.txt。 测试新增八份:ResumeSectionInputGuardTest、ResumeSectionModelRouterTest、DeepSeekResumeSectionModelClientTest、ResumeSectionOptimizationServiceTest、ResumeSectionOptimizationControllerTest、ResumeSectionOptimizationSecurityIntegrationTest、ResumeSectionPromptRegressionTest、ResumeSectionCallLimiterRedisIntegrationTest。 仓库文档修改:docs/openapi-rc.json、docs/verify_openapi.py、docs/resume-api.md。旧工作经历生产代码、认证、保存服务、数据库迁移均未改动。
配置、运行与集成
无新增依赖、数据库表或迁移。沿用Java17及现有SpringBoot工程启动方式,服务前缀/api/v1。新路由默认关闭;分别配置:
ai:
project-experience:
mode: off
real-enabled: false
self-evaluation:
mode: off
real-enabled: false
stub无需模型/Redis,不执行润色,只返回原文或补充问题。deepseek须本场景real-enabled=true,沿用DEEPSEEK_API_KEY/MODEL/TIMEOUT_SECONDS和固定DeepSeek地址,启动时校验配置;不限制profile。无真实外呼重试、禁止重定向、响应流式字节上限65536。 复用WorkExperienceCallLimiter和原ai.work-experience.limits.*;三项功能共用Redis额度/租约,原key名称保留。默认每用户3次/分钟、20次/日、全局200次/日、并发4、每用户并发1、租约75秒。Redis故障503失败关闭;额度接受即消耗,租约释放不退额。信息不足本地路径不占模型额度。
整合步骤:核对个人分支提交及差异;合入负责人指定目标分支;保持新模式off;构建并运行定向测试、OpenAPI校验;stub环境按前端对接说明验证四接口及原保存流程;最后由负责人单独决定真实模型和生产放行。不要将提示词约束或离线测试当作无幻觉保证。无真实用户资料外发测试。
已执行验证及未完成项
合并基线:工作经历113项,0失败/错误、2跳过,排除需要Docker的旧Redis测试;OpenAPI213/261通过。 AI-003首轮:19项,16通过、2错误、1跳过。两处错误均为Mockito重设桩触发旧Answer/异常;补充修复方案v1.2待批准。完整JWT链、原简历不写入以及运行时/静态217/265操作集合与新请求契约一致验证通过;OpenAPI脚本217/265通过。git diff --check当前变更通过。 新Redis测试仅在显式提供AI_TEST_REDIS_HOST(可配AI_TEST_REDIS_PORT)时连接团队专用实例,不启动/停止Docker、不清库;目前未提供因此跳过。不要对共享生产Redis执行测试。 尚未完成:修复后定向回归、全量构建、最终提交/推送、真实Redis验证、真实模型质量/延迟/费用评测、供应商留存/训练与正式告知核实、前端联调及生产验收。H2验证不能替代真实MySQL验收。
潜在冲突:原工作经历安全测试全仓数量写死213/261,应跟随新增四路由改217/265,已列v1.2审批;静态OpenAPI和resume-api.md是多人编辑点,合并时保留其他业务路由。模型settings、限流类为既有复用依赖,后续如负责人修改应回归三项能力。 回滚先把两项mode=off;必要时撤销AI-003精确增量提交,保留其他人后续修改;无数据库回滚,不reset或强推。