hsaest commited on
Commit
acc4386
1 Parent(s): d819a82

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .DS_Store +0 -0
  2. .gitattributes +1 -0
  3. annotation/.DS_Store +0 -0
  4. app.py +494 -0
  5. assets/styles.css +39 -0
  6. database/.DS_Store +0 -0
  7. database/accommodations/clean_accommodations_2022.csv +0 -0
  8. database/attractions/attractions.csv +0 -0
  9. database/background/citySet.txt +311 -0
  10. database/background/citySet_with_states.txt +312 -0
  11. database/background/clean_data.py +14 -0
  12. database/background/get_state_set.py +22 -0
  13. database/background/stateSet.txt +65 -0
  14. database/background/test.py +8 -0
  15. database/flights/.DS_Store +0 -0
  16. database/flights/clean_Flights_2022.csv +3 -0
  17. database/googleDistanceMatrix/distance.csv +0 -0
  18. database/restaurants/.DS_Store +0 -0
  19. database/restaurants/clean_restaurant_2022.csv +0 -0
  20. evaluataion/commonsenseConstraint.py +547 -0
  21. evaluataion/eval.py +181 -0
  22. evaluataion/hardConstraint.py +266 -0
  23. plan/plan_1.json +1 -0
  24. plan/plan_10.json +1 -0
  25. plan/plan_11.json +1 -0
  26. plan/plan_12.json +1 -0
  27. plan/plan_13.json +1 -0
  28. plan/plan_14.json +1 -0
  29. plan/plan_15.json +1 -0
  30. plan/plan_16.json +62 -0
  31. plan/plan_17.json +1 -0
  32. plan/plan_18.json +1 -0
  33. plan/plan_19.json +59 -0
  34. plan/plan_2.json +1 -0
  35. plan/plan_20.json +1 -0
  36. plan/plan_21.json +79 -0
  37. plan/plan_22.json +1 -0
  38. plan/plan_23.json +1 -0
  39. plan/plan_24.json +1 -0
  40. plan/plan_25.json +1 -0
  41. plan/plan_26.json +1 -0
  42. plan/plan_27.json +1 -0
  43. plan/plan_28.json +1 -0
  44. plan/plan_29.json +1 -0
  45. plan/plan_3.json +1 -0
  46. plan/plan_30.json +1 -0
  47. plan/plan_31.json +1 -0
  48. plan/plan_32.json +1 -0
  49. plan/plan_33.json +1 -0
  50. plan/plan_34.json +1 -0
.DS_Store ADDED
Binary file (6.15 kB). View file
 
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ database/flights/clean_Flights_2022.csv filter=lfs diff=lfs merge=lfs -text
annotation/.DS_Store ADDED
Binary file (6.15 kB). View file
 
app.py ADDED
@@ -0,0 +1,494 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import sys
2
+ import os
3
+ sys.path.append(os.path.abspath(os.path.join(os.getcwd(), "..")))
4
+ os.chdir(os.path.dirname(os.path.abspath(__file__)))
5
+ import gradio as gr
6
+ import json
7
+ from tools.flights.apis import Flights
8
+ from tools.accommodations.apis import Accommodations
9
+ from tools.restaurants.apis import Restaurants
10
+ from tools.googleDistanceMatrix.apis import GoogleDistanceMatrix
11
+ from tools.attractions.apis import Attractions
12
+ import pandas as pd
13
+ from gradio.events import Changeable, Streamable, Submittable, on
14
+ from src.utils import *
15
+ from gradio.events import EventListenerMethod
16
+ import math
17
+
18
+
19
+
20
+ # 从文件中读取数据s
21
+ data = load_line_json_data('query.jsonl')
22
+ query_dropdown_text = [f"Query {index}" for index in range(1, len(data)+1)]
23
+
24
+
25
+ # 从CSS文件中读取样式
26
+ with open('assets/styles.css', 'r') as css_file:
27
+ css_content = css_file.read()
28
+
29
+ flight = Flights()
30
+ accommodations = Accommodations()
31
+ restaurants = Restaurants()
32
+ googleDistanceMatrix = GoogleDistanceMatrix()
33
+ attractions = Attractions()
34
+
35
+ annotation_idx = 4
36
+ cost = 0
37
+
38
+ global_user_name = ""
39
+ transportaion_val = ""
40
+ accommodation_val = ""
41
+ breakfast_val = ""
42
+ lunch_val = ""
43
+ dinner_val = ""
44
+ attraction_val = ""
45
+
46
+ def auto_update_current_cost(*components):
47
+ global cost
48
+ cost = 0
49
+ for i in range(7):
50
+ # flight
51
+ if judge_valid_info(components[7+i]):
52
+ if components[7+i] != '-':
53
+
54
+ if 'Flight Number' in components[7+i]:
55
+ cost += flight.data[flight.data['Flight Number'] == components[7+i].split('Flight Number: ')[1].split(',')[0]]['Price'].values[0] * data[annotation_idx-1]['people_number']
56
+
57
+ elif 'Self-driving' in components[7+i] or 'Taxi' in components[7+i]:
58
+ if 'Self-driving' in components[7+i]:
59
+ cost += int(components[7+i].split('cost: ')[1]) * math.ceil(data[annotation_idx-1]['people_number'] * 1.0 / 5)
60
+ else:
61
+ cost += int(components[7+i].split('cost: ')[1]) * math.ceil(data[annotation_idx-1]['people_number'] * 1.0 / 4)
62
+
63
+ # breakfast
64
+ if judge_valid_info(components[7*2+i]):
65
+ if components[7*2+i] != '-':
66
+ name, city = get_valid_name_city(components[7*2+i])
67
+ cost += restaurants.data[(restaurants.data['Name'] == name) & (restaurants.data['City'] == city)]['Average Cost'].values[0] * data[annotation_idx-1]['people_number']
68
+ # attraction
69
+ # lunch
70
+ if judge_valid_info(components[7*4+i]):
71
+ if components[7*4+i] != '-':
72
+ name, city = get_valid_name_city(components[7*4+i])
73
+ cost += restaurants.data[(restaurants.data['Name'] == name) & (restaurants.data['City'] == city)]['Average Cost'].values[0] * data[annotation_idx-1]['people_number']
74
+ # dinner
75
+ if judge_valid_info(components[7*5+i]):
76
+ if components[7*5+i] != '-':
77
+ name, city = get_valid_name_city(components[7*5+i])
78
+ cost += restaurants.data[(restaurants.data['Name'] == name) & (restaurants.data['City'] == city)]['Average Cost'].values[0] * data[annotation_idx-1]['people_number']
79
+ # accommodation
80
+ if judge_valid_info(components[7*6+i]):
81
+ if components[7*6+i] != '-':
82
+ name, city = get_valid_name_city(components[7*6+i])
83
+ res = accommodations.data[(accommodations.data['NAME'] == name) & (accommodations.data['city'] == city)]
84
+ cost += res['price'].values[0] * math.ceil(data[annotation_idx-1]['people_number'] * 1.0 / res['maximum occupancy'].values[0])
85
+
86
+ return gr.Number(label="Current Cost", value=cost, interactive=False,elem_classes="current_cost")
87
+
88
+ def auto_update_current_cost_number(fn, input_components, output_components):
89
+ events: list[EventListenerMethod] = []
90
+ for component in input_components:
91
+ if isinstance(component, Streamable) and component.streaming:
92
+ events.append(component.stream)
93
+ elif isinstance(component, Changeable):
94
+ events.append(component.change)
95
+ on(
96
+ events,
97
+ fn,
98
+ input_components,
99
+ output_components
100
+ )
101
+
102
+ def get_google_distance_matrix(mode,departure_city, destination_city):
103
+ if mode == "Self-driving":
104
+ return pd.DataFrame(googleDistanceMatrix.run_for_annotation(departure_city, destination_city,'driving'),index=[0])
105
+ elif mode == "Taxi":
106
+ return pd.DataFrame(googleDistanceMatrix.run_for_annotation(departure_city, destination_city,'taxi'),index=[0])
107
+
108
+ def return_list_items(items):
109
+ return items[0],items[1],items[2],items[3],items[4],items[5],items[6]
110
+
111
+ def submit_update_options(query_candidate, *components):
112
+ global query_dropdown_text ,cost
113
+ global transportaion_val, accommodation_val, breakfast_val, lunch_val, dinner_val, attraction_val
114
+ json_data = [{} for i in range(7)]
115
+ new_components = [ None for i in range(len(components))]
116
+ # write the annotation into the json file
117
+ cuisine_set = set()
118
+ for i in range(data[annotation_idx-1]['days']):
119
+ json_data[i]['days'] = i+1
120
+ if judge_submit_info(components[i],i+1,'current city',data[annotation_idx-1]):
121
+ json_data[i]['current_city'] = components[i]
122
+ if judge_submit_info(components[7+i],i+1,'transportation',data[annotation_idx-1]):
123
+ json_data[i]['transportation'] = components[7+i]
124
+ if judge_submit_info(components[7*2+i],i+1,'breakfast',data[annotation_idx-1]):
125
+ cuisine_set = judge_valid_cuisine(components[7*2+i],data[annotation_idx-1],restaurants.data, cuisine_set)
126
+ json_data[i]['breakfast'] = components[7*2+i]
127
+ if judge_submit_info(components[7*3+i],i+1,'attraction',data[annotation_idx-1]):
128
+ json_data[i]['attraction'] = components[7*3+i]
129
+ if judge_submit_info(components[7*4+i],i+1,'lunch',data[annotation_idx-1]):
130
+ cuisine_set = judge_valid_cuisine(components[7*4+i],data[annotation_idx-1],restaurants.data, cuisine_set)
131
+ json_data[i]['lunch'] = components[7*4+i]
132
+ if judge_submit_info(components[7*5+i],i+1,'dinner',data[annotation_idx-1]):
133
+ cuisine_set = judge_valid_cuisine(components[7*5+i],data[annotation_idx-1],restaurants.data, cuisine_set)
134
+ json_data[i]['dinner'] = components[7*5+i]
135
+ if judge_submit_info(components[7*6+i],i+1,'accommodation',data[annotation_idx-1],accommodations.data):
136
+ json_data[i]['accommodation'] = components[7*6+i]
137
+
138
+ if data[annotation_idx-1]['local_constraint']['cuisine'] and len(list(cuisine_set)) != len(data[annotation_idx-1]['local_constraint']['cuisine']):
139
+ raise gr.Error("Please note the cuisine constraints.")
140
+
141
+ consectutive_accommodation = count_consecutive_values(components[7*6:7*6+data[annotation_idx-1]['days']])
142
+ # print(consectutive_accommodation)
143
+ # print("")
144
+ for unit in consectutive_accommodation:
145
+ # print(unit)
146
+ if unit and unit[0] not in ['-',''] and unit!="You don't need to fill in the information for this or later days.":
147
+ name, city = get_valid_name_city(unit[0])
148
+ if unit[1] < accommodations.data[(accommodations.data['NAME'] == name) & (accommodations.data['city'] == city)].iloc[0]['minimum nights']:
149
+ raise gr.Error(f"Please note the minimum nights of {unit[0]}.")
150
+
151
+ if cost > data[annotation_idx-1]['budget']:
152
+ raise gr.Error("The current cost is higher than the budget, please modify the information.")
153
+ # return [gr.Textbox(value="The current cost is higher than the budget, please modify the information.",interactive=False)]*6 + [gr.Dropdown(choices=query_dropdown_text)]
154
+
155
+ # ['is_reasonalbe_visiting_city', 'is_valid_restaurants', 'is_valid_attractions', 'is_valid_transportation', 'is_valid_information_in_current_city', 'is_valid_information_in_sandbox']
156
+
157
+ for i in range(data[annotation_idx-1]['days']):
158
+ new_components[i] = gr.Textbox(label="Current City", value=None,interactive=False)
159
+ new_components[7+i] = gr.Textbox(label="Transportation", value="-",interactive=False)
160
+ new_components[7*2+i] = gr.Textbox(label="Breakfast", value=None, interactive=False)
161
+ new_components[7*3+i] = gr.Textbox(label="Attractions", value=None, interactive=False)
162
+ new_components[7*4+i] = gr.Textbox(label="Lunch", value=None,interactive=False)
163
+ new_components[7*5+i] = gr.Textbox(label="Dinner", value=None,interactive=False)
164
+ new_components[7*6+i] = gr.Textbox(label="Accommodation", value=None,interactive=False)
165
+
166
+
167
+ with open('../data/annotation/{}/annotation_{}.json'.format(global_user_name,annotation_idx), 'w') as f:
168
+ json.dump(json_data, f)
169
+
170
+ transportaion_val = ""
171
+ accommodation_val = ""
172
+ breakfast_val = ""
173
+ lunch_val = ""
174
+ dinner_val = ""
175
+ attraction_val = ""
176
+
177
+
178
+ new_options = query_dropdown_text
179
+ new_options[annotation_idx-1] = f"Query {annotation_idx} --- Done"
180
+ query_dropdown_text = new_options
181
+
182
+ return [gr.Dropdown(choices=new_options)] + new_components + [gr.Textbox(value=None) for _ in range(14)]
183
+
184
+
185
+ def update_gloabal_idx(selected_option):
186
+ global annotation_idx,cost
187
+ global transportaion_val, accommodation_val, breakfast_val, lunch_val, dinner_val, attraction_val
188
+
189
+ transportaion_val = ""
190
+ accommodation_val = ""
191
+ breakfast_val = ""
192
+ lunch_val = ""
193
+ dinner_val = ""
194
+ attraction_val = ""
195
+
196
+ annotation_idx = extract_query_number(selected_option)
197
+ new_components = [ gr.Textbox() for i in range(49)]
198
+ city_list = get_city_list(data[annotation_idx-1]['days'], data[annotation_idx-1]['org'], data[annotation_idx-1]['dest'])
199
+ city_drop_down = [None for i in range(63)]
200
+ date_component_list = [gr.Textbox(value="", interactive=False) for i in range(7)]
201
+
202
+ for i in range(data[annotation_idx-1]['days']):
203
+ new_components[i] = gr.Textbox(label="Current City",value="",interactive=False)
204
+ new_components[7+i] = gr.Textbox(label="Transportation",value="",interactive=False)
205
+ new_components[7*2+i] = gr.Textbox(label="Breakfast", value="",interactive=False)
206
+ new_components[7*3+i] = gr.Textbox(label="Attractions", value="",interactive=False)
207
+ new_components[7*4+i] = gr.Textbox(label="Lunch", value="",interactive=False)
208
+ new_components[7*5+i] = gr.Textbox(label="Dinner", value="",interactive=False)
209
+ new_components[7*6+i] = gr.Textbox(label="Accommodation", value="",interactive=False)
210
+
211
+ for i in range(63):
212
+ if i % 9 in [0,2,4]:
213
+ city_drop_down[i] = gr.Radio(label="Departure City",choices=city_list)
214
+ elif i % 9 in [1,3,5]:
215
+ city_drop_down[i] = gr.Radio(label="Destination City",choices=city_list)
216
+ else:
217
+ city_drop_down[i] = gr.Radio(label="City",choices=city_list)
218
+ for i in range(data[annotation_idx-1]['days']):
219
+ date_component_list[i] = gr.Textbox(label="Date", value=data[annotation_idx-1]['date'][i], interactive=False)
220
+
221
+ return [create_data_display(css_content,data,annotation_idx),gr.update(visible=True)]+new_components+city_drop_down+date_component_list+[gr.Number(value=cost, interactive=False)]
222
+
223
+ def Recommend_new(x):
224
+ return x + ": Highest Cosine Similarity"
225
+
226
+ def current_city_selection(departure_city, dest_city):
227
+
228
+ final_city = ""
229
+
230
+ if departure_city == dest_city:
231
+ final_city = departure_city
232
+ else:
233
+ final_city = "from " + departure_city + " to " + dest_city
234
+
235
+ return gr.Textbox(label="Current City", value=final_city, interactive=False)
236
+
237
+ def tab_hint(current_city,transportaion,breakfast,attraction,lunch,dinner,accommodation,evt:gr.SelectData):
238
+ global transportaion_val, accommodation_val, breakfast_val, lunch_val, dinner_val, attraction_val
239
+
240
+ transportaion_val = ""
241
+ accommodation_val = ""
242
+ breakfast_val = breakfast
243
+ lunch_val = lunch
244
+ dinner_val = dinner
245
+ attraction_val = attraction
246
+
247
+
248
+ if data[annotation_idx-1]['days'] <= evt.index:
249
+ return [gr.Textbox(value="You don't need to fill in the information for this or later days.",interactive=False)]*7 + [gr.Dropdown(choices=query_dropdown_text)] + [gr.Textbox(value="") for _ in range(2)]
250
+ else:
251
+ return current_city, transportaion,breakfast,attraction,lunch,dinner,accommodation, gr.Dropdown(choices=query_dropdown_text),gr.Textbox(value=""), gr.Textbox(value="")
252
+
253
+ css = """
254
+ #submit_button {background: #00a1b8;}
255
+ #clear_button {background: #ff8069;}
256
+ """
257
+
258
+ with gr.Blocks(css=css) as demo:
259
+ gr.HTML(f"""
260
+ <div style="text-align: center;">
261
+ <h2>TravelBench Environment</h2>
262
+ </div>
263
+ """)
264
+ gr.HTML("<hr>")
265
+ query_selection = gr.Dropdown(query_dropdown_text, label="Annotation Query")
266
+ annotation_button = gr.ClearButton(value="Search")
267
+ gr.HTML("<hr>")
268
+ transportaion_list = []
269
+ breakfast_list = []
270
+ attraction_list = []
271
+ lunch_list = []
272
+ dinner_list = []
273
+ accommodation_list = []
274
+ current_city_list = []
275
+
276
+ city_component_list = []
277
+ date_component_list = []
278
+ filtering_keyword_list = []
279
+
280
+ with gr.Column(visible=False) as component:
281
+ query_display = gr.HTML(create_data_display(css_content,data,annotation_idx))
282
+ current_cost = gr.Number(label="Current Cost", value=0, interactive=False,elem_classes="current_cost")
283
+ with gr.Row():
284
+ tabs = gr.Tabs()
285
+ with tabs:
286
+ for i in range(7):
287
+ with gr.Tab(label=f"Day {i+1}", id=(i+1)) as tab:
288
+ with gr.Row():
289
+ with gr.Column():
290
+ current_city = gr.Textbox(label="Current City", interactive=False,value="")
291
+ transportaion = gr.Textbox(label="Transportation",interactive=False,value="")
292
+ breakfast = gr.Textbox(label="Breakfast", interactive=False,value="")
293
+ attraction = gr.Textbox(label="Attractions",interactive=False,value="")
294
+ lunch = gr.Textbox(label="Lunch", interactive=False,value="")
295
+ dinner = gr.Textbox(label="Dinner", interactive=False,value="")
296
+ accommodation = gr.Textbox(label="Accommodation",interactive=False,value="")
297
+
298
+ current_city_list.append(current_city)
299
+ transportaion_list.append(transportaion)
300
+ breakfast_list.append(breakfast)
301
+ attraction_list.append(attraction)
302
+ lunch_list.append(lunch)
303
+ dinner_list.append(dinner)
304
+ accommodation_list.append(accommodation)
305
+
306
+ with gr.Column():
307
+
308
+ with gr.Tab(label=f'City Selection'):
309
+ departure_city = gr.Radio(label="Departure City")
310
+ destination_city = gr.Radio(label="Destination City")
311
+ city_component_list += [departure_city,destination_city]
312
+ btn = gr.Button("Done")
313
+ # output = gr.HTML("")
314
+ annotation_button.add(components=[departure_city,destination_city])
315
+ btn.click(current_city_selection,inputs=[departure_city,destination_city],outputs=current_city)
316
+ # output.select(on_row_selected, inputs=[city],outputs=attraction)
317
+ # btn_clear.click(clear,inputs=None,outputs=attraction)
318
+
319
+ with gr.Tab(label=f'Flight'):
320
+
321
+ transportaion_val = ""
322
+
323
+ def on_row_selected(dep_city,dest_city,evt:gr.SelectData):
324
+ global transportaion_val
325
+ if evt.index[1] == 0:
326
+ transportaion_val = "Flight Number: " + str(evt.value) + f", from {dep_city} to {dest_city}, Departure Time: {flight.data[flight.data['Flight Number']==evt.value].iloc[0]['DepTime']}, Arrival Time: {flight.data[flight.data['Flight Number']==evt.value].iloc[0]['ArrTime']}"
327
+ return transportaion_val
328
+ else:
329
+ return transportaion_val
330
+
331
+ departure_city = gr.Radio(label="Departure City")
332
+ destination_city = gr.Radio(label="Destination City")
333
+ city_component_list += [departure_city, destination_city]
334
+ date = gr.Textbox(label="Date", interactive=False)
335
+ date_component_list.append(date)
336
+ btn = gr.Button("Search")
337
+ clean_btn = gr.Button("Skip")
338
+ output = gr.Dataframe(flight.run_for_annotation('','',''), interactive=False)
339
+ annotation_button.add(components=[output])
340
+ btn.click(flight.run_for_annotation,inputs=[departure_city, destination_city, date],outputs=output)
341
+ output.select(on_row_selected, inputs=[departure_city, destination_city],outputs=[transportaion])
342
+ clean_btn.click(lambda:"-",inputs=None,outputs=[transportaion])
343
+
344
+
345
+ with gr.Tab(label='Driving'):
346
+
347
+ def on_row_selected(org, dest, mode,data, evt:gr.SelectData):
348
+ global transportaion_val
349
+ data_dict = data.to_dict(orient = 'split')['data'][0]
350
+
351
+ transportaion_val = f"{mode}, from {org} to {dest}, duration: {data_dict[2]}, distance: {data_dict[1]}, cost: {data_dict[0]}"
352
+
353
+ return transportaion_val
354
+
355
+ transportation_mode = gr.Radio(["Self-driving", "Taxi"], label="Mode")
356
+
357
+
358
+ departure_city = gr.Radio(label="Departure City")
359
+ destination_city = gr.Radio(label="Destination City")
360
+ city_component_list += [departure_city, destination_city]
361
+ btn = gr.Button("Search")
362
+ clean_btn = gr.Button("Skip")
363
+ output = gr.Dataframe(
364
+ headers=["duration", "distance", "cost"],
365
+ datatype=["str", "str", "str"],
366
+ value=["", "", ""],
367
+ row_count=1,
368
+ col_count=(3, "fixed"),interactive=False
369
+ )
370
+ annotation_button.add(components=[output])
371
+ btn.click(get_google_distance_matrix, inputs=[transportation_mode, departure_city, destination_city],outputs=output)
372
+ clean_btn.click(lambda:"-",inputs=None,outputs=[transportaion])
373
+ output.select(on_row_selected, inputs=[departure_city,destination_city,transportation_mode,output],outputs=transportaion)
374
+
375
+ with gr.Tab(label='Accommodation'):
376
+
377
+ accommodation_val = ""
378
+
379
+ def on_row_selected(city,evt:gr.SelectData):
380
+ global accommodation_val
381
+ if evt.index[1] == 0:
382
+ accommodation_val = str(evt.value) + f", {city}"
383
+ return accommodation_val
384
+
385
+ def search(city, filtering_keyword=None):
386
+ # if filtering_keyword in [" ",""]:
387
+ return accommodations.run_for_annotation(city)
388
+ # else:
389
+ # return_data = accommodations.run_for_annotation(city)
390
+ # return return_data[~return_data['house_rules'].str.contains(filtering_keyword)]
391
+
392
+ city = gr.Radio(label="City")
393
+ # filtering_keyword = gr.Textbox(label="Forbidden keyword (only for hotel rule)",value="")
394
+ # filtering_keyword_list.append(filtering_keyword)
395
+ city_component_list += [city]
396
+ btn = gr.Button("Search")
397
+ skip_btn = gr.Button("Skip")
398
+ output = gr.Dataframe(accommodations.run_for_annotation(''), interactive=False)
399
+ annotation_button.add(components=[output])
400
+ btn.click(search,inputs=[city],outputs=output)
401
+ output.select(on_row_selected, inputs=[city],outputs=accommodation)
402
+ skip_btn.click(lambda:"-",inputs=None,outputs=accommodation)
403
+
404
+ with gr.Tab(label='Restaurant'):
405
+ breakfast_val = ""
406
+ lunch_val = ""
407
+ dinner_val = ""
408
+
409
+ def on_row_selected(city, meal_type, evt: gr.SelectData):
410
+ global breakfast_val, lunch_val, dinner_val
411
+ if evt.index[1] == 0:
412
+ if meal_type == "Breakfast":
413
+ breakfast_val = str(evt.value) + f", {city}"
414
+ elif meal_type == "Lunch":
415
+ lunch_val = str(evt.value) + f", {city}"
416
+ elif meal_type == "Dinner":
417
+ dinner_val = str(evt.value) + f", {city}"
418
+ return breakfast_val, lunch_val, dinner_val
419
+
420
+ def skip(meal_type):
421
+ global breakfast_val, lunch_val, dinner_val
422
+ if meal_type == "Breakfast":
423
+ breakfast_val = "-"
424
+ elif meal_type == "Lunch":
425
+ lunch_val = "-"
426
+ elif meal_type == "Dinner":
427
+ dinner_val = "-"
428
+ return breakfast_val, lunch_val, dinner_val
429
+
430
+ def search(city, filtering_keyword=None):
431
+ # if filtering_keyword in [" ",""]:
432
+ return restaurants.run_for_annotation(city)
433
+ # else:
434
+ # return_data = restaurants.run_for_annotation(city)
435
+ # return return_data[return_data['Cuisines'].str.contains(filtering_keyword)]
436
+
437
+ city = gr.Radio(label="City")
438
+ # filtering_keyword = gr.Textbox(label="Contain keyword",value="")
439
+ # filtering_keyword_list.append(filtering_keyword)
440
+ city_component_list += [city]
441
+ btn = gr.Button("Search")
442
+ skip_btn = gr.Button("Skip")
443
+ choice = gr.Radio(["Breakfast", "Lunch", "Dinner"], label="Meal Type")
444
+ annotation_button.add(components=[choice])
445
+ output = gr.Dataframe(restaurants.run_for_annotation(''), interactive=False)
446
+ annotation_button.add(components=[output])
447
+ btn.click(search,inputs=[city],outputs=output)
448
+ # according to the meal type to select the outputs - breakfast, lunch, dinner
449
+ output.select(on_row_selected, inputs=[city,choice],outputs=[breakfast, lunch, dinner])
450
+
451
+ skip_btn.click(skip,inputs=[choice],outputs=[breakfast, lunch, dinner])
452
+
453
+ with gr.Tab(label='Attraction'):
454
+
455
+ attraction_val = ""
456
+
457
+ def on_row_selected(city, evt:gr.SelectData):
458
+ global attraction_val
459
+ attraction_val = attraction_val.replace("-","")
460
+ if evt.index[1] == 0:
461
+ attraction_val += evt.value + ', '+ city + ";"
462
+ return attraction_val
463
+
464
+ def clear():
465
+ global attraction_val
466
+ attraction_val = ""
467
+ return attraction_val
468
+
469
+
470
+ city = gr.Radio(label="City")
471
+ city_component_list += [city]
472
+ btn = gr.Button("Search")
473
+ btn_clear = gr.Button("Clear")
474
+ btn_skip = gr.Button("Skip")
475
+ output = gr.Dataframe(attractions.run_for_annotation(''), interactive=False)
476
+ annotation_button.add(components=[output])
477
+ btn.click(attractions.run_for_annotation,inputs=[city],outputs=output)
478
+ output.select(on_row_selected, inputs=[city],outputs=attraction)
479
+ btn_clear.click(clear,inputs=None,outputs=attraction)
480
+ btn_skip.click(lambda:"-",inputs=None,outputs=attraction)
481
+
482
+ tab.select(tab_hint, inputs=[current_city,transportaion,breakfast,attraction,lunch,dinner,accommodation],outputs=[current_city, transportaion,breakfast,attraction,lunch,dinner,accommodation, query_selection]+filtering_keyword_list[-2:])
483
+ component_list = current_city_list + transportaion_list + breakfast_list + attraction_list + lunch_list + dinner_list + accommodation_list
484
+ # clear_button = gr.ClearButton(components=component_list,value="Clear")
485
+ input_args = [query_selection] + component_list
486
+ auto_update_current_cost_number(auto_update_current_cost, component_list, [current_cost])
487
+ # b3.click(Recommend_new, inputs=query_selection, outputs=new_title)
488
+
489
+ annotation_button.add(components=city_component_list)
490
+ annotation_button.click(update_gloabal_idx, inputs=[query_selection], outputs=[query_display,component]+component_list+city_component_list+date_component_list+[current_cost])
491
+
492
+ if __name__ == "__main__":
493
+
494
+ demo.launch(debug=True)
assets/styles.css ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* styles.css */
2
+ .highlighted {
3
+ color: black;
4
+ background-color: #E0F7FA;
5
+ padding: 4px 8px;
6
+ text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
7
+ border-radius: 5px;
8
+ display: inline-block;
9
+ margin-right: 10px;
10
+ margin-bottom: 10px;
11
+ }
12
+
13
+ .highlighted-alt {
14
+ color: black;
15
+ background-color: #B2EBF2;
16
+ padding: 4px 8px;
17
+ text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
18
+ border-radius: 5px;
19
+ display: inline-block;
20
+ margin-right: 10px;
21
+ margin-bottom: 10px;
22
+ }
23
+
24
+ .query-highlighted {
25
+ color: black;
26
+ background-color: #C8E6C9;
27
+ padding: 8px 12px;
28
+ text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
29
+ border-radius: 5px;
30
+ font-size: 1.2em;
31
+ display: inline-block;
32
+ margin-bottom: 10px;
33
+ }
34
+
35
+ .submit_button{
36
+ background: green;
37
+ background-color: green;
38
+ color: #a3926a;
39
+ }
database/.DS_Store ADDED
Binary file (8.2 kB). View file
 
