🚀 基于AI的一站式多平台图文内容生成工具
逸流是一款智能化的多平台图文生成器,帮助内容创作者通过"一句话"快速生成符合小红书、抖音、微信公众号、头条号、反推等平台特色的专业图文内容。
git clone https://cnb.cool/yiliu/yiliu.git
cd yiliu
# 复制配置文件模板
cp config/system_config.example.yaml config/system_config.yaml
cp config/text_providers.yaml.example config/text_providers.yaml
cp config/image_providers.yaml.example config/image_providers.yaml
cp config/platform_templates.yaml.example config/platform_templates.yaml
# 编辑配置文件
# 1. 编辑系统配置
nano config/system_config.yaml
# 2. 编辑AI提供商配置
nano config/text_providers.yaml
nano config/image_providers.yaml
# 3. 编辑平台模板配置
nano config/platform_templates.yaml
cd backend
# 确保安装 uv
pip install uv
# 同步依赖 (会自动创建虚拟环境)
uv sync
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填入API密钥和数据库配置
nano .env
# 启动后端
uv run python -m src.app
cd frontend
# 安装依赖
npm install
# 启动开发服务器
npm run dev
yiliu/ ├── backend/ # 后端代码 │ ├── src/ │ │ ├── api/ # API路由 │ │ ├── services/ # 业务服务 │ │ ├── providers/ # AI提供商 │ │ ├── models/ # 数据模型 │ │ └── utils/ # 工具函数 │ ├── pyproject.toml # Python依赖配置 │ └── .env.example # 环境变量模板 ├── frontend/ # 前端代码 │ ├── src/ │ │ ├── assets/ # 静态资源 │ │ ├── components/ # Vue组件 │ │ ├── locales/ # 国际化翻译 │ │ ├── views/ # 页面视图 │ │ ├── stores/ # 状态管理 │ │ ├── services/ # API服务 │ │ ├── styles/ # 样式文件 │ │ └── utils/ # 工具函数 │ ├── package.json # Node.js依赖 │ └── vite.config.ts # Vite配置 ├── config/ # 配置文件 │ ├── system_config.yaml # 系统配置 │ ├── system_config.yaml.example # 系统配置示例 │ ├── platform_templates.yaml # 平台模板配置 │ ├── platform_templates.yaml.example # 平台模板配置示例 │ ├── text_providers.yaml # 文本AI提供商配置 │ ├── text_providers.yaml.example # 文本AI提供商配置示例 │ ├── image_providers.yaml # 图像AI提供商配置 │ └── image_providers.yaml.example # 图像AI提供商配置示例 ├── .gitignore # Git忽略文件 ├── design_scheme.md # 设计方案 ├── package.json # 根目录package.json └── README.md # 项目说明文档
系统配置文件位于 config/system_config.yaml,用于配置数据库连接、Redis缓存、日志级别等系统级参数。
# config/system_config.yaml
# 系统配置示例
logger:
level: "INFO" # 日志级别:DEBUG, INFO, WARNING, ERROR, CRITICAL
file_path: "logs/yiliu.log" # 日志文件路径
rotation: "10 MB" # 日志文件轮转大小
retention: 7 # 日志保留天数
# 数据库配置(可选,默认为None)
database:
url: "mysql://username:password@localhost:3306/yiliu_db" # MySQL数据库URL
pool_size: 10 # 连接池大小
max_overflow: 20 # 最大溢出连接数
echo: false # 是否打印SQL语句
# Redis配置
aio_redis:
url: "redis://localhost:6379/0" # Redis连接URL,/0表示使用0号数据库
encoding: "utf-8" # 编码
decode_responses: true # 是否自动解码响应
db: 0 # Redis数据库编号
# API配置
api:
prefix: "/api" # API前缀
timeout: 300 # API超时时间(秒)
# 图片配置
image:
save_path: "images" # 图片保存路径
max_size: 10485760 # 图片最大大小(10MB)
quality: 90 # 图片质量(0-100)
allowed_formats: ["jpg", "jpeg", "png"] # 允许的图片格式
平台模板配置文件位于 config/platform_templates.yaml,用于定义不同平台的内容生成规则。每个平台模板包含以下主要部分:
# config/platform_templates.yaml
platform_templates:
fantui: # 反推平台
name: 反推
outline_template: '你是一个图片创作高手。用户会给你一个要求以及说明,你需要生成包含一个标题、一个文案和多个图片提示词的内容。
# ... 模板内容
image_template: '{full_outline}'
video_template: '请生成一个适合小红书的短视频脚本,根据以下主题和大纲:
# ... 模板内容
模板字段说明:
name: 平台中文名称outline_template: 大纲生成模板,用于生成包含标题、文案和图片提示词的完整内容image_template: 图片生成模板,用于生成单张图片video_template: 视频生成模板,用于生成视频脚本AI提供商配置文件位于 config/text_providers.yaml 和 config/image_providers.yaml,用于配置AI服务的API密钥和参数。
# config/text_providers.yaml
providers:
openai:
api_key: "${OPENAI_API_KEY}" # API密钥,支持环境变量
model: "gpt-4" # 模型名称
max_tokens: 2000 # 最大生成 token 数
temperature: 0.7 # 温度参数,控制生成内容的随机性
top_p: 0.95 # 核采样参数
frequency_penalty: 0.0 # 频率惩罚
presence_penalty: 0.0 # 存在惩罚
# config/image_providers.yaml
providers:
stable_diffusion:
api_key: "${STABLE_DIFFUSION_API_KEY}"
base_url: "https://api.stability.ai/v1/generation"
model: "stable-diffusion-xl-1024-v1-0"
width: 1024 # 图片宽度
height: 1024 # 图片高度
steps: 50 # 生成步数
cfg_scale: 7.0 # 配置比例
samples: 1 # 生成数量
启动应用
uv run python -m src.appnpm run dev创作流程
逸流生成的内容采用以下结构化格式:
<page>标签分割logs/yiliu.log# 后端测试
cd backend
pytest
# 前端测试
cd frontend
pnpm test
安装依赖
uv syncnpm install配置文件
cp config/system_config.yaml.example config/system_config.yaml启动服务
uv run python -m src.appnpm run devcd frontend
npm install
npm run build
# 构建产物将生成在 dist 目录
cd backend
uv sync --frozen
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件
# 启动后端服务
uv run python -m src.app
推荐使用Nginx作为反向代理服务器,配置示例:
server { listen 80; server_name your-domain.com; # 前端静态资源 location / { root /path/to/yiliu/frontend/dist; index index.html; try_files $uri $uri/ /index.html; } # 后端API location /api { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # API文档 location /docs { proxy_pass http://127.0.0.1:8000/docs; } }
推荐使用Supervisor或systemd管理服务进程:
systemd配置示例(后端):
[Unit]
Description=Yiliu Backend Service
After=network.target redis.service mysql.service
[Service]
Type=simple
User=www-data
WorkingDirectory=/path/to/yiliu/backend
ExecStart=/path/to/uv run python -m src.app
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
项目支持Docker容器化部署,相关配置文件正在完善中。
当前进度: ✅ 正式版已发布,支持多平台图文生成
system_config.yaml,支持 MySQL 和 Redis 配置git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
感谢以下开源项目的支持:
⭐ 如果这个项目对你有帮助,请给个Star支持一下!