Files
ai_import_quary/README.md
2026-02-05 21:34:39 +08:00

151 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AI 关键词导入工具
## 项目简介
本项目是一个从 Excel 文件批量导入关键词到 MySQL 数据库的工具,支持自动关联科室信息和作者信息。
## 功能特性
- 从 Excel 文件读取关键词和科室信息
- 自动去重,避免重复导入
- 支持批量导入或测试模式(导入指定条数)
- 自动查询科室 ID 和对应的作者信息
- 导入完成后自动清理已处理的 Excel 文件
- 详细的日志输出,便于追踪导入过程
## 环境要求
- Python 3.7+
- MySQL 数据库
## 安装依赖
```bash
pip install -r requirements.txt
```
## 使用方法
### 1. 准备 Excel 文件
在项目根目录下创建 `query_upload` 文件夹,并将 Excel 文件放入该文件夹中。
Excel 文件需要包含以下列:
- `query` 列:关键词列(必需)
- `科室` 列:科室信息列(可选,如不存在则不关联科室)
### 2. 配置数据库
编辑 `database_config.py` 文件,修改数据库连接配置:
```python
DB_CONFIG = {
'host': 'your_host',
'user': 'your_user',
'password': 'your_password',
'database': 'your_database',
'charset': 'utf8mb4'
}
```
### 3. 运行导入工具
```bash
python import_keywords.py
```
### 4. 命令行参数(可选)
```bash
python import_keywords.py --host 127.0.0.1 --port 3306 --user root --password your_password --database ai_article
```
可用参数:
- `--host`: 数据库主机(默认使用配置文件中的值)
- `--port`: 数据库端口(默认 3306
- `--user`: 数据库用户名(默认使用配置文件中的值)
- `--password`: 数据库密码(默认使用配置文件中的值)
- `--database`: 数据库名(默认使用配置文件中的值)
- `--batch-size`: 日志批次大小(默认 1
- `--sleep`: 每条记录间隔时间秒数(默认 0.1
- `--query-column`: Excel 中的关键词列名(默认 'query'
- `--dept-column`: Excel 中的科室列名(默认 '科室'
- `--seed-id`: 种子 ID默认 9999
- `--seed-name`: 种子名称(默认 '手动提交'
## 数据库表结构
### baidu_keyword 表(目标表)
导入的数据会插入到 `baidu_keyword` 表,字段包括:
- `keyword`: 关键词
- `seed_id`: 种子 ID
- `seed_name`: 种子名称
- `crawled`: 是否已爬取
- `department`: 科室名称
- `department_id`: 科室 ID
- `query_status`: 查询状态(固定为 'manual_review'
- `author_id`: 作者 ID
- `author_name`: 作者名称
### ai_departments 表(科室表)
需要预先存在,用于查询科室 ID
- `id`: 科室 ID
- `department_name`: 科室名称
### ai_authors 表(作者表)
需要预先存在,用于查询作者信息:
- `id`: 作者 ID
- `author_name`: 作者名称
- `department_id`: 所属科室 ID
- `status`: 状态(需为 'active'
- `daily_post_max`: 每日最大发布数(需大于 0
## 工作流程
1. 检测 `query_upload` 文件夹中的 Excel 文件
2. 如果有多个文件,提示用户选择
3. 读取 Excel 文件中的关键词和科室信息
4. 提示用户选择全部导入或测试模式
5. 显示前 10 条数据预览
6. 确认后开始导入:
- 查询关键词是否已存在
- 如果存在则跳过
- 如果不存在,根据科室名称查询科室 ID
- 根据科室 ID 查询符合条件的作者信息
- 插入数据到 `baidu_keyword`
7. 导入成功后自动清理 `query_upload` 文件夹中的 Excel 文件
## 注意事项
1. 确保 `ai_departments` 表中已存在 Excel 中提到的所有科室
2. 确保每个科室在 `ai_authors` 表中至少有一个状态为 'active' 且 `daily_post_max > 0` 的作者
3. 如果科室不存在,导入过程会中断并报错
4. 导入成功后,原始 Excel 文件会被自动删除
5. 如果导入失败Excel 文件会保留以便排查问题
## 项目结构
```
ai_import_quary/
├── database_config.py # 数据库配置和管理模块
├── import_keywords.py # 关键词导入主程序
├── requirements.txt # Python 依赖包
├── README.md # 项目说明文档
└── query_upload/ # Excel 文件存放目录(需手动创建)
```
## 日志说明
程序运行过程中会输出详细的日志信息:
- `INFO` 级别:一般信息和进度提示
- `DEBUG` 级别:详细的调试信息
- `WARNING` 级别:警告信息
- `ERROR` 级别:错误信息
## 许可证
本项目仅供内部使用。