database/accommodations/clean_accommodations_2022.csv ADDED
The diff for this file is too large to render. See raw diff
 
database/attractions/attractions.csv ADDED
The diff for this file is too large to render. See raw diff
 
database/background/citySet.txt ADDED
@@ -0,0 +1,311 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ San Diego
2
+ Pellston
3
+ Buffalo
4
+ Charlotte Amalie
5
+ Flagstaff
6
+ Evansville
7
+ Hilo
8
+ Twin Falls
9
+ Newark
10
+ State College
11
+ Johnstown
12
+ Montgomery
13
+ Redding
14
+ Lynchburg
15
+ South Bend
16
+ Sarasota
17
+ Sioux Falls
18
+ Paducah
19
+ Kahului
20
+ Atlantic City
21
+ Bemidji
22
+ Toledo
23
+ Abilene
24
+ Sacramento
25
+ Amarillo
26
+ Moline
27
+ Hilton Head
28
+ Manhattan
29
+ Minneapolis
30
+ Fort Myers
31
+ Roswell
32
+ Harlingen
33
+ Seattle
34
+ Manchester
35
+ Gulfport
36
+ Gainesville
37
+ Pago Pago
38
+ Wrangell
39
+ Augusta
40
+ Waterloo
41
+ Yuma
42
+ Saipan
43
+ Christiansted
44
+ North Bend
45
+ Richmond
46
+ Albuquerque
47
+ Nashville
48
+ Aberdeen
49
+ Harrisburg
50
+ Fort Wayne
51
+ Green Bay
52
+ Wenatchee
53
+ Santa Fe
54
+ St. Petersburg
55
+ Belleville
56
+ Greensboro
57
+ Lake Charles
58
+ Traverse City
59
+ Erie
60
+ Niagara Falls
61
+ Pocatello
62
+ Idaho Falls
63
+ Alpena
64
+ Wilmington
65
+ Ontario
66
+ Iron Mountain
67
+ Lubbock
68
+ Helena
69
+ Kalamazoo
70
+ Cleveland
71
+ Grand Island
72
+ New Bern
73
+ Melbourne
74
+ Bristol
75
+ Orlando
76
+ Bismarck
77
+ Fresno
78
+ Billings
79
+ Daytona Beach
80
+ College Station
81
+ Jacksonville
82
+ Salt Lake City
83
+ Corpus Christi
84
+ Florence
85
+ Moab
86
+ Grand Forks
87
+ Las Vegas
88
+ Fairbanks
89
+ Petersburg
90
+ Wichita
91
+ Rhinelander
92
+ Kansas City
93
+ Dothan
94
+ Alamosa
95
+ Adak Island
96
+ Islip
97
+ Wichita Falls
98
+ Presque Isle
99
+ San Luis Obispo
100
+ Dayton
101
+ Fort Smith
102
+ Martha's Vineyard
103
+ Portland
104
+ Waco
105
+ New York
106
+ Columbus
107
+ Tampa
108
+ Little Rock
109
+ Kona
110
+ Clarksburg
111
+ San Angelo
112
+ Saginaw
113
+ Houston
114
+ Duluth
115
+ Valparaiso
116
+ Phoenix
117
+ Oakland
118
+ Watertown
119
+ Ogden
120
+ Cedar Rapids
121
+ Cape Girardeau
122
+ Sun Valley
123
+ Sault Ste. Marie
124
+ Trenton
125
+ Missoula
126
+ Pasco
127
+ Brainerd
128
+ Newburgh
129
+ Gustavus
130
+ Branson
131
+ Providence
132
+ Minot
133
+ Huntsville
134
+ San Antonio
135
+ Marquette
136
+ Owensboro
137
+ Del Rio
138
+ Portsmouth
139
+ Bloomington
140
+ Lexington
141
+ Santa Barbara
142
+ Baltimore
143
+ Panama City
144
+ Kodiak
145
+ Yakima
146
+ Vernal
147
+ Salisbury
148
+ Mission
149
+ Newport News
150
+ Charlottesville
151
+ Grand Junction
152
+ Baton Rouge
153
+ Beaumont
154
+ Staunton
155
+ Kalispell
156
+ Key West
157
+ Worcester
158
+ West Palm Beach
159
+ Boise
160
+ Grand Rapids
161
+ Salina
162
+ Fort Leonard Wood
163
+ Walla Walla
164
+ Everett
165
+ Dillingham
166
+ Lansing
167
+ Madison
168
+ Victoria
169
+ Sioux City
170
+ Hattiesburg
171
+ Stockton
172
+ Anchorage
173
+ Charlotte
174
+ Jamestown
175
+ Laramie
176
+ Decatur
177
+ Durango
178
+ Longview
179
+ Syracuse
180
+ St. Cloud
181
+ Santa Rosa
182
+ Bakersfield
183
+ North Platte
184
+ La Crosse
185
+ Plattsburgh
186
+ Concord
187
+ Atlanta
188
+ Provo
189
+ Ogdensburg
190
+ Ithaca
191
+ Colorado Springs
192
+ Washington
193
+ Williston
194
+ Tulsa
195
+ Midland
196
+ Champaign
197
+ Devils Lake
198
+ Greer
199
+ Muskegon
200
+ Hibbing
201
+ Santa Ana
202
+ Ponce
203
+ Prescott
204
+ Indianapolis
205
+ International Falls
206
+ Rapid City
207
+ Ketchikan
208
+ St. Louis
209
+ Santa Maria
210
+ Elmira
211
+ Alexandria
212
+ San Jose
213
+ Tucson
214
+ San Juan
215
+ Dubuque
216
+ Burbank
217
+ Gunnison
218
+ Cedar City
219
+ Hyannis
220
+ Raleigh
221
+ Norfolk
222
+ New Orleans
223
+ Medford
224
+ White Plains
225
+ Oklahoma City
226
+ Chicago
227
+ El Paso
228
+ Rockford
229
+ Aguadilla
230
+ Omaha
231
+ Scottsbluff
232
+ Yakutat
233
+ Arcata
234
+ Spokane
235
+ Brownsville
236
+ Bend
237
+ Hagerstown
238
+ Peoria
239
+ Appleton
240
+ Roanoke
241
+ Eugene
242
+ Rock Springs
243
+ Dodge City
244
+ Austin
245
+ Miami
246
+ Dallas
247
+ Mosinee
248
+ Killeen
249
+ Lihue
250
+ Pittsburgh
251
+ Tallahassee
252
+ Butte
253
+ Lawton
254
+ Honolulu
255
+ Greenville
256
+ Juneau
257
+ Myrtle Beach
258
+ Boston
259
+ Charleston
260
+ Latrobe
261
+ Knoxville
262
+ Denver
263
+ Bangor
264
+ Albany
265
+ Punta Gorda
266
+ Fort Lauderdale
267
+ Philadelphia
268
+ Binghamton
269
+ Great Falls
270
+ Shreveport
271
+ Asheville
272
+ Cheyenne
273
+ Milwaukee
274
+ Nome
275
+ Laredo
276
+ Des Moines
277
+ Fayetteville
278
+ Lewisburg
279
+ Fort Dodge
280
+ Cody
281
+ Chattanooga
282
+ Deadhorse
283
+ Kotzebue
284
+ Sitka
285
+ Bozeman
286
+ Palm Springs
287
+ Memphis
288
+ Nantucket
289
+ Texarkana
290
+ Lewiston
291
+ Valdosta
292
+ Birmingham
293
+ Scranton
294
+ Pensacola
295
+ Hancock
296
+ Los Angeles
297
+ Mason City
298
+ Savannah
299
+ West Yellowstone
300
+ Long Beach
301
+ Reno
302
+ Akron
303
+ Louisville
304
+ Hartford
305
+ Cincinnati
306
+ Rochester
307
+ San Francisco
308
+ Detroit
309
+ Monterey
310
+ Escanaba
311
+ Eau Claire
database/background/citySet_with_states.txt ADDED
@@ -0,0 +1,312 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ San Diego California
2
+ Pellston Michigan
3
+ Buffalo New York
4
+ Charlotte Amalie St. Thomas
5
+ Flagstaff Arizona
6
+ Evansville Indiana
7
+ Hilo Hawaii
8
+ Twin Falls Idaho
9
+ Newark New Jersey
10
+ State College Pennsylvania
11
+ Johnstown Pennsylvania
12
+ Charleston South Carolina
13
+ Montgomery Alabama
14
+ Redding California
15
+ Lynchburg Virginia
16
+ South Bend Indiana
17
+ Sarasota Florida
18
+ Sioux Falls South Dakota
19
+ Paducah Kentucky
20
+ Kahului Hawaii
21
+ Atlantic City New Jersey
22
+ Bemidji Minnesota
23
+ Toledo Ohio
24
+ Abilene Texas
25
+ Sacramento California
26
+ Amarillo Texas
27
+ Moline Illinois
28
+ Hilton Head South Carolina
29
+ Manhattan New York
30
+ Minneapolis Minnesota
31
+ Fort Myers Florida
32
+ Roswell New Mexico
33
+ Harlingen Texas
34
+ Seattle Washington
35
+ Manchester England
36
+ Gulfport Mississippi
37
+ Gainesville Florida
38
+ Pago Pago Eastern District
39
+ Wrangell Alaska
40
+ Augusta Georgia
41
+ Waterloo Wallonia
42
+ Yuma Arizona
43
+ Saipan Saipan
44
+ Christiansted St. Croix
45
+ North Bend Oregon
46
+ Richmond Virginia
47
+ Albuquerque New Mexico
48
+ Nashville Tennessee
49
+ Aberdeen Scotland
50
+ Harrisburg Pennsylvania
51
+ Fort Wayne Indiana
52
+ Green Bay Wisconsin
53
+ Wenatchee Washington
54
+ Santa Fe New Mexico
55
+ St. Petersburg Saint Petersburg
56
+ Belleville Illinois
57
+ Greensboro North Carolina
58
+ Lake Charles Louisiana
59
+ Traverse City Michigan
60
+ Erie Pennsylvania
61
+ Niagara Falls New York
62
+ Pocatello Idaho
63
+ Idaho Falls Idaho
64
+ Alpena Michigan
65
+ Wilmington North Carolina
66
+ Ontario Ontario
67
+ Iron Mountain Michigan
68
+ Lubbock Texas
69
+ Helena Montana
70
+ Kalamazoo Michigan
71
+ Cleveland Ohio
72
+ Grand Island Nebraska
73
+ New Bern North Carolina
74
+ Melbourne Victoria
75
+ Bristol Tennessee
76
+ Orlando Florida
77
+ Bismarck North Dakota
78
+ Fresno California
79
+ Billings Montana
80
+ Jackson Mississippi
81
+ Daytona Beach Florida
82
+ College Station Texas
83
+ Jacksonville Florida
84
+ Salt Lake City Utah
85
+ Corpus Christi Texas
86
+ Florence Tuscany
87
+ Moab Utah
88
+ Grand Forks North Dakota
89
+ Las Vegas Nevada
90
+ Fairbanks Alaska
91
+ Petersburg Virginia
92
+ Wichita Kansas
93
+ Rhinelander Wisconsin
94
+ Kansas City Missouri
95
+ Dothan Alabama
96
+ Alamosa Colorado
97
+ Adak Island Alaska
98
+ Islip New York
99
+ Wichita Falls Texas
100
+ Presque Isle Maine
101
+ San Luis Obispo California
102
+ Dayton Ohio
103
+ Fort Smith Arkansas
104
+ Martha's Vineyard Massachusetts
105
+ Portland Oregon
106
+ Waco Texas
107
+ New York New York
108
+ Columbus Ohio
109
+ Tampa Florida
110
+ Little Rock Arkansas
111
+ Kona Hawaii
112
+ Clarksburg West Virginia
113
+ San Angelo Texas
114
+ Saginaw Michigan
115
+ Houston Texas
116
+ Duluth Minnesota
117
+ Valparaiso Indiana
118
+ Phoenix Arizona
119
+ Oakland California
120
+ Watertown New York
121
+ Ogden Utah
122
+ Cedar Rapids Iowa
123
+ Cape Girardeau Missouri
124
+ Sun Valley Idaho
125
+ Sault Ste. Marie Ontario
126
+ Trenton New Jersey
127
+ Missoula Montana
128
+ Pasco Washington
129
+ Brainerd Minnesota
130
+ Newburgh New York
131
+ Gustavus Minnesota
132
+ Branson Missouri
133
+ Providence Rhode Island
134
+ Minot North Dakota
135
+ Huntsville Alabama
136
+ San Antonio Texas
137
+ Marquette Wisconsin
138
+ Owensboro Kentucky
139
+ Del Rio Texas
140
+ Portsmouth England
141
+ Bloomington Illinois
142
+ Lexington Kentucky
143
+ Santa Barbara California
144
+ Baltimore Maryland
145
+ Panama City Florida
146
+ Kodiak Alaska
147
+ Yakima Washington
148
+ Vernal Utah
149
+ Salisbury Maryland
150
+ Mission Texas
151
+ Newport News Virginia
152
+ Charlottesville Virginia
153
+ Grand Junction Colorado
154
+ Baton Rouge Louisiana
155
+ Beaumont Texas
156
+ Staunton Virginia
157
+ Kalispell Montana
158
+ Key West Florida
159
+ Worcester England
160
+ West Palm Beach Florida
161
+ Boise Idaho
162
+ Grand Rapids Michigan
163
+ Salina Kansas
164
+ Fort Leonard Wood Missouri
165
+ Walla Walla Washington
166
+ Everett Washington
167
+ Dillingham Alaska
168
+ Lansing Michigan
169
+ Madison Wisconsin
170
+ Victoria Victoria
171
+ Sioux City Iowa
172
+ Hattiesburg Mississippi
173
+ Stockton California
174
+ Anchorage Alaska
175
+ Charlotte North Carolina
176
+ Jamestown Virginia
177
+ Laramie Wyoming
178
+ Decatur Georgia
179
+ Durango Colorado
180
+ Longview Texas
181
+ Syracuse New York
182
+ St. Cloud Minnesota
183
+ Santa Rosa California
184
+ Bakersfield California
185
+ North Platte Nebraska
186
+ La Crosse Wisconsin
187
+ Plattsburgh New York
188
+ Concord New Hampshire
189
+ Atlanta Georgia
190
+ Provo Utah
191
+ Ogdensburg New York
192
+ Ithaca New York
193
+ Colorado Springs Colorado
194
+ Washington District of Columbia
195
+ Williston North Dakota
196
+ Tulsa Oklahoma
197
+ Midland Texas
198
+ Champaign Illinois
199
+ Devils Lake Wisconsin
200
+ Greer South Carolina
201
+ Muskegon Michigan
202
+ Hibbing Minnesota
203
+ Santa Ana California
204
+ Ponce Ponce
205
+ Prescott Arizona
206
+ Indianapolis Indiana
207
+ International Falls Minnesota
208
+ Rapid City South Dakota
209
+ Ketchikan Alaska
210
+ St. Louis Missouri
211
+ Santa Maria California
212
+ Elmira New York
213
+ Alexandria Alexandria Governorate
214
+ San Jose California
215
+ Tucson Arizona
216
+ San Juan San Juan
217
+ Dubuque Iowa
218
+ Burbank California
219
+ Gunnison Colorado
220
+ Cedar City Utah
221
+ Hyannis Massachusetts
222
+ Raleigh North Carolina
223
+ Norfolk Virginia
224
+ New Orleans Louisiana
225
+ Medford Oregon
226
+ White Plains New York
227
+ Oklahoma City Oklahoma
228
+ Chicago Illinois
229
+ El Paso Texas
230
+ Rockford Illinois
231
+ Aguadilla Aguadilla
232
+ Omaha Nebraska
233
+ Scottsbluff Nebraska
234
+ Yakutat Alaska
235
+ Arcata California
236
+ Spokane Washington
237
+ Brownsville Texas
238
+ Bend Oregon
239
+ Hagerstown Maryland
240
+ Peoria Illinois
241
+ Appleton Wisconsin
242
+ Roanoke Virginia
243
+ Eugene Oregon
244
+ Rock Springs Wyoming
245
+ Dodge City Kansas
246
+ Austin Texas
247
+ Miami Florida
248
+ Dallas Texas
249
+ Mosinee Wisconsin
250
+ Killeen Texas
251
+ Lihue Hawaii
252
+ Pittsburgh Pennsylvania
253
+ Tallahassee Florida
254
+ Butte California
255
+ Lawton Oklahoma
256
+ Honolulu Hawaii
257
+ Greenville South Carolina
258
+ Juneau Alaska
259
+ Myrtle Beach South Carolina
260
+ Boston Massachusetts
261
+ Latrobe Pennsylvania
262
+ Knoxville Tennessee
263
+ Denver Colorado
264
+ Bangor Maine
265
+ Albany New York
266
+ Punta Gorda Florida
267
+ Fort Lauderdale Florida
268
+ Philadelphia Pennsylvania
269
+ Binghamton New York
270
+ Great Falls Montana
271
+ Shreveport Louisiana
272
+ Asheville North Carolina
273
+ Cheyenne Wyoming
274
+ Milwaukee Wisconsin
275
+ Nome Alaska
276
+ Laredo Texas
277
+ Des Moines Iowa
278
+ Fayetteville North Carolina
279
+ Lewisburg Pennsylvania
280
+ Fort Dodge Iowa
281
+ Cody Wyoming
282
+ Chattanooga Tennessee
283
+ Deadhorse Alaska
284
+ Kotzebue Alaska
285
+ Sitka Alaska
286
+ Bozeman Montana
287
+ Palm Springs California
288
+ Memphis Tennessee
289
+ Nantucket Massachusetts
290
+ Texarkana Texas
291
+ Lewiston Idaho
292
+ Valdosta Georgia
293
+ Birmingham England
294
+ Scranton Pennsylvania
295
+ Pensacola Florida
296
+ Hancock Michigan
297
+ Los Angeles California
298
+ Mason City Iowa
299
+ Savannah Georgia
300
+ West Yellowstone Montana
301
+ Long Beach California
302
+ Reno Nevada
303
+ Akron Ohio
304
+ Louisville Kentucky
305
+ Hartford Connecticut
306
+ Cincinnati Ohio
307
+ Rochester New York
308
+ San Francisco California
309
+ Detroit Michigan
310
+ Monterey California
311
+ Escanaba Michigan
312
+ Eau Claire Wisconsin
database/background/clean_data.py ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ with open('database/background/citySet.txt','r') as f:
2
+ city_set = f.read().strip().split('\n')
3
+
4
+ with open('database/background/citySet_with_states.txt','r') as f:
5
+ lines = f.read().strip().split('\n')
6
+ data = []
7
+ for unit in lines:
8
+ if unit.split('\t')[0] in city_set:
9
+ data.append(unit)
10
+
11
+ with open('database/background/citySet_with_states.txt','w') as f:
12
+ for unit in data:
13
+ f.write(unit + '\n')
14
+ f.close()
database/background/get_state_set.py ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ # print now directory
3
+ print(os.getcwd())
4
+ state_set = set()
5
+ city_set = set()
6
+ with open('database/background/citySet_with_states.txt','r') as f:
7
+ city_set = f.read().strip().split('\n')
8
+ for city in city_set:
9
+ city_name = city.split('\t')[0]
10
+ state_name = city.split('\t')[1]
11
+ state_set.add(state_name)
12
+ city_set.add(city_name)
13
+ # write to new file
14
+ f.close()
15
+ # with open('database/background/stateSet.txt', 'a') as f:
16
+ # for state_name in state_set:
17
+ # f.write(state_name.split('\\')[0] + '\n')
18
+ # f.close()
19
+ with open('database/background/citySet_2.txt', 'a') as f:
20
+ for city_name in city_set:
21
+ f.write(city_name.split('\\')[0] + '\n')
22
+ f.close()
database/background/stateSet.txt ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Wallonia
2
+ St. Thomas
3
+ Alaska
4
+ Washington
5
+ Kansas
6
+ Scotland
7
+ Michigan
8
+ Eastern District
9
+ New Jersey
10
+ Utah
11
+ Alexandria Governorate
12
+ North Dakota
13
+ Connecticut
14
+ West Virginia
15
+ Aguadilla
16
+ North Carolina
17
+ Ohio
18
+ Colorado
19
+ Arkansas
20
+ New York
21
+ Mississippi
22
+ San Juan
23
+ Minnesota
24
+ California
25
+ Maine
26
+ Nebraska
27
+ Idaho
28
+ Alabama
29
+ Texas
30
+ Maryland
31
+ England
32
+ New Mexico
33
+ South Carolina
34
+ Montana
35
+ Ponce
36
+ Tennessee
37
+ Florida
38
+ Oklahoma
39
+ Hawaii
40
+ New Hampshire
41
+ Iowa
42
+ Oregon
43
+ Wyoming
44
+ Pennsylvania
45
+ Tuscany
46
+ Virginia
47
+ Indiana
48
+ Missouri
49
+ District of Columbia
50
+ Saint Petersburg
51
+ Nevada
52
+ Massachusetts
53
+ Louisiana
54
+ Wisconsin
55
+ Saipan
56
+ Ontario
57
+ St. Croix
58
+ Kentucky
59
+ South Dakota
60
+ Arizona
61
+ Georgia
62
+ Rhode Island
63
+ Illinois
64
+ None
65
+ Victoria
database/background/test.py ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+
2
+ f = open('/home/xj/toolAugEnv/code/toolConstraint/database/background/citySet.txt','r').read().strip().split('\n')
3
+ citySet = []
4
+ for line in f:
5
+ if line not in citySet:
6
+ citySet.append(line.strip())
7
+ else:
8
+ print(line)
database/flights/.DS_Store ADDED
Binary file (6.15 kB). View file
 
database/flights/clean_Flights_2022.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8dafdb0e3f8b79ce599a1e612a772865295bc226b46e5fb278368f7255b11cee
3
+ size 304807007
database/googleDistanceMatrix/distance.csv ADDED
The diff for this file is too large to render. See raw diff
 
database/restaurants/.DS_Store ADDED
Binary file (6.15 kB). View file
 
database/restaurants/clean_restaurant_2022.csv ADDED
The diff for this file is too large to render. See raw diff
 
evaluataion/commonsenseConstraint.py ADDED
@@ -0,0 +1,547 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from src.utils import get_valid_name_city,extract_before_parenthesis,extract_numbers_from_filenames
2
+ from tools.flights.apis import Flights
3
+ from tools.accommodations.apis import Accommodations
4
+ from tools.restaurants.apis import Restaurants
5
+ from tools.googleDistanceMatrix.apis import GoogleDistanceMatrix
6
+ from tools.attractions.apis import Attractions
7
+ import math
8
+ import json
9
+ import re
10
+ import os
11
+ import sys
12
+ from tqdm import tqdm
13
+ import argparse
14
+
15
+ sys.path.append(os.path.abspath(os.path.join(os.getcwd(), "..")))
16
+ os.chdir(os.path.dirname(os.path.abspath(__file__)))
17
+
18
+ flight = Flights()
19
+ accommodation = Accommodations()
20
+ restaurants = Restaurants()
21
+ googleDistanceMatrix = GoogleDistanceMatrix()
22
+ attractions = Attractions()
23
+
24
+ city_state_set = open('/home/user/app/database/background/citySet_with_states.txt','r').read().split('\n')
25
+ city_state_map = {x:y for x,y in [unit.split('\t') for unit in city_state_set]}
26
+
27
+
28
+ def load_line_json_data(filename):
29
+ data = []
30
+ with open(filename, 'r', encoding='utf-8') as f:
31
+ for line in f.read().strip().split('\n'):
32
+ unit = json.loads(line)
33
+ data.append(unit)
34
+ return data
35
+
36
+
37
+ def count_consecutive_values(lst):
38
+ if not lst:
39
+ return []
40
+
41
+ result = []
42
+ current_string = lst[0]
43
+ count = 1
44
+
45
+ for i in range(1, len(lst)):
46
+ if lst[i] == current_string:
47
+ count += 1
48
+ else:
49
+ result.append((current_string, count))
50
+ current_string = lst[i]
51
+ count = 1
52
+
53
+ result.append((current_string, count)) # Add the last group of values
54
+ return result
55
+
56
+
57
+ def transportation_match(text: str):
58
+
59
+ if 'taxi' in text.lower():
60
+ return 'Taxi'
61
+
62
+ elif 'self-driving' in text.lower():
63
+ return 'Self-driving'
64
+
65
+ elif 'flight' in text.lower():
66
+ return 'Flight'
67
+
68
+
69
+ def extract_from_to(text: str):
70
+ """
71
+ Extracts 'A' and 'B' from the format "from A to B" in the given text, with B ending at a comma or the end of the string.
72
+
73
+ Args:
74
+ - text (str): The input string.
75
+
76
+ Returns:
77
+ - tuple: A tuple containing 'A' and 'B'. If no match is found, returns (None, None).
78
+ """
79
+ pattern = r"from\s+(.+?)\s+to\s+([^,]+)(?=[,\s]|$)"
80
+ matches = re.search(pattern, text)
81
+ return matches.groups() if matches else (None, None)
82
+
83
+
84
+
85
+ def is_valid_city_sequence(city_list):
86
+ """
87
+ Checks if the city sequence is valid. A valid sequence has every city (except the first and last)
88
+ appearing consecutively, and no city should appear again once its sequence is over.
89
+
90
+ Args:
91
+ - city_list (list): List of cities.
92
+
93
+ Returns:
94
+ - bool: True if the sequence is valid, False otherwise.
95
+ """
96
+
97
+ # If the list has less than 3 cities, it's invalid.
98
+ if len(city_list) < 3:
99
+ return False
100
+
101
+ # Set to keep track of visited cities
102
+ visited_cities = set()
103
+
104
+ i = 0
105
+ while i < len(city_list):
106
+ city = city_list[i]
107
+
108
+ # If the city was already visited, it's invalid.
109
+ if city in visited_cities and (i != 0 and i != len(city_list) - 1):
110
+ return False
111
+
112
+ # Count the consecutive occurrences of the city
113
+ count = 0
114
+ while i < len(city_list) and city_list[i] == city:
115
+ count += 1
116
+ i += 1
117
+
118
+ # If the city appeared only once in the medium, it's invalid.
119
+ if count == 1 and 0 < i - 1 < len(city_list) - 1:
120
+ return False
121
+
122
+ visited_cities.add(city)
123
+
124
+ return True
125
+
126
+
127
+
128
+ def is_reasonalbe_visiting_city(question, tested_data):
129
+
130
+ city_list = []
131
+
132
+ # print(tested_data)
133
+ for i in range(min(question['days'],len(tested_data))):
134
+ city_value = tested_data[i]['current_city']
135
+
136
+ if 'from' in city_value:
137
+ city1, city2 = extract_from_to(city_value)
138
+ city1 = extract_before_parenthesis(city1)
139
+ city2 = extract_before_parenthesis(city2)
140
+ if i==0 and city1 != question['org']:
141
+ return False, f"The first day's city should be {question['org']}."
142
+
143
+ city_list += [city1, city2]
144
+
145
+ else:
146
+ city_list.append(extract_before_parenthesis(city_value))
147
+
148
+ if city_list[0] != city_list[-1]:
149
+ return False, "The trip should be a closed circle."
150
+
151
+ if not is_valid_city_sequence(city_list):
152
+ return False, "The city sequence is invalid."
153
+
154
+ for idx, city in enumerate(city_list):
155
+ if city not in city_state_map:
156
+ return False, f"{city} is not a valid city."
157
+ if idx not in [0,len(city_list)-1] and question['days'] >3 and city_state_map[city] != question['dest']:
158
+ return False, f"{city} is not in {question['dest']}."
159
+
160
+ return True, None
161
+
162
+
163
+ def is_valid_restaurants(question, tested_data):
164
+
165
+ restaurants_list = []
166
+
167
+ for i in range(min(question['days'],len(tested_data))):
168
+ unit = tested_data[i]
169
+
170
+ if 'breakfast' in unit and unit['breakfast'] and unit['breakfast'] != '-':
171
+ if unit['breakfast'] not in restaurants_list:
172
+ restaurants_list.append(unit['breakfast'])
173
+ else:
174
+ return False, f"The restaurant in day {i+1} breakfast is repeated."
175
+ # elif 'breakfast' not in unit :
176
+ # return False, f"No Breakfast Info."
177
+
178
+ if 'lunch' in unit and unit['lunch'] and unit['lunch'] != '-':
179
+ if unit['lunch'] not in restaurants_list:
180
+ restaurants_list.append(unit['lunch'])
181
+ else:
182
+ return False, f"The restaurant in day {i+1} lunch {unit['lunch']} is repeated."
183
+ # elif 'lunch' not in unit:
184
+ # return False, f"No Lunch Info."
185
+
186
+ if 'dinner' in unit and unit['dinner'] and unit['dinner'] != '-':
187
+ if unit['dinner'] not in restaurants_list:
188
+ restaurants_list.append(unit['dinner'])
189
+ else:
190
+ return False, f"The restaurant in day {i+1} dinner is repeated."
191
+ # elif 'dinner' not in unit:
192
+ # return False, f"No Dinner Info."
193
+
194
+ return True, None
195
+
196
+ def is_valid_attractions(question, tested_data):
197
+
198
+ attractions_list = []
199
+
200
+ for i in range(min(question['days'],len(tested_data))):
201
+ unit = tested_data[i]
202
+
203
+ if 'attraction' in unit and unit['attraction'] and unit['attraction'] != '-':
204
+ for attraction in unit['attraction'].split(';')[:-1]:
205
+ if attraction not in attractions_list:
206
+ attractions_list.append(attraction)
207
+ else:
208
+ return False, f"The attraction '{attraction}' in day {i+1} is repeated."
209
+
210
+ # elif 'attraction' not in unit:
211
+ # return False, f"No Attraction Info."
212
+
213
+ return True, None
214
+
215
+ def is_valid_transportation(question, tested_data):
216
+
217
+ if tested_data[0]['transportation'] and tested_data[0]['transportation'] != '-':
218
+ transportation_list = [transportation_match(tested_data[0]['transportation'])]
219
+
220
+ else:
221
+ return False, "The transportation in day 1 should not be empty."
222
+
223
+ for i in range(min(question['days'],len(tested_data))):
224
+ unit = tested_data[i]
225
+
226
+ if 'transportation' in unit and unit['transportation'] and unit['transportation'] != '-':
227
+ transportation_list.append(transportation_match(unit['transportation']))
228
+ # elif 'transportation' not in unit:
229
+ # return False, f"No Transportation Info."
230
+
231
+ if (('Self-driving' in transportation_list) and ('Flight' in transportation_list)) or (('Taxi' in transportation_list) and ('Self-driving' in transportation_list)):
232
+ return False, "The transportation is conflicting."
233
+
234
+ return True, None
235
+
236
+ def is_valid_information_in_current_city(question, tested_data):
237
+
238
+ for i in range(min(question['days'],len(tested_data))):
239
+ unit = tested_data[i]
240
+ current_city = unit['current_city']
241
+ final_city_list = []
242
+
243
+ if 'from' in current_city:
244
+ city1, city2 = extract_from_to(current_city)
245
+ city1 = extract_before_parenthesis(city1)
246
+ city2 = extract_before_parenthesis(city2)
247
+ final_city_list = [city1, city2]
248
+ else:
249
+ final_city_list = extract_before_parenthesis(current_city)
250
+
251
+ if 'transportation' in unit and unit['transportation'] and unit['transportation'] != '-':
252
+ for city in final_city_list:
253
+ if city not in unit['transportation']:
254
+ # print(city)
255
+ return False, f"The transportation in day {i+1} is invalid city choice."
256
+ # elif 'transportation' not in unit:
257
+ # return False, f"No Transportation Info."
258
+
259
+ if 'breakfast' in unit and unit['breakfast'] and unit['breakfast'] != '-':
260
+
261
+ flag = False
262
+
263
+ for city in final_city_list:
264
+ if city in unit['breakfast']:
265
+ flag = True
266
+
267
+ if not flag:
268
+ return False, f"The breakfast in day {i+1} is invalid city choice."
269
+ # elif 'breakfast' not in unit:
270
+ # return False, f"No Breakfast Info."
271
+
272
+ if 'lunch' in unit and unit['lunch'] and unit['lunch'] != '-':
273
+ flag = False
274
+
275
+ for city in final_city_list:
276
+ if city in unit['lunch']:
277
+ flag = True
278
+
279
+ if not flag:
280
+ return False, f"The lunch in day {i+1} is invalid city choice."
281
+ # elif 'lunch' not in unit:
282
+ # return False, f"No Lunch Info."
283
+
284
+ if 'dinner' in unit and unit['dinner'] and unit['dinner'] != '-':
285
+ flag = False
286
+
287
+ for city in final_city_list:
288
+ if city in unit['dinner']:
289
+ flag = True
290
+
291
+ if not flag:
292
+ return False, f"The dinner in day {i+1} is invalid city choice."
293
+ # elif 'dinner' not in unit:
294
+ # return False, f"No Dinner Info."
295
+
296
+ if 'attraction' in unit and unit['attraction'] and unit['attraction'] != '-':
297
+
298
+ attraction_list = unit['attraction'].split(';')[:-1]
299
+
300
+ for attraction in attraction_list:
301
+ flag = False
302
+ for city in final_city_list:
303
+ if city in attraction:
304
+ flag = True
305
+ if not flag:
306
+ return False, f"The attraction in day {i+1} is invalid city choice."
307
+
308
+ # elif 'attraction' not in unit:
309
+ # return False, f"No Attraction Info."
310
+
311
+
312
+ if 'accommodation' in unit and unit['accommodation'] and unit['accommodation'] != '-':
313
+
314
+ if final_city_list[-1] not in unit['accommodation']:
315
+ return False, f"The accommodation in day {i+1} is invalid city choice."
316
+
317
+ # elif 'accommodation' not in unit:
318
+ # return False, f"No Accommodation Info."
319
+
320
+ return True, None
321
+
322
+ # hallucination
323
+ def is_valid_information_in_sandbox(question, tested_data):
324
+
325
+ for i in range(min(question['days'],len(tested_data))):
326
+ unit = tested_data[i]
327
+
328
+ if unit['transportation'] and unit['transportation'] != '-':
329
+ value = unit['transportation']
330
+ org_city, dest_city = extract_from_to(value)
331
+ if org_city == None or dest_city == None:
332
+ org_city, dest_city = extract_from_to(unit['current_city'])
333
+ if 'flight number' in value.lower():
334
+ try:
335
+ org_city = extract_before_parenthesis(org_city)
336
+ dest_city = extract_before_parenthesis(dest_city)
337
+ except TypeError:
338
+ raise ValueError("The transportation {} in day {} can not be parsed.".format(value,i+1))
339
+ # print(value)
340
+ if len(flight.data[(flight.data['Flight Number'] == value.split('Flight Number: ')[1].split(',')[0]) & (flight.data['OriginCityName']==org_city) & (flight.data['DestCityName']==dest_city)]) < 1:
341
+ return False, f"The flight number in day {i+1} is invalid in the sandbox."
342
+
343
+ elif 'self-driving' in value.lower() or 'taxi' in value.lower():
344
+ try:
345
+ org_city = extract_before_parenthesis(org_city)
346
+ dest_city = extract_before_parenthesis(dest_city)
347
+ except TypeError:
348
+ org_city = '-'
349
+ dest_city = '-'
350
+ print("The transportation {} in day {} can not be parsed and '-' will be used instead.".format(value,i+1))
351
+
352
+ if 'self-driving' in value.lower():
353
+ if googleDistanceMatrix.run_for_evaluation(org_city, dest_city, mode='self-driving')['cost'] == None:
354
+ return False, f"The self-driving in day {i+1} is invalid in the sandbox."
355
+ else:
356
+ if googleDistanceMatrix.run_for_evaluation(org_city, dest_city, mode='taxi')['cost'] == None:
357
+ return False, f"The taxi in day {i+1} is invalid in the sandbox."
358
+
359
+ if 'breakfast' in unit and unit['breakfast'] and unit['breakfast'] != '-':
360
+ name, city = get_valid_name_city(unit['breakfast'])
361
+ if len(restaurants.data[(restaurants.data['Name'].astype(str).str.contains(re.escape(name))) & (restaurants.data['City'] == city)]) < 1:
362
+ return False, f"The breakfast in day {i+1} is invalid in the sandbox."
363
+ # elif 'breakfast' not in unit:
364
+ # return False, f"No Breakfast Info."
365
+
366
+ if 'lunch' in unit and unit['lunch'] and unit['lunch'] != '-':
367
+ name, city = get_valid_name_city(unit['lunch'])
368
+ if len(restaurants.data[(restaurants.data['Name'].astype(str).str.contains(re.escape(name))) & (restaurants.data['City'] == city)]) < 1:
369
+ return False, f"The lunch in day {i+1} is invalid in the sandbox."
370
+ # elif 'lunch' not in unit:
371
+ # return False, f"No Lunch Info."
372
+
373
+ if 'dinner' in unit and unit['dinner'] and unit['dinner'] != '-':
374
+ name, city = get_valid_name_city(unit['dinner'])
375
+ if len(restaurants.data[(restaurants.data['Name'].astype(str).str.contains(re.escape(name))) & (restaurants.data['City'] == city)]) < 1:
376
+ return False, f"The dinner in day {i+1} is invalid in the sandbox."
377
+ # elif 'dinner' not in unit:
378
+ # return False, f"No Dinner Info."
379
+
380
+ if 'attraction' in unit and unit['attraction'] and unit['attraction'] != '-':
381
+ attractions_list = unit['attraction'].split(';')[:-1]
382
+ for attraction in attractions_list:
383
+ name, city = get_valid_name_city(attraction)
384
+ if len(attractions.data[(attractions.data['Name'].astype(str).str.contains(re.escape(name))) & (attractions.data['City'] == city)]) < 1:
385
+ return False, f"The attraction {attraction} in day {i+1} is invalid in the sandbox."
386
+ # elif 'attraction' not in unit:
387
+ # return False, f"No Attraction Info."
388
+
389
+ if 'accommodation' in unit and unit['accommodation'] and unit['accommodation'] != '-':
390
+ name, city = get_valid_name_city(unit['accommodation'])
391
+ # print(name,city)
392
+ # print(accommodation.data[accommodation.data['NAME'].astype(str).str.contains(re.escape(name))])
393
+ if len(accommodation.data[(accommodation.data['NAME'].astype(str).str.contains(re.escape(name))) & (accommodation.data['city'] == city)]) < 1:
394
+ return False, f"The accommodation in day {i+1} is invalid in the sandbox."
395
+ # elif 'accommodation' not in unit:
396
+ # return False, f"No Accommodation Info."
397
+
398
+ return True, None
399
+
400
+
401
+ def is_valid_accommodaton(question, tested_data):
402
+ data = []
403
+ for i in range(min(question['days'],len(tested_data))):
404
+ unit = tested_data[i]
405
+
406
+ if 'accommodation' not in unit:
407
+ return False, f"No Accommodation Info."
408
+
409
+ data.append(unit['accommodation'])
410
+ # data = [unit['accommodation'] for unit in tested_data]
411
+ consectutive_accommodation = count_consecutive_values(data)
412
+ for unit in consectutive_accommodation:
413
+ # print(unit)
414
+ if unit and unit[0] not in ['-',''] :
415
+ name, city = get_valid_name_city(unit[0])
416
+ # print(unit[0],name,city)
417
+ # try:
418
+ if len(accommodation.data[(accommodation.data['NAME'].astype(str).str.contains(re.escape(name))) & (accommodation.data['city'] == city)]) == 1 and unit[1] < accommodation.data[(accommodation.data['NAME'].astype(str).str.contains(re.escape(name))) & (accommodation.data['city'] == city)].iloc[0]['minimum nights']:
419
+ return False, f"The accommodation {unit[0]} do not obey the minumum nights rule."
420
+ # can not parse data
421
+ # except re.error:
422
+ # continue
423
+
424
+ return True, None
425
+
426
+ def is_valid_visiting_city_number(question, tested_data):
427
+
428
+ city_set = set()
429
+
430
+
431
+ for i in range(min(question['days'],len(tested_data))):
432
+ city_value = tested_data[i]['current_city']
433
+
434
+ if 'from' in city_value:
435
+ city1, city2 = extract_from_to(city_value)
436
+ city1 = extract_before_parenthesis(city1)
437
+ city2 = extract_before_parenthesis(city2)
438
+ if i==0 and city1 != question['org']:
439
+ return False, f"The first day's city should be {question['org']}."
440
+
441
+ city_set.add(city1)
442
+ city_set.add(city2)
443
+
444
+ else:
445
+ city_set.add(extract_before_parenthesis(city_value))
446
+
447
+ city_set.discard(question['org'])
448
+
449
+ if len(city_set) != question['visiting_city_number']:
450
+ return False, f"The number of visiting cities should be {question['visiting_city_number']}."
451
+
452
+ return True, None
453
+
454
+ def is_valid_days(question, tested_data):
455
+ lens = 0
456
+ for i in range(min(question['days'],len(tested_data))):
457
+ if tested_data[i] != {} and tested_data[i]['current_city'] != "You don't need to fill in the information for this or later days.":
458
+ lens += 1
459
+
460
+ if lens != question['days']:
461
+ # print(lens)
462
+ return False, f"The number of days should be {question['days']}."
463
+ else:
464
+ return True, None
465
+
466
+ def is_not_absent(question, tested_data):
467
+ needed_info = 6 * question['days']
468
+ total_valid_info = 0
469
+
470
+ if not is_valid_days(question, tested_data)[0]:
471
+ return False, "Invalid Days"
472
+
473
+ if not is_valid_visiting_city_number(question, tested_data)[0]:
474
+ return False, "Invalid City Number"
475
+
476
+ for i in range(min(question['days'],len(tested_data))):
477
+ unit = tested_data[i]
478
+
479
+ if 'transportation' not in unit:
480
+ return False, f"No Transportation Info."
481
+
482
+ if 'breakfast' not in unit:
483
+ return False, f"No Breakfast Info."
484
+
485
+ if 'lunch' not in unit:
486
+ return False, f"No Lunch Info."
487
+
488
+ if 'dinner' not in unit:
489
+ return False, f"No Dinner Info."
490
+
491
+ if 'attraction' not in unit:
492
+ return False, f"No Attraction Info."
493
+
494
+ if 'accommodation' not in unit:
495
+ return False, f"No Accommodation Info."
496
+
497
+ if ('from ' in unit['current_city'] or 'to ' in unit['current_city']) and unit['transportation'] in ['','-']:
498
+ return False, f"No transportation in day {i+1} is not allowed."
499
+
500
+ if ('from ' not in unit['current_city'] and ' to ' not in unit['current_city']) and unit['attraction'] in ['','-']:
501
+ return False, f"No attaction in day {i+1} is not allowed."
502
+
503
+ if i != question['days'] - 1 and unit['accommodation'] in ['','-']:
504
+ return False, f"No accommodation in day {i+1} is not allowed."
505
+
506
+ if (unit['breakfast'] in ['','-'] or unit['lunch'] in ['','-'] or unit['dinner'] in ['','-']) and 'from ' not in unit['current_city']:
507
+ return False, f"No meal in day {i+1} is not allowed."
508
+
509
+
510
+ for key in unit:
511
+ if unit[key] and unit[key] != '-':
512
+ total_valid_info += 1
513
+
514
+
515
+ if total_valid_info * 1.0 / needed_info < 0.5:
516
+ return False, f"The absent information is more than 50%."
517
+
518
+ return True, None
519
+
520
+
521
+ def evaluation(query_data, tested_data):
522
+ return_info = {}
523
+ return_info['is_reasonalbe_visiting_city'] = is_reasonalbe_visiting_city(query_data, tested_data)
524
+ return_info['is_valid_restaurants'] = is_valid_restaurants(query_data, tested_data)
525
+ return_info['is_valid_attractions'] = is_valid_attractions(query_data, tested_data)
526
+ return_info['is_valid_accommodation'] = is_valid_accommodaton(query_data, tested_data)
527
+ return_info['is_valid_transportation'] = is_valid_transportation(query_data, tested_data)
528
+ return_info['is_valid_information_in_current_city'] = is_valid_information_in_current_city(query_data, tested_data)
529
+ return_info['is_valid_information_in_sandbox'] = is_valid_information_in_sandbox(query_data, tested_data)
530
+ return_info['is_not_absent'] = is_not_absent(query_data, tested_data)
531
+ return return_info
532
+
533
+ def boolean_evaluation(query_data, tested_data):
534
+ return_info = {}
535
+ return_info['is_reasonalbe_visiting_city'] = is_reasonalbe_visiting_city(query_data, tested_data)
536
+ return_info['is_valid_restaurants'] = is_valid_restaurants(query_data, tested_data)
537
+ return_info['is_valid_accommodation'] = is_valid_accommodaton(query_data, tested_data)
538
+ return_info['is_valid_attractions'] = is_valid_attractions(query_data, tested_data)
539
+ return_info['is_valid_transportation'] = is_valid_transportation(query_data, tested_data)
540
+ return_info['is_valid_information_in_current_city'] = is_valid_information_in_current_city(query_data, tested_data)
541
+ return_info['is_valid_information_in_sandbox'] = is_valid_information_in_sandbox(query_data, tested_data)
542
+ return_info['is_not_absent'] = is_not_absent(query_data, tested_data)
543
+ for key in return_info:
544
+ if return_info[key][0] == False:
545
+ print(return_info[key][1])
546
+ return False
547
+ return True
evaluataion/eval.py ADDED
@@ -0,0 +1,181 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from commonsenseConstraint import evaluation as commonsense_eval
2
+ from hardConstraint import evaluation as hard_eval
3
+ import json
4
+ from tqdm import tqdm
5
+ from datasets import load_dataset
6
+
7
+
8
+ def load_line_json_data(filename):
9
+ data = []
10
+ with open(filename, 'r', encoding='utf-8') as f:
11
+ for line in f.read().strip().split('\n'):
12
+ unit = json.loads(line)
13
+ data.append(unit)
14
+ return data
15
+
16
+ def count_true_false(data):
17
+ """Count the number of true and false values in a list."""
18
+ true_count = data.count(True)
19
+ false_count = data.count(False)
20
+ return true_count, false_count
21
+
22
+ def statistics(commonsense_statistic):
23
+ """Generate statistics for each level and day in the given data with a different structure."""
24
+ result = {level: {day: {} for day in commonsense_statistic[level]} for level in commonsense_statistic}
25
+
26
+ for level, days in commonsense_statistic.items():
27
+ for day, dicts in days.items():
28
+ for dct in dicts:
29
+ if dct:
30
+ for key, data in dct.items():
31
+ true_count, false_count = count_true_false(data)
32
+ if key not in result[level][day]:
33
+ result[level][day][key] = {"true": 0, "false": 0}
34
+ result[level][day][key]["true"] += true_count
35
+ result[level][day][key]["false"] += false_count
36
+
37
+ return result
38
+
39
+
40
+ def eval_score(validation_or_test: str, file_path: str, TOKEN):
41
+
42
+ if validation_or_test == 'validation':
43
+ query_data_list = load_dataset('osunlp/TravelBenchEval','validation',token=TOKEN)['validation']
44
+ elif validation_or_test == 'test':
45
+ query_data_list = load_dataset('osunlp/TravelBenchEval','test',token=TOKEN)['test']
46
+
47
+ query_data_list = [x for x in query_data_list]
48
+ hardConstraint_statistic= {level:{day:[] for day in [3,5,7]} for level in ['easy','medium','hard']}
49
+ commonsenseConstraint_statistic = {level:{day:[] for day in [3,5,7]} for level in ['easy','medium','hard']}
50
+ tested_plans = load_line_json_data(file_path)
51
+ delivery_cnt = 0
52
+ plan_constraint_store = []
53
+ for idx in tqdm(range(0,len(query_data_list))):
54
+ query_data = query_data_list[idx]
55
+ tested_plan = tested_plans[idx]
56
+ if type(query_data) == str:
57
+ query_data = eval(query_data)
58
+ if type(tested_plan) == str:
59
+ tested_plan = eval(tested_plan)
60
+ if type(query_data['local_constraint']) == str:
61
+ query_data['local_constraint'] = eval(query_data['local_constraint'])
62
+
63
+ if tested_plan['plan']:
64
+ delivery_cnt += 1
65
+ commonsense_info_box = commonsense_eval(query_data,tested_plan['plan'])
66
+ else:
67
+ commonsense_info_box = None
68
+
69
+ if commonsense_info_box and commonsense_info_box['is_not_absent'][0] and commonsense_info_box['is_valid_information_in_sandbox'][0]:
70
+ hard_info_box = hard_eval(query_data,tested_plan['plan'])
71
+ else:
72
+ hard_info_box = None
73
+
74
+ plan_constraint_store.append({'commonsense_constraint':commonsense_info_box,'hard_constraint':hard_info_box})
75
+
76
+ commonsenseConstraint_statistic[query_data['level']][query_data['days']].append(commonsense_info_box)
77
+ hardConstraint_statistic[query_data['level']][query_data['days']].append(hard_info_box)
78
+
79
+ commonsenseConstraint_statistic_processed = statistics(commonsenseConstraint_statistic)
80
+ hardConstraint_statistic_processed = statistics(hardConstraint_statistic)
81
+ # print(commonsenseConstraint_statistic_processed)
82
+ # print(hardConstraint_statistic_processed)
83
+ constraint_record = {key: {day: {'house rule':0, 'cuisine':0, 'room type':0, 'transportation':0} for day in [3,5,7]} for key in ['medium','hard']}
84
+ constraint_mapping = {'house rule':'valid_room_rule','cuisine':'valid_cuisine','room type':'valid_room_type','transportation':'valid_transportation'}
85
+ mapping_constraint_record = {key: {day: {'valid_room_rule':0, 'valid_cuisine':0, 'valid_room_type':0, 'valid_transportation':0} for day in [3,5,7]} for key in ['medium','hard']}
86
+ count_record = {key:{day:0 for day in [3,5,7]} for key in ['easy','medium','hard']}
87
+
88
+ for unit in query_data_list:
89
+ count_record[unit['level']][unit['days']] += 1
90
+ for key in constraint_record['medium'][3]:
91
+ if unit['local_constraint'][key] != None:
92
+ constraint_record[unit['level']][unit['days']][key] += 1
93
+ mapping_constraint_record[unit['level']][unit['days']][constraint_mapping[key]] += 1
94
+
95
+ data_record = {key:{day:[] for day in [3,5,7]} for key in ['easy','medium','hard']}
96
+
97
+ constraint_dis_record = {"commonsense":{"pass":0,"total":0},"hard":{"pass":0,"total":0}}
98
+
99
+ for constraint in ['commonsense','hard']:
100
+ if constraint == 'commonsense':
101
+ constraint_statistic = commonsenseConstraint_statistic_processed
102
+ elif constraint == 'hard':
103
+ constraint_statistic = hardConstraint_statistic_processed
104
+
105
+ key_dict = {'commonsense':['is_valid_information_in_current_city','is_valid_information_in_sandbox','is_reasonalbe_visiting_city','is_valid_restaurants','is_valid_transportation','is_valid_attractions','is_valid_accommodation','is_not_absent'],'hard':['valid_cost','valid_room_rule','valid_cuisine','valid_room_type','valid_transportation']}
106
+
107
+ for key in constraint_statistic:
108
+ # level
109
+ for key2 in constraint_statistic[key]:
110
+ # day
111
+ # print(key2)
112
+ # key2 = eval(key2)
113
+ if key2 == -1:
114
+ print(constraint_statistic[key])
115
+ exit(0)
116
+ for key3 in key_dict[constraint]:
117
+ data_record[key][key2].append('0/0')
118
+ if key3 in constraint_statistic[key][key2]:
119
+ constraint_dis_record[constraint]['pass'] += constraint_statistic[key][key2][key3]['true']
120
+ if constraint == 'hard':
121
+ if key == 'hard' and key3 in ['valid_room_rule','valid_cuisine','valid_room_type','valid_transportation']:
122
+ data_record[key][key2][-1] = f"{constraint_statistic[key][key2][key3]['true']}/{mapping_constraint_record[key][key2][key3]}"
123
+ constraint_dis_record[constraint]['total'] += mapping_constraint_record[key][key2][key3]
124
+ elif key == 'medium' and key3 in ['valid_room_rule','valid_cuisine','valid_room_type']:
125
+ data_record[key][key2][-1] = f"{constraint_statistic[key][key2][key3]['true']}/{mapping_constraint_record[key][key2][key3]}"
126
+ constraint_dis_record[constraint]['total'] += mapping_constraint_record[key][key2][key3]
127
+ else:
128
+ data_record[key][key2][-1] = f"{constraint_statistic[key][key2][key3]['true']}/{count_record[key][key2]}"
129
+ if key3 in ['valid_cost','valid_visitng_city_number','valid_days']:
130
+ constraint_dis_record[constraint]['total'] += count_record[key][key2]
131
+ else:
132
+ data_record[key][key2][-1] = f"{constraint_statistic[key][key2][key3]['true']}/{count_record[key][key2]}"
133
+ constraint_dis_record[constraint]['total'] += count_record[key][key2]
134
+
135
+ final_all_cnt = 0
136
+ final_commonsense_cnt = 0
137
+ final_hardConstraint_cnt = 0
138
+ final_all_cnt_map = {level:0 for level in ['easy','medium','hard']}
139
+ for idx in (range(0,len(query_data_list))):
140
+ if plan_constraint_store[idx]['commonsense_constraint']:
141
+ final_commonsense_pass = True
142
+ final_hardConstraint_pass = True
143
+ for item in plan_constraint_store[idx]['commonsense_constraint']:
144
+ if plan_constraint_store[idx]['commonsense_constraint'][item][0] is not None and not plan_constraint_store[idx]['commonsense_constraint'][item][0]:
145
+ final_commonsense_pass = False
146
+ break
147
+ if plan_constraint_store[idx]['hard_constraint'] is None:
148
+ continue
149
+ for item in plan_constraint_store[idx]['hard_constraint']:
150
+ if plan_constraint_store[idx]['hard_constraint'][item][0] is not None and plan_constraint_store[idx]['hard_constraint'][item][0] == False:
151
+ final_hardConstraint_pass = False
152
+ break
153
+
154
+ if final_commonsense_pass:
155
+ final_commonsense_cnt += 1
156
+ if final_hardConstraint_pass:
157
+ final_hardConstraint_cnt += 1
158
+ if final_commonsense_pass and final_hardConstraint_pass:
159
+ final_all_cnt += 1
160
+ final_all_cnt_map[query_data_list[idx]['level']] += 1
161
+
162
+ result = {}
163
+
164
+ if validation_or_test == 'validation':
165
+ result['Delivery Rate'] = delivery_cnt / 180
166
+ result['Commonsense Constraint Micro Pass Rate'] = constraint_dis_record['commonsense']['pass'] / 1440
167
+ result['Commonsense Constraint Macro Pass Rate'] = final_commonsense_cnt / 180
168
+ result['Hard Constraint Micro Pass Rate'] = constraint_dis_record['hard']['pass'] / 420
169
+ result['Hard Constraint Macro Pass Rate'] = final_hardConstraint_cnt / 180
170
+ result['Final Pass Rate'] = final_all_cnt / 180
171
+
172
+ elif validation_or_test == 'test':
173
+ result['Delivery Rate'] = delivery_cnt / 1000
174
+ result['Commonsense Constraint Micro Pass Rate'] = constraint_dis_record['commonsense']['pass'] / 8000
175
+ result['Commonsense Constraint Macro Pass Rate'] = final_commonsense_cnt / 1000
176
+ result['Hard Constraint Micro Pass Rate'] = constraint_dis_record['hard']['pass'] / 2290
177
+ result['Hard Constraint Macro Pass Rate'] = final_hardConstraint_cnt / 1000
178
+ result['Final Pass Rate'] = final_all_cnt / 1000
179
+
180
+ return result
181
+
evaluataion/hardConstraint.py ADDED
@@ -0,0 +1,266 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from src.utils import get_valid_name_city,extract_before_parenthesis,extract_numbers_from_filenames
2
+ from tools.flights.apis import Flights
3
+ from tools.accommodations.apis import Accommodations
4
+ from tools.restaurants.apis import Restaurants
5
+ from tools.googleDistanceMatrix.apis import GoogleDistanceMatrix
6
+ from tools.attractions.apis import Attractions
7
+ import math
8
+ import json
9
+ import re
10
+ import numpy as np
11
+ import os
12
+ import sys
13
+ from tqdm import tqdm
14
+ import argparse
15
+
16
+ sys.path.append(os.path.abspath(os.path.join(os.getcwd(), "..")))
17
+ os.chdir(os.path.dirname(os.path.abspath(__file__)))
18
+
19
+
20
+ flight = Flights()
21
+ accommodation = Accommodations()
22
+ restaurants = Restaurants()
23
+ googleDistanceMatrix = GoogleDistanceMatrix()
24
+ attractions = Attractions()
25
+
26
+
27
+ def load_line_json_data(filename):
28
+ data = []
29
+ with open(filename, 'r', encoding='utf-8') as f:
30
+ for line in f.read().strip().split('\n'):
31
+ unit = json.loads(line)
32
+ data.append(unit)
33
+ return data
34
+
35
+
36
+ def convert_bool_values(item):
37
+ if isinstance(item, dict):
38
+ # If the item is a dictionary, recurse on each value
39
+ return {key: convert_bool_values(value) for key, value in item.items()}
40
+ elif isinstance(item, list):
41
+ # If the item is a list, recurse on each item in the list
42
+ return [convert_bool_values(value) for value in item]
43
+ elif isinstance(item, tuple):
44
+ # If the item is a tuple, recurse on each item in the tuple and repackage as a tuple
45
+ return tuple(convert_bool_values(value) for value in item)
46
+ elif isinstance(item, np.bool_): # Here we check for numpy's bool_ type
47
+ # If the item is a numpy bool_, convert it to a standard Python bool
48
+ return bool(item)
49
+ else:
50
+ # If the item is any other type, return it unchanged
51
+ return item
52
+
53
+
54
+
55
+
56
+ def extract_from_to(text: str):
57
+ """
58
+ Extracts 'A' and 'B' from the format "from A to B" in the given text, with B ending at a comma or the end of the string.
59
+
60
+ Args:
61
+ - text (str): The input string.
62
+
63
+ Returns:
64
+ - tuple: A tuple containing 'A' and 'B'. If no match is found, returns (None, None).
65
+ """
66
+ pattern = r"from\s+(.+?)\s+to\s+([^,]+)(?=[,\s]|$)"
67
+ matches = re.search(pattern, text)
68
+ return matches.groups() if matches else (None, None)
69
+
70
+
71
+ def get_total_cost(question, tested_data):
72
+ total_cost = 0
73
+ for i in range(min(question['days'],len(tested_data))):
74
+ unit = tested_data[i]
75
+ # transporation
76
+ if unit['transportation'] and unit['transportation'] != '-':
77
+ value = unit['transportation']
78
+ org_city, dest_city = extract_from_to(value)
79
+ if org_city == None or dest_city == None:
80
+ org_city, dest_city = extract_from_to(unit['current_city'])
81
+
82
+ if org_city == None or dest_city == None:
83
+ pass
84
+ else:
85
+ if 'flight number' in value.lower():
86
+ res = flight.data[flight.data['Flight Number'] == value.split('Flight Number: ')[1].split(',')[0]]
87
+ if len(res) > 0:
88
+ total_cost += res['Price'].values[0] * question['people_number']
89
+
90
+ elif 'self-driving' in value.lower() or 'taxi' in value.lower():
91
+ if 'self-driving' in value.lower():
92
+ # print(org_city,dest_city)
93
+ cost = googleDistanceMatrix.run_for_evaluation(org_city,dest_city,'self-driving')['cost']
94
+ total_cost += cost * math.ceil(question['people_number'] * 1.0 / 5)
95
+ else:
96
+ cost = googleDistanceMatrix.run_for_evaluation(org_city,dest_city,'taxi')['cost']
97
+ total_cost += cost * math.ceil(question['people_number'] * 1.0 / 4)
98
+
99
+ # breakfast
100
+ if unit['breakfast'] and unit['breakfast'] != '-':
101
+ name, city = get_valid_name_city(unit['breakfast'])
102
+ res = restaurants.data[(restaurants.data['Name'].astype(str).str.contains(re.escape(name))) & (restaurants.data['City'] == city)]
103
+ if len(res) > 0:
104
+ total_cost += res['Average Cost'].values[0] * question['people_number']
105
+
106
+
107
+ # lunch
108
+ if unit['lunch'] and unit['lunch'] != '-':
109
+ name, city = get_valid_name_city(unit['lunch'])
110
+ res = restaurants.data[(restaurants.data['Name'].astype(str).str.contains(re.escape(name))) & (restaurants.data['City'] == city)]
111
+ if len(res) > 0:
112
+ total_cost += res['Average Cost'].values[0] * question['people_number']
113
+
114
+ # dinner
115
+ if unit['dinner'] and unit['dinner'] != '-':
116
+ name, city = get_valid_name_city(unit['dinner'])
117
+ res = restaurants.data[(restaurants.data['Name'].astype(str).str.contains(re.escape(name))) & (restaurants.data['City'] == city)]
118
+ if len(res) > 0:
119
+ total_cost += res['Average Cost'].values[0] * question['people_number']
120
+
121
+ # accommodation
122
+ if unit['accommodation'] and unit['accommodation'] != '-':
123
+ name, city = get_valid_name_city(unit['accommodation'])
124
+ res = accommodation.data[(accommodation.data['NAME'].astype(str).str.contains(re.escape(name))) & (accommodation.data['city'] == city)]
125
+ if len(res) > 0:
126
+ total_cost += res['price'].values[0] * math.ceil(question['people_number'] * 1.0 / res['maximum occupancy'].values[0])
127
+ # print(total_cost)
128
+ return total_cost
129
+
130
+
131
+ def is_valid_room_rule(question, tested_data):
132
+
133
+ if question['local_constraint']['house rule'] is None:
134
+ return None,None
135
+
136
+ for i in range(min(question['days'],len(tested_data))):
137
+ unit = tested_data[i]
138
+ if unit['accommodation'] and unit['accommodation'] != '-':
139
+ name, city = get_valid_name_city(unit['accommodation'])
140
+ res = accommodation.data[(accommodation.data['NAME'].astype(str).str.contains(re.escape(name))) & (accommodation.data['city'] == city)]
141
+ if len(res) > 0:
142
+ if question['local_constraint']['house rule'] == 'smoking' and 'No smoking' in str(res['house_rules'].values[0]):
143
+ return False, f"The house rule should be {question['local_constraint']['house rule']}."
144
+ if question['local_constraint']['house rule'] == 'parities' and 'No parties' in str(res['house_rules'].values[0]):
145
+ return False, f"The house rule should be {question['local_constraint']['house rule']}."
146
+ if question['local_constraint']['house rule'] == 'children under 10' and 'No children under 10' in str(res['house_rules'].values[0]):
147
+ return False, f"The house rule should be {question['local_constraint']['house rule']}."
148
+ if question['local_constraint']['house rule'] == 'visitors' and 'No visitors' in str(res['house_rules'].values[0]):
149
+ return False, f"The house rule should be {question['local_constraint']['house rule']}."
150
+ if question['local_constraint']['house rule'] == 'pets' and 'No pets' in str(res['house_rules'].values[0]):
151
+ return False, f"The house rule should be {question['local_constraint']['house rule']}."
152
+
153
+
154
+ return True, None
155
+
156
+
157
+
158
+ def is_valid_cuisine(question, tested_data):
159
+ cuisine_set = set()
160
+ if question['local_constraint']['cuisine']:
161
+ for i in range(min(question['days'],len(tested_data))):
162
+ unit = tested_data[i]
163
+
164
+ if unit['breakfast'] and unit['breakfast'] != '-':
165
+ name, city = get_valid_name_city(unit['breakfast'])
166
+ if city == question['org']:
167
+ continue
168
+ res = restaurants.data[(restaurants.data['Name'].astype(str).str.contains(re.escape(name))) & (restaurants.data['City'] == city)]
169
+ if len(res) > 0:
170
+ for cuisine in question['local_constraint']['cuisine']:
171
+ if cuisine in res.iloc[0]['Cuisines']:
172
+ cuisine_set.add(cuisine)
173
+
174
+ if unit['lunch'] and unit['lunch'] != '-':
175
+ name, city = get_valid_name_city(unit['lunch'])
176
+ if city == question['org']:
177
+ continue
178
+ res = restaurants.data[(restaurants.data['Name'].astype(str).str.contains(re.escape(name))) & (restaurants.data['City'] == city)]
179
+ if len(res) > 0:
180
+ for cuisine in question['local_constraint']['cuisine']:
181
+ if cuisine in res.iloc[0]['Cuisines']:
182
+ cuisine_set.add(cuisine)
183
+
184
+ if unit['dinner'] and unit['dinner'] != '-':
185
+ name, city = get_valid_name_city(unit['dinner'])
186
+ if city == question['org']:
187
+ continue
188
+ res = restaurants.data[(restaurants.data['Name'].astype(str).str.contains(re.escape(name))) & (restaurants.data['City'] == city)]
189
+ if len(res) > 0:
190
+ for cuisine in question['local_constraint']['cuisine']:
191
+ if cuisine in res.iloc[0]['Cuisines']:
192
+ cuisine_set.add(cuisine)
193
+
194
+ if len(cuisine_set) == len(question['local_constraint']['cuisine']):
195
+ return True, None
196
+ else:
197
+ # judge which cuisine is not satisfied
198
+ for cuisine in question['local_constraint']['cuisine']:
199
+ if cuisine not in cuisine_set:
200
+ return False, f"The cuisine {cuisine} is not satisfied."
201
+ # return False, f"The cuisine should be {question['local_constraint']['cuisine']}."
202
+ else:
203
+ return None,None
204
+
205
+
206
+ def is_valid_transportation(question, tested_data):
207
+ if question['local_constraint']['transportation'] is None:
208
+ return None,None
209
+ for i in range(min(question['days'],len(tested_data))):
210
+ unit = tested_data[i]
211
+ if unit['transportation'] and unit['transportation'] != '-':
212
+ value = unit['transportation']
213
+ if question['local_constraint']['transportation'] == 'no flight' and 'Flight' in value:
214
+ return False, f"The transportation should not be {question['local_constraint']['transportation']}."
215
+ elif question['local_constraint']['transportation'] == 'no self-driving' and 'Self-driving' in value:
216
+ return False, f"The transportation should not be {question['local_constraint']['transportation']}."
217
+
218
+ return True, None
219
+
220
+
221
+ def is_valid_room_type(question, tested_data):
222
+ if question['local_constraint']['room type'] is None:
223
+ return None,None
224
+ for i in range(min(question['days'],len(tested_data))):
225
+ unit = tested_data[i]
226
+ if unit['accommodation'] and unit['accommodation'] != '-':
227
+ name, city = get_valid_name_city(unit['accommodation'])
228
+ res = accommodation.data[(accommodation.data['NAME'].astype(str).str.contains(re.escape(name))) & (accommodation.data['city'] == city)]
229
+ if len(res) > 0:
230
+ if question['local_constraint']['room type'] == 'not shared room' and res['room type'].values[0] == 'Shared room':
231
+ return False, f"The room type should be {question['local_constraint']['room type']}."
232
+ # "shared room", "not shared room", "private room", "entire room"
233
+ elif question['local_constraint']['room type'] == 'shared room' and res['room type'].values[0] != 'Shared room':
234
+ return False, f"The room type should be {question['local_constraint']['room type']}."
235
+
236
+ elif question['local_constraint']['room type'] == 'private room' and res['room type'].values[0] != 'Private room':
237
+ return False, f"The room type should be {question['local_constraint']['room type']}."
238
+
239
+ elif question['local_constraint']['room type'] == 'entire room' and res['room type'].values[0] != 'Entire home/apt':
240
+ return False, f"The room type should be {question['local_constraint']['room type']}."
241
+
242
+ return True, None
243
+
244
+
245
+ def evaluation(query_data, tested_data):
246
+ return_info = {}
247
+ return_info['valid_cuisine'] = is_valid_cuisine(query_data, tested_data)
248
+ return_info['valid_room_rule'] = is_valid_room_rule(query_data, tested_data)
249
+ return_info['valid_transportation'] = is_valid_transportation(query_data, tested_data)
250
+ return_info['valid_room_type'] = is_valid_room_type(query_data, tested_data)
251
+ return_info['valid_cost'] = (bool(get_total_cost(query_data, tested_data) <= query_data['budget']), None)
252
+ return return_info
253
+
254
+ def boolean_evaluation(query_data, tested_data):
255
+ return_info = {}
256
+ return_info['valid_cuisine'] = is_valid_cuisine(query_data, tested_data)
257
+ return_info['valid_room_rule'] = is_valid_room_rule(query_data, tested_data)
258
+ return_info['valid_transportation'] = is_valid_transportation(query_data, tested_data)
259
+ return_info['valid_room_type'] = is_valid_room_type(query_data, tested_data)
260
+ return_info['valid_cost'] = (bool(get_total_cost(query_data, tested_data) <= query_data['budget']), None)
261
+ for key in return_info:
262
+ if return_info[key][0] == False:
263
+ print(key)
264
+ return False
265
+ return True
266
+
plan/plan_1.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "St. Petersburg", "dest": "Rockford", "days": 3, "visiting_city_number": 1, "date": ["2022-03-16", "2022-03-17", "2022-03-18"], "people_number": 1, "local_constraint": {"house rule": null, "cuisine": null, "room type": null, "transportation": null}, "budget": 1700, "query": "Please help me plan a trip from St. Petersburg to Rockford spanning 3 days from March 16th to March 18th, 2022. The travel should be planned for a single person with a budget of $1,700.", "level": "easy"}, [{"days": 1, "current_city": "from St. Petersburg to Rockford", "transportation": "Flight Number: F3573659, from St. Petersburg to Rockford, Departure Time: 15:40, Arrival Time: 17:04", "breakfast": "-", "attraction": "-", "lunch": "-", "dinner": "Coco Bambu, Rockford", "accommodation": "Pure luxury one bdrm + sofa bed on Central Park, Rockford"}, {"days": 2, "current_city": "Rockford", "transportation": "-", "breakfast": "Dial A Cake, Rockford", "attraction": "Burpee Museum of Natural History, Rockford;Midway Village Museum, Rockford;Discovery Center Museum, Rockford;", "lunch": "Flying Mango, Rockford", "dinner": "Cafe Southall, Rockford", "accommodation": "Pure luxury one bdrm + sofa bed on Central Park, Rockford"}, {"days": 3, "current_city": "from Rockford to St. Petersburg", "transportation": "Flight Number: F3573120, from Rockford to St. Petersburg, Departure Time: 19:00, Arrival Time: 22:43", "breakfast": "Subway, Rockford", "attraction": "Klehm Arboretum & Botanic Garden, Rockford;Sinnissippi Park, Rockford;", "lunch": "Gajalee Sea Food, Rockford", "dinner": "Nutri Punch, Rockford", "accommodation": "-"}, {}, {}, {}, {}]]
plan/plan_10.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Greer", "dest": "Pennsylvania", "days": 5, "visiting_city_number": 2, "date": ["2022-03-05", "2022-03-06", "2022-03-07", "2022-03-08", "2022-03-09"], "people_number": 1, "local_constraint": {"house rule": null, "cuisine": null, "room type": null, "transportation": null}, "budget": 3400, "query": "Can you create a 5-day travel plan for one person departing from Greer and visiting 2 cities in Pennsylvania? The travel dates are from March 5th to March 9th, 2022. The trip's budget is set at $3,400.", "level": "easy"}, [{"days": 1, "current_city": "from Greer to Philadelphia(Pennsylvania)", "transportation": "Flight Number: F3730589, from Greer to Philadelphia(Pennsylvania), Departure Time: 16:50, Arrival Time: 18:32", "breakfast": "-", "attraction": "-", "lunch": "-", "dinner": "Marukame Udon, Philadelphia(Pennsylvania)", "accommodation": "Top floor of an amazing duplex, Philadelphia(Pennsylvania)"}, {"days": 2, "current_city": "Philadelphia(Pennsylvania)", "transportation": "-", "breakfast": "Asian Chopstick, Philadelphia(Pennsylvania)", "attraction": "JFK Plaza (Love Park), Philadelphia(Pennsylvania);Philadelphia Zoo, Philadelphia(Pennsylvania);", "lunch": "Bangla Sweet Corner, Philadelphia(Pennsylvania)", "dinner": "Momozone, Philadelphia(Pennsylvania)", "accommodation": "Top floor of an amazing duplex, Philadelphia(Pennsylvania)"}, {"days": 3, "current_city": "from Philadelphia(Pennsylvania) to State College(Pennsylvania)", "transportation": "Taxi, from Philadelphia(Pennsylvania) to State College(Pennsylvania), duration: 3 hours 11 mins, distance: 309 km, cost: 309", "breakfast": "Muncheezz, Philadelphia(Pennsylvania)", "attraction": "Old Main, State College(Pennsylvania);Lederer Park, State College(Pennsylvania);", "lunch": "Maharaja Food Club, State College(Pennsylvania)", "dinner": "Theos, State College(Pennsylvania)", "accommodation": "Small and Cozy room on Upper West Side, State College(Pennsylvania)"}, {"days": 4, "current_city": "State College(Pennsylvania)", "transportation": "-", "breakfast": "Rolling Beans, State College(Pennsylvania)", "attraction": "Discovery Space of Central Pennsylvania, State College(Pennsylvania);The Arboretum at Penn State, State College(Pennsylvania);", "lunch": "Hyderabad's Delight, State College(Pennsylvania)", "dinner": "Snacks Parties, State College(Pennsylvania)", "accommodation": "Small and Cozy room on Upper West Side, State College(Pennsylvania)"}, {"days": 5, "current_city": "from State College(Pennsylvania) to Greer", "transportation": "Taxi, from State College(Pennsylvania) to Greer, duration: 9 hours 29 mins, distance: 982 km, cost: 982", "breakfast": "Kettle & Kegs, State College(Pennsylvania)", "attraction": "-", "lunch": "-", "dinner": "-", "accommodation": "-"}, {}, {}]]
plan/plan_11.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Houston", "dest": "Utah", "days": 7, "visiting_city_number": 3, "date": ["2022-03-23", "2022-03-24", "2022-03-25", "2022-03-26", "2022-03-27", "2022-03-28", "2022-03-29"], "people_number": 1, "local_constraint": {"house rule": null, "cuisine": null, "room type": null, "transportation": null}, "budget": 7700, "query": "Could you assist in creating a travel plan for one person, starting from Houston and heading to Utah for a week? The visit will be from the 23rd of March to the 29th of March, 2022, and will cover 3 different cities in Utah. The budget for this trip is set at $7,700.", "level": "easy"}, [{"days": 1, "current_city": "from Houston to Salt Lake City(Utah)", "transportation": "Self-driving, from Houston to Salt Lake City(Utah), duration: 22 hours 21 mins, distance: 2,377 km, cost: 2377", "breakfast": "-", "attraction": "-", "lunch": "-", "dinner": "Tikka Tonight, Salt Lake City(Utah)", "accommodation": "Hamilton Beach House, Salt Lake City(Utah)"}, {"days": 2, "current_city": "Salt Lake City(Utah)", "transportation": "-", "breakfast": "Al-Sameer, Salt Lake City(Utah)", "attraction": "City Creek Park, Salt Lake City(Utah);Pioneer Memorial Museum, Salt Lake City(Utah);", "lunch": "Mr. Sub, Salt Lake City(Utah)", "dinner": "Kwality Wall's Swirl's, Salt Lake City(Utah)", "accommodation": "Hamilton Beach House, Salt Lake City(Utah)"}, {"days": 3, "current_city": "from Salt Lake City(Utah) to Moab(Utah)", "transportation": "Self-driving, from Salt Lake City(Utah) to Moab(Utah), duration: 3 hours 42 mins, distance: 376 km, cost: 18", "breakfast": "Angeethi, Salt Lake City(Utah)", "attraction": "Hogle Zoo, Salt Lake City(Utah);", "lunch": "Spice Kraft, Moab(Utah)", "dinner": "Shree Rathnam, Salt Lake City(Utah)", "accommodation": "Private bedroom on Upper East Side !!!, Moab(Utah)"}, {"days": 4, "current_city": "Moab(Utah)", "transportation": "-", "breakfast": "Masala Factory, Moab(Utah)", "attraction": "Lion's Back, Moab(Utah);Corona Arch, Moab(Utah);", "lunch": "Giani, Moab(Utah)", "dinner": "Bikaner Sweets, Moab(Utah)", "accommodation": "Private bedroom on Upper East Side !!!, Moab(Utah)"}, {"days": 5, "current_city": "from Moab(Utah) to Vernal(Utah)", "transportation": "Self-driving, from Moab(Utah) to Vernal(Utah), duration: 3 hours 40 mins, distance: 349 km, cost: 17", "breakfast": "McDonald's, Moab(Utah)", "attraction": "First Lady Dolls, Vernal(Utah);Red Fleet State Park, Vernal(Utah);", "lunch": "Pepper Sprout Incorporated, Vernal(Utah)", "dinner": "MD's Kebabs & Curries, Vernal(Utah)", "accommodation": "Luxurious & Spacious 1 Bedroom Apt, Vernal(Utah)"}, {"days": 6, "current_city": "Vernal(Utah)", "transportation": "-", "breakfast": "Foodies Park, Vernal(Utah)", "attraction": "Ashley Valley Community Park, Vernal(Utah);Dinosaur Land In Vernal Utah, Vernal(Utah);", "lunch": "OMG Tiffinz, Vernal(Utah)", "dinner": "Crossroad Bar and Restaurant, Vernal(Utah)", "accommodation": "Clean sm room, with shared space. Great location., Vernal(Utah)"}, {"days": 7, "current_city": "from Vernal(Utah) to Houston", "transportation": "Self-driving, from Vernal(Utah) to Houston, duration: 20 hours 30 mins, distance: 2,167 km, cost: 108", "breakfast": "Ingredients, Vernal(Utah)", "attraction": "Vernal DUP Museum, Vernal(Utah);Cobble Rock Park, Vernal(Utah);", "lunch": "Great Plates By AJ, Vernal(Utah)", "dinner": "McDonald's, Vernal(Utah)", "accommodation": "-"}]]
plan/plan_12.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Oklahoma City", "dest": "Colorado", "days": 7, "visiting_city_number": 3, "date": ["2022-03-01", "2022-03-02", "2022-03-03", "2022-03-04", "2022-03-05", "2022-03-06", "2022-03-07"], "people_number": 1, "local_constraint": {"house rule": null, "cuisine": null, "room type": null, "transportation": null}, "budget": 3000, "query": "Can you help me plan a one-week solo trip from Oklahoma City to Colorado, during which I'll be visiting 3 different cities? The trip will be from March 1st to March 7th, 2022, and I have a budget of $3,000.", "level": "easy"}, [{"days": 1, "current_city": "from Oklahoma City to Alamosa(Colorado)", "transportation": "Self-driving, from Oklahoma City to Alamosa(Colorado), duration: 8 hours 52 mins, distance: 922 km, cost: 46", "breakfast": "-", "attraction": "Rio Grande Farm Park, Alamosa(Colorado);San Luis Valley Museum | Alamosa, Alamosa(Colorado);", "lunch": "-", "dinner": "Cafe Delhi Heights, Alamosa(Colorado)", "accommodation": "Prime Location of Flushing Queens \u8c6a\u534e\u5367\u5ba4 \u65c5\u9014\u4e2d\u7684\u5bb6 E, Alamosa(Colorado)"}, {"days": 2, "current_city": "Alamosa(Colorado)", "transportation": "-", "breakfast": "The Midnight Heroes, Alamosa(Colorado)", "attraction": "Cole Park, Alamosa(Colorado);Los Caminos Antiguos Scenic Byway: Alamosa Entrance, Alamosa(Colorado);Carroll Park, Alamosa(Colorado);Alamosa Archery Range, Alamosa(Colorado);", "lunch": "Good Luck Cafe, Alamosa(Colorado)", "dinner": "Moti Sweets, Alamosa(Colorado)", "accommodation": "Prime Location of Flushing Queens \u8c6a\u534e\u5367\u5ba4 \u65c5\u9014\u4e2d\u7684\u5bb6 E, Alamosa(Colorado)"}, {"days": 3, "current_city": "from Alamosa(Colorado) to Grand Junction(Colorado)", "transportation": "Self-driving, from Alamosa(Colorado) to Grand Junction(Colorado), duration: 4 hours 30 mins, distance: 396 km, cost: 19", "breakfast": "Lights Camera Action - Air Bar, Alamosa(Colorado)", "attraction": "Museum of the West, Museums of Western Colorado, Grand Junction(Colorado);Eureka! McConnell Science Museum, Grand Junction(Colorado);Bananas Fun Park, Grand Junction(Colorado);", "lunch": "-", "dinner": "Kings Kulfi, Grand Junction(Colorado)", "accommodation": "Cool room Manhattan - Sleeps up to 3 guests, Grand Junction(Colorado)"}, {"days": 4, "current_city": "Grand Junction(Colorado)", "transportation": "-", "breakfast": "Cha Bar, Grand Junction(Colorado)", "attraction": "Western Colorado Botanical Gardens, Grand Junction(Colorado);Canyon View Park, Grand Junction(Colorado);Eagle Rim Park, Grand Junction(Colorado);Cross Orchards Historic Site, Museums of Western Colorado, Grand Junction(Colorado);", "lunch": "New Punjabi Khana, Grand Junction(Colorado)", "dinner": "Baba Chicken Ludhiana Wale, Grand Junction(Colorado)", "accommodation": "Cool room Manhattan - Sleeps up to 3 guests, Grand Junction(Colorado)"}, {"days": 5, "current_city": "from Grand Junction(Colorado) to Durango(Colorado)", "transportation": "Self-driving, from Grand Junction(Colorado) to Durango(Colorado), duration: 3 hours 34 mins, distance: 269 km, cost: 13", "breakfast": "Flavors Of London, Grand Junction(Colorado)", "attraction": "Animas Museum, Durango(Colorado);The Powerhouse, Durango(Colorado);", "lunch": "-", "dinner": "Dub's High on the Hog, Durango(Colorado)", "accommodation": "Northern Manhattan Getaway, Durango(Colorado)"}, {"days": 6, "current_city": "Durango(Colorado)", "transportation": "-", "breakfast": "Burger King, Durango(Colorado)", "attraction": "Whitewater Park, Durango(Colorado);Durango Adventures and Zipline Tours, Durango(Colorado);Oxbow Park and Preserve, Durango(Colorado);Durango & Silverton Narrow Gauge Railroad, Durango(Colorado);", "lunch": "Yeoh, Durango(Colorado)", "dinner": "Wow! Momo, Durango(Colorado)", "accommodation": "Northern Manhattan Getaway, Durango(Colorado)"}, {"days": 7, "current_city": "from Durango(Colorado) to Oklahoma City", "transportation": "Self-driving, from Durango(Colorado) to Oklahoma City, duration: 11 hours 13 mins, distance: 1,212 km, cost: 60", "breakfast": "Standard Chicken Point, Durango(Colorado)", "attraction": "-", "lunch": "-", "dinner": "-", "accommodation": "-"}]]
plan/plan_13.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Gulfport", "dest": "Texas", "days": 7, "visiting_city_number": 3, "date": ["2022-03-24", "2022-03-25", "2022-03-26", "2022-03-27", "2022-03-28", "2022-03-29", "2022-03-30"], "people_number": 1, "local_constraint": {"house rule": null, "cuisine": null, "room type": null, "transportation": null}, "budget": 4200, "query": "Please help me plan a 7-day trip for one person, departing from Gulfport and visiting 3 cities in Texas from March 24th to March 30th, 2022. The budget for this trip is $4,200.", "level": "easy"}, [{"days": 1, "current_city": "from Gulfport to Dallas(Texas)", "transportation": "Flight Number: F3609002, from Gulfport to Dallas(Texas), Departure Time: 11:42, Arrival Time: 13:20", "breakfast": "-", "attraction": "Dallas Museum of Art, Dallas(Texas);", "lunch": "-", "dinner": "Coconuts Fish Cafe, Dallas(Texas)", "accommodation": "*Fresh Budget Room, Dallas(Texas)"}, {"days": 2, "current_city": "Dallas(Texas)", "transportation": "-", "breakfast": "Salsa Mexican Grill, Dallas(Texas)", "attraction": "Trinity Forest Adventure Park, Dallas(Texas);Leonhardt Lagoon Nature Walk, Dallas(Texas);Frontiers of Flight Museum, Dallas(Texas);", "lunch": "MONKS, Dallas(Texas)", "dinner": "The Grill @ 76, Dallas(Texas)", "accommodation": "*Fresh Budget Room, Dallas(Texas)"}, {"days": 3, "current_city": "from Dallas(Texas) to San Angelo(Texas)", "transportation": "Taxi, from Dallas(Texas) to San Angelo(Texas), duration: 3 hours 55 mins, distance: 415 km, cost: 415", "breakfast": "Cafe Gatherings, Dallas(Texas)", "attraction": "Concho Riverwalk, San Angelo(Texas);", "lunch": "Punjabi Pakwaan, San Angelo(Texas)", "dinner": "Mr. Brown, San Angelo(Texas)", "accommodation": "INCREDIBLE TOWNHOUSE 4 STORIES 5 BEDROOMS 3 BATH, San Angelo(Texas)"}, {"days": 4, "current_city": "San Angelo(Texas)", "transportation": "-", "breakfast": "Mandeep Punjabi Rasoi, San Angelo(Texas)", "attraction": "Mayer Museum, San Angelo(Texas);San Angelo State Park, South Entrance, San Angelo(Texas);", "lunch": "Anjali Resaturant, San Angelo(Texas)", "dinner": "Kaptain Bakery, San Angelo(Texas)", "accommodation": "INCREDIBLE TOWNHOUSE 4 STORIES 5 BEDROOMS 3 BATH, San Angelo(Texas)"}, {"days": 5, "current_city": "from San Angelo(Texas) to Houston(Texas)", "transportation": "Taxi, from San Angelo(Texas) to Houston(Texas), duration: 5 hours 46 mins, distance: 587 km, cost: 587", "breakfast": "Break Fast Point, San Angelo(Texas)", "attraction": "-", "lunch": "District 6, San Angelo(Texas)", "dinner": "Jalapenos, Houston(Texas)", "accommodation": "Sunny and Airy near Manhattan, Houston(Texas)"}, {"days": 6, "current_city": "Houston(Texas)", "transportation": "-", "breakfast": "Super Bakery, Houston(Texas)", "attraction": "Space Center Houston, Houston(Texas);Discovery Green, Houston(Texas);", "lunch": "Sheetla Dhaba, Houston(Texas)", "dinner": "Royal Mart, Houston(Texas)", "accommodation": "Sunny and Airy near Manhattan, Houston(Texas)"}, {"days": 7, "current_city": "from Houston(Texas) to Gulfport", "transportation": "Flight Number: F3917573, from Houston(Texas) to Gulfport, Departure Time: 21:46, Arrival Time: 23:05", "breakfast": "Truth Coffee, Houston(Texas)", "attraction": "Houston Zoo, Houston(Texas);", "lunch": "Istanbul Restaurant, Houston(Texas)", "dinner": "Hurry Curry Express, Houston(Texas)", "accommodation": "-"}]]
plan/plan_14.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Daytona Beach", "dest": "Texas", "days": 7, "visiting_city_number": 3, "date": ["2022-03-18", "2022-03-19", "2022-03-20", "2022-03-21", "2022-03-22", "2022-03-23", "2022-03-24"], "people_number": 1, "local_constraint": {"house rule": null, "cuisine": null, "room type": null, "transportation": null}, "budget": 3600, "query": "Could you help me come up with a travel plan that starts in Daytona Beach and includes visits to 3 distinct cities in Texas over a span of 7 days, from March 18th to March 24th, 2022? I'll be traveling alone on a budget of $3,600.", "level": "easy"}, [{"days": 1, "current_city": "from Daytona Beach to Corpus Christi(Texas)", "transportation": "Self-driving, from Daytona Beach to Corpus Christi(Texas), duration: 16 hours 52 mins, distance: 1,874 km, cost: 93", "breakfast": "-", "attraction": "-", "lunch": "-", "dinner": "-", "accommodation": "Penthouse Apartment in Chelsea, Corpus Christi(Texas)"}, {"days": 2, "current_city": "Corpus Christi(Texas)", "transportation": "-", "breakfast": "Confeitaria Colombo, Corpus Christi(Texas)", "attraction": "Texas State Aquarium, Corpus Christi(Texas);The Art Museum of South Texas, Corpus Christi(Texas);", "lunch": "The Binge Box Cafe, Corpus Christi(Texas)", "dinner": "Let's Noodle, Corpus Christi(Texas)", "accommodation": "Penthouse Apartment in Chelsea, Corpus Christi(Texas)"}, {"days": 3, "current_city": "from Corpus Christi(Texas) to San Antonio(Texas)", "transportation": "Self-driving, from Corpus Christi(Texas) to San Antonio(Texas), duration: 2 hours 2 mins, distance: 231 km, cost: 11", "breakfast": "Alwar Sweets, Corpus Christi(Texas)", "attraction": "San Antonio Museum of Art (SAMA), San Antonio(Texas);San Antonio Missions National Historical Park, San Antonio(Texas);", "lunch": "Cafe Le Rue @ The Landings, San Antonio(Texas)", "dinner": "Burger Queen Drive In, San Antonio(Texas)", "accommodation": "Private House in Trendy Crown Heights, San Antonio(Texas)"}, {"days": 4, "current_city": "San Antonio(Texas)", "transportation": "-", "breakfast": "Cafe Shaze, San Antonio(Texas)", "attraction": "San Antonio Zoo, San Antonio(Texas);The Alamo, San Antonio(Texas);", "lunch": "The Boozy Cow, San Antonio(Texas)", "dinner": "Zaika Tiffin Center, San Antonio(Texas)", "accommodation": "Private House in Trendy Crown Heights, San Antonio(Texas)"}, {"days": 5, "current_city": "from San Antonio(Texas) to Dallas(Texas)", "transportation": "Self-driving, from San Antonio(Texas) to Dallas(Texas), duration: 4 hours 2 mins, distance: 440 km, cost: 22", "breakfast": "Spice Deli, San Antonio(Texas)", "attraction": "The Dallas World Aquarium, Dallas(Texas);", "lunch": "Castle 9, Dallas(Texas)", "dinner": "Metro Fast Food, Dallas(Texas)", "accommodation": "*Fresh Budget Room, Dallas(Texas)"}, {"days": 6, "current_city": "Dallas(Texas)", "transportation": "-", "breakfast": "Cafe Gatherings, Dallas(Texas)", "attraction": "African American Museum of Dallas, Dallas(Texas);Leonhardt Lagoon Nature Walk, Dallas(Texas);", "lunch": "L'Opera, Dallas(Texas)", "dinner": "Kebab Xpress, Dallas(Texas)", "accommodation": "*Fresh Budget Room, Dallas(Texas)"}, {"days": 7, "current_city": "from Dallas(Texas) to Daytona Beach", "transportation": "Self-driving, from Dallas(Texas) to Daytona Beach, duration: 16 hours 0 mins, distance: 1,746 km, cost: 87", "breakfast": "McDonald's, Dallas(Texas)", "attraction": "-", "lunch": "-", "dinner": "-", "accommodation": "-"}]]
plan/plan_15.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Punta Gorda", "dest": "Wisconsin", "days": 7, "visiting_city_number": 3, "date": ["2022-03-16", "2022-03-17", "2022-03-18", "2022-03-19", "2022-03-20", "2022-03-21", "2022-03-22"], "people_number": 1, "local_constraint": {"house rule": null, "cuisine": null, "room type": null, "transportation": null}, "budget": 5700, "query": "Please help me craft a 7-day travel plan. I'm planning on leaving from Punta Gorda and exploring 3 different cities in Wisconsin from March 16th to March 22nd, 2022. The budget for this trip is set at $5,700.", "level": "easy"}, [{"days": 1, "current_city": "from Punta Gorda to Marquette(Wisconsin)", "transportation": "Self-driving, from Punta Gorda to Marquette(Wisconsin), duration: 19 hours 44 mins, distance: 2,196 km, cost: 109", "breakfast": "-", "attraction": "-", "lunch": "-", "dinner": "Jamjar, Marquette(Wisconsin)", "accommodation": "Private Studio-like room on the Upper West Side., Marquette(Wisconsin)"}, {"days": 2, "current_city": "Marquette(Wisconsin)", "transportation": "-", "breakfast": "The Chop House, Marquette(Wisconsin)", "attraction": "Presque Isle Park, Marquette(Wisconsin);Marquette Harbor Lighthouse, Marquette(Wisconsin);", "lunch": "Taste of Balingup, Marquette(Wisconsin)", "dinner": "Dovetail, Marquette(Wisconsin)", "accommodation": "Private Studio-like room on the Upper West Side., Marquette(Wisconsin)"}, {"days": 3, "current_city": "from Marquette(Wisconsin) to Madison(Wisconsin)", "transportation": "Self-driving, from Marquette(Wisconsin) to Madison(Wisconsin), duration: 1 hour 17 mins, distance: 126 km, cost: 6", "breakfast": "Indian Coffee House, Marquette(Wisconsin)", "attraction": "Madison Museum of Contemporary Art, Madison(Wisconsin);", "lunch": "Dezertfox, Madison(Wisconsin)", "dinner": "Buta Singh Da Dhabba, Madison(Wisconsin)", "accommodation": "Cute private space in an Awesome Location, Madison(Wisconsin)"}, {"days": 4, "current_city": "Madison(Wisconsin)", "transportation": "-", "breakfast": "Moet's Sizzlers, Madison(Wisconsin)", "attraction": "Period Garden Park, Madison(Wisconsin);Picnic Point, Madison(Wisconsin);", "lunch": "Nik's Kitchen, Madison(Wisconsin)", "dinner": "Shanta Fresh Fish Corner, Madison(Wisconsin)", "accommodation": "Cute private space in an Awesome Location, Madison(Wisconsin)"}, {"days": 5, "current_city": "from Madison(Wisconsin) to Devils Lake(Wisconsin)", "transportation": "Self-driving, from Madison(Wisconsin) to Devils Lake(Wisconsin), duration: 56 mins, distance: 70.7 km, cost: 3", "breakfast": "-", "attraction": "Physics Museum, Madison(Wisconsin);James Madison Park, Madison(Wisconsin);", "lunch": "Din Tai Fung, Devils Lake(Wisconsin)", "dinner": "Zaffran - The Claremont, Devils Lake(Wisconsin)", "accommodation": "Private Room, Modern Finishes - AC and Backyard!, Devils Lake(Wisconsin)"}, {"days": 6, "current_city": "Devils Lake(Wisconsin)", "transportation": "-", "breakfast": "Cafe Coffee Day The Square, Devils Lake(Wisconsin)", "attraction": "Lake Region Heritage Center, Devils Lake(Wisconsin);Ice fishing North Dakota devils lake, Devils Lake(Wisconsin);", "lunch": "ABC Restaurant, Devils Lake(Wisconsin)", "dinner": "Talab South Indian Restaurant, Devils Lake(Wisconsin)", "accommodation": "Private Room, Modern Finishes - AC and Backyard!, Devils Lake(Wisconsin)"}, {"days": 7, "current_city": "from Devils Lake(Wisconsin) to Punta Gorda", "transportation": "Self-driving, from Devils Lake(Wisconsin) to Punta Gorda, duration: 21 hours 1 min, distance: 2,346 km, cost: 117", "breakfast": "Chinese King, Devils Lake(Wisconsin)", "attraction": "-", "lunch": "-", "dinner": "-", "accommodation": "-"}]]
plan/plan_16.json ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "org": "Fort Lauderdale",
4
+ "dest": "Norfolk",
5
+ "days": 3,
6
+ "visiting_city_number": 1,
7
+ "date": [
8
+ "2022-03-16",
9
+ "2022-03-17",
10
+ "2022-03-18"
11
+ ],
12
+ "people_number": 2,
13
+ "local_constraint": {
14
+ "house rule": null,
15
+ "cuisine": [
16
+ "American",
17
+ "French"
18
+ ],
19
+ "room type": null,
20
+ "transportation": null
21
+ },
22
+ "budget": 2300,
23
+ "query": "Could you devise a travel plan for two departing from Fort Lauderdale and heading to Norfolk? This should span 3 days, from March 16th to March 18th, 2022, with a budget of $2,300. We have no specific accommodation restrictions. As for our culinary preferences, we enjoy both American and French cuisine.",
24
+ "level": "middle"
25
+ },
26
+ [
27
+ {
28
+ "days": 1,
29
+ "current_city": "from Fort Lauderdale to Norfolk",
30
+ "transportation": "Self-driving, from Fort Lauderdale to Norfolk, duration: 13 hours 24 mins, distance: 1,510 km, cost: 75",
31
+ "breakfast": "-",
32
+ "attraction": "-",
33
+ "lunch": "-",
34
+ "dinner": "Sunshine Family Restaurant, Norfolk",
35
+ "accommodation": "Park Slope garden oasis, Norfolk"
36
+ },
37
+ {
38
+ "days": 2,
39
+ "current_city": "Norfolk",
40
+ "transportation": "-",
41
+ "breakfast": "Biryaniwala, Norfolk",
42
+ "attraction": "Chrysler Museum of Art, Norfolk;MacArthur Memorial Museum Jean MacArthur Research Center, Norfolk;",
43
+ "lunch": "Chankya, Norfolk",
44
+ "dinner": "Red Chilli, Norfolk",
45
+ "accommodation": "Park Slope garden oasis, Norfolk"
46
+ },
47
+ {
48
+ "days": 3,
49
+ "current_city": "from Norfolk to Fort Lauderdale",
50
+ "transportation": "Self-driving, from Norfolk to Fort Lauderdale, duration: 13 hours 35 mins, distance: 1,515 km, cost: 75",
51
+ "breakfast": "Aashirwad, Norfolk",
52
+ "attraction": "-",
53
+ "lunch": "-",
54
+ "dinner": "-",
55
+ "accommodation": "-"
56
+ },
57
+ {},
58
+ {},
59
+ {},
60
+ {}
61
+ ]
62
+ ]
plan/plan_17.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Sacramento", "dest": "Atlanta", "days": 3, "visiting_city_number": 1, "date": ["2022-03-14", "2022-03-15", "2022-03-16"], "people_number": 2, "local_constraint": {"house rule": "parties", "cuisine": null, "room type": null, "transportation": null}, "budget": 4700, "query": "Could you please arrange a 3-day trip for two, starting in Sacramento and heading to Atlanta, from March 14th to March 16th, 2022. The budget for this trip is $4,700, and we require accommodations where parties are allowed.", "level": "middle"}, [{"days": 1, "current_city": "from Sacramento to Atlanta", "transportation": "Flight Number: F3527024, from Sacramento to Atlanta, Departure Time: 12:18, Arrival Time: 19:36", "breakfast": "-", "attraction": "-", "lunch": "-", "dinner": "The Krib, Atlanta", "accommodation": "Spacious private room close St. Barnabas Hospital, Atlanta"}, {"days": 2, "current_city": "Atlanta", "transportation": "-", "breakfast": "Saffron, Atlanta", "attraction": "Georgia Aquarium, Atlanta;Martin Luther King, Jr. National Historical Park, Atlanta;Piedmont Park, Atlanta;", "lunch": "Chef Style, Atlanta", "dinner": "Pizza Central, Atlanta", "accommodation": "Spacious private room close St. Barnabas Hospital, Atlanta"}, {"days": 3, "current_city": "from Atlanta to Sacramento", "transportation": "Flight Number: F3542376, from Atlanta to Sacramento, Departure Time: 17:53, Arrival Time: 20:36", "breakfast": "Caboose X Cafe & Lounge, Atlanta", "attraction": "Krog Street Tunnel, Atlanta;Fernbank Museum | 3D Theater | Forest, Atlanta;Fox Theatre, Atlanta;", "lunch": "Chawla Snacks, Atlanta", "dinner": "Beliram Degchiwala, Atlanta", "accommodation": "-"}, {}, {}, {}, {}]]
plan/plan_18.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Asheville", "dest": "Baltimore", "days": 3, "visiting_city_number": 1, "date": ["2022-03-20", "2022-03-21", "2022-03-22"], "people_number": 8, "local_constraint": {"house rule": "children under 10", "cuisine": null, "room type": null, "transportation": null}, "budget": 6500, "query": "Please create a 3-day trip itinerary for a group of 8, departing from Asheville and heading to Baltimore. The travel dates are from March 20th to March 22nd, 2022. Our budget is set at $6,500. Since we'll be traveling with young children, our accommodations must be suitable for children under 10.", "level": "middle"}, [{"days": 1, "current_city": "from Asheville to Baltimore", "transportation": "Self-driving, from Asheville to Baltimore, duration: 7 hours 43 mins, distance: 819 km, cost: 819", "breakfast": "-", "attraction": "National Aquarium, Baltimore;", "lunch": "-", "dinner": "Farzi Cafe, Baltimore", "accommodation": "Historic UES Penthouse/Rooftop Terrace by the MET, Baltimore"}, {"days": 2, "current_city": "Baltimore", "transportation": "-", "breakfast": "28 Capri Italy, Baltimore", "attraction": "Port Discovery Children's Museum, Baltimore;Baltimore Harbor, Baltimore;Inner Harbor, Baltimore;", "lunch": "Shiv Saras Vyanjan, Baltimore", "dinner": "Cook Du Kdu, Baltimore", "accommodation": "Historic UES Penthouse/Rooftop Terrace by the MET, Baltimore"}, {"days": 3, "current_city": "from Baltimore to Asheville", "transportation": "Self-driving, from Baltimore to Asheville, duration: 7 hours 43 mins, distance: 817 km, cost: 40", "breakfast": "The Retriever, Baltimore", "attraction": "Oriole Park at Camden Yards, Baltimore;", "lunch": "Mr. Dunderbak's Biergarten and Marketplatz, Baltimore", "dinner": "-", "accommodation": "-"}, {}, {}, {}, {}]]
plan/plan_19.json ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "org": "Washington",
4
+ "dest": "Orlando",
5
+ "days": 3,
6
+ "visiting_city_number": 1,
7
+ "date": [
8
+ "2022-03-15",
9
+ "2022-03-16",
10
+ "2022-03-17"
11
+ ],
12
+ "people_number": 2,
13
+ "local_constraint": {
14
+ "house rule": null,
15
+ "cuisine": null,
16
+ "room type": "private room",
17
+ "transportation": null
18
+ },
19
+ "budget": 2000,
20
+ "query": "Please help in creating a travel plan for two people departing from Washington and heading to Orlando for three days, between March 15th and March 17th, 2022. The budget for this trip is $2,000 and we would prefer to have private rooms for our stay.",
21
+ "level": "middle"
22
+ },
23
+ [
24
+ {
25
+ "days": 1,
26
+ "current_city": "from Washington to Orlando",
27
+ "transportation": "Self-driving, from Washington to Orlando, duration: 12 hours 14 mins, distance: 1,364 km, cost: 68",
28
+ "breakfast": "-",
29
+ "attraction": "-",
30
+ "lunch": "-",
31
+ "dinner": "Turquoise Villa, Orlando",
32
+ "accommodation": "Private room. 1 bed, 2 guests, 3333 Broadway, Orlando"
33
+ },
34
+ {
35
+ "days": 2,
36
+ "current_city": "Orlando",
37
+ "transportation": "-",
38
+ "breakfast": "Wai Yu Mun Ching, Orlando",
39
+ "attraction": "The Wheel at ICON Park, Orlando;Seuss Landing, Orlando;",
40
+ "lunch": "Veg O Non, Orlando",
41
+ "dinner": "Nirula's Ice Cream, Orlando",
42
+ "accommodation": "Private room. 1 bed, 2 guests, 3333 Broadway, Orlando"
43
+ },
44
+ {
45
+ "days": 3,
46
+ "current_city": "from Orlando to Washington",
47
+ "transportation": "Self-driving, from Orlando to Washington, duration: 12 hours 9 mins, distance: 1,361 km, cost: 68",
48
+ "breakfast": "Fun Bytes, Orlando",
49
+ "attraction": "-",
50
+ "lunch": "-",
51
+ "dinner": "-",
52
+ "accommodation": "-"
53
+ },
54
+ {},
55
+ {},
56
+ {},
57
+ {}
58
+ ]
59
+ ]
plan/plan_2.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Kansas City", "dest": "Pensacola", "days": 3, "visiting_city_number": 1, "date": ["2022-03-27", "2022-03-28", "2022-03-29"], "people_number": 1, "local_constraint": {"house rule": null, "cuisine": null, "room type": null, "transportation": null}, "budget": 900, "query": "Can you provide a travel plan for 1 person departing from Kansas City to Pensacola for 3 days, from March 27th to March 29th, 2022, with a budget of $900?", "level": "easy"}, [{"days": 1, "current_city": "from Kansas City to Pensacola", "transportation": "Self-driving, from Kansas City to Pensacola, duration: 14 hours 2 mins, distance: 1,433 km, cost: 71", "breakfast": "-", "attraction": "-", "lunch": "-", "dinner": "Jyoti Dhaba, Pensacola", "accommodation": "Cozy 1-Bedroom Apartment 2 Blocks from the Subway, Pensacola"}, {"days": 2, "current_city": "Pensacola", "transportation": "-", "breakfast": "Watershed Cafe, Pensacola", "attraction": "Historic Pensacola Village, Pensacola;Pensacola Museum of Art, Pensacola;Palafox Street Downtown Pensacola, Pensacola;Plaza De Luna Memorial Monument, Pensacola;", "lunch": "Berry Patch Restaurant, Pensacola", "dinner": "Bailey's Bar-B-Que, Pensacola", "accommodation": "Cozy 1-Bedroom Apartment 2 Blocks from the Subway, Pensacola"}, {"days": 3, "current_city": "from Pensacola to Kansas City", "transportation": "Self-driving, from Pensacola to Kansas City, duration: 13 hours 59 mins, distance: 1,447 km, cost: 72", "breakfast": "Frog Hollow Tavern, Pensacola", "attraction": "-", "lunch": "-", "dinner": "-", "accommodation": "-"}, {}, {}, {}, {}]]
plan/plan_20.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Fort Lauderdale", "dest": "Milwaukee", "days": 3, "visiting_city_number": 1, "date": ["2022-03-08", "2022-03-09", "2022-03-10"], "people_number": 2, "local_constraint": {"house rule": null, "cuisine": ["American", "Chinese"], "room type": null, "transportation": null}, "budget": 1100, "query": "Please create a 3-day travel itinerary for 2 people beginning in Fort Lauderdale and ending in Milwaukee from the 8th to the 10th of March, 2022. Our travel budget is set at $1,100. We'd love to experience both American and Chinese cuisines during our journey.", "level": "middle"}, [{"days": 1, "current_city": "from Fort Lauderdale to Milwaukee", "transportation": "Self-driving, from Fort Lauderdale to Milwaukee, duration: 21 hours 6 mins, distance: 2,340 km, cost: 117", "breakfast": "-", "attraction": "-", "lunch": "-", "dinner": "Madly Bangalee, Milwaukee", "accommodation": "Affordable bedroom in the East Village!, Milwaukee"}, {"days": 2, "current_city": "Milwaukee", "transportation": "-", "breakfast": "Cake O Frost, Milwaukee", "attraction": "Milwaukee Public Museum, Milwaukee;Milwaukee County Zoo, Milwaukee;", "lunch": "Welcome Fast Food & Parantha, Milwaukee", "dinner": "Shawarma King's, Milwaukee", "accommodation": "Affordable bedroom in the East Village!, Milwaukee"}, {"days": 3, "current_city": "from Milwaukee to Fort Lauderdale", "transportation": "Self-driving, from Milwaukee to Fort Lauderdale, duration: 21 hours 6 mins, distance: 2,336 km, cost: 116", "breakfast": "Cool Basil, Milwaukee", "attraction": "-", "lunch": "-", "dinner": "-", "accommodation": "-"}, {}, {}, {}, {}]]
plan/plan_21.json ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "org": "Nashville",
4
+ "dest": "Pennsylvania",
5
+ "days": 5,
6
+ "visiting_city_number": 2,
7
+ "date": [
8
+ "2022-03-12",
9
+ "2022-03-13",
10
+ "2022-03-14",
11
+ "2022-03-15",
12
+ "2022-03-16"
13
+ ],
14
+ "people_number": 6,
15
+ "local_constraint": {
16
+ "house rule": null,
17
+ "cuisine": null,
18
+ "room type": "entire room",
19
+ "transportation": null
20
+ },
21
+ "budget": 15100,
22
+ "query": "Could you formulate a 5-day trip plan for a group of 6 people? We will be starting in Nashville and would like to cover 2 cities in Pennsylvania from March 12th to March 16th, 2022. Our budget is approximately $15,100, and we would like to rent entire rooms for our accommodations.",
23
+ "level": "middle"
24
+ },
25
+ [
26
+ {
27
+ "days": 1,
28
+ "current_city": "from Nashville to Pittsburgh(Pennsylvania)",
29
+ "transportation": "Flight Number: F3947470, from Nashville to Pittsburgh(Pennsylvania), Departure Time: 09:54, Arrival Time: 12:15",
30
+ "breakfast": "-",
31
+ "attraction": "The Andy Warhol Museum, Pittsburgh(Pennsylvania);",
32
+ "lunch": "Beijing Cafe, Pittsburgh(Pennsylvania)",
33
+ "dinner": "Via Delhi, Pittsburgh(Pennsylvania)",
34
+ "accommodation": "New Designer 4 Bedroom, AC-Laundry. Next to Subway, Pittsburgh(Pennsylvania)"
35
+ },
36
+ {
37
+ "days": 2,
38
+ "current_city": "Pittsburgh(Pennsylvania)",
39
+ "transportation": "-",
40
+ "breakfast": "Maharaja Bhog, Pittsburgh(Pennsylvania)",
41
+ "attraction": "Pittsburgh Zoo & Aquarium, Pittsburgh(Pennsylvania);Randyland, Pittsburgh(Pennsylvania);",
42
+ "lunch": "Aryan Family's Delight, Pittsburgh(Pennsylvania)",
43
+ "dinner": "Standard Family Restaurant, Pittsburgh(Pennsylvania)",
44
+ "accommodation": "New Designer 4 Bedroom, AC-Laundry. Next to Subway, Pittsburgh(Pennsylvania)"
45
+ },
46
+ {
47
+ "days": 3,
48
+ "current_city": "from Pittsburgh(Pennsylvania) to Philadelphia(Pennsylvania)",
49
+ "transportation": "Taxi, from Pittsburgh(Pennsylvania) to Philadelphia(Pennsylvania), duration: 4 hours 45 mins, distance: 490 km, cost: 490",
50
+ "breakfast": "Embassy, Pittsburgh(Pennsylvania)",
51
+ "attraction": "The Franklin Institute, Philadelphia(Pennsylvania);",
52
+ "lunch": "Hong Kong Cafe, Philadelphia(Pennsylvania)",
53
+ "dinner": "Red Ginger Sushi, Grill & Bar, Philadelphia(Pennsylvania)",
54
+ "accommodation": "Modern Luxury Apartment in Heart of Williamsburg, Philadelphia(Pennsylvania)"
55
+ },
56
+ {
57
+ "days": 4,
58
+ "current_city": "Philadelphia(Pennsylvania)",
59
+ "transportation": "-",
60
+ "breakfast": "Hippopotamus - Museum Hotel, Philadelphia(Pennsylvania)",
61
+ "attraction": "The M\u00fctter Museum at The College of Physicians of Philadelphia, Philadelphia(Pennsylvania);Betsy Ross House, Philadelphia(Pennsylvania);",
62
+ "lunch": "Pizza Hut, Philadelphia(Pennsylvania)",
63
+ "dinner": "Domino's Pizza, Philadelphia(Pennsylvania)",
64
+ "accommodation": "Modern Luxury Apartment in Heart of Williamsburg, Philadelphia(Pennsylvania)"
65
+ },
66
+ {
67
+ "days": 5,
68
+ "current_city": "from Philadelphia(Pennsylvania) to Nashville",
69
+ "transportation": "Flight Number: F4006255, from Philadelphia(Pennsylvania) to Nashville, Departure Time: 20:50, Arrival Time: 21:43",
70
+ "breakfast": "Asian Chopstick, Philadelphia(Pennsylvania)",
71
+ "attraction": "Philadelphia Zoo, Philadelphia(Pennsylvania);",
72
+ "lunch": "Bangla Sweet Corner, Philadelphia(Pennsylvania)",
73
+ "dinner": "Bikaner Sweets & Namkeen, Philadelphia(Pennsylvania)",
74
+ "accommodation": "-"
75
+ },
76
+ {},
77
+ {}
78
+ ]
79
+ ]
plan/plan_22.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "New York", "dest": "Louisiana", "days": 5, "visiting_city_number": 2, "date": ["2022-03-15", "2022-03-16", "2022-03-17", "2022-03-18", "2022-03-19"], "people_number": 4, "local_constraint": {"house rule": "smoking", "cuisine": null, "room type": null, "transportation": null}, "budget": 12300, "query": "Could you help create a 5-day travel itinerary for a group of 4, starting from New York and visiting 2 cities in Louisiana from March 15th to March 19th, 2022? We have a budget of $12,300. Please note that we require accommodations where smoking is permissible.", "level": "middle"}, [{"days": 1, "current_city": "from New York to New Orleans(Louisiana)", "transportation": "Flight Number: F3525619, from New York to New Orleans(Louisiana), Departure Time: 07:40, Arrival Time: 10:01", "breakfast": "-", "attraction": "New Orleans City Park, New Orleans(Louisiana);Audubon Aquarium, New Orleans(Louisiana);", "lunch": "Town Table Restaurant, New Orleans(Louisiana)", "dinner": "Momo-Cha, New Orleans(Louisiana)", "accommodation": "A great place to crash., New Orleans(Louisiana)"}, {"days": 2, "current_city": "New Orleans(Louisiana)", "transportation": "-", "breakfast": "Sage, New Orleans(Louisiana)", "attraction": "Jackson Square, New Orleans(Louisiana);The National WWII Museum, New Orleans(Louisiana);Audubon Zoo, New Orleans(Louisiana);", "lunch": "Chinese Hot Express, New Orleans(Louisiana)", "dinner": "Amici Gourmet Pizza, New Orleans(Louisiana)", "accommodation": "A great place to crash., New Orleans(Louisiana)"}, {"days": 3, "current_city": "from New Orleans(Louisiana) to Baton Rouge(Louisiana)", "transportation": "Taxi, from New Orleans(Louisiana) to Baton Rouge(Louisiana), duration: 1 hour 17 mins, distance: 131 km, cost: 131", "breakfast": "Cafe Coffee Day, New Orleans(Louisiana)", "attraction": "Louisiana's Old State Capitol, Baton Rouge(Louisiana);USS KIDD Veterans Museum, Baton Rouge(Louisiana);Capitol Park Museum, Baton Rouge(Louisiana);", "lunch": "The Blaze, Baton Rouge(Louisiana)", "dinner": "Roti Te Boti, Baton Rouge(Louisiana)", "accommodation": "Lovely West Village 1 BR - Quiet and Comfortable, Baton Rouge(Louisiana)"}, {"days": 4, "current_city": "Baton Rouge(Louisiana)", "transportation": "-", "breakfast": "Tandoori Planet, Baton Rouge(Louisiana)", "attraction": "Magnolia Mound Plantation, Baton Rouge(Louisiana);Mike the Tiger's Habitat, Baton Rouge(Louisiana);Blue Bayou Water Park, Baton Rouge(Louisiana);", "lunch": "Food Plaza, Baton Rouge(Louisiana)", "dinner": "Gupta Sweets & Namkeen, Baton Rouge(Louisiana)", "accommodation": "Lovely West Village 1 BR - Quiet and Comfortable, Baton Rouge(Louisiana)"}, {"days": 5, "current_city": "from Baton Rouge(Louisiana) to New York", "transportation": "Taxi, from Baton Rouge(Louisiana) to New York, duration: 20 hours 3 mins, distance: 2,192 km, cost: 2192", "breakfast": "The Black Bamboo, Baton Rouge(Louisiana)", "attraction": "-", "lunch": "-", "dinner": "-", "accommodation": "-"}, {}, {}]]
plan/plan_23.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "San Jose", "dest": "Idaho", "days": 5, "visiting_city_number": 2, "date": ["2022-03-01", "2022-03-02", "2022-03-03", "2022-03-04", "2022-03-05"], "people_number": 7, "local_constraint": {"house rule": null, "cuisine": ["Indian", "French"], "room type": null, "transportation": null}, "budget": 13900, "query": "Can you help create a 5-day travel itinerary for a group of 7, departing from San Jose and covering 2 cities in Idaho, from March 1st to March 5th, 2022? We have a budget of $13,900. We'd love to try Indian and French cuisine on our journey.", "level": "middle"}, [{"days": 1, "current_city": "from San Jose to Boise(Idaho)", "transportation": "Flight Number: F3937562, from San Jose to Boise(Idaho), Departure Time: 14:01, Arrival Time: 16:28", "breakfast": "-", "attraction": "Zoo Boise, Boise(Idaho);", "lunch": "-", "dinner": "Apna Punjabi Zayka, Boise(Idaho)", "accommodation": "Duplex 5 BR apartment in a historic brownstone, Boise(Idaho)"}, {"days": 2, "current_city": "Boise(Idaho)", "transportation": "-", "breakfast": "Blooms - Eros Hotel, Boise(Idaho)", "attraction": "Camel's Back Park, Boise(Idaho);Basque Museum and Cultural Center, Boise(Idaho);Kathryn Albertson Park, Boise(Idaho);", "lunch": "Goodies- Snacks N More, Boise(Idaho)", "dinner": "Greenvich, Boise(Idaho)", "accommodation": "Duplex 5 BR apartment in a historic brownstone, Boise(Idaho)"}, {"days": 3, "current_city": "from Boise(Idaho) to Idaho Falls(Idaho)", "transportation": "Taxi, from Boise(Idaho) to Idaho Falls(Idaho), duration: 4 hours 1 min, distance: 451 km, cost: 451", "breakfast": "Gopala Hari, Boise(Idaho)", "attraction": "Giant Eagle Waterfall Nest, Idaho Falls(Idaho);Museum of Idaho, Idaho Falls(Idaho);Eagle Rock Fountain, Idaho Falls(Idaho);", "lunch": "Fresh n Frozen, Idaho Falls(Idaho)", "dinner": "Le Swaadik, Idaho Falls(Idaho)", "accommodation": "Perfect Williamsburg Summer Haven, Idaho Falls(Idaho)"}, {"days": 4, "current_city": "Idaho Falls(Idaho)", "transportation": "-", "breakfast": "Karim's, Idaho Falls(Idaho)", "attraction": "Reinhart Park, Idaho Falls(Idaho);Mini Golden Gate Bridge, Idaho Falls(Idaho);", "lunch": "Charu Nanda's Home Baked Cakes, Idaho Falls(Idaho)", "dinner": "Chinese X'Press, Idaho Falls(Idaho)", "accommodation": "Perfect Williamsburg Summer Haven, Idaho Falls(Idaho)"}, {"days": 5, "current_city": "from Idaho Falls(Idaho) to San Jose", "transportation": "Taxi, from Idaho Falls(Idaho) to San Jose, duration: 12 hours 52 mins, distance: 1,387 km, cost: 1387", "breakfast": "Taste of China, Idaho Falls(Idaho)", "attraction": "-", "lunch": "-", "dinner": "-", "accommodation": "-"}, {}, {}]]
plan/plan_24.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Asheville", "dest": "New York", "days": 5, "visiting_city_number": 2, "date": ["2022-03-13", "2022-03-14", "2022-03-15", "2022-03-16", "2022-03-17"], "people_number": 2, "local_constraint": {"house rule": null, "cuisine": ["Mexican", "Chinese"], "room type": null, "transportation": null}, "budget": 4700, "query": "Can you provide me with a 5-day travel plan for 2 people, starting from Asheville and exploring 2 cities in New York from March 13th to March 17th, 2022? Our budget is set at $4,700 and we would love to try local Mexican and Chinese cuisines during our trip.", "level": "middle"}, [{"days": 1, "current_city": "from Asheville to New York(New York)", "transportation": "Flight Number: F3641730, from Asheville to New York(New York), Departure Time: 13:49, Arrival Time: 15:40", "breakfast": "-", "attraction": "-", "lunch": "-", "dinner": "Rambhog, New York(New York)", "accommodation": "A Contemporary Homelike Stay in the Best of BK, New York(New York)"}, {"days": 2, "current_city": "New York(New York)", "transportation": "-", "breakfast": "Lord of the Drinks Forum, New York(New York)", "attraction": "Top of The Rock, New York(New York);One World Observatory, New York(New York);", "lunch": "Seasons 52 Fresh Grill, New York(New York)", "dinner": "Gurgaon Hights, New York(New York)", "accommodation": "A Contemporary Homelike Stay in the Best of BK, New York(New York)"}, {"days": 3, "current_city": "from New York(New York) to Buffalo(New York)", "transportation": "Taxi, from New York(New York) to Buffalo(New York), duration: 6 hours 10 mins, distance: 600 km, cost: 600", "breakfast": "Hungry Ullu, New York(New York)", "attraction": "-", "lunch": "Garam Masala Food Corner, New York(New York)", "dinner": "Shokitini, Buffalo(New York)", "accommodation": "A SUPERB One Bedroom Apartment, Buffalo(New York)"}, {"days": 4, "current_city": "Buffalo(New York)", "transportation": "-", "breakfast": "Ammu's South Indian Restaurant, Buffalo(New York)", "attraction": "The Buffalo Zoo, Buffalo(New York);Buffalo AKG Art Museum, Buffalo(New York);", "lunch": "HSI Food World, Buffalo(New York)", "dinner": "Shama Chicken Corner, Buffalo(New York)", "accommodation": "A SUPERB One Bedroom Apartment, Buffalo(New York)"}, {"days": 5, "current_city": "from Buffalo(New York) to Asheville", "transportation": "Taxi, from Buffalo(New York) to Asheville, duration: 10 hours 27 mins, distance: 1,110 km, cost: 1110", "breakfast": "Madras Cafe, Buffalo(New York)", "attraction": "-", "lunch": "Lutyens Cocktail House, Buffalo(New York)", "dinner": "-", "accommodation": "-"}, {}, {}]]
plan/plan_25.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Memphis", "dest": "Minnesota", "days": 5, "visiting_city_number": 2, "date": ["2022-03-01", "2022-03-02", "2022-03-03", "2022-03-04", "2022-03-05"], "people_number": 4, "local_constraint": {"house rule": null, "cuisine": null, "room type": "private room", "transportation": null}, "budget": 13800, "query": "Could you draft a 5-day travel plan for a group of 4 departing from Memphis and venturing into 2 cities in Minnesota? Our travels are scheduled from March 1st to March 5th, 2022, and our budget is set at $13,800. We require accommodations that provide private rooms.", "level": "middle"}, [{"days": 1, "current_city": "from Memphis to Minneapolis(Minnesota)", "transportation": "Flight Number: F3849516, from Memphis to Minneapolis(Minnesota), Departure Time: 18:16, Arrival Time: 20:19", "breakfast": "-", "attraction": "-", "lunch": "-", "dinner": "-", "accommodation": "Convent Ave & 127st Col Univ RM 2, Minneapolis(Minnesota)"}, {"days": 2, "current_city": "Minneapolis(Minnesota)", "transportation": "-", "breakfast": "Malo, Minneapolis(Minnesota)", "attraction": "American Swedish Institute, Minneapolis(Minnesota);Stepped Tower, Minneapolis(Minnesota);Minnehaha Regional Park, Minneapolis(Minnesota);", "lunch": "Balbeer's Kitchen & Bar, Minneapolis(Minnesota)", "dinner": "Oregano India, Minneapolis(Minnesota)", "accommodation": "Convent Ave & 127st Col Univ RM 2, Minneapolis(Minnesota)"}, {"days": 3, "current_city": "from Minneapolis(Minnesota) to Gustavus(Minnesota)", "transportation": "Taxi, from Minneapolis(Minnesota) to Gustavus(Minnesota), duration: 1 hour 9 mins, distance: 112 km, cost: 112", "breakfast": "Nukkadwala, Minneapolis(Minnesota)", "attraction": "Gustavus Community Garden, Gustavus(Minnesota);Glacier Bay National Park and Preserve Headquarters, Gustavus(Minnesota);Cross Sound Express Whale Watching, Gustavus(Minnesota);", "lunch": "Med E Taste, Gustavus(Minnesota)", "dinner": "On The Rocks - The Atrium, Gustavus(Minnesota)", "accommodation": "Private room in Central Park North, Gustavus(Minnesota)"}, {"days": 4, "current_city": "Gustavus(Minnesota)", "transportation": "-", "breakfast": "For the Love of Cake, Gustavus(Minnesota)", "attraction": "Fairweather Adventures at Glacier Bay, Gustavus(Minnesota);Spirit Walker Expeditions, Gustavus(Minnesota);Gustavus Visitors Association, Gustavus(Minnesota);", "lunch": "Chaayos, Gustavus(Minnesota)", "dinner": "Krishna Da Dhaba, Gustavus(Minnesota)", "accommodation": "Private room in Central Park North, Gustavus(Minnesota)"}, {"days": 5, "current_city": "from Gustavus(Minnesota) to Memphis", "transportation": "Taxi, from Gustavus(Minnesota) to Memphis, duration: 12 hours 3 mins, distance: 1,294 km, cost: 1294", "breakfast": "Wood Box Cafe, Gustavus(Minnesota)", "attraction": "-", "lunch": "-", "dinner": "-", "accommodation": "-"}, {}, {}]]
plan/plan_26.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Santa Ana", "dest": "Texas", "days": 7, "visiting_city_number": 3, "date": ["2022-03-25", "2022-03-26", "2022-03-27", "2022-03-28", "2022-03-29", "2022-03-30", "2022-03-31"], "people_number": 4, "local_constraint": {"house rule": "children under 10", "cuisine": null, "room type": null, "transportation": null}, "budget": 5800, "query": "We need a 7-day travel plan for a group of 4, taking off from Santa Ana and visiting 3 different cities in Texas from March 25th to March 31st, 2022. Our budget is set at $5,800 for the trip. Additionally, our lodging options must accommodate children under the age of 10.", "level": "middle"}, [{"days": 1, "current_city": "from Santa Ana to Abilene(Texas)", "transportation": "Self-driving, from Santa Ana to Abilene(Texas), duration: 18 hours 0 mins, distance: 1,995 km, cost: 99", "breakfast": "-", "attraction": "-", "lunch": "-", "dinner": "Dilli Darbar, Abilene(Texas)", "accommodation": "Cozy Artists Apartment in Central Harlem, Abilene(Texas)"}, {"days": 2, "current_city": "Abilene(Texas)", "transportation": "-", "breakfast": "Biryani Express, Abilene(Texas)", "attraction": "Frontier Texas!, Abilene(Texas);Historic Fort Phantom Hill, Abilene(Texas);12th Armored Division Memorial, Abilene(Texas);National Center for Children's Illustrated Literature, Abilene(Texas);", "lunch": "Gelato Vinto, Abilene(Texas)", "dinner": "Thai Garden, Abilene(Texas)", "accommodation": "Cozy Artists Apartment in Central Harlem, Abilene(Texas)"}, {"days": 3, "current_city": "from Abilene(Texas) to Amarillo(Texas)", "transportation": "Self-driving, from Abilene(Texas) to Amarillo(Texas), duration: 4 hours 9 mins, distance: 446 km, cost: 22", "breakfast": "Inam Muradabadi, Abilene(Texas)", "attraction": "Amarillo Botanical Gardens, Amarillo(Texas);Cadillac Ranch, Amarillo(Texas);", "lunch": "-", "dinner": "U Like, Amarillo(Texas)", "accommodation": "1BR Doorman Bldg Boerum Hill BK, Amarillo(Texas)"}, {"days": 4, "current_city": "Amarillo(Texas)", "transportation": "-", "breakfast": "Wood Box Cafe, Amarillo(Texas)", "attraction": "Amarillo Zoo, Amarillo(Texas);Don Harrington Discovery Center, Amarillo(Texas);Texas Air & Space Museum, Amarillo(Texas);", "lunch": "Biryani Sons & Co., Amarillo(Texas)", "dinner": "Sugar Daddy Bakers, Amarillo(Texas)", "accommodation": "1BR Doorman Bldg Boerum Hill BK, Amarillo(Texas)"}, {"days": 5, "current_city": "from Amarillo(Texas) to Lubbock(Texas)", "transportation": "Self-driving, from Amarillo(Texas) to Lubbock(Texas), duration: 1 hour 47 mins, distance: 197 km, cost: 9", "breakfast": "The Cinnamon Kitchen, Amarillo(Texas)", "attraction": "Buddy Holly Center, Lubbock(Texas);", "lunch": "-", "dinner": "Keventers, Lubbock(Texas)", "accommodation": "Gorgeous Spacious Room in Clinton Hill, Lubbock(Texas)"}, {"days": 6, "current_city": "Lubbock(Texas)", "transportation": "-", "breakfast": "Handi, Lubbock(Texas)", "attraction": "American Windmill Museum, Lubbock(Texas);Mackenzie Main City Park, Lubbock(Texas);Museum of Texas Tech University, Lubbock(Texas);Prairie Dog Town, Lubbock(Texas);", "lunch": "Punjabi Chaap Corner, Lubbock(Texas)", "dinner": "Grand Barbeque Buffet Restaurant, Lubbock(Texas)", "accommodation": "Gorgeous Spacious Room in Clinton Hill, Lubbock(Texas)"}, {"days": 7, "current_city": "from Lubbock(Texas) to Santa Ana", "transportation": "Self-driving, from Lubbock(Texas) to Santa Ana, duration: 16 hours 25 mins, distance: 1,777 km, cost: 88", "breakfast": "Paris 6 Classique, Lubbock(Texas)", "attraction": "-", "lunch": "-", "dinner": "-", "accommodation": "-"}]]
plan/plan_27.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Sault Ste. Marie", "dest": "Michigan", "days": 7, "visiting_city_number": 3, "date": ["2022-03-15", "2022-03-16", "2022-03-17", "2022-03-18", "2022-03-19", "2022-03-20", "2022-03-21"], "people_number": 5, "local_constraint": {"house rule": null, "cuisine": null, "room type": "entire room", "transportation": null}, "budget": 12700, "query": "We are a group of 5 looking for a 7-day travel itinerary, departing from Sault Ste. Marie towards Michigan. We plan to visit 3 different cities from March 15th to March 21st, 2022. Our budget allows us to spend up to $12,700. We require entire rooms for our stay. Could you help us with this plan?", "level": "middle"}, [{"days": 1, "current_city": "from Sault Ste. Marie to Pellston(Michigan)", "transportation": "Self-driving, from Sault Ste. Marie to Pellston(Michigan), duration: 1 hour 16 mins, distance: 122 km, cost: 6", "breakfast": "-", "attraction": "Pellston Pioneer Park, Pellston(Michigan);Pellston Historical Society Museum, Pellston(Michigan);", "lunch": "Aroos Damascus, Pellston(Michigan)", "dinner": "Sagar Gaire Fast Food, Pellston(Michigan)", "accommodation": "Designer's Beautiful 2BR Apartment in NOLITA/SOHO, Pellston(Michigan)"}, {"days": 2, "current_city": "Pellston(Michigan)", "transportation": "-", "breakfast": "Mudrika Food Factory, Pellston(Michigan)", "attraction": "Mineral Well Park, Pellston(Michigan);McGulpin Point Lighthouse, Pellston(Michigan);", "lunch": "Sikandrabadi Biryani, Pellston(Michigan)", "dinner": "Ravi Ke Parathe, Pellston(Michigan)", "accommodation": "Designer's Beautiful 2BR Apartment in NOLITA/SOHO, Pellston(Michigan)"}, {"days": 3, "current_city": "from Pellston(Michigan) to Traverse City(Michigan)", "transportation": "Self-driving, from Pellston(Michigan) to Traverse City(Michigan), duration: 1 hour 50 mins, distance: 137 km, cost: 6", "breakfast": "Wok On Fire, Pellston(Michigan)", "attraction": "Lay Park, Traverse City(Michigan);City Opera House, Traverse City(Michigan);", "lunch": "Cafe Shloka, Traverse City(Michigan)", "dinner": "Al Bake, Traverse City(Michigan)", "accommodation": "Cozy , Cute and Spacious one bedroom Brooklyn Apt, Traverse City(Michigan)"}, {"days": 4, "current_city": "Traverse City(Michigan)", "transportation": "-", "breakfast": "French Toast, Traverse City(Michigan)", "attraction": "Gens Park, Traverse City(Michigan);Discovery Pier, Traverse City(Michigan);", "lunch": "Famous Dave's, Traverse City(Michigan)", "dinner": "Arigato Sushi, Traverse City(Michigan)", "accommodation": "Cozy , Cute and Spacious one bedroom Brooklyn Apt, Traverse City(Michigan)"}, {"days": 5, "current_city": "from Traverse City(Michigan) to Alpena(Michigan)", "transportation": "Self-driving, from Traverse City(Michigan) to Alpena(Michigan), duration: 2 hours 28 mins, distance: 204 km, cost: 10", "breakfast": "Tasty Bites, Traverse City(Michigan)", "attraction": "Rotary Island Mill Park, Alpena(Michigan);Culligan Plaza, Alpena(Michigan);", "lunch": "Wrapss, Alpena(Michigan)", "dinner": "The Food Express, Alpena(Michigan)", "accommodation": "Ultimate 50th Floor Downtown Penthouse - 4000SqFt, Alpena(Michigan)"}, {"days": 6, "current_city": "Alpena(Michigan)", "transportation": "-", "breakfast": "Chennai Dosa Express, Alpena(Michigan)", "attraction": "McRae Park, Alpena(Michigan);", "lunch": "@Mango, Alpena(Michigan)", "dinner": "Breaktym, Alpena(Michigan)", "accommodation": "Ultimate 50th Floor Downtown Penthouse - 4000SqFt, Alpena(Michigan)"}, {"days": 7, "current_city": "from Alpena(Michigan) to Sault Ste. Marie", "transportation": "Self-driving, from Alpena(Michigan) to Sault Ste. Marie, duration: 2 hours 39 mins, distance: 247 km, cost: 12", "breakfast": "Shashi's China Wok, Alpena(Michigan)", "attraction": "Maritime Heritage Trail, Alpena(Michigan);", "lunch": "DudeFood, Alpena(Michigan)", "dinner": "-", "accommodation": "-"}]]
plan/plan_28.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "St. Louis", "dest": "California", "days": 7, "visiting_city_number": 3, "date": ["2022-03-17", "2022-03-18", "2022-03-19", "2022-03-20", "2022-03-21", "2022-03-22", "2022-03-23"], "people_number": 2, "local_constraint": {"house rule": null, "cuisine": ["American", "Chinese"], "room type": null, "transportation": null}, "budget": 9500, "query": "I need help crafting a 7-day travel plan for two individuals, departing from St. Louis and intending to visit 3 separate cities in California. The travel dates are from March 17th to March 23rd, 2022. We have a budget of $9,500 to cover all expenses. As for dining preferences, we are particularly fond of American and Chinese cuisines.", "level": "middle"}, [{"days": 1, "current_city": "from St. Louis to San Diego(California)", "transportation": "Flight Number: F4025732, from St. Louis to San Diego(California), Departure Time: 16:42, Arrival Time: 18:31", "breakfast": "-", "attraction": "-", "lunch": "-", "dinner": "Burgrill, San Diego(California)", "accommodation": "Spacious Room in Large 2 Bedroom Prewar Apartment, San Diego(California)"}, {"days": 2, "current_city": "San Diego(California)", "transportation": "-", "breakfast": "Jetha Lal Ka Dhabha, San Diego(California)", "attraction": "La Jolla Shores Park, San Diego(California);Skytower, San Diego(California);", "lunch": "Gopala, San Diego(California)", "dinner": "Open Yard, San Diego(California)", "accommodation": "Spacious Room in Large 2 Bedroom Prewar Apartment, San Diego(California)"}, {"days": 3, "current_city": "from San Diego(California) to San Francisco(California)", "transportation": "Flight Number: F3746772, from San Diego(California) to San Francisco(California), Departure Time: 08:09, Arrival Time: 09:43", "breakfast": "-", "attraction": "Golden Gate Park, San Francisco(California);Golden Gate Bridge, San Francisco(California);", "lunch": "Bonne Bouche, San Francisco(California)", "dinner": "Cafe All-Inn, San Francisco(California)", "accommodation": "Cozy room, easy trip to Manhattan & North Brooklyn, San Francisco(California)"}, {"days": 4, "current_city": "San Francisco(California)", "transportation": "-", "breakfast": "Coffee & Chai Co., San Francisco(California)", "attraction": "California Academy of Sciences, San Francisco(California);San Francisco Museum of Modern Art, San Francisco(California);", "lunch": "Sudarshan, San Francisco(California)", "dinner": "Moets Oh! Bao, San Francisco(California)", "accommodation": "Cozy room, easy trip to Manhattan & North Brooklyn, San Francisco(California)"}, {"days": 5, "current_city": "from San Francisco(California) to Long Beach(California)", "transportation": "Taxi, from San Francisco(California) to Long Beach(California), duration: 6 hours 15 mins, distance: 652 km, cost: 652", "breakfast": "Gupta's Rasoi, San Francisco(California)", "attraction": "The Queen Mary, Long Beach(California);", "lunch": "-", "dinner": "Tsing Tsao South, Long Beach(California)", "accommodation": "Cozy Two Bedrooms Home Away From Home Getaway., Long Beach(California)"}, {"days": 6, "current_city": "Long Beach(California)", "transportation": "-", "breakfast": "Winifreds, Long Beach(California)", "attraction": "Aquarium of the Pacific, Long Beach(California);Rainbow Lagoon Park, Long Beach(California);", "lunch": "Greek Village, Long Beach(California)", "dinner": "Giuseppe's Pizza & Italian Specialities, Long Beach(California)", "accommodation": "Cozy Two Bedrooms Home Away From Home Getaway., Long Beach(California)"}, {"days": 7, "current_city": "from Long Beach(California) to St. Louis", "transportation": "Flight Number: F3986547, from Long Beach(California) to St. Louis, Departure Time: 07:04, Arrival Time: 12:37", "breakfast": "-", "attraction": "-", "lunch": "-", "dinner": "-", "accommodation": "-"}]]
plan/plan_29.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Louisville", "dest": "Michigan", "days": 7, "visiting_city_number": 3, "date": ["2022-03-08", "2022-03-09", "2022-03-10", "2022-03-11", "2022-03-12", "2022-03-13", "2022-03-14"], "people_number": 4, "local_constraint": {"house rule": null, "cuisine": null, "room type": "private room", "transportation": null}, "budget": 19400, "query": "We're organizing a week-long trip for 4 people, starting in Louisville and stopping in three different cities in Michigan. The trip will begin on March 8th and conclude on March 14th, 2022. Our budget is now $19,400, and we require private rooms for accommodations.", "level": "middle"}, [{"days": 1, "current_city": "from Louisville to Pellston(Michigan)", "transportation": "Self-driving, from Louisville to Pellston(Michigan), duration: 8 hours 24 mins, distance: 939 km, cost: 46", "breakfast": "-", "attraction": "-", "lunch": "-", "dinner": "Johnnie Mars, Pellston(Michigan)", "accommodation": "City Living with a Home Town Feel., Pellston(Michigan)"}, {"days": 2, "current_city": "Pellston(Michigan)", "transportation": "-", "breakfast": "The Great Kabab Factory - Park Plaza, Pellston(Michigan)", "attraction": "Castle Rock, Pellston(Michigan);Burt Lake State Park, Pellston(Michigan);", "lunch": "The Plaza Solitaire, Pellston(Michigan)", "dinner": "Premier Bite, Pellston(Michigan)", "accommodation": "City Living with a Home Town Feel., Pellston(Michigan)"}, {"days": 3, "current_city": "from Pellston(Michigan) to Kalamazoo(Michigan)", "transportation": "Self-driving, from Pellston(Michigan) to Kalamazoo(Michigan), duration: 4 hours 4 mins, distance: 407 km, cost: 20", "breakfast": "Behrouz Biryani, Pellston(Michigan)", "attraction": "Air Zoo Aerospace & Science Museum, Kalamazoo(Michigan);", "lunch": "Django, Kalamazoo(Michigan)", "dinner": "Giulios Greek & Italian Restaurant, Kalamazoo(Michigan)", "accommodation": "Pvt Room for Two Near JFK 6 mi/ LGA 10 mi- Olive, Kalamazoo(Michigan)"}, {"days": 4, "current_city": "Kalamazoo(Michigan)", "transportation": "-", "breakfast": "Crispers, Kalamazoo(Michigan)", "attraction": "Christmas Card Lane, Kalamazoo(Michigan);Urban Nature Park - Kalamazoo Nature Center, Kalamazoo(Michigan);", "lunch": "Juice Lounge, Kalamazoo(Michigan)", "dinner": "Cafe Lounge, Kalamazoo(Michigan)", "accommodation": "Pvt Room for Two Near JFK 6 mi/ LGA 10 mi- Olive, Kalamazoo(Michigan)"}, {"days": 5, "current_city": "from Kalamazoo(Michigan) to Detroit(Michigan)", "transportation": "Self-driving, from Kalamazoo(Michigan) to Detroit(Michigan), duration: 2 hours 11 mins, distance: 225 km, cost: 11", "breakfast": "Giani's, Kalamazoo(Michigan)", "attraction": "GMRenCen, Detroit(Michigan);", "lunch": "Southern Bliss Bakery, Detroit(Michigan)", "dinner": "A Dong Restaurant, Detroit(Michigan)", "accommodation": "Nice Room in Manhattan, Detroit(Michigan)"}, {"days": 6, "current_city": "Detroit(Michigan)", "transportation": "-", "breakfast": "Cafe 6, Detroit(Michigan)", "attraction": "Beacon Park, Detroit(Michigan);Henry Ford Museum of American Innovation, Detroit(Michigan);", "lunch": "Aapki Rasoi, Detroit(Michigan)", "dinner": "N. Iqbal Restaurant, Detroit(Michigan)", "accommodation": "Nice Room in Manhattan, Detroit(Michigan)"}, {"days": 7, "current_city": "from Detroit(Michigan) to Louisville", "transportation": "Self-driving, from Detroit(Michigan) to Louisville, duration: 5 hours 24 mins, distance: 582 km, cost: 29", "breakfast": "Flavours of Punjab, Detroit(Michigan)", "attraction": "-", "lunch": "DV's Chinese Kitchen, Detroit(Michigan)", "dinner": "52 Food Express, Detroit(Michigan)", "accommodation": "-"}]]
plan/plan_3.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Las Vegas", "dest": "Stockton", "days": 3, "visiting_city_number": 1, "date": ["2022-03-03", "2022-03-04", "2022-03-05"], "people_number": 1, "local_constraint": {"house rule": null, "cuisine": null, "room type": null, "transportation": null}, "budget": 1400, "query": "Please design a travel plan departing from Las Vegas and heading to Stockton for 3 days, from March 3rd to March 5th, 2022, for one person, with a budget of $1,400.", "level": "easy"}, [{"days": 1, "current_city": "from Las Vegas to Stockton", "transportation": "Flight Number: F3576711, from Las Vegas to Stockton, Departure Time: 06:01, Arrival Time: 07:28", "breakfast": "Biaggi's Ristorante Italiano, Stockton", "attraction": "Louis Park, Stockton;Buckley Cove Park, Stockton;", "lunch": "Twin Brothers, Stockton", "dinner": "Muffins, Stockton", "accommodation": "Private Apt 2BR/1Bath/Kitchen/Parking in OUR HOME, Stockton"}, {"days": 2, "current_city": "Stockton", "transportation": "-", "breakfast": "The Blue Tandoor, Stockton", "attraction": "Shumway Oak Grove Regional Park, Stockton;Mexican Heritage Center & Gallery, Stockton;", "lunch": "Nand Bhai Chholey Bhature, Stockton", "dinner": "Wok On Fire, Stockton", "accommodation": "Private Apt 2BR/1Bath/Kitchen/Parking in OUR HOME, Stockton"}, {"days": 3, "current_city": "from Stockton to Las Vegas", "transportation": "Flight Number: F3576850, from Stockton to Las Vegas, Departure Time: 13:42, Arrival Time: 15:03", "breakfast": "Dimsum & Co., Stockton", "attraction": "Wat Dhammararam Buddhist Temple, Stockton;", "lunch": "High Street Kitchen & Bar, Stockton", "dinner": "-", "accommodation": "-"}, {}, {}, {}, {}]]
plan/plan_30.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Oakland", "dest": "Oregon", "days": 7, "visiting_city_number": 3, "date": ["2022-03-12", "2022-03-13", "2022-03-14", "2022-03-15", "2022-03-16", "2022-03-17", "2022-03-18"], "people_number": 2, "local_constraint": {"house rule": null, "cuisine": ["Italian", "Mediterranean"], "room type": null, "transportation": null}, "budget": 4500, "query": "Could you help craft a week-long travel plan for 2 people? We'll be departing from Oakland and aim to visit 3 different cities in Oregon from March 12th to March 18th, 2022, with a total budget of $4,500. As for meals, we have a preference for Italian and Mediterranean cuisines.", "level": "middle"}, [{"days": 1, "current_city": "from Oakland to Portland(Oregon)", "transportation": "Self-driving, from Oakland to Portland(Oregon), duration: 9 hours 38 mins, distance: 1,012 km, cost: 50", "breakfast": "-", "attraction": "-", "lunch": "-", "dinner": "Nacho Mamas Burritos, Portland(Oregon)", "accommodation": "I promise you ,you'll never want to leave!, Portland(Oregon)"}, {"days": 2, "current_city": "Portland(Oregon)", "transportation": "-", "breakfast": "Mighty Mughlai, Portland(Oregon)", "attraction": "Washington Park, Portland(Oregon);Pittock Mansion, Portland(Oregon);", "lunch": "The Kitchen Factory, Portland(Oregon)", "dinner": "Public Cafe, Portland(Oregon)", "accommodation": "I promise you ,you'll never want to leave!, Portland(Oregon)"}, {"days": 3, "current_city": "from Portland(Oregon) to Medford(Oregon)", "transportation": "Self-driving, from Portland(Oregon) to Medford(Oregon), duration: 4 hours 16 mins, distance: 439 km, cost: 21", "breakfast": "Haldiram's, Portland(Oregon)", "attraction": "Liberty Park, Medford(Oregon);Alba Park, Medford(Oregon);Lewis Park, Medford(Oregon);", "lunch": "The Midnight Heroes, Medford(Oregon)", "dinner": "Orange Peel by Rasleen Kochhar, Medford(Oregon)", "accommodation": "The Fountain House, Medford(Oregon)"}, {"days": 4, "current_city": "Medford(Oregon)", "transportation": "-", "breakfast": "New South Indian Hut, Medford(Oregon)", "attraction": "Hawthorne Park Playground, Medford(Oregon);Bear Creek Park, Medford(Oregon);", "lunch": "Bun Intended, Medford(Oregon)", "dinner": "Food Villa, Medford(Oregon)", "accommodation": "The Fountain House, Medford(Oregon)"}, {"days": 5, "current_city": "from Medford(Oregon) to Eugene(Oregon)", "transportation": "Self-driving, from Medford(Oregon) to Eugene(Oregon), duration: 2 hours 39 mins, distance: 268 km, cost: 13", "breakfast": "Exotica, Medford(Oregon)", "attraction": "Eugene Science Center, Eugene(Oregon);", "lunch": "Boozer's, Eugene(Oregon)", "dinner": "Upper Crust, Eugene(Oregon)", "accommodation": "Demmy's space, Eugene(Oregon)"}, {"days": 6, "current_city": "Eugene(Oregon)", "transportation": "-", "breakfast": "Nazeer Foods, Eugene(Oregon)", "attraction": "Skyview City Park, Eugene(Oregon);Delta Ponds, Eugene(Oregon);", "lunch": "Rashi's De La Creme, Eugene(Oregon)", "dinner": "Tea Lounge - Eros Hotel, Eugene(Oregon)", "accommodation": "Demmy's space, Eugene(Oregon)"}, {"days": 7, "current_city": "from Eugene(Oregon) to Oakland", "transportation": "Self-driving, from Eugene(Oregon) to Oakland, duration: 8 hours 2 mins, distance: 843 km, cost: 42", "breakfast": "-", "attraction": "-", "lunch": "-", "dinner": "-", "accommodation": "-"}]]
plan/plan_31.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Houston", "dest": "Fayetteville", "days": 3, "visiting_city_number": 1, "date": ["2022-03-20", "2022-03-21", "2022-03-22"], "people_number": 2, "local_constraint": {"house rule": "children under 10", "cuisine": ["American", "Mediterranean", "French", "Chinese"], "room type": null, "transportation": "no self-driving"}, "budget": 1500, "query": "Could you devise a 3-day travel plan for 2 people departing Houston and heading to Fayetteville from March 20th to March 22nd, 2022, with a budget of $1,500? It is vital that our accommodations allow children under the age of 10 as we will be traveling with kids. We prefer non-self-driving transportation and expect to experience a blend of American, Mediterranean, French, and Chinese cuisines during our stay.", "level": "hard"}, [{"days": 1, "current_city": "from Houston to Fayetteville", "transportation": "Flight Number: F3923211, from Houston to Fayetteville, Departure Time: 14:30, Arrival Time: 16:17", "breakfast": "-", "attraction": "Fascinate-U Children's Museum, Fayetteville;", "lunch": "-", "dinner": "Chatorey Chacha, Fayetteville", "accommodation": "Modern 4story building w/private bathroom elavator, Fayetteville"}, {"days": 2, "current_city": "Fayetteville", "transportation": "-", "breakfast": "The Great Kabab Factory, Fayetteville", "attraction": "1897 Poe House, Fayetteville;Fayetteville Rose Garden, Fayetteville;", "lunch": "Smoke N Oven, Fayetteville", "dinner": "Noshi - Yum Asian Delivery, Fayetteville", "accommodation": "Modern 4story building w/private bathroom elavator, Fayetteville"}, {"days": 3, "current_city": "from Fayetteville to Houston", "transportation": "Flight Number: F3922249, from Fayetteville to Houston, Departure Time: 19:18, Arrival Time: 20:52", "breakfast": "Andaaz E Paranthas, Fayetteville", "attraction": "ZipQuest - Waterfall & Treetop Adventure, Fayetteville;", "lunch": "The Saffron Plant Restaurant, Fayetteville", "dinner": "Subway, Fayetteville", "accommodation": "-"}, {}, {}, {}, {}]]
plan/plan_32.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Bangor", "dest": "Washington", "days": 3, "visiting_city_number": 1, "date": ["2022-03-21", "2022-03-22", "2022-03-23"], "people_number": 3, "local_constraint": {"house rule": "pets", "cuisine": null, "room type": "entire room", "transportation": "no self-driving"}, "budget": 3100, "query": "Could you generate a 3-day travel plan for a group of 3 people, departing from Bangor and visiting Washington from March 21st to March 23rd, 2022? Our budget is set at $3,100. We require accommodations that are pet-friendly and we would prefer to have entire rooms to ourselves. We do not plan on self-driving for this trip.", "level": "hard"}, [{"days": 1, "current_city": "from Bangor to Washington", "transportation": "Flight Number: F3785531, from Bangor to Washington, Departure Time: 17:59, Arrival Time: 19:44", "breakfast": "-", "attraction": "-", "lunch": "-", "dinner": "Los Aztecas, Washington", "accommodation": "Comfortable & Cozy Times Square Apt, Washington"}, {"days": 2, "current_city": "Washington", "transportation": "-", "breakfast": "Manna Java World Cafe, Washington", "attraction": "Seattle Aquarium, Washington;Beneath the Streets, Washington;", "lunch": "Hemingway's Island Grill, Washington", "dinner": "Thaaliwala, Washington", "accommodation": "Comfortable & Cozy Times Square Apt, Washington"}, {"days": 3, "current_city": "from Washington to Bangor", "transportation": "Flight Number: F3797033, from Washington to Bangor, Departure Time: 21:54, Arrival Time: 23:30", "breakfast": "Moradabadi Biryani, Washington", "attraction": "Space Needle, Washington;", "lunch": "Biryani Point, Washington", "dinner": "Domino's Pizza, Washington", "accommodation": "-"}, {}, {}, {}, {}]]
plan/plan_33.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Grand Forks", "dest": "Minneapolis", "days": 3, "visiting_city_number": 1, "date": ["2022-03-17", "2022-03-18", "2022-03-19"], "people_number": 2, "local_constraint": {"house rule": "parties", "cuisine": null, "room type": "entire room", "transportation": "no flight"}, "budget": 1300, "query": "Could you help arrange a 3-day travel plan from Grand Forks to Minneapolis for 2 people from March 17th to March 19th, 2022? We have a budget of $1,300. For our stay, we require accommodations that are conducive to hosting parties and should ideally be entire rooms. We would prefer a journey that does not involve flying.", "level": "hard"}, [{"days": 1, "current_city": "from Grand Forks to Minneapolis", "transportation": "Self-driving, from Grand Forks to Minneapolis, duration: 4 hours 36 mins, distance: 507 km, cost: 25", "breakfast": "-", "attraction": "Minnehaha Regional Park, Minneapolis;Minneapolis Lookout, Minneapolis;", "lunch": "Raja Rasoi, Minneapolis", "dinner": "Al Saad Foods, Minneapolis", "accommodation": "Light-filled Apartment in great area, close 2 all!, Minneapolis"}, {"days": 2, "current_city": "Minneapolis", "transportation": "-", "breakfast": "The Cafe, Minneapolis", "attraction": "American Swedish Institute, Minneapolis;Stepped Tower, Minneapolis;", "lunch": "Texas Roadhouse, Minneapolis", "dinner": "Court Avenue Brewing Company, Minneapolis", "accommodation": "Light-filled Apartment in great area, close 2 all!, Minneapolis"}, {"days": 3, "current_city": "from Minneapolis to Grand Forks", "transportation": "Self-driving, from Minneapolis to Grand Forks, duration: 4 hours 36 mins, distance: 507 km, cost: 25", "breakfast": "Giani, Minneapolis", "attraction": "Boom Island Lighthouse, Minneapolis;", "lunch": "Cheffron Bakery, Minneapolis", "dinner": "Surprise - Bakers & Bites, Minneapolis", "accommodation": "-"}, {}, {}, {}, {}]]
plan/plan_34.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"org": "Provo", "dest": "Phoenix", "days": 3, "visiting_city_number": 1, "date": ["2022-03-24", "2022-03-25", "2022-03-26"], "people_number": 2, "local_constraint": {"house rule": "pets", "cuisine": ["Indian", "American", "French", "Italian"], "room type": "private room", "transportation": null}, "budget": 1400, "query": "Could you create a travel plan starting from Provo to Phoenix for 2 people, from March 24th to March 26th, 2022? Our budget is set at $1,400. We'll be bringing our pets along, so accommodations with pet-friendly house rules would be preferred. We intend to stay in private rooms. In terms of food, we'd like to have a variety of cuisines, including Indian, American, French, and Italian.", "level": "hard"}, [{"days": 1, "current_city": "from Provo to Phoenix", "transportation": "Self-driving, from Provo to Phoenix, duration: 9 hours 40 mins, distance: 997 km, cost: 49", "breakfast": "-", "attraction": "-", "lunch": "-", "dinner": "Vero Gusto, Phoenix", "accommodation": "Lower East Side Oasis (private room), Phoenix"}, {"days": 2, "current_city": "Phoenix", "transportation": "-", "breakfast": "Cafe Amigo, Phoenix", "attraction": "Phoenix Art Museum, Phoenix;Enchanted Island Amusement Park, Phoenix;Hole in the Rock, Phoenix;", "lunch": "De Bone Chicken, Phoenix", "dinner": "Doughlicious, Phoenix", "accommodation": "Lower East Side Oasis (private room), Phoenix"}, {"days": 3, "current_city": "from Phoenix to Provo", "transportation": "Self-driving, from Phoenix to Provo, duration: 9 hours 32 mins, distance: 996 km, cost: 49", "breakfast": "Rupa Bangali Dhaba, Phoenix", "attraction": "-", "lunch": "-", "dinner": "-", "accommodation": "-"}, {}, {}, {}, {}]]