生成大纲
说明
接口地址 | https://open.ai-tools.cn/api/v1/service/resume/outline |
请求方式 | POST |
接口描述 | 生成简历大纲 |
接口价格 | 免费 |
请求参数
参数 | 类型 | 是否必传 | 说明 |
---|---|---|---|
stream | boolean | 否 | 是否流式返回。默认 true, 可选 false |
mode | string | 是 | 生成模式。可选值: 1.ai-template:AI智能生成 2.optimize-local-resume:上传本地简历 |
type | string | 否 | 生成类型。可选值:intern(实习)、campus(校招)、social(社招) 1.当mode为ai-template时必传。 2.当mode为optimize-local-resume时不需要传递该参数。 |
job | string | 否 | 目标工作岗位。 1.当mode为ai-template时必传。 2.当mode为optimize-local-resume时不需要传递该参数。 |
uploadFileType | string | 否 | 上传的文件类型。 1.当mode为ai-template时不需要传递该参数。 2.当mode为optimize-local-resume时必传。 |
uploadContent | string(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);
}
}
});
});
响应内容
流式返回结果
参数 | 子参数 | 类型 | 说明 |
---|---|---|---|
data | text | string | 返回内容 |
done | boolean | 流结束 |
非流式返回结果
参数 | 类型 | 说明 |
---|---|---|
code | number | 返回码,0表示成功,非0表示异常 |
message | string | 返回提示信息 |
data | string | 生成的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版本控制工具。"
}