bali-resource-import

印尼(巴厘岛)旅游资源入库 SOP。当用户提供供应商文档(PDF/Word)并要求解析入库时, 或提到"资源入库"、"解析入库"、"印尼资源"、"巴厘岛资源"、"CSV入库"时,必须使用本技能。 覆盖8类资源:酒店、车辆、景点、活动、SPA、俱乐部、餐厅、下午茶。 使用前必须先检索同类资源 CSV 的表头格式(encoding 可能是 gbk 或 utf-8-sig), 确保新增数据字段与生产库表头完全一致后再写入。

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 "bali-resource-import" with this command: npx skills add errsr/bali-resource-import

印尼旅游资源解析入库技能

触发识别(使用前必读)

用户提示词关键词解析

收到入库任务时,从用户提示词中自动识别以下关键信息:

提示词关键词识别结果操作
https://drive.google.com/... 等 Drive URL数据源为云盘调用 google-drive 技能下载 PDF/Word 到本地临时目录
本地路径如 C:\Users\a\Desktop\资源数据源为本地文件直接使用该路径下的文件
模型文件路径 / 已存在的 csv目标生产库位置在该 CSV 基础上追加新数据,而非覆盖
目标路径 / target解析结果输出目录原始 PDF + 解析结果均写入该目录
未提及目标路径告知用户必须指定目标路径

⚠️ 路径仅为示例,不可硬编码。 所有路径必须从用户提示词中动态提取,用作字段值传递给脚本。

示例提示词:

"检索 https://drive.google.com/drive/my-drive 所有合同并解析,模型文件路径在 C:\Users\a\Desktop\资源,目标路径为 C:\Users\a\Desktop\资源\target"

动态提取结果(作为变量使用):

  • 数据源 URLhttps://drive.google.com/drive/my-drive → 传给 google-drive 技能
  • 模型文件路径C:\Users\a\Desktop\资源 → 拼接生产库 CSV 文件名,得到完整生产库路径
  • 目标路径C:\Users\a\Desktop\资源\target → 解析结果输出目录

技能依赖检测

使用前检查所需技能是否已安装:

依赖技能用途未安装时操作
google-drive访问 Google Drive 下载合同提示用户执行 openclaw skills install google-drive,或告知用户提供本地文件
bali-resource-import本技能(自身)提示用户提供正确路径
pdfplumber / PyMuPDFPDF 文本提取pip 安装 pdfplumber

缺失技能时的话术模板:

[技能缺失] 解析入库需要先安装 google-drive 技能。
请在终端执行:openclaw skills install google-drive
安装完成后请重新发送任务。

使用流程

Step 0:安装依赖

# 安装 Google Drive 技能(如需要)
openclaw skills install google-drive

# 安装 PDF 解析库
pip install pdfplumber

Step 1:下载合同文件

  • Google Drive 来源:调用 google-drive 技能,从提示词中提取 Drive URL,列出文件并下载到目标路径
  • 本地来源:从提示词中提取本地路径,定位 PDF/Word 文件

⚠️ 所有路径均为动态变量,不写死。

Step 2:读取生产库表头

⚠️ 必须先读取目标 CSV 的实际表头和 encoding,再生成数据行。

import csv

def read_production_csv(path):
    for enc in ['utf-8-sig', 'gbk', 'utf-8', 'latin1']:
        try:
            with open(path, 'r', encoding=enc) as f:
                headers = next(csv.reader(f))
            return headers, enc
        except UnicodeDecodeError:
            continue
    raise ValueError(f"无法读取 {path}")

# 示例
headers, enc = read_production_csv(r"C:\Users\a\Desktop\资源\活动标准化完整版_含人群标签与特色标签_V4.csv")
# headers = ['contract_id (合同编号)', 'activitynameen (活动英文名)', ...]
# ⚠️ 表头格式为 "fieldname (中文说明)",提取时用 split(' (')[0] 取英文字段名

Step 3:解析合同内容

按合同内容识别资源类型:

资源类型判断关键词核心价格字段
酒店房型、床型、早餐、入住、淡旺季淡季价格_IDR / 旺季价格_IDR
车辆车型、半天、全天、司机、油费半天价格 / 全天价格
景点门票、开放时间、GPS、难度门票-成人IDR
活动时长、含保险、含交通、教练语言成人IDR价格
SPA疗法、套餐、开放时间成人IDR价格
俱乐部最低消费、入场费、时段政策入场/门票费用
餐厅菜系、套餐、预约成人IDR价格
下午茶套餐类型、成人儿童价成人IDR价格

