AI prompts
base on This is a tool used to automatically generate a cover letter using chatgpt based on your resume and job description and send messages to bosses in China. 作者已经去打工了,现在在sider做产品经理,义务为我们的产品打一下广告,各位见谅
[![banner](https://github.com/Frrrrrrrrank/auto_job__find__chatgpt__rpa/assets/82270228/0fff88f5-670c-4126-b6aa-3df1763fe757)](https://sider.ai/ad-land-redirect?source=github&p1=mi&p2=kk)
欢迎大家使用
## 更加便于操作的付费版本
目前该版本已经下架,您可以在微软商店中下载sider windows客户端,找到求职大师功能,每天可以免费使用三十次(目前已经推出);同时也将加入linkedin和Boss职位筛选功能(最晚在十月底前推出);
## 正文
这是一个完全免费的脚本,只需要你们自己配置好openai的api即可
希望您能给我点个 **star**
如果在这个寒冷的招聘季,这个脚本能给您一些帮助,带来一些温暖,将让我非常荣幸
希望不要有人拿着我的脚本去割韭菜,都已经被逼到用这种脚本投简历的地步了,身上也没啥油水可榨了吧。
## 操作步骤
1. 请首先配置好 openai 的 api(使用.env文件或者在代码中配置)
2. 将pdf简历上传到文件夹 auto_job_find 里,命名为 **“my_cover.pdf"**
3. 将需要的包安装好
4. 执行 write_response.py
## 关于 asistant
会自动生成 openai 的 asistant,并在本地产生一个 .json 文件,只有第一次运行的时候才会产生,后面每次运行如果检测到这个 json ,就会调用已有的 asistant。
## 使用到的包
- `python-dotenv`
- `openai`
- `selenium`
- `robotframework`
- `robotframework-seleniumlibrary`
- `robotframework-pythonlibcore`
- `faiss-cpu不支持3.12(faiss-gpu不清楚)。建议大家用3.11及以下版本的python运行脚本。` from @[huanmit](https://github.com/huanmit)
## About RPA
tutorial video about how to learn [rpa](https://www.youtube.com/watch?v=65OPFmEgCbM&list=PLx4LEkEdFArgrdD_lvXe_hYBy8zM0Sp3b&index=1)
Plugin: Intellibot@Selenium Library
------------------下面是简单的教学视频---------------------
[B站链接](https://www.bilibili.com/video/BV1UC4y1N78v/?share_source=copy_web&vd_source=b2608434484091fcc64d4eb85233122d)
[油管链接](https://youtu.be/TlnytEi2lD8?si=jfcDj2MZqBptziZc)
## 运行方式
先将该项目clone到本地,然后在项目根目录下执行
```bash
pip install -r requirements.txt
```
### assistant方式运行
打开.env文件,在里面配置好OpenAI的API key
随后将pdf简历上传到文件夹auto_job_find里,命名为“my_cover".随后执行write_response.py即可
这种方式不支持使用自定义api,优势是执行速度更快
如果需要使用自定义api,请使用下面的方式运行
### langchain方式
同样打开.env文件,在里面配置好OpenAI的API key和你想要请求的api地址
随后将pdf简历放到文件夹resume里
最后执行write_response.py即可
### chatgpt4 及以上运行方式
如果尝试使用更新的chatGPT则不能保持最新版本为`v1.1.1`,同时如果报错信息为`An error occurred: Error code: 400 - {'error': {'message': "The requested model 'gpt-4o-mini' cannot be used with the Assistants API in v1. Follow the migration guide to upgrade to v2: https://platform.openai.com/docs/assistants/migration.", 'type': 'invalid_request_error', 'param': 'model', 'code': 'unsupported_model'}}`
1. 需要手动将chatgpt更新到最新版,
```shell
pip install --upgrade openai
```
2. 以及更改`create_assistant`中的结构体,详细参考[迁移模型](https://platform.openai.com/docs/assistants/migration)中的描述。建议直接在[平台](https://platform.openai.com/assistants/)上手动添加最新的assist然后复制代码到`assistant.json`中最为方便.
```json
{"assistant_id": "asst_token"}
```
------------下面是其他朋友基于js构建的更加易于使用的代码---------------
我一直也在考虑如何可以降低各位的使用门槛,基于现在项目的热度,我发现很多朋友都需要这个东西来帮助自己,但是我相信对于更多的人而言,甚至vpn都是一个障碍
下面这位朋友基于js实现了一个更加简易的版本,虽然因为调用的免费api,无法使用assistant进行retrival,需要自己对简历进行简单的处理,但我依然认为这是个很棒的项目
感谢朋友的贡献,以下是链接:
[https://github.com/noBaldAaa](https://github.com/noBaldAaa/find-job)https://github.com/noBaldAaa/find-job
------------下面是其他朋友基于azure的openai api构建的版本的更加易于使用的代码---------------
https://github.com/LouisCaixuran/auto_job_find_azure
", Assign "at most 3 tags" to the expected json: {"id":"6614","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"