360 Secure SkillHub
360 安全技能中心

Customer Logo Wall Skill

核心功能:读取含客户英文名的Excel,补全中文名并写回原表;按知名度分级排序;自动下载并将Logo统一为PNG格式,核验准确性;生成符合规范的Logo墙PPT。典型场景:企业制作客户展示PPT时。输入为客户Excel文件,输出为更新后的Excel及专业Logo墙PPT。

heavenchenggong
heavenchenggong
热度 48.90
最近更新 2026-05-11 17:36:23
分类:自动化依赖:代码执行 / 联网浏览搜索 / 读写文件应用场景:数据处理 / 自动化脚本 / 演示设计

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add customer-logo-wall
Metadata
name
customer-logo-wall
version
1.2.0
description
处理客户表格并生成Logo墙PPT的自动化工具。当用户提到"客户表格"、"公司中文名"、"Logo墙"、"客户logo"或需要处理Excel中的客户数据并生成PPT时使用此技能。

Customer Logo Wall — 客户Logo墙生成工具

技能概述

从 Excel 客户列表出发,自动完成:

  1. 读取公司英文名 → 搜索/确认中文名
  2. 按知名度分 Tier 排序
  3. 用百度图片 + Bing 备选自动下载公司 Logo
  4. Logo 格式标准化(JPEG/WEBP/SVG → 真正 PNG,防止 API 报错)
  5. 自动核验 Logo 准确性(无需用户手动校对)
  6. 生成专业 Logo 墙 PPT

工作流程

Step 1:读取 Excel

读取用户提供的 Excel 文件,提取公司英文名列(通常为 "Customer" 列)。同时读取中文名列(若已有)。

Step 2:确定中文名

若 Excel 中已有中文名列,直接使用。若没有,对每家公司进行网络搜索,获取官方中文名。

  • 搜索策略:百度百科、企业官网、香港公司注册处
  • 搜不到的公司保留英文名

Step 2.5:将中文名写回原 Excel

确定中文名后,必须将结果写回用户的原始 Excel 文件,而不是只保存在中间 JSON 中。

操作步骤:

  1. 在原 Excel 的 Customer 列(公司英文名)紧后面插入一列
  2. 新列表头设为"公司中文名"
  3. 按行匹配英文名,填入对应中文全称
  4. 匹配时注意处理标点差异(如单引号 ' vs 撇号 ')
  5. 保存覆盖原文件,告知用户

⚠️ 这一步是必须的,用户需要中文名留在原始表格中。

Step 3:Tier 分级排序

按以下标准将公司分为 4 个 Tier:

Tier 标准
1 全球知名企业:世界500强、行业绝对龙头(如台积电、摩根士丹利、国泰航空)
2 行业领先:知名上市公司、区域一线品牌(如海信、三井住友、香港电讯)
3 区域知名:有一定规模的上市/知名企业(如联影医疗、太古地产、德勤)
4 其他客户:规模较小或知名度较低的企业

Step 4:下载 Logo

使用 scripts/download_logos.py 自动下载 Logo。

关键配置(根据你的环境修改):

  • 浏览器路径:/Applications/Google Chrome.app/Contents/MacOS/Google Chrome(或系统 Chrome 路径)
  • Node路径:<你的Node路径>/bin/node
  • Node模块:<你的Node路径>/workspace/node_modules
  • playwright 需用上述 Node 环境执行

💡 快速获取路径:which node 和 npm root -g

搜索策略(按优先级):

  1. 百度图片搜索:{公司中文名} {英文名} logo
  2. 若百度失败,尝试访问公司官网抓取 header 中的 logo img
  3. 若仍失败,用 Bing 图片搜索(英文关键词,适合国际公司)

Step 4.5:Logo 格式标准化(新增 v1.2.0)

使用 scripts/normalize_logos.py 将所有下载的 Logo 统一为真正的 PNG 格式。

解决的问题:

  • 搜索引擎返回的图片实际是 JPEG/WEBP/SVG,但扩展名为 .png
  • SVG 伪装为 PNG → Anthropic API 报错 Could not process image
  • WEBP 格式在部分系统和 PowerPoint 中不支持

转换策略(自动检测文件头):

实际格式 转换方式
JPEG/WEBP Pillow 转 RGBA → 保存 PNG
SVG rsvg-convert → cairosvg → qlmanage(macOS)按优先级尝试
已是 PNG 跳过,仅验证完整性

⚠️ build_ppt.py 也内置了运行时格式修复(ensure_real_png),但建议先跑一遍标准化脚本。

Step 5:自动核验 Logo 准确性

本步骤无需用户手动校对,使用 scripts/verify_logos.py 自动核验:

  1. OCR 文字识别:用 pytesseract 提取图片中的文字,检查是否包含公司名称关键词
  2. 图片质量检查:过滤纯色图、截图页面(非纯 logo)、文件过小的图
  3. 相似度评分:对识别出文字与公司名的匹配度打分(0-1),低于阈值(0.3)判定为错误
  4. 不确定的自动重搜:核验失败的公司自动换用其他搜索关键词重试(最多 3 次)

详见 references/logo-verification.md。

Step 6:生成 PPT

使用 scripts/build_ppt.py 生成 Logo 墙 PPT。

PPT 设计规范(详见 references/ppt-design.md):

  • 幻灯片尺寸:10 × 5.625 英寸(16:9)
  • 配色:深蓝主色 #1E2761,浅背景 #F5F7FA
  • 每页最多 6 个公司(2列3行)
  • 卡片结构:左侧 Tier 色条 + Logo 区(1×1英寸)+ 中文名 + 英文名

快速运行

# 设置环境变量(根据你的实际路径修改)
export NODE_PATH="<你的Node模块路径>"
export NODE_BIN="<你的Node可执行文件路径>"
export AGENT_BROWSER="<你的agent-browser路径>"

# 1. 下载 Logo(用 Node + playwright)
$NODE_BIN scripts/download_logos.js --output <输出目录> --companies <公司列表JSON>

# 2. Logo 格式标准化(确保全部是真正的 PNG)
python3 scripts/normalize_logos.py --logos-dir <logo目录> --companies <公司列表JSON>

# 3. 核验 Logo
python3 scripts/verify_logos.py --logos-dir <logo目录> --companies <公司列表JSON>

# 4. 生成 PPT
python3 scripts/build_ppt.py --logos-dir <logo目录> --companies <公司列表JSON> --output <输出路径>

脚本说明

脚本 作用
scripts/download_logos.js 用 playwright + 百度/Bing 图片批量下载 Logo(Node.js)
scripts/normalize_logos.py Logo 格式标准化:JPEG/WEBP/SVG → 真正 PNG(Python)
scripts/verify_logos.py 自动核验 Logo 准确性(Python)
scripts/build_ppt.py 生成 Logo 墙 PPT,内置格式修复(Python + python-pptx)

参考文档

  • references/logo-verification.md:Logo 自动核验的详细逻辑与阈值说明
  • references/ppt-design.md:PPT 设计规范与颜色定义
  • references/logo-format-issues.md:Logo 格式常见问题与解决方案

依赖环境

  • Python 3.9+:python-pptx, pillow, pytesseract(可选,用于 OCR 核验)
  • Node 22.12.0(管理版本路径见上)
  • playwright(安装在 Node 工作区)
  • 系统 Chrome:/Applications/Google Chrome.app(供 playwright 使用)