Step 4:数据提取规则

提取原则(按优先级):

优先级来源处理方式
1合同原文直接使用,如实写入字段
2公开网络信息(如 GPS 坐标)可填写,标注来源
合同无数据填写"合同未提供",不得留空
编造数据严禁

字段格式规范:

字段类型格式示例
日期期间2024-07-01 至 2024-08-31(不用英文月份)
星级5星(带"星"字,非纯数字)
价格纯数字,不含货币符号(如 3581500 而非 IDR 3,581,500
汇率参考1 CNY ≈ 2,100 IDR;1 USD ≈ 15,000 IDR

Step 5:三层标签体系

每条资源必须标注三层标签:

人群标签(第一层): #家庭 #亲子 #情侣 #商务 #蜜月 #年轻人 #老年人 #单身

风格标签(第二层): #豪华 #经济型 #浪漫 #休闲 #刺激 #度假村风格 #自然 #文化

特色标签(第三层): 按资源类型选用,详见下方各资源标签表。

Step 6:写入 CSV

⚠️ 关键规则:

  1. 新增数据的字段名必须与生产库表头完全一致
  2. encoding 必须与生产库一致(通常 activity 用 gbk,hotel 用 utf-8-sig
  3. 写入模式为追加(append),不覆盖原有数据
import csv, os

def append_to_production(prod_path, data_rows, enc):
    """追加数据到生产库 CSV"""
    with open(prod_path, 'r', encoding=enc, newline='') as f:
        prod_rows = list(csv.reader(f))

    prod_headers = prod_rows[0]  # ['fieldname (中文说明)', ...]
    prod_fieldnames = [h.split(' (')[0] for h in prod_headers]  # ['fieldname', ...]

    with open(prod_path, 'w', encoding=enc, newline='') as f:
        writer = csv.writer(f)
        writer.writerow(prod_headers)          # 保留原有表头
        writer.writerows(prod_rows[1:])        # 保留原有数据
        for row in data_rows:                 # 追加新数据
            out_row = [row.get(fn, '') for fn in prod_fieldnames]
            writer.writerow(out_row)

直接追加示例(不依赖 append_to_csv.py):

# BOUNTY Cruises → 活动库
append_to_production(
    r"C:\Users\a\Desktop\资源\活动标准化完整版_含人群标签与特色标签_V4.csv",
    bounty_rows,  # list of dict
    'gbk'
)

# Maya Ubud → 酒店库
append_to_production(
    r"C:\Users\a\Desktop\资源\巴厘岛酒店资源库_2026标准版_V4_FINAL.csv",
    maya_rows,
    'utf-8-sig'
)

Step 7:输出报告

入库完成后,向用户报告(路径为实际从提示词中提取的值)

✅ 入库完成
━━━━━━━━━━━━━━━
合同文件:BOUNTY Cruises - March 2026.pdf
资源类型:活动(Activity)
目标库:{从提示词提取的模型文件路径}\活动标准化完整版_含人群标签与特色标签_V4.csv
新增记录:4 条
输出目录:{从提示词提取的目标路径}\

Step 8:清理临时文件

目标文件夹只保留结果文件,入库完成后删除以下内容:

文件类型示例删除原因
原始合同 PDF/WordBOUNTY Cruises - March 2026.pdf原始文件不留在输出目录
解析中间文件parsed_results.json仅作中间处理使用,不交付用户

保留文件:

{目标路径}\
├── bounty_activity_out.csv   ← 新增的活动数据(追加到生产库)
└── maya_hotel_out.csv       ← 新增的酒店数据(追加到生产库)
import os

# 入库完成后清理
temp_files = [
    os.path.join(target_dir, "parsed_results.json"),
    os.path.join(target_dir, "BOUNTY Cruises - March 2026.pdf"),
    os.path.join(target_dir, "Maya Ubud Contract Valid 31 Mar 2025.pdf"),
]
for f in temp_files:
    if os.path.exists(f):
        os.remove(f)
        print(f"[清理] 已删除: {f}")

8类资源 CSV 文件

资源类型CSV 文件名encoding
酒店巴厘岛酒店资源库_2026标准版_V4_FINAL.csvutf-8-sig
车辆巴厘岛车费成本表-成本_2.10.csvgbk
景点景点标准化完整版_含人群标签与特色标签_V4.csvgbk
活动活动标准化完整版_含人群标签与特色标签_V4.csvgbk
SPASPA标准化完整版_含人群标签与特色标签_V4.csvgbk
俱乐部俱乐部标准化完整版_含人群标签与特色标签_V4.csvgbk
餐厅餐厅标准化完整版_含人群标签与特色标签_V4.csvgbk
下午茶下午茶标准化完整版_含人群标签与特色标签_V4.csvgbk

三层标签参考

人群标签(所有资源)

#家庭 #亲子 #情侣 #商务 #蜜月 #年轻人 #老年人 #单身

风格标签(所有资源)

#豪华 #经济型 #浪漫 #休闲 #刺激 #度假村风格 #自然 #文化

特色标签(按资源类型)

酒店: #海景房 #私人泳池 #儿童俱乐部 #水疗中心 #私人海滩 #日落景观 #Infinity泳池 #热带雨林景观 #乌布丛林

车辆: #中文司机 #婴儿座椅 #行李空间大 #全景天窗 #全天候服务 #机场接送 #VIP包车

景点: #日落观赏点 #浮潜点 #摄影圣地 #稻田风光 #印度教寺庙 #亲子友好 #小众秘境

活动: #潜水 #冲浪 #火山徒步 #漂流 #丛林探险 #文化体验 #极限运动 #浮潜 #深潜 #ATV #滑索

SPA: #巴厘岛传统按摩 #四手按摩 #情侣SPA #热石按摩 #排毒疗程 #蜜月套餐 #草本疗法 #花香浴

俱乐部: #DJ演出 #主题派对 #沙滩酒吧 #VIP包厢 #泳池派对 #现场乐队 #日落美景 #网红打卡

餐厅: #海鲜烧烤 #海滩景观 #网红餐厅 #蜜月餐厅 #私人包间 #现场音乐 #米其林 #亚洲50佳 #稻田景观

下午茶: #海景下午茶 #日落下午茶 #泳池下午茶 #花园下午茶 #闺蜜下午茶 #梯田景观 #绝美拍照点

异常处理规范

异常类型判断标准处理方式
资源过期合同有效期 < 今天备注"已过期",可信度降B级
价格缺失核心价格字段为空暂停入库,告警人工补充
价格冲突同资源价差 > 10%标红,暂停入库,等人工决策
CSV encoding 读取失败所有 encoding 均报错提示用户文件损坏或格式异常
生产库文件被占用PermissionError提示用户关闭 Excel / Google Drive Desktop 等程序后再重试
表头字段不匹配新数据字段与生产库不一致报错退出,不写入,列出缺失/多余字段
GPS缺失坐标字段为空备注"待补充",不阻止入库
标签缺失三层标签不完整按资源类型默认补充基础标签
数据完整度低字段完整度 < 60%可信度标C级,优先处理高完整度资源

参考文档

文档路径
旅游资源标准化文档体系references/旅游资源标准化文档体系.md

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

evens-结算

AI驱动的智能结算助手,支持话题词精准识别、自然语言规则解析、规则确认流程、多种结算模式(达标瓜分/排名赛/混合模式),数据本地处理保障安全。触发词:「一组结算」「帮我结算」「请结算」「结算活动」。

Registry SourceRecently Updated
General

Model Switch

OpenClaw 一键切换AI模型技能。懒人触发词:切到xxx、当前模型、模型问题、添加/移除模型、模型对比/列表。解决"切换模型后为什么总是失败"的痛点。

Registry SourceRecently Updated
General

飞书文档翻译助手

飞书文档翻译助手 — 在飞书文档之间进行中英文互译,支持全文翻译、段落翻译、双语对照。当用户需要翻译飞书文档、英文文档转中文、中文文档转英文、或创建双语版本文档时使用。触发词:翻译飞书文档、文档翻译、中英互译、双语文档、translate feishu doc、飞书英文。

Registry SourceRecently Updated
General

Stock Terminal

Provides Bloomberg-style synthesized stock and market reports via typed commands like open, compare, daily brief, mood, screen smart-money, flow, and news, a...

Registry SourceRecently Updated