Spaces:
Running
Running
Update tools.py
Browse files
tools.py
CHANGED
@@ -89,13 +89,9 @@ class get_hotel_information(ToolBase):
|
|
89 |
@classmethod
|
90 |
def invoke(cls, input: Dict) -> str:
|
91 |
return """### **Nou Vall de Núria – Brief Description**
|
92 |
-
|
93 |
Nestled in the stunning **Vall de Núria** in the Pyrenees, **Nou Vall de Núria** offers a perfect blend of comfort and adventure. Guests can enjoy breathtaking mountain views, premium accommodations, and excellent facilities, including an outdoor pool, gym, and sauna.
|
94 |
-
|
95 |
The hotel features **two dining options**, serving traditional Catalan cuisine and refreshing drinks. Accommodations range from **cozy standard rooms to luxurious suites and fully equipped apartments**, catering to couples, families, and groups.
|
96 |
-
|
97 |
For an unforgettable stay, guests can choose from **special packages**, including family-friendly stays, romantic getaways, ski adventures, and relaxation retreats. Outdoor enthusiasts can explore **hiking trails, ski slopes, and fishing spots** in the surrounding natural beauty.
|
98 |
-
|
99 |
Whether for relaxation or adventure, **Nou Vall de Núria** promises a unique and memorable experience."""
|
100 |
|
101 |
@tool_register
|
@@ -167,8 +163,23 @@ class check_room_availability(ToolBase):
|
|
167 |
instance = cls(**input)
|
168 |
room_type = instance.room_type
|
169 |
check_in_date = instance.check_in_date
|
170 |
-
|
171 |
guests = instance.guests
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
172 |
rooms = [room for room in json_data["accomodations"] if room_type in room["type"]]
|
173 |
if len(rooms) == 0:
|
174 |
return f"There is no room exists with room type {room_type}"
|
@@ -197,10 +208,25 @@ class make_reservation(ToolBase):
|
|
197 |
instance = cls(**input)
|
198 |
room_type = instance.room_type
|
199 |
check_in_date = instance.check_in_date
|
200 |
-
|
201 |
guests = instance.guests
|
202 |
user_id = instance.user_id
|
203 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
204 |
|
205 |
rooms = [room for room in json_data["accomodations"] if room_type in room["type"]]
|
206 |
if len(rooms) == 0:
|
@@ -222,7 +248,7 @@ class make_reservation(ToolBase):
|
|
222 |
"room_number": room["room_number"],
|
223 |
"room_type": room_type,
|
224 |
"check_in_date": check_in_date,
|
225 |
-
"
|
226 |
"guests": guests,
|
227 |
"reservation_id": rand,
|
228 |
"user_id": user_id,
|
@@ -249,8 +275,18 @@ class cancel_reservation(ToolBase):
|
|
249 |
reservation_id = instance.reservation_id
|
250 |
user_id = instance.user_id
|
251 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
252 |
if reservation_id not in reservations:
|
253 |
-
return f"
|
254 |
|
255 |
if reservations["reservation_id"]["user_id"] != user_id:
|
256 |
return "The user id is wrong, please provide same user id that was used make to reservation."
|
@@ -283,8 +319,22 @@ class modify_reservation(ToolBase):
|
|
283 |
user_id = instance.user_id
|
284 |
reservation_id = instance.reservation_id
|
285 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
286 |
if reservation_id not in reservations:
|
287 |
-
return f"
|
288 |
|
289 |
if reservations["reservation_id"]["user_id"] != user_id:
|
290 |
return "The user id is wrong, please provide same user id that was used make to reservation."
|
@@ -330,12 +380,22 @@ class get_reservation_details(ToolBase):
|
|
330 |
user_id = instance.user_id
|
331 |
reservation_id = instance.reservation_id
|
332 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
333 |
if reservation_id not in reservations:
|
334 |
-
return f"
|
335 |
|
336 |
if reservations["reservation_id"]["user_id"] != user_id:
|
337 |
return "The user id is wrong, please provide same user id that was used make to reservation."
|
338 |
|
339 |
tmp_data = copy.deepcopy(reservations["reservation_id"])
|
340 |
tmp_data.pop("user_id")
|
341 |
-
return json.dumps(tmp_data)
|
|
|
89 |
@classmethod
|
90 |
def invoke(cls, input: Dict) -> str:
|
91 |
return """### **Nou Vall de Núria – Brief Description**
|
|
|
92 |
Nestled in the stunning **Vall de Núria** in the Pyrenees, **Nou Vall de Núria** offers a perfect blend of comfort and adventure. Guests can enjoy breathtaking mountain views, premium accommodations, and excellent facilities, including an outdoor pool, gym, and sauna.
|
|
|
93 |
The hotel features **two dining options**, serving traditional Catalan cuisine and refreshing drinks. Accommodations range from **cozy standard rooms to luxurious suites and fully equipped apartments**, catering to couples, families, and groups.
|
|
|
94 |
For an unforgettable stay, guests can choose from **special packages**, including family-friendly stays, romantic getaways, ski adventures, and relaxation retreats. Outdoor enthusiasts can explore **hiking trails, ski slopes, and fishing spots** in the surrounding natural beauty.
|
|
|
95 |
Whether for relaxation or adventure, **Nou Vall de Núria** promises a unique and memorable experience."""
|
96 |
|
97 |
@tool_register
|
|
|
163 |
instance = cls(**input)
|
164 |
room_type = instance.room_type
|
165 |
check_in_date = instance.check_in_date
|
166 |
+
check_out_date = instance.check_out_date
|
167 |
guests = instance.guests
|
168 |
+
|
169 |
+
missing = []
|
170 |
+
if not room_type:
|
171 |
+
missing.append("room_type")
|
172 |
+
if not check_in_date:
|
173 |
+
missing.append("check_in_date")
|
174 |
+
if not check_out_date:
|
175 |
+
missing.append("check_out_date")
|
176 |
+
if not guests:
|
177 |
+
missing.append("guests")
|
178 |
+
|
179 |
+
if len(missing):
|
180 |
+
value = ", ".join(missing)
|
181 |
+
return f"Unable to check the room availability. The following required arguments are missing:{value}."
|
182 |
+
|
183 |
rooms = [room for room in json_data["accomodations"] if room_type in room["type"]]
|
184 |
if len(rooms) == 0:
|
185 |
return f"There is no room exists with room type {room_type}"
|
|
|
208 |
instance = cls(**input)
|
209 |
room_type = instance.room_type
|
210 |
check_in_date = instance.check_in_date
|
211 |
+
check_out_date = instance.check_out_date
|
212 |
guests = instance.guests
|
213 |
user_id = instance.user_id
|
214 |
+
|
215 |
+
missing = []
|
216 |
+
if not room_type:
|
217 |
+
missing.append("room_type")
|
218 |
+
if not check_in_date:
|
219 |
+
missing.append("check_in_date")
|
220 |
+
if not check_out_date:
|
221 |
+
missing.append("check_out_date")
|
222 |
+
if not guests:
|
223 |
+
missing.append("guests")
|
224 |
+
if not user_id:
|
225 |
+
missing.append("user_id")
|
226 |
+
|
227 |
+
if len(missing):
|
228 |
+
value = ", ".join(missing)
|
229 |
+
return f"Unable to complete the reservation. The following required arguments are missing:{value}."
|
230 |
|
231 |
rooms = [room for room in json_data["accomodations"] if room_type in room["type"]]
|
232 |
if len(rooms) == 0:
|
|
|
248 |
"room_number": room["room_number"],
|
249 |
"room_type": room_type,
|
250 |
"check_in_date": check_in_date,
|
251 |
+
"check_out_date": check_out_date,
|
252 |
"guests": guests,
|
253 |
"reservation_id": rand,
|
254 |
"user_id": user_id,
|
|
|
275 |
reservation_id = instance.reservation_id
|
276 |
user_id = instance.user_id
|
277 |
|
278 |
+
missing = []
|
279 |
+
if not reservation_id:
|
280 |
+
missing.append("reservation_id")
|
281 |
+
if not user_id:
|
282 |
+
missing.append("user_id")
|
283 |
+
|
284 |
+
if len(missing):
|
285 |
+
value = ", ".join(missing)
|
286 |
+
return f"Unable to cancel the reservation. The following required arguments are missing:{value}."
|
287 |
+
|
288 |
if reservation_id not in reservations:
|
289 |
+
return f"There is no reservations with the id: {reservation_id}"
|
290 |
|
291 |
if reservations["reservation_id"]["user_id"] != user_id:
|
292 |
return "The user id is wrong, please provide same user id that was used make to reservation."
|
|
|
319 |
user_id = instance.user_id
|
320 |
reservation_id = instance.reservation_id
|
321 |
|
322 |
+
missing = []
|
323 |
+
if not reservation_id:
|
324 |
+
missing.append("reservation_id")
|
325 |
+
if not user_id:
|
326 |
+
missing.append("user_id")
|
327 |
+
|
328 |
+
if len(missing):
|
329 |
+
value = ", ".join(missing)
|
330 |
+
return f"Unable to modify the reservation. The following required arguments are missing:{value}."
|
331 |
+
|
332 |
+
if not (new_room_type or new_check_in_date or new_check_out_date or guests):
|
333 |
+
return "Unable to modify the reservation. One of the following arguments must be passed: new_room_type, new_check_in_date, new_check_out_date, guests."
|
334 |
+
|
335 |
+
|
336 |
if reservation_id not in reservations:
|
337 |
+
return f"There is no reservations with the id: {reservation_id}"
|
338 |
|
339 |
if reservations["reservation_id"]["user_id"] != user_id:
|
340 |
return "The user id is wrong, please provide same user id that was used make to reservation."
|
|
|
380 |
user_id = instance.user_id
|
381 |
reservation_id = instance.reservation_id
|
382 |
|
383 |
+
missing = []
|
384 |
+
if not reservation_id:
|
385 |
+
missing.append("reservation_id")
|
386 |
+
if not user_id:
|
387 |
+
missing.append("user_id")
|
388 |
+
|
389 |
+
if len(missing):
|
390 |
+
value = ", ".join(missing)
|
391 |
+
return f"Unable to get the details. The following required arguments are missing:{value}."
|
392 |
+
|
393 |
if reservation_id not in reservations:
|
394 |
+
return f"There is no reservations with the id: {reservation_id}"
|
395 |
|
396 |
if reservations["reservation_id"]["user_id"] != user_id:
|
397 |
return "The user id is wrong, please provide same user id that was used make to reservation."
|
398 |
|
399 |
tmp_data = copy.deepcopy(reservations["reservation_id"])
|
400 |
tmp_data.pop("user_id")
|
401 |
+
return json.dumps(tmp_data)
|