feat: expand module workflows, dynamic config, notifications and console API
This commit is contained in:
+57
-2
@@ -16,7 +16,7 @@
|
||||
- Python 3.12 和 `uv`
|
||||
- 可访问的 PostgreSQL 13+ 云端实例及运行时注入的 `GYXX_POSTGRES_DSN`
|
||||
- 本机 Hermes `data-analyzer` 与 `data-collector`
|
||||
- Chrome/Playwright,以及个别业务入口仍需要的 PowerShell 运行条件
|
||||
- Chrome 与 Scrapling 浏览器运行时,以及个别业务入口仍需要的 PowerShell 运行条件
|
||||
- 可访问现有飞书身份的专用系统用户
|
||||
|
||||
创建生产目录和服务账户:
|
||||
@@ -33,14 +33,67 @@ sudo install -d -o root -g gyxx-flow -m 0750 /etc/gyxx-flow
|
||||
```bash
|
||||
cd /opt/gyxx-flow
|
||||
sudo -u gyxx-flow uv sync --python 3.12 --no-group dev --frozen
|
||||
sudo -u gyxx-flow uv run scrapling install
|
||||
```
|
||||
|
||||
业务采集代码只使用 Scrapling;其动态与隐身抓取器所需的底层浏览器由
|
||||
Scrapling 安装和管理。具体边界与验证命令见
|
||||
[`architecture.md`](architecture.md#scrapling-采集边界)。
|
||||
|
||||
凭据放入 `/etc/gyxx-flow/gyxx-flow.env`,权限设为 `0640`。该文件不提交到 Git,至少按实际环境注入数据库密码、飞书身份和可选 Hermes 密钥。
|
||||
|
||||
控制台和调度器都支持可重复的 `--env-file`,只加载显式列出的文件。systemd 的
|
||||
`EnvironmentFile=` 或当前进程环境优先于文件中的同名值,避免本地文件意外覆盖密钥系统
|
||||
注入值。
|
||||
|
||||
## 三平台电商费用日报部署边界
|
||||
|
||||
`product.ecommerce_costs.daily` 是包含天猫万相台、京东京准通和抖音千川分支的电商费用工作流;三个
|
||||
平台下载节点并行,导入节点分别等待本平台下载完成。当前项目对其中天猫万相台这条
|
||||
浏览器链路按 Windows Server + NSSM 验收;Linux 上的通用调度器说明不等于万相台浏览器流程
|
||||
已经完成 Linux/无头浏览器验收。部署到 Windows Server 时使用项目内的 NSSM 服务包装器,业务
|
||||
时间仍只由 `config/schedules.json` 管理,不创建 Windows Task Scheduler 条目。
|
||||
|
||||
该工作流需要由服务账户注入以下环境变量,真实值不要写入 Git、命令参数或文档:
|
||||
|
||||
```text
|
||||
GYXX_DATA_ROOT=D:\gyxx-flow-data
|
||||
GYXX_POSTGRES_DSN=<云端 PostgreSQL DSN>
|
||||
WANXIANG_ACCOUNT=<万相台账号>
|
||||
WANXIANG_PASSWORD=<万相台密码>
|
||||
```
|
||||
|
||||
未显式设置 `WANXIANG_USER_DATA_DIR` 时,登录态保存在
|
||||
`<GYXX_DATA_ROOT>\state\browser-profiles\wanxiang-ads`。这个 Profile 是该脚本的独立登录态,
|
||||
不要与其他淘宝/万相台脚本共用。使用 NSSM 的 `AppEnvironmentExtra` 或服务器密码管理器注入
|
||||
凭据;不要把真实密码写进 PowerShell 脚本或 `nssm` 命令历史。
|
||||
|
||||
安装 Windows 常驻服务:
|
||||
|
||||
```powershell
|
||||
cd D:\gyxx-flow
|
||||
uv sync --python 3.12 --group dev
|
||||
.\deploy\windows-service\install.ps1 -ProjectRoot D:\gyxx-flow -DataRoot D:\gyxx-flow-data
|
||||
# 按服务器密码管理器的方式为 gyxx-flow-scheduler 注入上述环境变量
|
||||
nssm start gyxx-flow-scheduler
|
||||
```
|
||||
|
||||
首次上线先在有头浏览器中建立登录态并导入一日数据;验证码或滑块必须在同一 Profile 中人工
|
||||
完成:
|
||||
|
||||
```powershell
|
||||
$env:GYXX_DATA_ROOT = 'D:\gyxx-flow-data'
|
||||
$env:WANXIANG_ACCOUNT = '<从密码管理器读取>'
|
||||
$env:WANXIANG_PASSWORD = '<从密码管理器读取>'
|
||||
uv run gyxx doctor --json
|
||||
uv run gyxx scripts run product.tmall_wanxiang_ads.collect --date 2026-08-17 --execute
|
||||
uv run gyxx scripts run product.import.tmall_ads --date 2026-08-17 --execute
|
||||
```
|
||||
|
||||
确认手工链路成功后,再让唯一的 `gyxx schedule run` 常驻服务接管;不要为 19:30 另建系统定时
|
||||
任务。完整的服务重启和 dry-run 流程见本文件的“systemd 调度服务”章节以及
|
||||
[`runbook.md`](runbook.md) 的万相台小节。
|
||||
|
||||
## PostgreSQL
|
||||
|
||||
从受限环境文件加载云端数据库连接:
|
||||
@@ -66,7 +119,9 @@ data-collector: API base http://127.0.0.1:8643/v1
|
||||
|
||||
`28790/28791` 不作为工作流业务端点。
|
||||
|
||||
运行时配置必须保持回环地址。Hermes 不可用时,纯采集、文件处理和数据库同步仍可运行;依赖 Hermes 分析或通知的工作流应保持停用或手工执行,不得静默改用远程 AI。
|
||||
运行时配置必须保持回环地址。Hermes 不可用时,纯采集、文件处理、数据库同步和不依赖大模型的确定性通知仍可运行;仍依赖 Hermes 的工作流应保持停用或手工执行,不得静默改用远程 AI。飞书消息投递本身统一依赖运行服务账户的 `hermes-analyzer` lark-cli user 授权。
|
||||
|
||||
例外:`content.summary.weekly` / `content.summary.monthly` 的内容报告、`product.style_analysis.interval` 的款式周期分析,以及 `product.video_upload` / `product.jd_video_upload` 的视频标题与视觉颜色识别,均配置为显式直连 MiniMax。内容报告使用 `CONTENT_ANALYSIS_LLM_BASE_URL`、`CONTENT_ANALYSIS_LLM_MODEL` 和 `CONTENT_ANALYSIS_LLM_API_KEY`;商品/视频链路使用 `STYLE_ANALYSIS_LLM_*`(视频链路也支持 `GYXX_DIRECT_LLM_*` 覆盖)。这些链路不读取 Hermes 分析端口,但仍保留本地结果校验、断点、EffectLedger、飞书和 PostgreSQL 写入链路。
|
||||
|
||||
## 上线前验证
|
||||
|
||||
|
||||
Reference in New Issue
Block a user