296 lines
8.1 KiB
Markdown
296 lines
8.1 KiB
Markdown
|
|
# 微信群岗位信息提取工具 - 多群组版本使用说明
|
|||
|
|
|
|||
|
|
## 版本更新 v1.1
|
|||
|
|
|
|||
|
|
### 新功能
|
|||
|
|
|
|||
|
|
1. **支持多群组监听** - 可同时监听多个微信群
|
|||
|
|
2. **UUID岗位ID** - 每个岗位使用唯一的UUID标识
|
|||
|
|
3. **来源群组显示** - 界面显示岗位来自哪个群组
|
|||
|
|
4. **打包时配置API** - API密钥在打包前配置,更安全
|
|||
|
|
|
|||
|
|
## 配置说明
|
|||
|
|
|
|||
|
|
### 1. 配置文件 (config.json)
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"target_groups": [
|
|||
|
|
"招聘信息群1",
|
|||
|
|
"招聘信息群2",
|
|||
|
|
"求职交流群"
|
|||
|
|
],
|
|||
|
|
"bailian_api_url": "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation",
|
|||
|
|
"api_key": "your-api-key-here",
|
|||
|
|
"output_file": "jobs_data.json"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 配置步骤
|
|||
|
|
|
|||
|
|
#### 方式一:使用配置工具(推荐)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 双击运行
|
|||
|
|
配置API密钥.bat
|
|||
|
|
|
|||
|
|
# 按提示输入API密钥
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 方式二:手动编辑
|
|||
|
|
|
|||
|
|
1. 打开 `config.json`
|
|||
|
|
2. 修改 `target_groups` 数组,添加要监听的群组
|
|||
|
|
3. 修改 `api_key` 为你的百炼API密钥
|
|||
|
|
4. 保存文件
|
|||
|
|
|
|||
|
|
## 使用流程
|
|||
|
|
|
|||
|
|
### 开发/测试阶段
|
|||
|
|
|
|||
|
|
1. **配置API密钥**
|
|||
|
|
```bash
|
|||
|
|
# 运行配置工具
|
|||
|
|
配置API密钥.bat
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. **配置目标群组**
|
|||
|
|
- 编辑 `config.json`
|
|||
|
|
- 在 `target_groups` 数组中添加群组名称
|
|||
|
|
|
|||
|
|
3. **运行程序**
|
|||
|
|
```bash
|
|||
|
|
# 直接运行Python版本
|
|||
|
|
python job_extractor_gui.py
|
|||
|
|
|
|||
|
|
# 或使用启动工具
|
|||
|
|
启动工具.bat → 选择 [1]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
4. **在GUI中调整群组**
|
|||
|
|
- 启动程序后可以在界面中修改群组列表
|
|||
|
|
- 支持逗号、分号分隔
|
|||
|
|
- 点击"保存群组配置"保存
|
|||
|
|
|
|||
|
|
### 打包部署阶段
|
|||
|
|
|
|||
|
|
1. **确认配置**
|
|||
|
|
- 确保 `config.json` 中的 `api_key` 已正确配置
|
|||
|
|
- 确认 `target_groups` 包含默认要监听的群组
|
|||
|
|
|
|||
|
|
2. **打包程序**
|
|||
|
|
```bash
|
|||
|
|
# 使用修复脚本打包
|
|||
|
|
修复并重新打包.bat
|
|||
|
|
|
|||
|
|
# 或使用标准打包
|
|||
|
|
build.bat
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. **分发使用**
|
|||
|
|
- 将 `dist\微信岗位提取工具.exe` 分发给用户
|
|||
|
|
- 用户可以在GUI中修改群组列表
|
|||
|
|
- API密钥已内置,无需用户配置
|
|||
|
|
|
|||
|
|
## 界面说明
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
┌─────────────────────────────────────────────────────┐
|
|||
|
|
│ 配置 │
|
|||
|
|
│ 目标群组: [招聘群1, 招聘群2, 求职群] [保存群组配置]│
|
|||
|
|
│ (多个群组用逗号分隔) │
|
|||
|
|
│ API密钥: sk-46cb053d...1c81a (已配置) │
|
|||
|
|
├─────────────────────────────────────────────────────┤
|
|||
|
|
│ [开始任务] [停止任务] [清空列表] [导出数据] │
|
|||
|
|
├─────────────────────────────────────────────────────┤
|
|||
|
|
│ 状态: 运行中 (3个群组) 已提取岗位: 15 │
|
|||
|
|
├─────────────────────────────────────────────────────┤
|
|||
|
|
│ 岗位列表 │
|
|||
|
|
│ ┌─────────────────────────────────────────────────┐│
|
|||
|
|
│ │序号│来源群组│岗位│公司│地点│薪资│联系│时间 │││
|
|||
|
|
│ │ 1 │招聘群1│...│...│...│...│...│... │││
|
|||
|
|
│ │ 2 │招聘群2│...│...│...│...│...│... │││
|
|||
|
|
│ │ 3 │求职群 │...│...│...│...│...│... │││
|
|||
|
|
│ └─────────────────────────────────────────────────┘│
|
|||
|
|
├─────────────────────────────────────────────────────┤
|
|||
|
|
│ 运行日志 │
|
|||
|
|
│ [10:30:00] 正在连接微信... │
|
|||
|
|
│ [10:30:01] ✓ 已连接微信 │
|
|||
|
|
│ [10:30:05] [招聘群1] 收到消息 - 发送者: 张三 │
|
|||
|
|
│ [10:30:06] [招聘群1] ✓ 提取到岗位信息 │
|
|||
|
|
│ [10:30:10] [招聘群2] 收到消息 - 发送者: 李四 │
|
|||
|
|
└─────────────────────────────────────────────────────┘
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 功能特点
|
|||
|
|
|
|||
|
|
### 1. 多群组监听
|
|||
|
|
|
|||
|
|
- 同时监听多个微信群
|
|||
|
|
- 每个群组独立处理消息
|
|||
|
|
- 自动标记消息来源
|
|||
|
|
|
|||
|
|
### 2. 群组配置
|
|||
|
|
|
|||
|
|
支持多种分隔符:
|
|||
|
|
- 逗号:`群1, 群2, 群3`
|
|||
|
|
- 中文逗号:`群1,群2,群3`
|
|||
|
|
- 分号:`群1; 群2; 群3`
|
|||
|
|
- 换行:每行一个群组
|
|||
|
|
|
|||
|
|
### 3. UUID标识
|
|||
|
|
|
|||
|
|
每个岗位都有唯一的UUID:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"_id": "550e8400-e29b-41d4-a716-446655440000",
|
|||
|
|
"job_name": "Python开发",
|
|||
|
|
"_metadata": {
|
|||
|
|
"group_name": "招聘信息群1",
|
|||
|
|
...
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4. 来源追踪
|
|||
|
|
|
|||
|
|
- 界面显示岗位来源群组
|
|||
|
|
- 详情中显示完整来源信息
|
|||
|
|
- 日志中标记群组名称
|
|||
|
|
|
|||
|
|
## 数据格式
|
|||
|
|
|
|||
|
|
### 岗位数据结构
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"_id": "uuid-string",
|
|||
|
|
"job_name": "岗位名称",
|
|||
|
|
"job_description": "岗位描述",
|
|||
|
|
"job_location": "工作地点",
|
|||
|
|
"salary_min": 15000,
|
|||
|
|
"salary_max": 25000,
|
|||
|
|
"company_name": "公司名称",
|
|||
|
|
"contact_person": "联系人",
|
|||
|
|
"contact_info": "联系方式",
|
|||
|
|
"_metadata": {
|
|||
|
|
"source": "wechat_group",
|
|||
|
|
"group_name": "招聘信息群1",
|
|||
|
|
"sender": "HR小王",
|
|||
|
|
"extract_time": "2026-02-11 14:30:00",
|
|||
|
|
"original_message": "原始消息内容..."
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 常见问题
|
|||
|
|
|
|||
|
|
### Q: 如何添加新的群组?
|
|||
|
|
A: 两种方式:
|
|||
|
|
1. 在GUI界面的群组输入框中添加,用逗号分隔
|
|||
|
|
2. 编辑 `config.json`,在 `target_groups` 数组中添加
|
|||
|
|
|
|||
|
|
### Q: 某个群组监听失败怎么办?
|
|||
|
|
A:
|
|||
|
|
- 检查群组名称是否完全正确(区分大小写)
|
|||
|
|
- 确保该群在微信会话列表中
|
|||
|
|
- 查看日志了解具体错误信息
|
|||
|
|
- 其他群组不受影响,会继续监听
|
|||
|
|
|
|||
|
|
### Q: 如何修改API密钥?
|
|||
|
|
A:
|
|||
|
|
- 开发阶段:运行 `配置API密钥.bat` 或编辑 `config.json`
|
|||
|
|
- 打包后:需要重新配置并打包
|
|||
|
|
|
|||
|
|
### Q: 可以监听多少个群组?
|
|||
|
|
A: 理论上没有限制,但建议不超过10个,以保证性能
|
|||
|
|
|
|||
|
|
### Q: 如何区分不同群组的岗位?
|
|||
|
|
A:
|
|||
|
|
- 界面列表中有"来源群组"列
|
|||
|
|
- 双击查看详情可看到完整来源信息
|
|||
|
|
- 导出的JSON数据中包含 `group_name` 字段
|
|||
|
|
|
|||
|
|
### Q: UUID有什么用?
|
|||
|
|
A:
|
|||
|
|
- 唯一标识每个岗位
|
|||
|
|
- 便于数据去重
|
|||
|
|
- 方便数据库存储和查询
|
|||
|
|
- 支持数据同步和更新
|
|||
|
|
|
|||
|
|
## 最佳实践
|
|||
|
|
|
|||
|
|
### 1. 群组命名
|
|||
|
|
|
|||
|
|
建议使用清晰的群组名称:
|
|||
|
|
- ✓ "北京招聘信息群"
|
|||
|
|
- ✓ "Python开发求职群"
|
|||
|
|
- ✗ "群聊" (太模糊)
|
|||
|
|
|
|||
|
|
### 2. 监听策略
|
|||
|
|
|
|||
|
|
- 优先监听活跃度高的群组
|
|||
|
|
- 定期检查群组名称是否变更
|
|||
|
|
- 及时移除不活跃的群组
|
|||
|
|
|
|||
|
|
### 3. 数据管理
|
|||
|
|
|
|||
|
|
- 定期导出数据备份
|
|||
|
|
- 使用UUID进行数据去重
|
|||
|
|
- 按来源群组分类整理
|
|||
|
|
|
|||
|
|
### 4. 性能优化
|
|||
|
|
|
|||
|
|
- 不要监听过多群组
|
|||
|
|
- 定期清理历史数据
|
|||
|
|
- 关闭不需要的群组监听
|
|||
|
|
|
|||
|
|
## 技术说明
|
|||
|
|
|
|||
|
|
### 多群组实现
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
# 为每个群组创建独立的监听
|
|||
|
|
for group_name in groups:
|
|||
|
|
def make_callback(gname):
|
|||
|
|
return lambda msg, chat: self.on_message(msg, chat, gname)
|
|||
|
|
|
|||
|
|
wx.AddListenChat(
|
|||
|
|
nickname=group_name,
|
|||
|
|
callback=make_callback(group_name)
|
|||
|
|
)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### UUID生成
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
import uuid
|
|||
|
|
|
|||
|
|
# 为每个岗位生成唯一ID
|
|||
|
|
job_id = str(uuid.uuid4())
|
|||
|
|
job_info["_id"] = job_id
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 更新日志
|
|||
|
|
|
|||
|
|
### v1.1 (2026-02-11)
|
|||
|
|
- ✓ 支持多群组同时监听
|
|||
|
|
- ✓ 使用UUID作为岗位ID
|
|||
|
|
- ✓ 界面显示来源群组
|
|||
|
|
- ✓ API密钥打包时配置
|
|||
|
|
- ✓ 优化日志显示
|
|||
|
|
|
|||
|
|
### v1.0 (2026-02-11)
|
|||
|
|
- 初始版本
|
|||
|
|
- 单群组监听
|
|||
|
|
- 基础功能实现
|
|||
|
|
|
|||
|
|
## 下一步计划
|
|||
|
|
|
|||
|
|
- [ ] 群组管理界面(添加/删除/启用/禁用)
|
|||
|
|
- [ ] 按群组筛选岗位
|
|||
|
|
- [ ] 群组统计信息
|
|||
|
|
- [ ] 数据去重功能
|
|||
|
|
- [ ] 导出Excel格式
|
|||
|
|
- [ ] 数据库存储支持
|