Spaces:
Running
Running
Upload folder using huggingface_hub
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .DS_Store +0 -0
- .gitattributes +1 -0
- annotation/.DS_Store +0 -0
- app.py +494 -0
- assets/styles.css +39 -0
- database/.DS_Store +0 -0
- database/accommodations/clean_accommodations_2022.csv +0 -0
- database/attractions/attractions.csv +0 -0
- database/background/citySet.txt +311 -0
- database/background/citySet_with_states.txt +312 -0
- database/background/clean_data.py +14 -0
- database/background/get_state_set.py +22 -0
- database/background/stateSet.txt +65 -0
- database/background/test.py +8 -0
- database/flights/.DS_Store +0 -0
- database/flights/clean_Flights_2022.csv +3 -0
- database/googleDistanceMatrix/distance.csv +0 -0
- database/restaurants/.DS_Store +0 -0
- database/restaurants/clean_restaurant_2022.csv +0 -0
- evaluataion/commonsenseConstraint.py +547 -0
- evaluataion/eval.py +181 -0
- evaluataion/hardConstraint.py +266 -0
- plan/plan_1.json +1 -0
- plan/plan_10.json +1 -0
- plan/plan_11.json +1 -0
- plan/plan_12.json +1 -0
- plan/plan_13.json +1 -0
- plan/plan_14.json +1 -0
- plan/plan_15.json +1 -0
- plan/plan_16.json +62 -0
- plan/plan_17.json +1 -0
- plan/plan_18.json +1 -0
- plan/plan_19.json +59 -0
- plan/plan_2.json +1 -0
- plan/plan_20.json +1 -0
- plan/plan_21.json +79 -0
- plan/plan_22.json +1 -0
- plan/plan_23.json +1 -0
- plan/plan_24.json +1 -0
- plan/plan_25.json +1 -0
- plan/plan_26.json +1 -0
- plan/plan_27.json +1 -0
- plan/plan_28.json +1 -0
- plan/plan_29.json +1 -0
- plan/plan_3.json +1 -0
- plan/plan_30.json +1 -0
- plan/plan_31.json +1 -0
- plan/plan_32.json +1 -0
- plan/plan_33.json +1 -0
- 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": "-"}, {}, {}, {}, {}]]
|