Files
011-ai-interview/docs/api/endpoints.md
2026-01-23 13:57:48 +08:00

6.3 KiB
Raw Blame History

API 接口文档

本项目 API 接口说明


一、接口概览

模块 接口 方法 说明
候选人 /api/candidates POST 提交候选人信息(上传简历)
房间 /api/rooms POST 创建语音房间
管理 /api/candidates GET 获取候选人列表
管理 /api/candidates/:id GET 获取候选人详情
管理 /api/candidates/:id/export GET 导出 PDF 报告

二、通用说明

2.1 基础 URL

开发环境http://localhost:8000
生产环境https://api.your-domain.com

2.2 响应格式

成功响应

{
  "code": 0,
  "message": "success",
  "data": { ... }
}

错误响应

{
  "code": 20001,
  "message": "参数错误",
  "data": null
}

2.3 错误码

范围 类型
0 成功
10000-19999 用户相关错误
20000-29999 业务逻辑错误
30000-39999 数据错误
40000-49999 系统错误
50000-59999 第三方服务错误

常用错误码:

错误码 说明
20001 参数错误
20002 数据不存在
50001 Coze API 调用失败
50002 RTC 服务异常

三、用户端接口

3.1 提交候选人信息

提交候选人姓名和简历,创建面试会话。

请求

  • URL: POST /api/candidates
  • Content-Type: multipart/form-data

请求参数

参数 类型 必填 说明
name string 候选人姓名2-20字符
resume file 简历文件,支持 PDF/DOC/DOCX≤10MB

响应示例

{
  "code": 0,
  "message": "success",
  "data": {
    "sessionId": "SESS_1705737600_张三_abc123",
    "fileId": "file_xxx"
  }
}

处理流程

  1. 校验参数
  2. 上传简历到 CozePOST /v1/files/upload
  3. 生成 sessionId
  4. 返回结果

3.2 创建语音房间

创建 RTC 房间,让 Coze Bot 加入房间。

请求

  • URL: POST /api/rooms
  • Content-Type: application/json

请求参数

{
  "sessionId": "SESS_1705737600_张三_abc123",
  "fileId": "file_xxx"
}
参数 类型 必填 说明
sessionId string 会话 ID
fileId string 简历文件 ID

响应示例

{
  "code": 0,
  "message": "success",
  "data": {
    "roomId": "room_xxx",
    "token": "rtc_token_xxx",
    "appId": "volcengine_app_id",
    "userId": "user_xxx"
  }
}

处理流程

  1. 生成 roomId 和 userId
  2. 调用 Coze API 让 Bot 加入房间(POST /v1/audio/rooms
  3. 生成 RTC Token
  4. 返回房间信息

3.3 结束面试

通知后端面试已结束。

请求

  • URL: POST /api/interviews/:sessionId/end
  • Content-Type: application/json

请求参数

参数 类型 必填 说明
sessionId string 会话 IDURL 参数)

响应示例

{
  "code": 0,
  "message": "success",
  "data": {
    "success": true
  }
}

四、管理后台接口

4.1 获取候选人列表

分页获取候选人列表。

请求

  • URL: GET /api/candidates
  • 权限: 需要登录

请求参数

参数 类型 必填 说明
page number 页码,默认 1
pageSize number 每页条数,默认 20
keyword string 搜索关键词(姓名)
status string 状态筛选pending/ongoing/completed
startDate string 开始日期,格式 YYYY-MM-DD
endDate string 结束日期,格式 YYYY-MM-DD

响应示例

{
  "code": 0,
  "message": "success",
  "data": {
    "list": [
      {
        "sessionId": "SESS_1705737600_张三_abc123",
        "name": "张三",
        "status": "completed",
        "score": 85,
        "createdAt": "2026-01-20T10:00:00+08:00"
      }
    ],
    "total": 100,
    "page": 1,
    "pageSize": 20
  }
}

4.2 获取候选人详情

获取候选人完整面试报告。

请求

  • URL: GET /api/candidates/:sessionId
  • 权限: 需要登录

请求参数

参数 类型 必填 说明
sessionId string 会话 IDURL 参数)

响应示例

{
  "code": 0,
  "message": "success",
  "data": {
    "sessionId": "SESS_1705737600_张三_abc123",
    "name": "张三",
    "resume": "简历内容文本...",
    "status": "completed",
    "currentStage": 60,
    "scores": {
      "salesSkill": 85,
      "salesMindset": 80,
      "quality": 90,
      "motivation": 75
    },
    "analysis": "综合分析报告内容...",
    "interviewLog": "完整对话记录...",
    "createdAt": "2026-01-20T10:00:00+08:00",
    "completedAt": "2026-01-20T10:25:00+08:00"
  }
}

4.3 导出 PDF 报告

导出候选人面试报告为 PDF 文件。

请求

  • URL: GET /api/candidates/:sessionId/export
  • 权限: 需要登录

请求参数

参数 类型 必填 说明
sessionId string 会话 IDURL 参数)

响应

  • Content-Type: application/pdf
  • Content-Disposition: attachment; filename="interview_report_张三.pdf"

五、Coze API 调用说明

以下为后端调用 Coze API 的内部说明

5.1 文件上传

POST https://api.coze.cn/v1/files/upload
Authorization: Bearer {PAT_TOKEN}
Content-Type: multipart/form-data

Response:
{
  "data": {
    "id": "file_xxx"
  }
}

5.2 创建语音房间

POST https://api.coze.cn/v1/audio/rooms
Authorization: Bearer {PAT_TOKEN}
Content-Type: application/json

Body:
{
  "bot_id": "7595077233002840079",
  "room_id": "room_xxx",
  "user_id": "user_xxx",
  "voice_id": "voice_id_xxx",
  "config": {
    "input_file_id": "file_xxx"
  }
}

5.3 查询数据库

POST https://api.coze.cn/v1/database/query
Authorization: Bearer {PAT_TOKEN}
Content-Type: application/json

Body:
{
  "database_id": "7595077053909712922",
  "filter": {
    "session_id": "SESS_xxx"
  }
}

变更日志

日期 变更内容 操作人
2026-01-20 初始化 API 文档 AI