369 lines
29 KiB
Python
369 lines
29 KiB
Python
"""
|
||
SeaFare Montana — Realistic Test Questions for QA & Fast Path Validation
|
||
~180+ questions across 10 categories, bilingual (RU/EN), including typos & informal language.
|
||
Generated based on real maritime industry queries from shipping professionals,
|
||
freight brokers, charterers, and shipowners.
|
||
"""
|
||
|
||
TEST_QUESTIONS = [
|
||
# =========================================================================
|
||
# 1. VESSEL SEARCH (15+ questions)
|
||
# =========================================================================
|
||
{"q": "найди OSLO BULK 7", "cat": "vessel_search", "lang": "ru"},
|
||
{"q": "найти танкеры рядом с Новороссийском", "cat": "vessel_search", "lang": "ru"},
|
||
{"q": "поиск EVER GIVEN", "cat": "vessel_search", "lang": "ru"},
|
||
{"q": "найди балкер в Черном море", "cat": "vessel_search", "lang": "ru"},
|
||
{"q": "суда рядом с Баку", "cat": "vessel_search", "lang": "ru"},
|
||
{"q": "суда около Актау", "cat": "vessel_search", "lang": "ru"},
|
||
{"q": "какие суда сейчас в порту Туркменбаши", "cat": "vessel_search", "lang": "ru"},
|
||
{"q": "корабли рядом с Ротердамом", "cat": "vessel_search", "lang": "ru"}, # typo: Ротердам
|
||
{"q": "суда в каспийском море", "cat": "vessel_search", "lang": "ru"},
|
||
{"q": "найди PROFESSOR GUL", "cat": "vessel_search", "lang": "ru"},
|
||
{"q": "покажи суда на Балтике", "cat": "vessel_search", "lang": "ru"},
|
||
{"q": "суда у порта Поти", "cat": "vessel_search", "lang": "ru"},
|
||
{"q": "танкеры на Каспии", "cat": "vessel_search", "lang": "ru"},
|
||
{"q": "балкеры рядом с Констанцей", "cat": "vessel_search", "lang": "ru"},
|
||
{"q": "что на Черном море", "cat": "vessel_search", "lang": "ru"},
|
||
{"q": "find vessels near Rotterdam", "cat": "vessel_search", "lang": "en"},
|
||
{"q": "search MAERSK SEALAND", "cat": "vessel_search", "lang": "en"},
|
||
{"q": "ships at Novorossiysk", "cat": "vessel_search", "lang": "en"},
|
||
{"q": "bulk carriers in Black Sea", "cat": "vessel_search", "lang": "en"},
|
||
{"q": "tankers near Fujairah", "cat": "vessel_search", "lang": "en"},
|
||
{"q": "vessels in Caspian sea", "cat": "vessel_search", "lang": "en"},
|
||
{"q": "find NORDIC ORION", "cat": "vessel_search", "lang": "en"},
|
||
{"q": "ships near Baku port", "cat": "vessel_search", "lang": "en"},
|
||
{"q": "vessels at Singapore anchorage", "cat": "vessel_search", "lang": "en"},
|
||
{"q": "show me tankers in the Mediterranean", "cat": "vessel_search", "lang": "en"},
|
||
{"q": "bulk carriers near Odessa", "cat": "vessel_search", "lang": "en"},
|
||
{"q": "vessels near Aktau", "cat": "vessel_search", "lang": "en"},
|
||
{"q": "find STENA BULK", "cat": "vessel_search", "lang": "en"},
|
||
{"q": "what ships are in the Persian Gulf", "cat": "vessel_search", "lang": "en"},
|
||
{"q": "vessels operating in Red Sea", "cat": "vessel_search", "lang": "en"},
|
||
|
||
# =========================================================================
|
||
# 2. VESSEL DETAILS (15+ questions)
|
||
# =========================================================================
|
||
{"q": "детали CASPIAN MAINPORT", "cat": "vessel_details", "lang": "ru"},
|
||
{"q": "подробности PROFESSOR GASHIMOV", "cat": "vessel_details", "lang": "ru"},
|
||
{"q": "инфо VOLGA-DON 5074", "cat": "vessel_details", "lang": "ru"},
|
||
{"q": "кто владелец KAPITAN GASANOV", "cat": "vessel_details", "lang": "ru"},
|
||
{"q": "IMO 9349028", "cat": "vessel_details", "lang": "ru"},
|
||
{"q": "инфа по SHAKH DENIZ", "cat": "vessel_details", "lang": "ru"},
|
||
{"q": "что за судно MMSI 423456789", "cat": "vessel_details", "lang": "ru"},
|
||
{"q": "данные MEKHANIK GASANOV", "cat": "vessel_details", "lang": "ru"},
|
||
{"q": "кому принадлежит AKADEMIK ZARIFA ALIYEVA", "cat": "vessel_details", "lang": "ru"},
|
||
{"q": "расскажи про HEYDAR ALIYEV", "cat": "vessel_details", "lang": "ru"},
|
||
{"q": "флаг и тоннаж AZERBAYCAN", "cat": "vessel_details", "lang": "ru"},
|
||
{"q": "дедвейт и год постройки BABEK", "cat": "vessel_details", "lang": "ru"},
|
||
{"q": "собственник LACHIN", "cat": "vessel_details", "lang": "ru"},
|
||
{"q": "инфа BAKU", "cat": "vessel_details", "lang": "ru"},
|
||
{"q": "подробности IMO 8888888", "cat": "vessel_details", "lang": "ru"},
|
||
{"q": "details on EVER GIVEN", "cat": "vessel_details", "lang": "en"},
|
||
{"q": "who owns CMA CGM MARCO POLO", "cat": "vessel_details", "lang": "en"},
|
||
{"q": "vessel details: FRONT ALTA", "cat": "vessel_details", "lang": "en"},
|
||
{"q": "info GOLDEN OPUS", "cat": "vessel_details", "lang": "en"},
|
||
{"q": "IMO 9811000", "cat": "vessel_details", "lang": "en"},
|
||
{"q": "details MMSI 256123000", "cat": "vessel_details", "lang": "en"},
|
||
{"q": "what type is the CASPIAN PROGRESS", "cat": "vessel_details", "lang": "en"},
|
||
{"q": "owner and operator of STENA SUPREME", "cat": "vessel_details", "lang": "en"},
|
||
{"q": "information on NORD STREAM", "cat": "vessel_details", "lang": "en"},
|
||
{"q": "flag and DWT of PACIFIC VOYAGER", "cat": "vessel_details", "lang": "en"},
|
||
{"q": "vessel info VLCC PIONEER", "cat": "vessel_details", "lang": "en"},
|
||
{"q": "tell me about MARE ATLANTICUM", "cat": "vessel_details", "lang": "en"},
|
||
{"q": "detials CASPIAN MAINPORT", "cat": "vessel_details", "lang": "en"}, # typo: detials
|
||
|
||
# =========================================================================
|
||
# 3. CONTACTS / BROKERS (15+ questions)
|
||
# =========================================================================
|
||
{"q": "контакты CASPIAN SHIPPING COMPANY", "cat": "contacts", "lang": "ru"},
|
||
{"q": "контакт оператора PROFESSOR GASHIMOV", "cat": "contacts", "lang": "ru"},
|
||
{"q": "брокеры в Баку", "cat": "contacts", "lang": "ru"},
|
||
{"q": "контакты судовладельца HEYDAR ALIYEV", "cat": "contacts", "lang": "ru"},
|
||
{"q": "агенты в порту Актау", "cat": "contacts", "lang": "ru"},
|
||
{"q": "фрахтовый отдел CASPAR SHIPPING", "cat": "contacts", "lang": "ru"},
|
||
{"q": "контакты владельца VOLGA-DON 5070", "cat": "contacts", "lang": "ru"},
|
||
{"q": "агенты в Новороссийске", "cat": "contacts", "lang": "ru"},
|
||
{"q": "контакты MSC Mediterranean", "cat": "contacts", "lang": "ru"},
|
||
{"q": "оператор LACHIN телефон", "cat": "contacts", "lang": "ru"},
|
||
{"q": "связаться с владельцем BABEK", "cat": "contacts", "lang": "ru"},
|
||
{"q": "брокеры в порту Поти", "cat": "contacts", "lang": "ru"},
|
||
{"q": "емейл ADSC Azerbaijan", "cat": "contacts", "lang": "ru"},
|
||
{"q": "как связаться с оператором этого судна", "cat": "contacts", "lang": "ru"},
|
||
{"q": "покажи контакты", "cat": "contacts", "lang": "ru"},
|
||
{"q": "contacts for EVER GIVEN", "cat": "contacts", "lang": "en"},
|
||
{"q": "broker contacts in Singapore", "cat": "contacts", "lang": "en"},
|
||
{"q": "chartering department of NORDEN", "cat": "contacts", "lang": "en"},
|
||
{"q": "who operates STENA SUPREME and how to contact them", "cat": "contacts", "lang": "en"},
|
||
{"q": "contacts MAERSK chartering", "cat": "contacts", "lang": "en"},
|
||
{"q": "agent contacts Fujairah", "cat": "contacts", "lang": "en"},
|
||
{"q": "email for the owner of CASPIAN MAINPORT", "cat": "contacts", "lang": "en"},
|
||
{"q": "phone number CASPAR shipping company", "cat": "contacts", "lang": "en"},
|
||
{"q": "contacts ship managers GOLDEN OCEAN", "cat": "contacts", "lang": "en"},
|
||
{"q": "I need to contact the operator of this vessel", "cat": "contacts", "lang": "en"},
|
||
{"q": "give me broker contacts for Baku", "cat": "contacts", "lang": "en"},
|
||
{"q": "freight agents in Novorossiysk", "cat": "contacts", "lang": "en"},
|
||
{"q": "contacts port agent Constanta", "cat": "contacts", "lang": "en"},
|
||
|
||
# =========================================================================
|
||
# 4. ROUTES (15+ questions)
|
||
# =========================================================================
|
||
{"q": "маршрут Баку — Актау", "cat": "route", "lang": "ru"},
|
||
{"q": "рассчитай маршрут Новороссийск — Стамбул", "cat": "route", "lang": "ru"},
|
||
{"q": "расстояние Поти - Констанца", "cat": "route", "lang": "ru"},
|
||
{"q": "маршрут Туркменбаши → Баку", "cat": "route", "lang": "ru"},
|
||
{"q": "время хода Роттердам - Сингапур", "cat": "route", "lang": "ru"},
|
||
{"q": "сколько идти из Баку в Энзели", "cat": "route", "lang": "ru"},
|
||
{"q": "маршрут через Суэцкий канал из Ротердама в Шанхай", "cat": "route", "lang": "ru"},
|
||
{"q": "дистанция Актау — Махачкала", "cat": "route", "lang": "ru"},
|
||
{"q": "маршрут Батуми - Самсун", "cat": "route", "lang": "ru"},
|
||
{"q": "рассчитай маршрут Поти - Бургас", "cat": "route", "lang": "ru"},
|
||
{"q": "сколько миль от Баку до Туркменбаши", "cat": "route", "lang": "ru"},
|
||
{"q": "маршрут Астрахань — Анзали", "cat": "route", "lang": "ru"},
|
||
{"q": "маршрут Фуджейра — Мумбаи", "cat": "route", "lang": "ru"},
|
||
{"q": "рассчитай рейс Одесса > Мерсин", "cat": "route", "lang": "ru"},
|
||
{"q": "время транзита Баку - Махачкала", "cat": "route", "lang": "ru"},
|
||
{"q": "route Baku to Aktau", "cat": "route", "lang": "en"},
|
||
{"q": "distance Rotterdam - Singapore", "cat": "route", "lang": "en"},
|
||
{"q": "route Novorossiysk — Istanbul", "cat": "route", "lang": "en"},
|
||
{"q": "how far is Baku to Turkmenbashi", "cat": "route", "lang": "en"},
|
||
{"q": "transit time Poti to Constanta", "cat": "route", "lang": "en"},
|
||
{"q": "calculate route Fujairah > Mumbai", "cat": "route", "lang": "en"},
|
||
{"q": "route Astrakhan - Anzali", "cat": "route", "lang": "en"},
|
||
{"q": "distance Batumi to Samsun", "cat": "route", "lang": "en"},
|
||
{"q": "route through Suez Canal Shanghai to Rotterdam", "cat": "route", "lang": "en"},
|
||
{"q": "how many days Baku to Makhachkala by sea", "cat": "route", "lang": "en"},
|
||
{"q": "voyage estimate Aktau to Baku", "cat": "route", "lang": "en"},
|
||
{"q": "ruta Baku - Turkmenbashi", "cat": "route", "lang": "en"}, # Spanish mixed in
|
||
|
||
# =========================================================================
|
||
# 5. CARGO MATCHING (15+ questions)
|
||
# =========================================================================
|
||
{"q": "нужно перевезти 5000 тонн зерна из Баку", "cat": "cargo", "lang": "ru"},
|
||
{"q": "танкер для нефти 10000т Актау - Батуми", "cat": "cargo", "lang": "ru"},
|
||
{"q": "суда для перевозки 3000т стали из Поти", "cat": "cargo", "lang": "ru"},
|
||
{"q": "у меня 8000т пшеницы в Новороссийске, нужен балкер", "cat": "cargo", "lang": "ru"},
|
||
{"q": "перевезти контейнеры из Баку в Актау", "cat": "cargo", "lang": "ru"},
|
||
{"q": "ищу судно для 15000т мазута Туркменбаши - Баку", "cat": "cargo", "lang": "ru"},
|
||
{"q": "нужен балкер на 20000 тонн угля из Констанцы", "cat": "cargo", "lang": "ru"},
|
||
{"q": "перевозка хлопка 2000т Туркменбаши → Анзали", "cat": "cargo", "lang": "ru"},
|
||
{"q": "какие суда могут взять 7000т удобрений в Актау", "cat": "cargo", "lang": "ru"},
|
||
{"q": "танкер для мазута из Махачкалы", "cat": "cargo", "lang": "ru"},
|
||
{"q": "груз 4500т цемент Новороссийск - Поти", "cat": "cargo", "lang": "ru"},
|
||
{"q": "есть груз в Баку, нужно судно", "cat": "cargo", "lang": "ru"},
|
||
{"q": "перевезти 500 TEU из Стамбула в Батуми", "cat": "cargo", "lang": "ru"},
|
||
{"q": "нужен ро-ро для техники из Астрахани", "cat": "cargo", "lang": "ru"},
|
||
{"q": "ищу танкер на 30000т в Новороссийске", "cat": "cargo", "lang": "ru"},
|
||
{"q": "vessels for 5000t grain from Baku", "cat": "cargo", "lang": "en"},
|
||
{"q": "tanker for crude oil Aktau to Batumi", "cat": "cargo", "lang": "en"},
|
||
{"q": "I have 10000 tons of steel at Novorossiysk need a ship", "cat": "cargo", "lang": "en"},
|
||
{"q": "find vessel for 3000t fertilizer from Poti to Constanta", "cat": "cargo", "lang": "en"},
|
||
{"q": "need bulk carrier for coal 25000t from Rotterdam", "cat": "cargo", "lang": "en"},
|
||
{"q": "suitable vessel for wheat 8000mt Baku to Anzali", "cat": "cargo", "lang": "en"},
|
||
{"q": "ship for 500 containers from Istanbul", "cat": "cargo", "lang": "en"},
|
||
{"q": "cargo: crude oil 15000t, loading Turkmenbashi, discharging Baku", "cat": "cargo", "lang": "en"},
|
||
{"q": "roro for heavy machinery from Astrakhan to Aktau", "cat": "cargo", "lang": "en"},
|
||
{"q": "what vessels can carry 12000t of iron ore from Makhachkala", "cat": "cargo", "lang": "en"},
|
||
{"q": "I need to ship cotton 2000mt from Turkmenbashi", "cat": "cargo", "lang": "en"},
|
||
{"q": "looking for a tanker near Baku for fuel oil cargo", "cat": "cargo", "lang": "en"},
|
||
{"q": "vessel for cement 4000t Novorossiysk - Poti", "cat": "cargo", "lang": "en"},
|
||
|
||
# =========================================================================
|
||
# 6. OUT-OF-SCOPE (queries the platform handles but are "premium" or estimation-based)
|
||
# =========================================================================
|
||
{"q": "фрахт Новороссийск — Стамбул", "cat": "out_of_scope", "lang": "ru"},
|
||
{"q": "ставка фрахта Баку - Актау на зерно", "cat": "out_of_scope", "lang": "ru"},
|
||
{"q": "страховка для танкера 50000 DWT", "cat": "out_of_scope", "lang": "ru"},
|
||
{"q": "погода на маршруте Роттердам — Сингапур", "cat": "out_of_scope", "lang": "ru"},
|
||
{"q": "индекс BDI сегодня", "cat": "out_of_scope", "lang": "ru"},
|
||
{"q": "портовые сборы Новороссийск", "cat": "out_of_scope", "lang": "ru"},
|
||
{"q": "бункер в Фуджейре", "cat": "out_of_scope", "lang": "ru"},
|
||
{"q": "загруженность порта Стамбул", "cat": "out_of_scope", "lang": "ru"},
|
||
{"q": "демередж 10 дней по 25000$/день, лейтайм 5 дней", "cat": "out_of_scope", "lang": "ru"},
|
||
{"q": "CII рейтинг для балкера 2010 года", "cat": "out_of_scope", "lang": "ru"},
|
||
{"q": "санкции DPRK FLAGGED VESSEL", "cat": "out_of_scope", "lang": "ru"},
|
||
{"q": "оптимизация бункеровки Баку - Мумбаи", "cat": "out_of_scope", "lang": "ru"},
|
||
{"q": "оцени портовые расходы в Актау", "cat": "out_of_scope", "lang": "ru"},
|
||
{"q": "текущие ставки на Панамаксы на зерно", "cat": "out_of_scope", "lang": "ru"},
|
||
{"q": "война-риск страховка Красное море", "cat": "out_of_scope", "lang": "ru"},
|
||
{"q": "freight rate Rotterdam to Shanghai", "cat": "out_of_scope", "lang": "en"},
|
||
{"q": "current BDI index", "cat": "out_of_scope", "lang": "en"},
|
||
{"q": "insurance premium for Panamax bulk carrier", "cat": "out_of_scope", "lang": "en"},
|
||
{"q": "weather routing Fujairah to Singapore", "cat": "out_of_scope", "lang": "en"},
|
||
{"q": "port costs Novorossiysk for 50000 DWT bulk", "cat": "out_of_scope", "lang": "en"},
|
||
{"q": "bunker prices Fujairah", "cat": "out_of_scope", "lang": "en"},
|
||
{"q": "congestion Istanbul port", "cat": "out_of_scope", "lang": "en"},
|
||
{"q": "sanctions check on IRANIAN vessel", "cat": "out_of_scope", "lang": "en"},
|
||
{"q": "demurrage calculation 12 days at $20000/day, laytime 7 days", "cat": "out_of_scope", "lang": "en"},
|
||
{"q": "CII rating for 2008 built tanker", "cat": "out_of_scope", "lang": "en"},
|
||
{"q": "war risk premium Red Sea transit", "cat": "out_of_scope", "lang": "en"},
|
||
{"q": "optimize bunkering Baku to Mumbai", "cat": "out_of_scope", "lang": "en"},
|
||
{"q": "what is the market rate for Supramax in the Med", "cat": "out_of_scope", "lang": "en"},
|
||
{"q": "crew change options near Suez", "cat": "out_of_scope", "lang": "en"},
|
||
{"q": "generate charter party for 10000t wheat Baku to Batumi", "cat": "out_of_scope", "lang": "en"},
|
||
|
||
# =========================================================================
|
||
# 7. CASPIAN-SPECIFIC (15+ questions)
|
||
# =========================================================================
|
||
{"q": "операторы на Каспийском море", "cat": "caspian", "lang": "ru"},
|
||
{"q": "транс-каспийский маршрут через Актау", "cat": "caspian", "lang": "ru"},
|
||
{"q": "суда между Баку и Туркменбаши", "cat": "caspian", "lang": "ru"},
|
||
{"q": "какие суда ходят Баку - Актау", "cat": "caspian", "lang": "ru"},
|
||
{"q": "паром Алят - Курык", "cat": "caspian", "lang": "ru"},
|
||
{"q": "средний коридор через Каспий", "cat": "caspian", "lang": "ru"},
|
||
{"q": "глубина порта Актау для балкеров", "cat": "caspian", "lang": "ru"},
|
||
{"q": "каспийский флот Azerbaijan Caspian Shipping", "cat": "caspian", "lang": "ru"},
|
||
{"q": "ограничения по осадке в порту Баку", "cat": "caspian", "lang": "ru"},
|
||
{"q": "линейные перевозки Астрахань - Анзали", "cat": "caspian", "lang": "ru"},
|
||
{"q": "сколько судов на Каспии сейчас", "cat": "caspian", "lang": "ru"},
|
||
{"q": "танкерные терминалы Каспийского моря", "cat": "caspian", "lang": "ru"},
|
||
{"q": "ASCO флот на Каспии", "cat": "caspian", "lang": "ru"},
|
||
{"q": "порт Курык пропускная способность", "cat": "caspian", "lang": "ru"},
|
||
{"q": "ro-ro паромы Каспий расписание", "cat": "caspian", "lang": "ru"},
|
||
{"q": "trans-Caspian route via Aktau and Baku", "cat": "caspian", "lang": "en"},
|
||
{"q": "Middle Corridor shipping operators", "cat": "caspian", "lang": "en"},
|
||
{"q": "vessels between Baku and Turkmenbashi", "cat": "caspian", "lang": "en"},
|
||
{"q": "Caspian Sea fleet operators", "cat": "caspian", "lang": "en"},
|
||
{"q": "ferry service Alat - Kuryk", "cat": "caspian", "lang": "en"},
|
||
{"q": "draft restrictions Aktau port", "cat": "caspian", "lang": "en"},
|
||
{"q": "ASCO Azerbaijan fleet Caspian", "cat": "caspian", "lang": "en"},
|
||
{"q": "Caspian tanker terminals", "cat": "caspian", "lang": "en"},
|
||
{"q": "what ports are on the Caspian Sea", "cat": "caspian", "lang": "en"},
|
||
{"q": "vessels operating Astrakhan - Anzali route", "cat": "caspian", "lang": "en"},
|
||
{"q": "Kuryk port capacity and depth", "cat": "caspian", "lang": "en"},
|
||
{"q": "how many vessels currently in Caspian Sea", "cat": "caspian", "lang": "en"},
|
||
{"q": "Caspian roro ferries schedule", "cat": "caspian", "lang": "en"},
|
||
|
||
# =========================================================================
|
||
# 8. FOLLOW-UP / ADVISORY (15+ questions)
|
||
# =========================================================================
|
||
{"q": "что посоветуешь для этого груза", "cat": "advisory", "lang": "ru"},
|
||
{"q": "какое судно лучше выбрать", "cat": "advisory", "lang": "ru"},
|
||
{"q": "порекомендуй оптимальный маршрут", "cat": "advisory", "lang": "ru"},
|
||
{"q": "что мне делать дальше", "cat": "advisory", "lang": "ru"},
|
||
{"q": "как лучше перевезти 5000т зерна из Баку", "cat": "advisory", "lang": "ru"},
|
||
{"q": "стоит ли брать этот танкер", "cat": "advisory", "lang": "ru"},
|
||
{"q": "как снизить расходы на фрахт", "cat": "advisory", "lang": "ru"},
|
||
{"q": "оптимальное судно для перевозки нефти на Каспии", "cat": "advisory", "lang": "ru"},
|
||
{"q": "что выгоднее — контейнер или балкер для этого груза", "cat": "advisory", "lang": "ru"},
|
||
{"q": "расскажи подробнее", "cat": "advisory", "lang": "ru"},
|
||
{"q": "есть варианты подешевле", "cat": "advisory", "lang": "ru"},
|
||
{"q": "а можно побольше судов найти", "cat": "advisory", "lang": "ru"},
|
||
{"q": "какой порт лучше для погрузки в Азербайджане", "cat": "advisory", "lang": "ru"},
|
||
{"q": "оцени риски этого рейса", "cat": "advisory", "lang": "ru"},
|
||
{"q": "сравни эти два судна", "cat": "advisory", "lang": "ru"},
|
||
{"q": "recommend a vessel for my cargo", "cat": "advisory", "lang": "en"},
|
||
{"q": "which vessel is best for 5000t grain", "cat": "advisory", "lang": "en"},
|
||
{"q": "what should I do next", "cat": "advisory", "lang": "en"},
|
||
{"q": "is this a good rate for Panamax on this route", "cat": "advisory", "lang": "en"},
|
||
{"q": "how to reduce freight costs", "cat": "advisory", "lang": "en"},
|
||
{"q": "compare these two vessels", "cat": "advisory", "lang": "en"},
|
||
{"q": "tell me more about this one", "cat": "advisory", "lang": "en"},
|
||
{"q": "any cheaper options", "cat": "advisory", "lang": "en"},
|
||
{"q": "which port is better for loading in Azerbaijan", "cat": "advisory", "lang": "en"},
|
||
{"q": "assess the risk of this voyage", "cat": "advisory", "lang": "en"},
|
||
{"q": "should I take this vessel or wait for better options", "cat": "advisory", "lang": "en"},
|
||
{"q": "what's the best strategy for trans-Caspian cargo", "cat": "advisory", "lang": "en"},
|
||
{"q": "can you find more vessels", "cat": "advisory", "lang": "en"},
|
||
|
||
# =========================================================================
|
||
# 9. NON-MARITIME (15+ questions)
|
||
# =========================================================================
|
||
{"q": "какая погода в Баку", "cat": "non_maritime", "lang": "ru"},
|
||
{"q": "расскажи анекдот", "cat": "non_maritime", "lang": "ru"},
|
||
{"q": "напиши код на Python", "cat": "non_maritime", "lang": "ru"},
|
||
{"q": "кто президент Азербайджана", "cat": "non_maritime", "lang": "ru"},
|
||
{"q": "переведи на английский", "cat": "non_maritime", "lang": "ru"},
|
||
{"q": "сколько будет 2+2", "cat": "non_maritime", "lang": "ru"},
|
||
{"q": "привет как дела", "cat": "non_maritime", "lang": "ru"},
|
||
{"q": "расскажи о себе", "cat": "non_maritime", "lang": "ru"},
|
||
{"q": "помоги с домашним заданием", "cat": "non_maritime", "lang": "ru"},
|
||
{"q": "рецепт борща", "cat": "non_maritime", "lang": "ru"},
|
||
{"q": "курс доллара сегодня", "cat": "non_maritime", "lang": "ru"},
|
||
{"q": "новости Украины", "cat": "non_maritime", "lang": "ru"},
|
||
{"q": "забронируй отель в Баку", "cat": "non_maritime", "lang": "ru"},
|
||
{"q": "какой сегодня день", "cat": "non_maritime", "lang": "ru"},
|
||
{"q": "расскажи про ChatGPT", "cat": "non_maritime", "lang": "ru"},
|
||
{"q": "what's the weather in London", "cat": "non_maritime", "lang": "en"},
|
||
{"q": "tell me a joke", "cat": "non_maritime", "lang": "en"},
|
||
{"q": "write Python code for sorting", "cat": "non_maritime", "lang": "en"},
|
||
{"q": "who won the World Cup", "cat": "non_maritime", "lang": "en"},
|
||
{"q": "translate this to French", "cat": "non_maritime", "lang": "en"},
|
||
{"q": "what is 2+2", "cat": "non_maritime", "lang": "en"},
|
||
{"q": "hello how are you", "cat": "non_maritime", "lang": "en"},
|
||
{"q": "tell me about yourself", "cat": "non_maritime", "lang": "en"},
|
||
{"q": "help me with my homework", "cat": "non_maritime", "lang": "en"},
|
||
{"q": "recipe for pasta carbonara", "cat": "non_maritime", "lang": "en"},
|
||
{"q": "book a hotel in Baku", "cat": "non_maritime", "lang": "en"},
|
||
{"q": "what day is today", "cat": "non_maritime", "lang": "en"},
|
||
{"q": "explain quantum computing", "cat": "non_maritime", "lang": "en"},
|
||
|
||
# =========================================================================
|
||
# 10. EDGE CASES (15+ questions)
|
||
# =========================================================================
|
||
# Very long queries
|
||
{"q": "Мне нужно найти балкер грузоподъемностью от 15 до 25 тысяч тонн дедвейт который сейчас находится рядом с портом Баку или Алят и может взять груз пшеницы 12000 тонн для перевозки в порт Поти или Батуми с погрузкой в течение ближайших 5-7 дней, желательно под флагом удобства с низкой страховой ставкой",
|
||
"cat": "edge_case", "lang": "ru"},
|
||
{"q": "I need a Panamax bulk carrier currently in or near the Black Sea preferably with open holds and grab-fitted that can load 45000 metric tons of iron ore concentrate at Novorossiysk for discharge at Qingdao China via Suez Canal with laycan of 15-20 March and demurrage rate not exceeding 25000 USD per day",
|
||
"cat": "edge_case", "lang": "en"},
|
||
|
||
# Multiple questions in one
|
||
{"q": "найди CASPIAN MAINPORT, покажи его позицию и контакты владельца", "cat": "edge_case", "lang": "ru"},
|
||
{"q": "маршрут Баку-Актау и какие суда сейчас рядом", "cat": "edge_case", "lang": "ru"},
|
||
{"q": "find EVER GIVEN, show position and owner contacts", "cat": "edge_case", "lang": "en"},
|
||
{"q": "route Baku to Aktau, also what vessels are available near Baku for 5000t grain", "cat": "edge_case", "lang": "en"},
|
||
{"q": "ставка фрахта и портовые сборы для Новороссийска на балкер", "cat": "edge_case", "lang": "ru"},
|
||
|
||
# Ambiguous queries
|
||
{"q": "Баку", "cat": "edge_case", "lang": "ru"},
|
||
{"q": "танкер", "cat": "edge_case", "lang": "ru"},
|
||
{"q": "помоги", "cat": "edge_case", "lang": "ru"},
|
||
{"q": "Baku", "cat": "edge_case", "lang": "en"},
|
||
{"q": "tanker", "cat": "edge_case", "lang": "en"},
|
||
{"q": "help", "cat": "edge_case", "lang": "en"},
|
||
{"q": "???", "cat": "edge_case", "lang": "en"},
|
||
{"q": "", "cat": "edge_case", "lang": "en"},
|
||
|
||
# Typos and informal language
|
||
{"q": "нади EVER GIVN", "cat": "edge_case", "lang": "ru"}, # typo: нади = найди, GIVN = GIVEN
|
||
{"q": "гдe щас MAERSK какойто", "cat": "edge_case", "lang": "ru"}, # very informal
|
||
{"q": "а чо за суда есть рядом с баку?", "cat": "edge_case", "lang": "ru"}, # slang
|
||
{"q": "скинь инфу по каспию", "cat": "edge_case", "lang": "ru"}, # slang
|
||
{"q": "fnd vessels ner Baku", "cat": "edge_case", "lang": "en"}, # typos
|
||
{"q": "whats near novorossisk", "cat": "edge_case", "lang": "en"}, # typos
|
||
{"q": "gimme tankers in black sea", "cat": "edge_case", "lang": "en"}, # informal
|
||
{"q": "yo any ships near aktau?", "cat": "edge_case", "lang": "en"}, # very informal
|
||
|
||
# Mixed language
|
||
{"q": "найди vessel CASPIAN PROGRESS рядом с Baku", "cat": "edge_case", "lang": "ru"},
|
||
{"q": "route Баку - Aktau please", "cat": "edge_case", "lang": "en"},
|
||
|
||
# IMO/MMSI as raw numbers
|
||
{"q": "9349028", "cat": "edge_case", "lang": "en"},
|
||
{"q": "256123000", "cat": "edge_case", "lang": "en"},
|
||
{"q": "7654321", "cat": "edge_case", "lang": "en"},
|
||
|
||
# Special characters and formatting
|
||
{"q": "маршрут: Баку → Актау (танкер, 10000 DWT)", "cat": "edge_case", "lang": "ru"},
|
||
{"q": "VESSEL: \"NORDIC ORION\" - need full details + contacts", "cat": "edge_case", "lang": "en"},
|
||
]
|
||
|
||
|
||
# =========================================================================
|
||
# Statistics
|
||
# =========================================================================
|
||
def print_stats():
|
||
from collections import Counter
|
||
cats = Counter(q["cat"] for q in TEST_QUESTIONS)
|
||
langs = Counter(q["lang"] for q in TEST_QUESTIONS)
|
||
print(f"Total questions: {len(TEST_QUESTIONS)}")
|
||
print(f"\nBy category:")
|
||
for cat, count in sorted(cats.items(), key=lambda x: -x[1]):
|
||
print(f" {cat:20s} {count:3d}")
|
||
print(f"\nBy language:")
|
||
for lang, count in sorted(langs.items()):
|
||
print(f" {lang}: {count}")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
print_stats()
|