跳到主要内容
AI教程

使用 AI Writer 根据产品图片生成多语言电商文案

了解如何安装、配置和使用 AI Writer。这是一款基于 Express 的应用,可根据产品图片生成电商文案。本教程涵盖自动与手动设置、多语言生成、页面图片抓取、翻译、额度、实验性视频处理、测试以及生产环境安全注意事项。

使用 AI Writer 根据产品图片生成多语言电商文案

什么是 AI Writer?

AI Writer 是一款开源应用,可将产品照片转换为可编辑的电商描述。你可以提供一到八个公开的 HTTPS 图片 URL,选择输出语言,并使用支持视觉能力的 OpenAI Chat Completions 模型生成草稿。

该应用支持英语、土耳其语、西班牙语、德语、法语和中文。它还包括账户身份验证、基于浏览器的编辑、翻译,以及由 MySQL 支持的积分系统。

AI Writer 图片工作室

AI Writer 生成的是草稿,而不是经过验证的产品规格。发布前请仔细审核每条描述,因为图片无法可靠证明尺寸、面料成分或认证等详细信息。

主要功能

  • 基于图片撰写:根据一到八张可公开访问的 HTTPS 产品图片生成文案。
  • 获取产品页面:使用 Puppeteer 从公开产品页面收集图片链接。
  • 六种输出语言:以英语、土耳其语、西班牙语、德语、法语或中文生成内容。
  • 编辑与翻译:在浏览器中完善生成的草稿、复制草稿,并通过一次操作完成翻译。
  • 账户与积分:应用使用 bcrypt 密码、MySQL 会话和余额机制,防止并行操作导致超额消费。
  • 失败退款:支持的生成请求失败时,已预留的积分会退回。
  • 实验性视频输入:从短 YouTube 视频中提取最多八个画面,并将其用作视觉输入。

前置条件

安装前,请准备以下内容:

  • Node.js 22.12 或更高版本,以及 npm。
  • 带 Compose 的 Docker,或可访问现有的 MySQL 8 或更高版本服务器。
  • 有权访问支持视觉能力的 Chat Completions 模型的 OpenAI API 密钥。
  • 如果要从产品页面获取图片,请通过 Puppeteer 安装 Chrome。
  • 如果要尝试实验性视频处理,请确保 FFmpeg 和 FFprobe 可在 PATH 中使用。

如果你只计划根据图片生成描述,则无需安装 FFmpeg。

自动安装 AI Writer

交互式安装脚本是最简单的安装方式。克隆仓库、进入其目录、运行安装程序,然后启动应用:

git clone https://github.com/csadigital/ai-writer.git
cd ai-writer
npm run setup
npm start

安装程序会下载应用依赖和 Chrome,在不回显的情况下询问你的 OpenAI API 密钥,创建数据库和会话密钥,并初始化 MySQL。它会保留现有的 .env 值,并创建本地备份。

设置过程中,选择 docker 可自动启动持久化 MySQL 容器。Docker 必须已安装并正在运行。选择 existing 可连接到你自己的 MySQL 服务器。使用管理员凭据时,安装程序可以创建专用数据库和应用用户,但不会保存管理员密码。

启动后,在浏览器中打开 http://localhost:3000。

停止 Docker 数据库

要停止本地 MySQL 容器而不删除其中的持久化数据,请运行:

docker compose -f compose.mysql.yml stop

在 .env 中更改数据库凭据不会重置之前初始化的 Docker 卷。请保留原始凭据,或执行有意进行的数据库迁移。

手动安装 AI Writer

手动设置可让你直接控制环境和数据库配置。克隆项目、安装指定版本的依赖,并创建环境文件:

git clone https://github.com/csadigital/ai-writer.git
cd ai-writer
npm ci
cp .env.example .env
node -e "console.log(require('node:crypto').randomBytes(32).toString('hex'))"

将生成的值复制到 .env 中的 SESSION_SECRET。该密钥必须至少包含 32 个字符。然后添加 OpenAI API 密钥和 MySQL 连接设置。请使用全新的凭据,切勿提交 .env 文件。

使用 MySQL 管理员创建数据库和应用用户,授予该用户访问数据库的权限,然后使用 schema.sql 初始化数据表:

mysql -h 127.0.0.1 -u ai_writer -p ai_writer < schema.sql
npm start

打开 http://localhost:3000,创建账户并登录。

配置环境

应用从环境变量中读取设置。至少需要配置 OpenAI 凭据、会话密钥和数据库连接。

  • OPENAI_API_KEY:必需的 OpenAI API 凭据。
  • OPENAI_MODEL:支持视觉能力的 Chat Completions 模型。默认值为 gpt-4.1-mini。
  • SESSION_SECRET:必需的随机密钥,至少包含 32 个字符。
  • DB_HOST 和 DB_PORT:MySQL 地址。默认值分别为 127.0.0.1 和 3306。
  • DB_USER 和 DB_PASSWORD:本地 MySQL 应用凭据。
  • DB_NAME:数据库名称。默认值为 ai_writer。
  • PORT:应用 HTTP 端口。默认值为 3000。
  • NODE_ENV:运行模式。默认值为 development。
  • TRUST_PROXY:设置应用是否信任一个 HTTPS 反向代理。默认值为 0。

所选模型必须通过 Chat Completions API 支持图像输入。有关兼容的请求行为,请参阅OpenAI 官方图像输入指南。

生成您的第一份产品描述

  1. 创建账户:通过本地应用注册并登录。每个新账户都会获得十个积分。
  2. 添加产品照片:提供一至八个公开的 HTTPS 图像 URL。模型必须能够访问这些 URL。
  3. 选择语言:选择英语、土耳其语、西班牙语、德语、法语或中文。
  4. 生成草稿:提交图像进行视觉分析并生成描述。
  5. 编辑结果:在浏览器中检查草稿,修正未经支持的声明、语气或产品详情。
  6. 复制文本:将修改后的描述复制到您的电商工作流程中。

成功生成一份描述需要一个积分。如果生成请求失败,应用会退还预留的积分。

图像工作流示例

对于具有多个角度的产品,请提供一组直接图像 URL,例如:

https://example.com/products/item-front.jpg
https://example.com/products/item-side.jpg
https://example.com/products/item-detail.jpg

仅使用公开的 HTTPS 地址。多个视角可以为模型提供更多可见上下文,但不能替代产品目录中经过核实的规格信息。

从产品页面获取图像

AI Writer 可以使用 Puppeteer 检查公开的产品页面并收集图像链接,无需手动收集每个图像 URL。此工作流需要使用 Puppeteer 管理的 Chrome 安装。

  1. 向页面获取工作流提供公开的产品页面 URL。
  2. 让应用收集候选图像链接。
  3. 从获取的结果中选择合适的产品照片。
  4. 照常生成并检查描述。

仅处理您获授权使用的页面和图像。对于公开部署,应将浏览器自动化置于沙箱中,并限制网络访问。

翻译现有草稿

生成或编辑描述后,使用翻译操作生成另一种支持的语言。成功翻译需要一个积分。发布前,请检查译文中的产品术语、品牌语调和事实准确性。

使用实验性视频工作流

AI Writer 可以从短 YouTube 视频中提取最多八帧,并将这些帧作为视觉上下文提交。由于 localhost 图像链接无法被 API 访问,本地帧会以数据 URL 的形式发送给模型。

视频必须符合以下所有限制:

  • 不得是直播视频。
  • 时长不得超过三分钟。
  • 大小不得超过 50 MB。
  • FFmpeg 和 FFprobe 必须在 PATH 中可用。
  • 您必须获授权处理该媒体。

此功能依赖上游 YouTube 下载器的可用性,而 YouTube 可能会拒绝自动下载。处理失败时会退还预留的积分。

开发与测试

修改应用时使用以下开发命令:

npm run dev

使用以下命令运行项目检查、自动化测试和生产依赖项审计:

npm run check
npm test
npm audit --omit=dev

测试套件涵盖身份验证、会话轮换、CSRF 防护、URL 验证、转义输出、图像生成、翻译、积分退款和并行积分消费。本地测试会隔离数据库与 AI 服务,因此不会使用生产凭据或进行付费 API 调用。持续集成还会创建临时的真实 MySQL 服务器,以验证安装程序的架构创建和数据库用户授权。

高级提示

谨慎选择图像

使用能从有用角度展示产品的清晰照片。将请求控制在一至八张图像的限制内。增加的图像应提供有意义的视觉信息,而不是重复相同视角。

将事实数据与视觉推测分开

不要将关于尺寸、成分或认证的生成内容视为权威信息。编辑时,请从库存系统或产品信息系统中添加经过核实的规格。

保护密钥和数据库访问

妥善保管 .env 文件,使用专用数据库凭据,避免提交 API 密钥或会话密钥。如果使用现有的 MySQL 服务器,请仅授予应用用户访问其指定数据库的权限。

为公开部署做好准备

在将 AI Writer 暴露到互联网之前,请阅读仓库中的部署指南。公开服务器需要 HTTPS、受限的网络出口和沙箱化浏览器。仅依靠 DNS 验证并不能完全防御 DNS 重绑定攻击。

内置积分可以限制支出,但项目不包含计费集成、自动购买积分、密码恢复或电子邮件验证功能。发布仓库也不会创建托管应用或在线演示。

了解项目的主要文件

  • app.js:Express 应用以及账户和积分路由。
  • db.js:MySQL 连接池。
  • youtube.js:受限的实验性视频工作流。
  • lib/ai.js:模型请求和多语言提示词。
  • lib/network.js:公共 HTTPS URL 验证。
  • views/:EJS 页面和共享布局。
  • public/:样式、浏览器端代码和品牌资源。
  • schema.sql:账户数据库表。
  • scripts/setup.js:交互式安装程序。
  • compose.mysql.yml:可选的本地 MySQL 服务。
  • test/:自动化回归检查。

结论

AI Writer 提供了一套实用的本地工作流,可将产品照片转换为多语言电商文案草稿。请先运行交互式安装程序,连接支持视觉能力的 OpenAI 模型,添加公共 HTTPS 图片,并在发布前审核每项结果。其账户、积分、翻译和测试功能构成了坚实基础,但生产环境部署仍需仔细处理浏览器隔离、网络控制和 HTTPS。