Skip to content

简历模拟在 OpenAI 兼容网关下启动失败,上传 PDF 后点击“立即开始模拟”返回 Internal Server Error #18

@Joe-Feng

Description

@Joe-Feng

问题背景

用户上传简历 PDF 后,进入简历模拟面试页面,点击“立即开始模拟”会提示 启动失败: Internal Server Error
在部分场景下,即使能进入面试,后续普通文本对话也可能失败。

复现步骤

  1. 登录系统
  2. 上传简历 PDF
  3. 进入简历模拟面试
  4. 点击“立即开始模拟”
  5. 或在面试开始后发送文本消息

实际结果

  • 接口返回 500
  • 前端提示 启动失败: Internal Server Error
  • 简历模拟无法正常开始,或开始后普通文本对话失败

期望结果

  • 上传简历后应能正常启动简历模拟面试
  • 后续文本对话应稳定返回面试官问题
  • 即使上游兼容网关返回空内容,也不应直接导致流程中断

影响范围

  • 简历模拟主流程受阻
  • 用户无法完成基于简历的模拟面试
  • 属于核心功能不可用问题

根因分析

当前简历模拟的开场和追问逻辑依赖 LangChain/LlamaIndex 的 OpenAI 客户端调用上游兼容网关。
实际接入的 OpenAI 兼容网关对官方 SDK 的请求形态兼容不完整,能接受原始 HTTP chat/completions 请求,却会对 SDK 请求报错或返回空结果。

这会导致:

  • 简历模拟启动失败
  • 后续同步文本对话失败
  • 部分情况下返回空内容,导致流程不可继续

修复建议

  1. 将简历模拟相关调用切换为原始 HTTP chat/completions 请求,绕过 SDK 兼容性问题
  2. 简历检索不要直接走 query engine,改为“向量检索 + 兼容接口总结”的方式生成简历上下文
  3. 增加空返回兜底文案,避免上游返回空内容时直接中断面试流程
  4. 为兼容网关场景补充回归测试

验收标准

  • POST /api/interview/start 返回 200
  • 简历模拟首轮开场问题可正常生成
  • 发送普通文本消息后,后端可正常返回下一轮面试问题
  • 上游兼容网关返回空内容时,系统仍可使用兜底文案继续流程

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions