aippt-marketing

调用小方同学skill技能,10倍效率生成专业、精美营销方案,可一键导出专业 PPT。 当用户表达以下意图时,将自动启用本技能: ● 方案生成:「生成营销方案」「撰写营销方案」「营销策划」「推广策划」「产品推广方案」「生成策划案」「品牌推广方案」 ● PPT生成:「帮我做 PPT」「生成 PPT」「导出幻灯片」「营销方案PPT」「营销方案PPT」「营销方案模版」「企业营销方案模版」 技能能力 ● 文本主题输入(营销方案计划或已有完整方案) → 自动生成结构化全案 ● 文件 / 链接解析 → 上传需求计划,直接生成方案 ● 多轮交互编辑 → 方案需求分析 → 生成营销计划 → 方案主题推导→ 传播执行策略→ 传播方案 ● 需求意图理解→ 结构化专业方案→交互对话 → 持续调整优化方案 ● 风格选择 →企业DNA和多套 PPT 模版自由切换 ● 自动生成 PPT 配图 → 一键下载

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "aippt-marketing" with this command: npx skills add xiaok8700/aippt-marketing

小方同学营销方案生成

版本检查(每次会话首次触发时执行一次)

当前版本:1.1.0

用 exec 工具执行以下命令,检查是否有新版本:

clawhub inspect aippt-marketing --no-input 2>/dev/null | grep -oP 'Latest:\s*\K[\d.]+'
  • 如果返回的版本号大于 1.1.0,向用户展示:

    小方同学技能有新版本可用(当前 1.0.9 → 最新 X.X.X),执行 clawhub update aippt-marketing 即可更新。

  • 如果命令失败或版本相同,静默跳过,不提示用户
  • 此检查不阻塞后续流程,检查完成后立即继续执行

必读约束

Base URL

https://www.aippt.cn/api/marketing

认证方式

Authorization: Bearer AUTH_TOKEN

Token 从浏览器 localStorage 动态获取(key: login_result_token),详见 references/api-details.md


首次使用提醒

首次使用时,必须提醒用户

使用小方同学营销方案功能需要会员积分。如果您还没有购买,请先前往 小方同学个人中心 购买会员积分,然后再开始生成方案。

  • 每次会话第一次触发此技能时,都要展示此提醒
  • 用户确认已有积分或明确表示继续后,再执行后续流程
  • 若 API 返回积分不足相关错误,再次引导用户前往购买

操作规则

  • 首次使用必须先完成登录,获取 AUTH_TOKEN 后才能调用 API
  • 每一步都必须检查 code == 0,非 0 时展示 msg 给用户
  • 若 API 返回 code == 14006,Token 过期,需重新登录
  • API 报错直接告知用户,不要自行排查。将错误码和信息原样展示
  • 用户输入含文件或链接时,必须先解析内容再调接口(见第二步)
  • text_task_idthread_idmessage_seq 必须从上一步返回中提取,不可编造
  • 多轮交互规则:每轮 interrupt 必须展示给用户并等待反馈,禁止自动发送 accepted/edit
  • 超时设置:普通阶段 --max-time 300;生图提示词 --max-time 900
  • 图片轮询:间隔 15 秒,直到全部完成

快速决策

用户意图执行步骤
「生成营销方案」(无主题)提醒积分 → 询问主题 → 第一步起
「帮我做XX方案」(有主题)提醒积分 → 第一步起
「根据这个链接做方案」提醒积分 → WebFetch 解析 → 第一步起
「根据这个文件做方案」提醒积分 → Read 解析 → 第一步起
「用手机号登录」询问手机号密码 → RSA 加密 → API 登录
用户确认/编辑某阶段发送 accepted/edit → 获取下一阶段
用户选择风格发送风格 → 获取生图提示词 → 轮询图片

执行流程

第一步:登录与获取 Token

先询问用户选择登录方式(不要先打开浏览器):

方式一:手机号密码登录

纯 API 调用,不需要启动浏览器

  1. 询问用户手机号和密码
  2. RSA 加密后调用登录接口(详见 references/api-details.md
  3. 从响应 JSON body 取 data.token.access_token 作为 AUTH_TOKEN
  4. 验证 Token 有效性

方式二:微信扫码登录

需要启动浏览器。

  1. browser_navigate 打开 https://www.aippt.cn/marketing/home?utm_type=fanganskill&utm_source=fanganskill&utm_page=fangan.cn&utm_plan=fanganskill&utm_unit=xiaofangskill&utm_keyword=40515275
  2. browser_evaluate 检查 localStorage 中的 login_result_token

验证 Token

curl -s 'https://www.aippt.cn/api/user/info' \
  -H 'authorization: Bearer AUTH_TOKEN'

code: 0 有效;code: 14006 过期需重新登录。


第二步:获取用户输入

如果用户只说"生成营销方案"而没给具体主题,询问:

请告诉我营销方案的主题,例如:"双十一电商大促方案"、"新品上市推广策略"等。

解析用户附带的文件或链接

输入类型处理方式
本地文件(.pdf.docx.txt.mdRead 读取,提取关键信息作为 reference_content
网络链接(http://https://WebFetch 抓取,提取关键信息作为 reference_content
图片文件(.png.jpgRead 读取图片,识别文字信息

解析后:主题作为第三步 title,内容摘要(≤ 2000 字)填入第四步 messages


流程开始前提醒

创建项目前,必须先告知用户

方案生成过程较长(约 6 轮交互 + 图片生成),如果中途出现中断,发送「继续」即可恢复流程。


第三步:创建项目

curl -s -X POST 'https://www.aippt.cn/api/marketing/create' \
  -H 'authorization: Bearer AUTH_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "用户输入的主题",
    "reference_content": "",
    "is_regeneration": false,
    "senior_options": "",
    "type": 25
  }'

提取data.idtext_task_id


第四步:创建生成任务

curl -s -X POST 'https://www.aippt.cn/api/marketing/task/create' \
  -H 'authorization: Bearer AUTH_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "messages": [{"role": "user", "content": "用户输入的主题"}],
    "text_task_id": TEXT_TASK_ID,
    "resources": []
  }'

提取data.thread_iddata.message_seq


第五步:多轮交互循环(核心流程)

进入 "获取结果 → 展示 → 用户确认/编辑" 的循环。共 6 轮 interrupt,每轮可编辑重复。

详细阶段说明见 references/api-details.md

获取阶段结果

curl -s --max-time 300 'https://www.aippt.cn/api/marketing/task/result?thread_id=THREAD_ID&message_seq=MESSAGE_SEQ&include_start_message=false' \
  -H 'authorization: Bearer AUTH_TOKEN'

拼接所有 message_chunkcontent 得到完整内容。收到 interrupt 后展示给用户。

用户确认(accepted)

curl -s -X POST 'https://www.aippt.cn/api/marketing/task/create' \
  -H 'authorization: Bearer AUTH_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "thread_id": "THREAD_ID",
    "interrupt_feedback": "accepted",
    "messages": [{"role": "user", "content": "", "is_hidden": true}],
    "text_task_id": TEXT_TASK_ID
  }'

用户要求修改(edit)

curl -s -X POST 'https://www.aippt.cn/api/marketing/task/create' \
  -H 'authorization: Bearer AUTH_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "thread_id": "THREAD_ID",
    "interrupt_feedback": "edit",
    "messages": [{"role": "user", "content": "用户的修改意见"}],
    "text_task_id": TEXT_TASK_ID
  }'

edit 后用返回的新 message_seq 再次获取结果(重复当前阶段),直到用户确认。

循环直到收到 agent: "marketing_picture_style" 的 interrupt → 进入第六步。

特殊处理:第 5 轮 marketing_report(最终文稿)

收到 marketing_report 的 interrupt 后,不需要等用户反馈,直接:

  1. 将完整文稿保存到临时文件(必须先写文件,后续步骤依赖此文件):
    mkdir -p /tmp/aippt-pdf-TASK_ID
    
    用 exec 将完整文稿内容写入 /tmp/aippt-pdf-TASK_ID/marketing-report.md
  2. 构造请求 JSON 文件(避免长文本内联导致 JSON 损坏):
    node -e "
    const fs = require('fs');
    const report = fs.readFileSync('/tmp/aippt-pdf-TASK_ID/marketing-report.md', 'utf8');
    const body = JSON.stringify({
      thread_id: 'THREAD_ID',
      interrupt_feedback: 'accepted',
      messages: [{ role: 'user', content: report, is_hidden: true }],
      text_task_id: TEXT_TASK_ID
    });
    fs.writeFileSync('/tmp/aippt-pdf-TASK_ID/accepted-body.json', body);
    "
    
  3. 发送 accepted 请求:
    curl -s -X POST 'https://www.aippt.cn/api/marketing/task/create' \
      -H 'authorization: Bearer AUTH_TOKEN' \
      -H 'Content-Type: application/json' \
      -d @/tmp/aippt-pdf-TASK_ID/accepted-body.json
    
  4. 用返回的新 message_seq 继续获取下一阶段结果

第六步:选择美化风格

收到 marketing_picture_style interrupt 后,向用户展示以下选项:


请选择 PPT 美化风格:

① 风格类型(三选一):

1️⃣ 企业品牌风格

  • 智能推荐品牌色(可输入品牌色或 HEX 色值)
  • 上传企业/品牌 logo

2️⃣ 行业风格(默认推荐 ✅)

  • 智能模板,根据行业自动匹配

3️⃣ 经典风格(15 种可选) 写实 / 极简 / 商务 / 科技 / 经典中式 / 新中式 / 孟菲斯 / 拼贴 / 像素 / 环保主义 / 液态酸 / 弥散光 / 报刊 / 宏伟磅礴 / 自定义

② 画面比例:16:9(默认)/ 4:3

③ PPT 页数:智能页数(默认)/ 10-20页 / 21-40页 / 41-60页 / 自定义(小于100页)

不指定的话,我按 行业风格 + 16:9 + 智能页数 生成哦~


用户选择后,将用户的选择原文直接发送:

curl -s -X POST 'https://www.aippt.cn/api/marketing/task/create' \
  -H 'authorization: Bearer AUTH_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "thread_id": "THREAD_ID",
    "interrupt_feedback": "accepted",
    "messages": [{"role": "user", "content": "用户的选择原文", "is_hidden": true}],
    "text_task_id": TEXT_TASK_ID
  }'

第七步:获取生图提示词与 job_id

curl -s --max-time 900 'https://www.aippt.cn/api/marketing/task/result?thread_id=THREAD_ID&message_seq=MESSAGE_SEQ&include_start_message=false' \
  -H 'authorization: Bearer AUTH_TOKEN'

此步骤耗时较长(5-10 分钟),提前告知用户"正在生成图片提示词,请稍候..."。

关键job_id 嵌套在 content 的 JSON 字符串内,需二次解析。详见 references/api-details.md


第八步:获取生成的图片

curl -s 'https://www.aippt.cn/api/marketing/image/gen/job/result?job_ids=JOB_IDS&task_id=TEXT_TASK_ID' \
  -H 'authorization: Bearer AUTH_TOKEN'

间隔 15 秒轮询,直到 task_job_status: "done"。详见 references/api-details.md

全部完成后,用 Markdown 图片语法逐页展示给用户(直接显示图片,不要只发链接):

![第1页](IMAGE_URL_1)
![第2页](IMAGE_URL_2)
...

第九步:生成文件并提供下载链接

图片全部展示完后,自动生成方案 PDF 和文稿文件,上传后一起返回给用户。

1. 下载所有图片到临时目录

mkdir -p /tmp/aippt-pdf-TASK_ID && \
curl -s -o /tmp/aippt-pdf-TASK_ID/page-01.jpg "IMAGE_URL_1" && \
curl -s -o /tmp/aippt-pdf-TASK_ID/page-02.jpg "IMAGE_URL_2" && \
...

2. 合成方案 PDF(按顺序尝试,成功即停)

优先用 Node.js:

node -e "
const fs = require('fs');
const { PDFDocument } = require('pdf-lib');
const glob = require('glob');

