4.8 KiB
AI-003 项目经历与自我评价 AI 优化前端对接方案
日期:2026-10-27。状态:本地实现候选,首轮验证完成;两处测试设施修复待v1.2审批,尚未推送、未部署、未开展前端联调或真实模型质量评测。
接口与鉴权
基础地址使用团队联调后端,路径带 /api/v1;全部请求用现有 Authorization: Bearer <access-token>,仅 STUDENT 本人。不要传userId。同步JSON,无分页或流式输出。
| 方法 | 地址 | 用途 |
|---|---|---|
| GET | /api/v1/profile/me/project-experience-optimization/notice |
项目经历当次告知 |
| POST | /api/v1/profile/me/project-experience-optimization |
项目描述优化 |
| GET | /api/v1/profile/me/self-evaluation-optimization/notice |
自评当次告知 |
| POST | /api/v1/profile/me/self-evaluation-optimization |
自评优化 |
先GET对应notice;展示message、provider、purpose、dataFields和版本;enabled=false时提示暂不可用。只有用户明确同意本次调用才POST;不要默认勾选或复用历史同意。提交 externalProcessingConsent 为原生JSON布尔true;字符串true、false、null、缺失均400。consentNoticeVersion 使用本场景当前返回值;版本过期重新获取告知并让用户确认。
请求字段
项目:projectName可选≤150;role可选≤120;description必填非空≤5000;targetPosition可选≤120。当前告知版本 project-experience-external-processing-v1。
自评:description必填非空≤5000;targetPosition可选≤120。当前告知版本 self-evaluation-external-processing-v1。
不自动提取或提交整份简历。项目名称使用公开名称或脱敏代称,不提交手机号、邮箱、证件、密码、密钥、商业秘密或其他人资料。长度以服务端Java字符串校验为准。
合成项目示例:
{"projectName":"课程商城","role":"参与开发","description":"使用Java实现订单查询接口,协助编写测试,尚未上线。","targetPosition":"Java后端开发","externalProcessingConsent":true,"consentNoticeVersion":"project-experience-external-processing-v1"}
合成自评示例:
{"description":"学习Java和SQL,在课程项目中编写接口测试,遇到问题查阅文档并记录排查过程。","targetPosition":"Java后端开发","externalProcessingConsent":true,"consentNoticeVersion":"self-evaluation-external-processing-v1"}
响应与采用
沿用ApiResponse:code、message、data、requestId、timestamp。data字段:
| 字段 | 含义 |
|---|---|
| status | OPTIMIZED或NEED_MORE_INFO |
| optimizedDescription | 建议正文≤5000;信息不足时null或省略,不回填 |
| suggestions | 提示数组 |
| followUpQuestions | 补充问题数组 |
| promptVersion | 场景提示词版本,与告知版本不同 |
| simulated | true表示模拟,仅返回原文;false不证明本次已经外呼 |
真实提示词版本为project-experience-deepseek-v1、自评self-evaluation-deepseek-v1;模拟分别project-experience-v1、self-evaluation-v1。界面明确模拟标签,不能宣称stub完成AI润色。
调用时保留原文,禁止重复点击;返回后展示原文与建议,由用户主动采用或取消。期间用户若已编辑原文或切换条目,不自动把旧响应覆盖当前字段。NEED_MORE_INFO展示问题,不将空正文当成优化结果。 采用项目建议只回填原条目description;采用自评只回填selfEvaluation。沿用原保存接口、条目id、其他字段及最近revision;409重新读取并提示用户处理冲突,不自动覆盖。AI接口不保存、不改评分或可见范围。
失败、超时与重试
400检查参数/同意版本/敏感内容;401按现有会话流程处理;403角色不符;404用户不存在;429共享配额或并发已满,响应Retry-After:60,不自动重试;502输出无效;503关闭/配置/Redis/上游不可用;504模型超时。模型默认超时20秒、可配置1–60秒,前端超时应与联调配置协调并留有网络余量。 所有失败保留原文,不自动保存或静默再次外呼;用户手动重试时重新确认本次处理同意。提示用安全错误文案与requestId,不收集原文或Token到普通前端日志。
联调及待确认
两项默认off;后端可分别开stub供契约联调。真实模式需负责人配置real-enabled及供应商凭据,且正式授权、供应商留存/训练规则核实完成后再决定开放。三项优化共享工作经历Redis配额,切换入口也会消耗相同预算。 已在本地H2及stub下验证完整JWT权限链、建议返回与在线简历revision/content不变;不代表真实MySQL、模型质量或前端流程已验收。前端按钮、实际保存调用与revision处理由前端负责人联调确认。