Skip to content

生成大纲

说明

接口地址https://open.ai-tools.cn/api/v1/service/resume/outline
请求方式POST
接口描述生成简历大纲
接口价格免费

请求参数

参数类型是否必传说明
streamboolean是否流式返回。默认 true, 可选 false
modestring生成模式。可选值:
1.ai-template:AI智能生成
2.optimize-local-resume:上传本地简历
typestring生成类型。可选值:intern(实习)、campus(校招)、social(社招)
1.当mode为ai-template时必传。
2.当mode为optimize-local-resume时不需要传递该参数。
jobstring目标工作岗位。
1.当mode为ai-template时必传。
2.当mode为optimize-local-resume时不需要传递该参数。
uploadFileTypestring上传的文件类型。
1.当mode为ai-template时不需要传递该参数。
2.当mode为optimize-local-resume时必传。
uploadContentstring(base64格式上传的文件内容。
1.当mode为ai-template时不需要传递该参数。
2.当mode为optimize-local-resume时必传。

请求示例

bash
curl -X POST 'https://open.ai-tools.cn/api/v1/service/resume/outline' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer ${API_KEY}' \
  -d '{
    "mode": "ai-template",
    "type": "campus",
    "job": "Java开发工程师"
  }'
bash
curl -X POST 'https://open.ai-tools.cn/api/v1/service/resume/outline' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer ${API_KEY}' \
  -d '{
    "stream": false,
    "mode": "ai-template",
    "type": "campus",
    "job": "Java开发工程师"
  }'
js
const axios = require('axios');

axios({
  method: 'POST',
  url: 'https://open.ai-tools.cn/api/v1/service/resume/outline',
  data: {
    mode: 'ai-template',
    type: 'campus',
    job: 'Java开发工程师',
  },
  responseType: 'stream',
  headers: {
    Authorization: `Bearer ${API_KEY}`,
  },
}).then(response => {
  const stream = response.data;
  const decoder = new TextDecoder('utf-8');
  stream.on('data', data => {
    const lineStr = decoder.decode(data, { stream: true });
    const eventStr = lineStr.substring(lineStr.indexOf(':') + 2);
    // 解析一行为SSE事件
    const event = JSON.parse(eventStr);
    console.log(event);
  });
  stream.on('end', () => {
    // 流事件结束,处理收尾工作
    console.log('流结束')
  });
  stream.on('error', err => {
    console.log(err)
  });
});
html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>fetch-event-source Demo</title>
  </head>
  <body>
    <h1>fetch-event-source Demo</h1>
    <div id="messages"></div>

    <script type="module">
      // 1.1 通过 CDN 方式引入 fetch-event-source(ESM 版本)
      import { fetchEventSource } from 'https://unpkg.com/@microsoft/fetch-event-source@2.0.1/lib/esm/index.js';

      // 1.2 通过npm等方式引入
      // import { fetchEventSource } from '@microsoft/fetch-event-source'

      // 2. 调用 fetchEventSource,指定 SSE 服务的地址
      fetchEventSource('https://open.ai-tools.cn/api/v1/service/resume/outline', {
        method: 'Post',
        headers: {
          'Content-Type': 'application/json',
          'Authorization': `Bearer ${API_KEY}`,
        },
        body: JSON.stringify({
          mode: 'ai-template',
          type: 'campus',
          job: 'Java开发工程师',
        }),

        // 在连接建立时触发
        async onopen(response) {
          if (response.ok) {
            // everything's good
          }
          else {
            const err = await response.json()
            throw err
          }
        },

        // 当后端发送事件时触发
        onmessage(event) {
          const data = JSON.parse(event.data)

          // 在这里处理接收到的数据
          console.log(data)
        },

        // 出现异常时触发
        onerror(err) {
          console.error('出现错误:', err);
        },

        // 当服务器或网络导致连接终止时触发
        onclose() {
          console.log('连接已断开');
        },
      });
    </script>
  </body>
</html>
js
let content = ''

const requestTask = wx.request({
  url: 'https://open.ai-tools.cn/api/v1/service/resume/outline',
  method: 'POST',
  responseType: "arraybuffer",
  enableChunked: true, //关键!开启流式传输模式
  header: {
    'content-type': 'application/json',
  },
  header: {
    Authorization: 'Bearer ${API_KEY}'
  },
  data: {
    "mode": "ai-template",
    "type": "campus",
    "job": "Java开发工程师"
  },
  success: (res) => {
    console.log("结束----request success \n", content);
  },
  fail: (err) => {
    console.log("request fail", err);
  },
});
// 监听数据分块接收事件
requestTask.onChunkReceived((response) => {
  // 使用 TextDecoder 解码二进制数据
  const decoder = new TextDecoder('utf-8');
  const chunkText = decoder.decode(response.data);

  const lines = chunkText.split('\n');
  lines.forEach(line => {
    if (!line.trim()) return;
    
    const match = line.match(/^data: (.+)$/);
    if (match) {
      try {
        const jsonData = JSON.parse(match[1]);
        // 累积文本
        console.log(jsonData)
        content = content + jsonData.text
      } catch (e) {
        console.error('JSON解析错误:', e);
      }
    }
  });
});

响应内容

流式返回结果

参数子参数类型说明
datatextstring返回内容
doneboolean流结束

非流式返回结果

参数类型说明
codenumber返回码,0表示成功,非0表示异常
messagestring返回提示信息
datastring生成的markdown大纲。

响应示例

bash
data: {"text":"#","done":false}

data: {"text":" 校","done":false}

data: {"text":"招","done":false}

data: {"text":"-","done":false}

......

data: {"text":"。","done":false}

data: {"text":"","done":true}
json
{
  "code": 0,
  "message": "success",
  "data": "# Java开发工程师\n\n## 基本信息\n- **姓名**: [请填写姓名]\n- **电话**: [请填写电话]\n- **邮箱**: [请填写邮箱]\n- **现居地**: [请填写现居地]\n\n## 个人概述\n- 具备扎实的Java编程基础,熟悉软件开发流程。\n- 适应能力强,善于团队合作,能快速融入新环境。\n- 持续学习,关注新技术,善于解决复杂问题。\n- 对编程充满热情,乐于挑战,追求技术创新。\n\n## 工作经历\n- **工作经历1**\n  - **公司名称**: [请填写公司名称]\n  - **职位**: [请填写职位]\n  - **开始时间**: [请填写开始时间]\n  - **结束时间**: [请填写结束时间]\n  - **经历描述**\n    - 参与开发XX项目,负责XX模块的设计与实现。\n    - 使用Java和XX框架进行开发,优化系统性能。\n    - 解决XX技术难题,提升系统稳定性。\n\n## 项目经验\n- **项目经历1**\n  - **项目名称**: [请填写项目名称]\n  - **你的角色**: [请填写你的角色]\n  - **开始时间**: [请填写开始时间]\n  - **结束时间**: [请填写结束时间]\n  - **经历描述**\n    - 参与XX项目的需求分析,制定技术方案。\n    - 使用Java进行核心模块开发,确保代码质量。\n    - 与团队成员协作,按时完成项目交付。\n\n## 教育背景\n- **教育背景1**\n  - **学校名称**: [请填写学校名称]\n  - **专业**: [请填写专业]\n  - **学历**: [请填写学历]\n  - **开始时间**: [请填写开始时间]\n  - **结束时间**: [请填写结束时间]\n  - **背景描述**\n    - 学习Java基础课程,掌握面向对象编程思想。\n    - 参与学校编程比赛,提升编程能力和团队协作能力。\n    - 获得XX奖学金,表现优秀。\n\n## 专业技能\n- 熟练掌握Java编程语言,熟悉面向对象设计原则。\n- 熟悉常用的Java开发框架,如Spring、MyBatis等。\n- 了解常用的数据库技术,如MySQL、Oracle等。\n- 熟悉Linux操作系统和常用命令。\n- 具备良好的编程习惯和代码风格。\n- 熟悉Git版本控制工具。"
}