(async () => {
  const files = glob.sync('/tmp/aippt-pdf-TASK_ID/page-*.jpg').sort();
  const doc = await PDFDocument.create();
  const PAGE_WIDTH = 1280;
  for (const f of files) {
    const img = await doc.embedJpg(fs.readFileSync(f));
    const scale = PAGE_WIDTH / img.width;
    const pageHeight = img.height * scale;
    const page = doc.addPage([PAGE_WIDTH, pageHeight]);
    page.drawImage(img, { x: 0, y: 0, width: PAGE_WIDTH, height: pageHeight });
  }
  fs.writeFileSync('/tmp/aippt-pdf-TASK_ID/marketing-plan.pdf', await doc.save());
})();
"

如果 Node.js 缺少 pdf-lib,改用 Python Pillow

python3 -c "
from PIL import Image
import glob
PAGE_WIDTH = 1280
imgs = sorted(glob.glob('/tmp/aippt-pdf-TASK_ID/page-*.jpg'))
pages = []
for p in imgs:
    img = Image.open(p).convert('RGB')
    scale = PAGE_WIDTH / img.width
    img = img.resize((PAGE_WIDTH, int(img.height * scale)), Image.LANCZOS)
    pages.append(img)
pages[0].save('/tmp/aippt-pdf-TASK_ID/marketing-plan.pdf', save_all=True, append_images=pages[1:])
"

如果 Pillow 也不可用,改用 ImageMagick

convert /tmp/aippt-pdf-TASK_ID/page-*.jpg -resize 1280x /tmp/aippt-pdf-TASK_ID/marketing-plan.pdf

3. 上传方案 PDF 和文稿到 tmpfiles.org

# 上传方案 PDF
curl -s -L --max-time 60 \
  -F "file=@/tmp/aippt-pdf-TASK_ID/marketing-plan.pdf" \
  https://tmpfiles.org/api/v1/upload

# 上传方案文稿
curl -s -L --max-time 60 \
  -F "file=@/tmp/aippt-pdf-TASK_ID/marketing-report.md" \
  https://tmpfiles.org/api/v1/upload

将返回 URL 中的 tmpfiles.org/ 替换为 tmpfiles.org/dl/ 得到直链。

4. 发送给用户

![第1页](IMAGE_URL_1)
![第2页](IMAGE_URL_2)
...

📥 [方案 PDF 下载(有效期约1小时)](PDF_DIRECT_URL)

📄 [方案文稿下载(有效期约1小时)](REPORT_DIRECT_URL)

如需编辑,请前往 [小方同学](https://www.fangan.cn)
  • 如果某个文件上传失败,只展示成功的链接,不阻塞流程
  • 最后清理临时文件:rm -rf /tmp/aippt-pdf-TASK_ID
  • 发送完下载链接后,本次技能流程结束,不要追加任何额外话术(如"如需修改随时告诉我"等)

参数依赖关系

第一步 login → AUTH_TOKEN
         ↓
第三步 create → text_task_id
         ↓
第四步 task/create → thread_id, message_seq
         ↓
第五步 多轮交互循环(6 轮 interrupt,每轮可 edit 重复)
         ↓
第六步 用户选择风格 → accepted + 风格名称
         ↓
第七步 task/result → 提取 job_id(content 内 JSON 二次解析)
         ↓
第八步 image/gen/job/result → 轮询获取图片 URL
         ↓
第九步 合成 PDF + 文稿 → 上传 tmpfiles.org → 返回下载链接

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

房车工业设计师

房车(RV/Motorhome/Touring Car)工业设计师技能。专注于旅居车、拖挂房车、商务房车、B型/C型房车的空间布局、外观造型、CMF设计、水电系统、人机舒适、智能控制、品牌体验设计。当用户需要房车设计方案、布局规划、设计规范、竞品分析、CMF材料工艺、人机工程、智能控制功能规划时使用此技能。

Registry SourceRecently Updated
General

china-shopping-oracle

国内全平台比价工具。Compare prices on Taobao/JD/Pinduoduo. Supports member pricing (88VIP/Plus). 电商比价、购物助手。

Registry SourceRecently Updated
General

feishu file transfer guide

Guide to upload and send local files to Feishu users via OpenClaw by obtaining tenant token, uploading files for file_key, then sending file message using Fe...

Registry SourceRecently Updated
General

Ainative React Sdk

Use @ainative/react-sdk to add AI chat and credits to React apps. Use when (1) Installing @ainative/react-sdk, (2) Using the useChat hook for chat completion...

Registry SourceRecently Updated