From 35af8594cfc369b960ae083060337fe2f1b6b4da Mon Sep 17 00:00:00 2001 From: shengyudong Date: Fri, 30 Jan 2026 18:12:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0README=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..324d096 --- /dev/null +++ b/README.md @@ -0,0 +1,171 @@ +# 文字匹配图片项目 + +AI驱动的文章与图片智能匹配系统,支持从数据库读取文章数据,自动匹配图片或使用Gemini生成图片,并批量发布文章。 + +## 项目概述 + +本项目实现了以下核心功能: +- 从数据库读取待处理的文章数据 +- 基于文章标签智能匹配现有图片库 +- 使用通义千问大模型评估文章与图片的匹配度 +- 匹配失败时自动调用Gemini API生成相关图片 +- 将生成的图片信息插入数据库(ai_images、ai_image_tags、ai_article_images) +- 上传图片到服务器 +- 批量发布处理完成的文章 + +## 技术栈 + +- **Python 3.12** +- **数据库**: MySQL (PyMySQL) +- **AI服务**: + - Google Gemini API (图片生成) + - 通义千问 API (文章图片匹配评估) +- **依赖库**: + - `requests==2.31.0` - HTTP请求 + - `google-genai==0.1.0` - Gemini API调用 + - `pymysql` - MySQL数据库连接 + - `Pillow==10.0.0` - 图片处理 + +## 项目结构 + +``` +文字匹配图片/ +├── match_article_images.py # 主程序:文章图片匹配 +├── database_config.py # 数据库配置管理 +├── log_config.py # 日志配置 +├── export_approved_articles.py # 导出审核通过的文章 +├── export_image_tags.py # 导出图片标签数据 +├── push_article_published.py # 文章发布监控脚本 +├── requirements.txt # 项目依赖 +├── setup_env.bat # Windows环境初始化脚本 +├── setup_env.sh # Linux/macOS环境初始化脚本 +├── db/ # 数据库表结构 +│ ├── split_tables/ # 按表拆分的SQL文件 +│ └── ai_articles.sql # 完整数据库结构 +└── logs/ # 日志目录 +``` + +## 环境配置 + +### 1. 创建虚拟环境 + +**Windows**: +```bash +python -m venv venv +venv\Scripts\activate +``` + +**Linux/macOS**: +```bash +python3 -m venv venv +source venv/bin/activate +``` + +### 2. 安装依赖 + +```bash +pip install -r requirements.txt +``` + +### 3. 数据库配置 + +编辑 `database_config.py` 中的数据库连接信息: +```python +DB_CONFIG = { + 'host': 'your_host', + 'user': 'your_user', + 'password': 'your_password', + 'database': 'ai_article', + 'charset': 'utf8mb4' +} +``` + +## 使用方法 + +### 文章图片匹配 + +**测试模式**(处理前N篇文章): +```bash +python match_article_images.py --test 3 +``` + +**正常模式**(处理所有文章): +```bash +python match_article_images.py +``` + +### 导出数据 + +导出审核通过的文章: +```bash +python export_approved_articles.py +``` + +导出图片标签数据: +```bash +python export_image_tags.py +``` + +## 核心功能说明 + +### 1. 文章图片匹配流程 + +1. 从数据库读取状态为 `approved` 的文章 +2. 根据文章标签匹配图片库中的图片(image_attached_article_count < 5) +3. 使用通义千问API评估匹配质量 +4. 匹配成功:更新图片使用计数 +5. 匹配失败:调用Gemini生成新图片 + +### 2. Gemini图片生成流程 + +1. 根据文章标题和标签生成提示词 +2. 调用Gemini API生成图片 +3. 将图片信息插入 `ai_images` 表 +4. 将图片标签信息插入 `ai_image_tags` 表(image_source=3表示AI生成) +5. 上传图片到服务器 +6. 将文章与图片关联信息插入 `ai_article_images` 表(image_source=0) +7. sort_order自动设置为当前文章下最大值+1 + +### 3. 批量发布 + +处理完成后自动调用 `/api/articles/batch-publish-auto` 接口批量发布文章。 + +## 数据库表结构 + +### 主要表说明 + +- **ai_articles**: 文章主表 +- **ai_images**: 图片信息表 +- **ai_image_tags**: 图片标签关联表 +- **ai_article_images**: 文章图片关联表 +- **ai_tags**: 标签表 +- **ai_keywords**: 关键词表 +- **ai_departments**: 部门表 + +## API配置 + +### Gemini API +- 端点: `https://work.poloapi.com` +- 模型: `gemini-3-pro-image-preview` + +### 文章发布API +- 登录: `http://47.99.184.230:8324/api/auth/login` +- 图片上传: `http://47.99.184.230:8324/api/images/upload` +- 批量发布: `http://47.99.184.230:8324/api/articles/batch-publish-auto` + +## 日志 + +日志文件存储在 `logs/` 目录下: +- `article_matching.log` - 文章匹配日志 +- `article_matching_error.log` - 错误日志 + +## 注意事项 + +1. 虚拟环境 (`venv/`) 已在 `.gitignore` 中排除 +2. API密钥和数据库密码请妥善保管 +3. 生产环境建议使用环境变量管理敏感信息 +4. 测试模式不会触发批量发布操作 + +## 许可证 + +内部项目,保密使用。