您可以在 GitHub 查看项目预览截图:
11 | 12 |个人简介
71 | 72 |工作经历
76 |{{ work.company }}
79 |项目经验
89 |{{ project.projectName }}
92 |荣誉奖项
104 |105 | 106 | {{ honor.date }} 107 |
108 |├── .env ├── .env.production ├── .gitignore ├── .vscode └── extensions.json ├── README.md ├── index.html ├── package-lock.json ├── package.json ├── public ├── resumeData.json ├── templates.json └── vite.svg ├── src ├── App.vue ├── api │ └── qwenAPI.ts ├── assets │ ├── fonts │ │ └── zql.woff2 │ ├── icons │ │ ├── 1.svg │ │ ├── ai.svg │ │ ├── dark.svg │ │ ├── example.svg │ │ ├── resume.svg │ │ ├── setting.svg │ │ ├── templateStore.svg │ │ └── white.svg │ ├── imgs │ │ ├── loading.gif │ │ └── logo.png │ ├── styles │ │ ├── dark.css │ │ └── theme.css │ └── vue.svg ├── components │ ├── Header │ │ └── index.vue │ ├── SvgIcon.vue │ ├── ThemeSwitcher │ │ └── index.vue │ └── narrow │ │ └── index.vue ├── data │ └── resumeDataTemplate.ts ├── directives │ └── lazyLoad.ts ├── env.d.ts ├── main.ts ├── router │ └── index.ts ├── store │ ├── index.ts │ ├── useResumeStore.ts │ └── useSettingsStore.ts ├── template │ ├── dev │ │ ├── config.json │ │ ├── index.vue │ │ └── preview.jpg │ ├── templateA │ │ ├── config.json │ │ ├── index.vue │ │ └── preview.jpg │ ├── templateB │ │ ├── config.json │ │ ├── index.vue │ │ └── preview.jpg │ ├── templateC │ │ ├── config.json │ │ ├── index.vue │ │ └── preview.jpg │ └── templateD │ │ ├── config.json │ │ ├── index.vue │ │ └── preview.jpg ├── types │ ├── aiDialogue.d.ts │ ├── color.d.ts │ ├── components.d.ts │ ├── html2pdf.d.ts │ ├── resume.d.ts │ ├── svg.d.ts │ └── template.d.ts ├── utils │ ├── colorUtils.ts │ └── getTemplates.ts ├── views │ ├── 404.vue │ ├── aiDeep │ │ ├── components │ │ │ ├── AIChat.vue │ │ │ └── userInput.vue │ │ └── index.vue │ ├── coding.vue │ ├── resume │ │ ├── components │ │ │ ├── AIEnhancePopover.vue │ │ │ ├── education.vue │ │ │ ├── honor.vue │ │ │ ├── personalInfo.vue │ │ │ ├── project.vue │ │ │ ├── resumeEdit.vue │ │ │ ├── resumePreview.vue │ │ │ ├── selfEvaluation.vue │ │ │ ├── skill.vue │ │ │ └── workExperience.vue │ │ ├── index.vue │ │ └── styles │ │ │ └── styles.css │ ├── resumeDesign │ │ └── index.vue │ ├── setting │ │ └── index.vue │ └── template │ │ └── index.vue ├── vite-env.d.ts └── worker │ ├── aiWorker.ts │ └── workerPool.ts ├── tsconfig.app.json ├── tsconfig.json ├── tsconfig.node.json ├── vite.config.ts └── worker.js /.env: -------------------------------------------------------------------------------- 1 | VITE_API_URL = 'https://resumeai.404.pub/' -------------------------------------------------------------------------------- /.env.production: -------------------------------------------------------------------------------- 1 | VITE_API_URL = 'https://resumeai.404.pub/' -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AIResume 2 | 3 | [](https://github.com/weidong-repo/AIResume/stargazers) 4 | [](https://github.com/weidong-repo/AIResume/network/members) 5 | [](https://github.com/weidong-repo/AIResume/issues) 6 | [](https://github.com/weidong-repo/AIResume/issues?q=is%3Aissue+is%3Aclosed) 7 | [](https://github.com/weidong-repo/AIResume/commits/main) 8 | 9 | ## 📌 项目介绍 10 | 11 | **AIResume** 是一个开源的简历制作平台,帮助用户轻松创建专业简历,融合 AI 技术,辅助用户润色简历。我们欢迎对前端技术感兴趣的朋友参与 **`模板开发`**! 12 | 13 | - **技术栈**:Vue 3 + Vite + TypeScript + Ant Design Vue 14 | - **项目预览**:[AIResume 预览地址](https://resume.404.pub/) (部署于 Cloudflare Pages) 15 | 16 | ## 🎨 项目预览 17 | 18 | 编辑简历 19 | 20 |  21 | 22 | 简历市场 23 | 24 |  25 | 26 | AI模拟拷打: 27 | 28 |  29 | 30 | AI润色 31 | 32 |  33 | 34 | 简历高度自定义配置” 35 | 36 |  37 | 38 | ## 🚀 快速开始 39 | 40 | ### 1️⃣ 运行环境要求 41 | 42 | - **Node.js**:18+ 43 | 44 | ### 2️⃣ 克隆并安装依赖 45 | 46 | ```bash 47 | git clone https://github.com/weidong-repo/AIResume.git 48 | cd AIResume 49 | npm install 50 | ``` 51 | 52 | ### 3️⃣ 运行项目 53 | 54 | ```bash 55 | npm run dev 56 | ``` 57 | 58 | ## 🔥想自己部署同样的项目? 59 | 60 | 点击此处链接,[发行版本](https://github.com/weidong-repo/AIResume/releases) 61 | 找到最新版本的release.zip 62 | 然后把release.zip解压部署到您网站根目录上,访问域名即可 63 | 64 | ## 🔥欢迎有前端能力的朋友开发简历模板加入项目 65 | 66 | 简历模板开发方式: 67 | 1. 复制一份`/template/dev`目录,然后按照里面的数据挂载到前端即可。 68 | 2. 然后完善您模板目录下的`config.json`和`preview.jpg`(注意,config.json中的id务必是唯一值) 69 | 3. 最后,请在`/public/templates.json`文件中加上您开发的模板信息(直接复制`config.json`的即可!) 70 | 71 | 72 | 73 | ## 🌍 使用 Cloudflare Worker 进行 API 反向代理 74 | 75 | 本项目可使用 **Cloudflare Worker** 进行反向代理,以解决跨域问题。例如,针对 **阿里云百炼 API**: 76 | 77 | 1. 将 `workers.js` 上传至 Cloudflare Worker 78 | 2. 配置密钥 `API_URL` 指向大模型 API 地址(本项目接口适配 OpenAI 兼容 API,如阿里云、DeepSeek 等) 79 | 80 | 示例(阿里云 API 地址): 81 | 82 | ```bash 83 | https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions 84 | ``` 85 | 86 | ✅ 兼容 OpenAI API 的大模型均可无缝切换! 87 | 88 | **只需更改 `API_URL` 和 API Key,即可快速替换大模型!** 89 | 90 | ------ 91 | 92 | ## 🛠️ 其它反向代理方式 93 | 94 | 如果不想使用 Cloudflare Worker,也可以使用其他工具进行反代。**核心要求:只需解决跨域问题,即可流畅调用大模型 API!** 95 | 96 | ------ 97 | 98 | ## 🎯 已完成功能 99 | 100 | 主要功能: 101 | 102 | - ✅ 简历编辑,数据前端持久化 103 | - ✅ 简历导出为 PDF 104 | - ✅ 简历多模板,支持热插拔切换 105 | - ✅ 多套简历模板,支持前端开发者共创 106 | - ✅ 简历撰写的时候,AI可以进行润色 107 | - ✅ AI简历深挖 利用ai 基于单个项目或者经历的长对话对简历进行深度优化 108 | - ✅ AI模拟面试 针对单一项目或者经历对用户进行面试拷打 109 | 110 | 细节功能: 111 | 112 | - ✅ 模板主题色切换 113 | 114 | - ✅ 简历高度自定义,如段落间距、区块间距、字体大小、页边距等 115 | 116 | - ✅ 网站整体明/暗色切换 117 | 118 | - ✅ 右侧实时预览,自动同步用户编辑内容 119 | 120 | - ✅ 预览界面可拖动缩放简历 121 | 122 | - ✅ 导出 / 导入简历数据 123 | 124 | - ✅ 清空数据 125 | 126 | - ✅ 预填充示例数据 127 | 128 | - ✅ 一键填充虚假数据(快速查看简历效果) 129 | 130 | - ✅ 模板市场展示 131 | 132 | - ✅ 模板信息展示作者的昵称以及网站 133 | 134 | ------ 135 | 136 | ## 📝 待实现功能 137 | 138 | - [ ] **AI 面试官**(大模型读取简历,进行实时对话 / 语音通话) 139 | - [ ] **可视化简历设计**(支持非前端开发者用户拖拽设计简历) 140 | - [ ] **简历布局调整**(左侧拖拽调整右侧内容块顺序) 141 | - [ ] **数据隐藏功能**(支持隐藏部分信息,但数据仍保留) 142 | 143 | 🔥 **欢迎 Star & Fork 本项目,一起完善 AIResume!** 144 | 145 | # Stars历史记录 146 | 147 | [](https://www.star-history.com/#weidong-repo/AIResume&Date) 148 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |您可以在 GitHub 查看项目预览截图:
11 | 12 |100 | 101 | {{ honor.date }} 102 |
103 |71 | {{ edu.school }}({{ edu.degree }}) 72 | {{ edu.major }} 73 | {{ edu.startDate }} 至 {{ edu.endDate || '至今' }} 74 |
75 |{{ edu.degree }} - {{ edu.major }}
61 |{{ work.company }}
80 |{{ project.role }}
99 | {{ project.startDate }} - {{ project.endDate || '至今' 100 | }} 101 |105 | 106 | {{ honor.date }} 107 |
108 |请先在上方按钮中选择"经历深挖"或者"模拟面试"!使用说明 187 |
188 |21 | 预计发布时间:{{ releaseDate }} 22 |
23 | 24 |8 | 注意:此处调用接口使用的是 OpenAI 的接口格式 9 | (换言之,只要你的大模型接口厂商使用的是 OpenAI 格式,你填入都能正常调用接口) 10 | 默认值不会改请不要动!!要是完全不会,就只填apikey就行了,点击链接前往获取key,填入即可 11 |
12 |16 | 如果用我的反代地址,请使用阿里的大模型,如果不会配置,请勿修改,默认为"qwen-turbo" 17 | 18 | 查看阿里百炼模型大全 19 | 。 20 |
21 |27 | 请填写 API Key 用于调用 AI 模型。如果下面使用的是我提供的反代地址,请前往阿里云获取 28 | 阿里云百炼 API Key。 29 |
30 |36 | 请填写 API URL(经过反向代理,解决跨域问题),用于调用 AI 模型。或者直接使用我提供的反代地址: 37 | https://resumeai.404.pub/ 38 | (该地址仅适用于阿里云百炼 API Key)。 39 | 40 | 查看阿里百炼官方文档 41 | 。 42 |
43 |{{ template.description }}
84 |