Skills Plugins MCP Prompt Model 博客 我的中心

hospitality-expert

Expert-level hotel management, reservation systems, guest services, revenue management, and hospitality technology

DeepseekModel キュレーション済みスキル 品質 良好 · 64 v1.0.0

取得

https://deepseekmodel.com/api/download.php?id=personamanagmentlayer-pcl-stdlib-domains-hospitality-expert-skill-md&format=skill
ダウンロード .skill 標準形式。system_prompt と model_config を収録し、任意の Agent で利用可能
.skill ファイルの system_prompt フィールドの実際の内容。
name hospitality-expert version 1.0.0 description Expert-level hotel management, reservation systems, guest services, revenue management, and hospitality technology category domains tags ["hospitality","hotel","reservation","pms","revenue-management"] allowed-tools ["Read","Write","Edit"] Hospitality Expert Expert guidance for hotel management, reservation systems, property management systems (PMS), guest services, revenue management, and hospitality technology solutions. Core Concepts Hotel Management Systems Property Management System (PMS) Central Reservation System (CRS) Revenue Management System (RMS) Channel Manager Point of Sale (POS) Guest Relationship Management (GRM) Housekeeping management Technologies Mobile check-in/check-out Digital key systems Guest messaging platforms IoT for room automation AI chatbots for customer service Contactless payments Energy management systems Standards and Protocols HTNG (Hotel Technology Next Generation) OpenTravel Alliance standards PCI-DSS for payment security ADA compliance for accessibility Brand standards (if franchise) OTA integrations (Booking.com, Expedia) Property Management System from dataclasses import dataclass from datetime import datetime, timedelta, date from typing import List , Optional , Dict from decimal import Decimal from enum import Enum class RoomType ( Enum ): STANDARD = "standard" DELUXE = "deluxe" SUITE = "suite" EXECUTIVE = "executive" class RoomStatus ( Enum ): VACANT_CLEAN = "vacant_clean" VACANT_DIRTY = "vacant_dirty" OCCUPIED_CLEAN = "occupied_clean" OCCUPIED_DIRTY = "occupied_dirty" OUT_OF_ORDER = "out_of_order" OUT_OF_SERVICE = "out_of_service" class ReservationStatus ( Enum ): CONFIRMED = "confirmed" CHECKED_IN = "checked_in" CHECKED_OUT = "checked_out" CANCELLED = "cancelled" NO_SHOW = "no_show" @dataclass class Room : """Hotel room information""" room_number: str room_type: RoomType floor: int status: RoomStatus base_rate: Decimal features: List [ str ] bed_type: str max_occupancy: int square_feet: int is_smoking: bool @dataclass class Reservation : """Guest reservation""" reservation_id: str guest_name: str guest_email: str guest_phone: str room_type: RoomType check_in_date: date check_out_date: date num_adults: int num_children: int status: ReservationStatus rate_per_night: Decimal total_amount: Decimal special_requests: str created_at: datetime booking_source: str # 'direct', 'ota', 'phone', etc. assigned_room: Optional [ str ] @dataclass class Folio : """Guest folio (bill)""" folio_id: str reservation_id: str room_number: str guest_name: str charges: List [ Dict ] total_charges: Decimal payments: List [ Dict ] balance: Decimal class PropertyManagementSystem : """Hotel property management system""" def __init__ ( self ): self .rooms = {} self .reservations = {} self .folios = {} self .guests = {} def create_reservation ( self, reservation_data: dict ) -> Reservation: """Create new reservation""" reservation_id = self ._generate_reservation_id() # Calculate total amount check_in = reservation_data[ 'check_in_date' ] check_out = reservation_data[ 'check_out_date' ] num_nights = (check_out - check_in).days rate_per_night = Decimal( str (reservation_data[ 'rate_per_night' ])) total_amount = rate_per_night * num_nights reservation = Reservation( reservation_id=reservation_id, guest_name=reservation_data[ 'guest_name' ], guest_email=reservation_data[ 'guest_email' ], guest_phone=reservation_data[ 'guest_phone' ], room_type=RoomType(reservation_data[ 'room_type' ]), check_in_date=check_in, check_out_date=check_out, num_adults=reservation_data[ 'num_adults' ], num_children=reservation_data.get( 'num_children' , 0 ), status=ReservationStatus.CONFIRMED, rate_per_night=rate_per_night, total_amount=total_amount, special_requests=reservation_data.get( 'special_requests' , '' ), created_at=datetime.now(), booking_source=reservation_data.get( 'booking_source' , 'direct' ), assigned_room= None ) self .reservations[reservation_id] = reservation return reservation def check_in_guest ( self, reservation_id: str ) -> dict : """Process guest check-in""" reservation = self .reservations.get(reservation_id) if not reservation: return { 'error' : 'Reservation not found' } # Find available room of requested type available_room = self ._find_available_room( reservation.room_type, reservation.check_in_date, reservation.check_out_date ) if not available_room: return { 'error' : 'No rooms available of requested type' } # Assign room reservation.assigned_room = available_room.room_number reservation.status = ReservationStatus.CHECKED_IN # Update room status available_room.status = RoomStatus.OCCUPIED_CLEAN # Create folio folio = self ._create_folio(reservation, available_room) return { 'reservation_id' : reservation_id, 'room_number' : available_room.room_number, 'guest_name' : reservation.guest_name, 'check_in_time' : datetime.now().isoformat(), 'check_out_date' : reservation.check_out_date.isoformat(), 'folio_id' : folio.folio_id } def check_out_guest ( self, reservation_id: str ) -> dict : """Process guest check-out""" reservation = self .reservations.get(reservation_id) if not reservation: return { 'error' : 'Reservation not found' } # Get folio folio = next ( (f for f in self .folios.values() if f.reservation_id == reservation_id), None ) if not folio: return { 'error' : 'Folio not found' } # Check for outstanding balance if folio.balance > 0 : return { 'error' : 'Outstanding balance' , 'balance_due' : float (folio.balance) } # Update reservation status reservation.status = ReservationStatus.CHECKED_OUT # Update room status if reservation.assigned_room: room = self .rooms.get(reservation.assigned_room) if room: room.status = RoomStatus.VACANT_DIRTY return { 'reservation_id' : reservation_id, 'guest_name' : reservation.guest_name, 'check_out_time' : datetime.now().isoformat(), 'total_charges' : float (folio.total_charges), 'folio_summary' : { 'room_charges' : float (folio.total_charges), 'payments_received' : float (folio.total_charges - folio.balance) } } def _find_available_room ( self, room_type: RoomType, check_in: date, check_out: date ) -> Optional [Room]: """Find available room of specified type""" for room in self .rooms.values(): if room.room_type != room_type: continue if room.status not in [RoomStatus.VACANT_CLEAN, RoomStatus.VACANT_DIRTY]: continue # Check if room is available for date range if self ._is_room_available(room.room_number, check_in, check_out): return room return None def _is_room_available ( self, room_number: str , check_in: date, check_out: date ) -> bool : """Check if room is available for date range""" for reservation in self .reservations.values(): if reservation.assigned_room != room_number: continue if reservation.status in [ReservationStatus.CANCELLED, ReservationStatus.NO_SHOW]: continue # Check for date overlap if not (check_out <= reservation.check_in_date or check_in >= reservation.check_out_date): return False return True def _create_folio ( self, reservation: Reservation, room: Room ) -> Folio: """Create guest folio""" folio_id = self ._generate_folio_id() # Calculate room charges num_nights = (reservation.check_out_date - reservation.check_in_date).days room_charge = reservation.rate_per_night * num_nights charges = [{ 'date' : datetime.now(), 'description' : f'Room {room.room_number} - {num_nights} nights' , 'amount' : float (room_charge) }] folio = Folio( folio_id=folio_id, reservation_id=reservation.reservation_id, room_number=room.room_number, guest_name=reservation.guest_name, charges=charges, total_charges=room_charge, payments=[], balance=room_charge ) self .folios[folio_id] = folio return folio def post_charge ( self, folio_id: str , charge_data: dict ) -> dict : """Post charge to guest folio""" folio = self .folios.get(folio_id) if not folio: return { 'error' : 'Folio not found' } charge = { 'date' : datetime.now(), 'description' : charge_data[ 'description' ], 'amount' : float (Decimal( str (charge_data[ 'amount' ]))) } folio.charges.append(charge) folio.total_charges += Decimal( str (charge_data[ 'amount' ])) folio.balance += Decimal( str (charge_data[ 'amount' ])) return { 'folio_id' : folio_id, 'charge_posted' : charge, 'new_balance' : float (folio.balance) } def process_payment ( self, folio_id: str , payment_data: dict ) -> dict : """Process payment for folio""" folio = self .folios.get(folio_id) if not folio: return { 'error' : 'Folio not found' } payment_amount = Decimal( str (payment_data[ 'amount' ])) if payment_amount > folio.balance: return { 'error' : 'Payment exceeds balance' } payment = { 'date' : datetime.now(), 'payment_method' : payment_data[ 'payment_method' ], 'amount' : float (payment_amount) } folio.payments.append(payment) folio.balance -= payment_amount return { 'folio_id' : folio_id, 'payment_processed' : payment, 'remaining_balance' : float (folio.balance) } def get_room_availability ( self, check_in: date, check_out: date ) -> dict : """Get room availability for date range""" availability = {} for room_type in RoomType: available_count = 0 for room in self .rooms.values(): if room.room_type == room_type: if self ._is_room_available(room.room_number, check_in, check_out): available_count += 1 availability[room_type.value] = available_count return { 'check_in_date' : check_in.isoformat(), 'check_out_date' : check_out.isoformat(), 'availability' : availability } def _generate_reservation_id ( self ) -> str : import uuid return f"RES- {uuid.uuid4(). hex [: 10 ].upper()} " def _generate_folio_id ( self ) -> str : import uuid return f"FOL- {uuid.uuid4(). hex [: 8 ].upper()} " Revenue Management System import numpy as np class RevenueManagementSystem : """Hotel revenue management and dynamic pricing""" def __init__ ( self ): self .pricing_rules = [] self .demand_forecast = {} def calculate_dynamic_rate ( self, room_type: RoomType, check_in_date: date, days_until_arrival: int , current_occupancy: float , historical_data: dict ) -> Decimal: """Calculate dynamic room rate""" # Base rate base_rates = { RoomType.STANDARD: Decimal( '150' ), RoomType.DELUXE: Decimal( '200' ), RoomType.SUITE: Decimal( '350' ), RoomType.EXECUTIVE: Decimal( '450' ) } base_rate = base_rates.get(room_type, Decimal( '150' )) # Demand multiplier based on occupancy if current_occupancy > 0.85 : demand_multiplier = Decimal( '1.30' ) # High demand elif current_occupancy > 0.70 : demand_multiplier = Decimal( '1.15' ) # Moderate demand elif current_occupancy > 0.50 : demand_multiplier = Decimal( '1.00' ) # Normal else : demand_multiplier = Decimal( '0.85' ) # Low demand # Booking window multiplier if days_until_arrival < 7 : window_multiplier = Decimal( '1.20' ) # Last minute elif days_until_arrival < 14 : window_multiplier = Decimal( '1.10' ) elif days_until_arrival > 60 : window_multiplier = Decimal( '0.90' ) # Early bird else : window_multiplier = Decimal( '1.00' ) # Day of week adjustment if check_in_date.weekday() in [ 4 , 5 ]: # Friday, Saturday day_multiplier = Decimal( '1.25' )
このスキルを起動するキーワード。クリックでコピーできます。

このスキルにはトリガーワードがありません。

ダウンロードした .skill に含まれるフィールド。
フィールド 説明
formatフォーマット識別子(skill/v1)
skill_idスキル固有 ID
nameスキル名
versionバージョン
description説明
categoryカテゴリ(配列)
trigger_wordsトリガーワード
tagsタグ
sourceソース
source_urlソース URL(本ページ)
exported_atエクスポート日時(ダウンロード毎)
system_promptシステムプロンプト本文
model_configモデル設定:provider / model / temperature / max_tokens / top_p
examplesサンプル
install_guide各プラットフォームの導入説明(Coze / Dify / Claude / カスタム)
同じスキルを各プラットフォーム形式で出力できます。
.skill 標準形式。system_prompt と model_config を収録し、任意の Agent で利用可能 ダウンロード
.skillpro 拡張形式。scripts / tools / dependencies / hooks を含む ダウンロード
.json 純粋な JSON 出力。system_prompt とモデル設定のみ ダウンロード
Coze frontmatter 付き Markdown。Coze へのインポート用 ダウンロード
Dify Dify DSL。アプリ作成後にそのままインポート ダウンロード

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。