498 lines
13 KiB
JSON
498 lines
13 KiB
JSON
{
|
||
"namespace": "travel_agency_itinerary_planning",
|
||
"version": "0.3",
|
||
"display_name": "旅行社行程规划知识图谱 Schema",
|
||
"purpose": "支持客服基于游客动态需求,快速从产品、景点、酒店、餐厅、交通、报价、规则和话术中组合行程单。",
|
||
"entity_types": {
|
||
"TravelDemand": {
|
||
"cn": "游客动态需求",
|
||
"purpose": "承接客服从自然语言里识别出的出行意向,是后续自动组合行程的输入对象。",
|
||
"fields": [
|
||
"demand_id",
|
||
"lead_source",
|
||
"travel_month",
|
||
"start_date",
|
||
"duration_days",
|
||
"party_size",
|
||
"adult_count",
|
||
"child_count",
|
||
"senior_count",
|
||
"hotel_preference",
|
||
"vehicle_preference",
|
||
"budget_level",
|
||
"must_visit",
|
||
"avoid_notes",
|
||
"special_care",
|
||
"demand_summary"
|
||
]
|
||
},
|
||
"ItineraryPlan": {
|
||
"cn": "推荐行程方案",
|
||
"purpose": "由图谱中的产品、报价、酒店、餐厅、交通组合出的可交付行程方案。",
|
||
"fields": [
|
||
"plan_id",
|
||
"plan_name",
|
||
"duration_days",
|
||
"fit_score",
|
||
"budget_estimate",
|
||
"route_summary",
|
||
"quote_summary",
|
||
"risk_notes",
|
||
"answer_hint"
|
||
]
|
||
},
|
||
"TourProduct": {
|
||
"cn": "旅游产品",
|
||
"purpose": "旅行社已经沉淀的线路产品,是行程组合的主要模块。",
|
||
"fields": [
|
||
"product_id",
|
||
"name",
|
||
"product_family",
|
||
"product_type",
|
||
"duration_days",
|
||
"group_mode",
|
||
"capacity_min",
|
||
"capacity_max",
|
||
"vehicle_layout",
|
||
"hotel_grade",
|
||
"meal_standard",
|
||
"service_promise",
|
||
"selling_points",
|
||
"included_summary",
|
||
"excluded_summary",
|
||
"optional_items",
|
||
"fee_summary",
|
||
"booking_notes",
|
||
"risk_notes",
|
||
"season_tags",
|
||
"source_files"
|
||
]
|
||
},
|
||
"TourVariant": {
|
||
"cn": "产品报价变体",
|
||
"purpose": "同一产品在不同团期、房型、人数和车型下的报价。",
|
||
"fields": [
|
||
"variant_id",
|
||
"variant_name",
|
||
"season",
|
||
"date_range",
|
||
"group_size_band",
|
||
"room_type",
|
||
"hotel_grade",
|
||
"vehicle_type",
|
||
"adult_price",
|
||
"child_price",
|
||
"single_room_supplement",
|
||
"inner_transport_fee",
|
||
"refund_policy",
|
||
"source_file"
|
||
]
|
||
},
|
||
"ItineraryDay": {
|
||
"cn": "每日行程",
|
||
"purpose": "拆解产品每天游览、交通、用餐、住宿,便于后续按需求重排。",
|
||
"fields": [
|
||
"day_id",
|
||
"day_index",
|
||
"title",
|
||
"route_path",
|
||
"route_summary",
|
||
"transport_summary",
|
||
"meals",
|
||
"accommodation",
|
||
"time_arrangement",
|
||
"tips",
|
||
"source_file"
|
||
]
|
||
},
|
||
"ScenicAttraction": {
|
||
"cn": "旅游景点",
|
||
"purpose": "客户需求和线路推荐最常见的锚点。",
|
||
"fields": [
|
||
"attraction_id",
|
||
"name",
|
||
"aliases",
|
||
"city",
|
||
"attraction_type",
|
||
"selling_points",
|
||
"ticket_policy",
|
||
"inner_transport_fee",
|
||
"walking_profile",
|
||
"visit_duration_hint"
|
||
]
|
||
},
|
||
"HotelResource": {
|
||
"cn": "酒店资源",
|
||
"purpose": "客服按酒店等级、区域、产品适用性组合住宿。",
|
||
"fields": [
|
||
"hotel_id",
|
||
"name",
|
||
"hotel_grade",
|
||
"region",
|
||
"address",
|
||
"features",
|
||
"off_season_price_text",
|
||
"peak_season_price_text",
|
||
"applicable_products",
|
||
"contact_name"
|
||
]
|
||
},
|
||
"RestaurantResource": {
|
||
"cn": "餐厅资源",
|
||
"purpose": "客服按区域、餐标、特色餐给行程补餐饮方案。",
|
||
"fields": [
|
||
"restaurant_id",
|
||
"name",
|
||
"region",
|
||
"address",
|
||
"per_capita_price_text",
|
||
"signature_dishes",
|
||
"meal_scene",
|
||
"contact_name"
|
||
]
|
||
},
|
||
"VehicleService": {
|
||
"cn": "车辆服务",
|
||
"purpose": "小团、接送、独立成团的交通能力。",
|
||
"fields": [
|
||
"vehicle_service_id",
|
||
"vehicle_type",
|
||
"seat_count",
|
||
"comfort_level",
|
||
"seat_layout",
|
||
"service_scope",
|
||
"notes"
|
||
]
|
||
},
|
||
"TransferQuote": {
|
||
"cn": "接送报价",
|
||
"purpose": "补充到达/离开日接送预算。",
|
||
"fields": [
|
||
"transfer_quote_id",
|
||
"origin_text",
|
||
"destination_text",
|
||
"vehicle_type",
|
||
"price_per_trip",
|
||
"quote_unit",
|
||
"quote_notes"
|
||
]
|
||
},
|
||
"DayVisit": {
|
||
"cn": "每日景点游览安排",
|
||
"purpose": "把某一天去哪个景点、游览多久、是否真实行程点、步行/排队风险和费用证据拆开,避免把自费说明误当成路线。",
|
||
"fields": [
|
||
"visit_id",
|
||
"day_index",
|
||
"visit_order",
|
||
"attraction_name",
|
||
"duration_text",
|
||
"evidence_text",
|
||
"fee_notes",
|
||
"walking_notes",
|
||
"walk_intensity",
|
||
"risk_notes",
|
||
"included_flag",
|
||
"source_file"
|
||
]
|
||
},
|
||
"MealArrangement": {
|
||
"cn": "每日用餐安排",
|
||
"purpose": "记录每天早中晚是否包含、餐标、特色餐和自理说明,避免 6 天行程只显示两家餐厅造成误解。",
|
||
"fields": [
|
||
"meal_id",
|
||
"day_index",
|
||
"breakfast",
|
||
"lunch",
|
||
"dinner",
|
||
"meal_text",
|
||
"meal_standard",
|
||
"special_meal",
|
||
"self_pay_notes",
|
||
"source_file"
|
||
]
|
||
},
|
||
"AccommodationOption": {
|
||
"cn": "住宿组选项",
|
||
"purpose": "承载产品中的住宿城市、等级、参考酒店组和同级替换规则;和酒店资源库中的单体酒店可以继续关联。",
|
||
"fields": [
|
||
"accommodation_id",
|
||
"city_or_area",
|
||
"hotel_grade",
|
||
"option_type",
|
||
"reference_hotels",
|
||
"stay_nights",
|
||
"notes",
|
||
"source_file"
|
||
]
|
||
},
|
||
"TransportSegment": {
|
||
"cn": "行程交通段",
|
||
"purpose": "记录每天从哪到哪、用什么车、车程和调度提醒,支持后续核算车费和判断赶路强度。",
|
||
"fields": [
|
||
"segment_id",
|
||
"day_index",
|
||
"origin_text",
|
||
"destination_text",
|
||
"vehicle_type",
|
||
"duration_text",
|
||
"distance_text",
|
||
"dispatch_notes",
|
||
"source_file"
|
||
]
|
||
},
|
||
"FeeItem": {
|
||
"cn": "费用项目",
|
||
"purpose": "把门票、小交通、保险、扶梯、餐标、赔付、退改损失等费用拆成可追溯证据。",
|
||
"fields": [
|
||
"fee_item_id",
|
||
"fee_type",
|
||
"item_name",
|
||
"amount_text",
|
||
"amount_value",
|
||
"unit",
|
||
"inclusion_status",
|
||
"applies_to",
|
||
"rule_text",
|
||
"source_file"
|
||
]
|
||
},
|
||
"GiftService": {
|
||
"cn": "赠送/包含服务",
|
||
"purpose": "记录长桌宴、旅拍券、矿泉水、打糍粑等赠送或服务承诺,并保留未使用不退等规则。",
|
||
"fields": [
|
||
"service_id",
|
||
"service_type",
|
||
"name",
|
||
"value_text",
|
||
"usage_rule",
|
||
"refundable",
|
||
"source_file"
|
||
]
|
||
},
|
||
"PolicyRule": {
|
||
"cn": "业务规则",
|
||
"purpose": "限制、退费、风险和合规提醒。",
|
||
"fields": [
|
||
"rule_id",
|
||
"rule_type",
|
||
"applies_to",
|
||
"rule_text",
|
||
"evidence_text",
|
||
"severity",
|
||
"source_file"
|
||
]
|
||
},
|
||
"SalesScript": {
|
||
"cn": "销售话术",
|
||
"purpose": "客服回复、追单、留资和解释费用包含。",
|
||
"fields": [
|
||
"script_id",
|
||
"channel",
|
||
"funnel_stage",
|
||
"trigger_scenario",
|
||
"message_template",
|
||
"intent_tags",
|
||
"required_customer_fields"
|
||
]
|
||
},
|
||
"Area": {
|
||
"cn": "区域",
|
||
"purpose": "连接酒店、餐厅、接送报价和景点。",
|
||
"fields": [
|
||
"area_id",
|
||
"name",
|
||
"area_type"
|
||
]
|
||
},
|
||
"SalesChannel": {
|
||
"cn": "销售渠道",
|
||
"purpose": "小红书、微信等线索来源。",
|
||
"fields": [
|
||
"channel_id",
|
||
"name",
|
||
"channel_type"
|
||
]
|
||
}
|
||
},
|
||
"relation_types": {
|
||
"HAS_DEMAND": [
|
||
"CustomerLead|SalesChannel",
|
||
"TravelDemand",
|
||
"线索产生游客需求"
|
||
],
|
||
"WANTS_TO_VISIT": [
|
||
"TravelDemand",
|
||
"ScenicAttraction",
|
||
"需求指定想去景点"
|
||
],
|
||
"PREFERS_HOTEL": [
|
||
"TravelDemand",
|
||
"HotelResource",
|
||
"需求偏好酒店资源或等级"
|
||
],
|
||
"PREFERS_VEHICLE": [
|
||
"TravelDemand",
|
||
"VehicleService",
|
||
"需求偏好车型"
|
||
],
|
||
"GENERATES_PLAN": [
|
||
"TravelDemand",
|
||
"ItineraryPlan",
|
||
"需求生成推荐方案"
|
||
],
|
||
"SATISFIES_DEMAND": [
|
||
"ItineraryPlan",
|
||
"TravelDemand",
|
||
"方案满足需求"
|
||
],
|
||
"PLAN_USES_PRODUCT": [
|
||
"ItineraryPlan",
|
||
"TourProduct",
|
||
"方案使用已有产品"
|
||
],
|
||
"PLAN_USES_VARIANT": [
|
||
"ItineraryPlan",
|
||
"TourVariant",
|
||
"方案使用报价变体"
|
||
],
|
||
"PLAN_HAS_DAY": [
|
||
"ItineraryPlan",
|
||
"ItineraryDay",
|
||
"方案包含每日行程"
|
||
],
|
||
"PLAN_STAYS_AT": [
|
||
"ItineraryPlan",
|
||
"HotelResource",
|
||
"方案建议入住酒店"
|
||
],
|
||
"PLAN_MEALS_AT": [
|
||
"ItineraryPlan",
|
||
"RestaurantResource",
|
||
"方案建议餐厅"
|
||
],
|
||
"PLAN_USES_VEHICLE": [
|
||
"ItineraryPlan",
|
||
"VehicleService",
|
||
"方案建议车辆"
|
||
],
|
||
"HAS_VARIANT": [
|
||
"TourProduct",
|
||
"TourVariant",
|
||
"产品拥有报价变体"
|
||
],
|
||
"HAS_DAY": [
|
||
"TourProduct",
|
||
"ItineraryDay",
|
||
"产品包含每日行程"
|
||
],
|
||
"VISITS": [
|
||
"TourProduct|ItineraryDay",
|
||
"ScenicAttraction",
|
||
"游览景点"
|
||
],
|
||
"DAY_HAS_VISIT": [
|
||
"ItineraryDay",
|
||
"DayVisit",
|
||
"每日行程包含具体游览安排"
|
||
],
|
||
"VISIT_AT_ATTRACTION": [
|
||
"DayVisit",
|
||
"ScenicAttraction",
|
||
"游览安排对应景点"
|
||
],
|
||
"DAY_HAS_MEAL": [
|
||
"ItineraryDay",
|
||
"MealArrangement",
|
||
"每日行程包含用餐安排"
|
||
],
|
||
"DAY_HAS_ACCOMMODATION": [
|
||
"ItineraryDay",
|
||
"AccommodationOption",
|
||
"每日行程包含住宿安排"
|
||
],
|
||
"DAY_USES_TRANSPORT": [
|
||
"ItineraryDay",
|
||
"TransportSegment",
|
||
"每日行程包含交通段"
|
||
],
|
||
"PRODUCT_HAS_ACCOMMODATION_OPTION": [
|
||
"TourProduct",
|
||
"AccommodationOption",
|
||
"产品可用住宿组选项"
|
||
],
|
||
"PRODUCT_HAS_FEE": [
|
||
"TourProduct|ItineraryDay|DayVisit",
|
||
"FeeItem",
|
||
"产品或每日行程涉及费用项目"
|
||
],
|
||
"DAY_HAS_FEE": [
|
||
"ItineraryDay|DayVisit",
|
||
"FeeItem",
|
||
"每日行程涉及费用项目"
|
||
],
|
||
"PRODUCT_INCLUDES_SERVICE": [
|
||
"TourProduct",
|
||
"GiftService",
|
||
"产品包含或赠送服务"
|
||
],
|
||
"STAYS_AT": [
|
||
"ItineraryDay",
|
||
"HotelResource",
|
||
"每日行程入住酒店"
|
||
],
|
||
"MEALS_AT": [
|
||
"ItineraryDay",
|
||
"RestaurantResource",
|
||
"每日行程用餐"
|
||
],
|
||
"USES_VEHICLE": [
|
||
"TourProduct|TourVariant|TransferQuote",
|
||
"VehicleService",
|
||
"使用车辆"
|
||
],
|
||
"CAN_UPGRADE_TO": [
|
||
"VehicleService",
|
||
"VehicleService",
|
||
"车辆可升级"
|
||
],
|
||
"HAS_POLICY": [
|
||
"TourProduct|TourVariant|TravelDemand",
|
||
"PolicyRule",
|
||
"适用规则"
|
||
],
|
||
"HAS_SCRIPT": [
|
||
"TourProduct|TravelDemand",
|
||
"SalesScript",
|
||
"适用话术"
|
||
],
|
||
"FROM_SOURCE": [
|
||
"TravelDemand|SalesScript",
|
||
"SalesChannel",
|
||
"来自渠道"
|
||
],
|
||
"LOCATED_IN": [
|
||
"ScenicAttraction|HotelResource|RestaurantResource",
|
||
"Area",
|
||
"位于区域"
|
||
],
|
||
"FROM_AREA": [
|
||
"TransferQuote",
|
||
"Area",
|
||
"接送出发区域"
|
||
],
|
||
"TO_AREA": [
|
||
"TransferQuote",
|
||
"Area",
|
||
"接送到达区域"
|
||
]
|
||
},
|
||
"quality_rules": [
|
||
"报价、人数、日期、景区小交通、自费项必须进入属性,不升级成无证据关系。",
|
||
"产品 VISITS 只允许来自简易行程/详细行程的真实游览日程;费用、自理、政策段落中出现的景点只能进入 FeeItem 或 PolicyRule。",
|
||
"每日行程必须尽量拆出 DayVisit、MealArrangement、AccommodationOption、TransportSegment 和 FeeItem,以便客服解释住哪、吃什么、怎么走、费用看哪里。",
|
||
"产品与推荐方案分离:TourProduct 保存已有资料库,ItineraryPlan 保存按用户需求组合后的方案。",
|
||
"TravelDemand 是后期自然语言客资抽取的核心输入,必须连接 must_visit、vehicle/hotel preference 和生成方案。",
|
||
"同一产品不同房型、团期、车型必须拆成 TourVariant,避免报价覆盖。",
|
||
"城市图谱与旅行社图谱使用不同 project_id 和 graph_name,不共享默认查询上下文。"
|
||
]
|
||
} |