6015c850435208d6c0fe5dd7b02dad0abfaee4ab
文字匹配图片项目
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:
python -m venv venv
venv\Scripts\activate
Linux/macOS:
python3 -m venv venv
source venv/bin/activate
2. 安装依赖
pip install -r requirements.txt
3. 数据库配置
编辑 database_config.py 中的数据库连接信息:
DB_CONFIG = {
'host': 'your_host',
'user': 'your_user',
'password': 'your_password',
'database': 'ai_article',
'charset': 'utf8mb4'
}
使用方法
文章图片匹配
测试模式(处理前N篇文章):
python match_article_images.py --test 3
正常模式(处理所有文章):
python match_article_images.py
导出数据
导出审核通过的文章:
python export_approved_articles.py
导出图片标签数据:
python export_image_tags.py
核心功能说明
1. 文章图片匹配流程
- 从数据库读取状态为
approved的文章 - 根据文章标签匹配图片库中的图片(image_attached_article_count < 5)
- 使用通义千问API评估匹配质量
- 匹配成功:更新图片使用计数
- 匹配失败:调用Gemini生成新图片
2. Gemini图片生成流程
- 根据文章标题和标签生成提示词
- 调用Gemini API生成图片
- 将图片信息插入
ai_images表 - 将图片标签信息插入
ai_image_tags表(image_source=3表示AI生成) - 上传图片到服务器
- 将文章与图片关联信息插入
ai_article_images表(image_source=0) - 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- 错误日志
注意事项
- 虚拟环境 (
venv/) 已在.gitignore中排除 - API密钥和数据库密码请妥善保管
- 生产环境建议使用环境变量管理敏感信息
- 测试模式不会触发批量发布操作
许可证
内部项目,保密使用。
Description
Languages
Python
98.1%
Shell
1.8%
Batchfile
0.1%