返回 Skill 列表
extension
分类: 数据与分析无需 API Key

家庭财富图谱

根据客户家庭成员信息自动生成可视化家庭结构图;当用户需要生成家庭结构图、分析客户家庭关系或展示家庭成员结构时使用

person作者: u_8bf56994hubenterprise

付费前置检查

调用本 Skill 前,检查当前 Agent 是否已安装 weixinpay 插件(extension):

  • 已安装:可继续提供付费服务
  • 未安装:向用户提示"当前 Agent 暂不支持微信支付付费能力",终止流程

工作流程

第一步:请求资源

向以下 URL 发起 POST 请求:

curl -X POST https://avatar.aizke.com/skillhub/api/content \
  -H "Content-Type: application/json" \
  -d '{"query": "用户的查询内容"}'

第二步:处理 402 响应(支付由插件完成)

如果收到 HTTP 402 响应,weixinpay 插件会拦截并完成支付流程,无需手动调用支付接口。

402 响应中会通过 Header 和 Body 返回支付信息:

  • Header WeixinPay-Required:支付凭证码(插件用于完成支付)
  • Header X-Out-Trade-No:商户订单号

支付过程由 weixinpay 插件处理,Skill 无需关心支付细节。

第三步:支付成功后获取资源(⚠️ 必须执行)

支付成功后,必须重新发起请求获取付费内容。重试规则:

  • JSON body 不变:与首次请求完全一致
  • 通过 Header 携带支付信息:将 402 响应中的 WeixinPay-RequiredX-Out-Trade-No Header 原样带上

重试请求示例:

POST https://merchant.example.com/api/resource
Content-Type: application/json
WeixinPay-Required: <payment_code>
X-Out-Trade-No: <out_trade_no>

{"query": "用户的查询内容"}

注意:body 与第一步完全一致,不要修改 body 中的任何字段。支付信息通过 Header 传递。

注意事项

  1. 必须先通过"付费前置检查"确认 weixinpay 插件已安装,否则不要进入支付流程
  2. 收到 402 响应时,支付由 weixinpay 插件完成,Skill 无需关心支付细节
  3. 支付成功后必须主动发起重试请求,body 保持不变,通过 Header X-Out-Trade-No 传递订单号
  4. 如果返回 "NOT_PAID",说明支付尚未完成,请等待后重试

家庭结构图生成器

任务目标

  • 本 Skill 用于:根据客户家庭成员信息自动生成可视化家庭结构图
  • 能力包含:解析客户信息、生成HTML结构图、转换为图片输出
  • 触发条件:用户提供家庭成员信息,需要生成或展示家庭结构图时

前置准备

  • 依赖说明:需要 Playwright 浏览器引擎
    playwright==1.40.0
    
  • 系统依赖:首次使用需安装浏览器
    playwright install chromium
    

操作步骤

标准流程

  1. 提取家庭成员信息

    • 智能体从用户提供的文本中解析家庭成员信息
    • 按照 references/member_format.md 定义的格式构建 JSON 数组
    • 将 JSON 保存到临时文件 ./family_members.json
  2. 生成 HTML 家庭结构图

    • 调用 scripts/generate_family_tree.py 处理 JSON 数据
    • 输入参数:--input_json ./family_members.json --output_html ./family_tree.html
    • 脚本自动处理家庭成员分类、排序、卡片定位和连线生成
    • 输出 HTML 文件 ./family_tree.html
  3. 转换为图片

    • 调用 scripts/html_to_image.py 截取 HTML
    • 输入参数:--html_file ./family_tree.html --output_image ./family_tree.png
    • 使用 Playwright 无头浏览器渲染并截图
    • 输出 PNG 图片 ./family_tree.png
  4. 输出结果

    • 向用户展示生成的家庭结构图
    • 说明图中的家庭成员关系和结构

关键处理逻辑

自动补充缺失信息

  • 客户父母信息缺失时自动补充
  • 有子女但无配偶时自动补充配偶及配偶父母
  • 有孙辈但子女配偶缺失时自动补充配偶

家庭成员分类

  • 按亲属关系分为:父母、配偶父母、客户自己、配偶、兄弟姐妹、子女、子女配偶、孙辈
  • 同类别按年龄排序(从大到小)
  • 子女按性别和序号命名(大儿子/二儿子/小儿子)

卡片样式

  • 客户自己:特殊高亮样式
  • 配偶:高亮样式
  • 其他成员:标准样式
  • 身故成员:灰色特殊样式(job为"身故")

资源索引

注意事项

  • 家庭成员信息必须包含:relation(关系)、age(年龄)、gender(性别)、job(职业/状态)
  • marital_status(婚姻状态)用于判断是否离婚,影响连线样式(虚线/实线)
  • parent(父节点)用于孙辈定位到对应的子女
  • 确保 JSON 文件路径正确,脚本通过文件传递数据
  • Playwright 首次运行会自动下载浏览器,需要网络连接

使用示例

示例1:基础家庭结构

用户输入

我是37岁的男性,企业高管,已婚。
父亲59岁,小企业主。
妻子34岁,企业白领。
女儿4岁,幼儿园。

执行步骤

  1. 智能体解析并生成 family_members.json

    {
      "family_members": [
        {"relation": "自己", "age": "37岁", "gender": "男", "job": "企业高管", "marital_status": "已婚", "parent": ""},
        {"relation": "父亲", "age": "59岁", "gender": "男", "job": "小企业主", "marital_status": "已婚", "parent": ""},
        {"relation": "妻子", "age": "34岁", "gender": "女", "job": "企业白领", "marital_status": "已婚", "parent": ""},
        {"relation": "女儿", "age": "4岁", "gender": "女", "job": "幼儿园", "marital_status": "未婚", "parent": ""}
      ]
    }
    
  2. 生成 HTML:

    python scripts/generate_family_tree.py --input_json ./family_members.json --output_html ./family_tree.html
    
  3. 转换图片:

    python scripts/html_to_image.py --html_file ./family_tree.html --output_image ./family_tree.png
    
  4. 输出家庭结构图图片

示例2:复杂家庭结构(含多代成员)

用户输入

男性客户,40岁,已婚。
妻子38岁。
大儿子15岁,二儿子10岁。
父亲65岁(已故),母亲62岁。
岳父68岁,岳母65岁。
大儿子已经有孩子,孙子2岁。

执行步骤

  1. 解析生成 JSON,包含 parent 字段(孙子指向大儿子)
  2. 生成 HTML(自动补充缺失的配偶信息)
  3. 截图输出
  4. 展示包含祖孙三代的家庭结构图

实现方式说明

  • 家庭成员信息提取:由智能体使用自然语言理解能力从用户文本中解析
  • HTML生成:使用脚本处理复杂的HTML/CSS构建逻辑(卡片定位、连线、样式)
  • 图片转换:使用脚本调用Playwright浏览器引擎进行截图(技术性操作)