model-probe-results.json 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551
  1. {
  2. "timestamp": "2026-10-12T02:06:52.919727+00:00",
  3. "image": "ghcr.io/project-osrm/osrm-backend:v5.27.1",
  4. "release": "/opt/foodie-map-tw-20260909",
  5. "before": {
  6. "map_api/settings.py": "bd48a4a87f9d65640f0f5646d97e1c7aab592020732f81903d529d143586bca7",
  7. "map_api/routing.py": "d9d6d6822a7f608b0649f5dc229b102628c6cfc5b32382bc950185740db2caa3",
  8. "docker/osrm/profiles/motorcycle.lua": "6f8741c9a6130434074be06302a28c204ed25ed9f5b760f776ac9f6b3bedbe26",
  9. "container:/app/settings.py": "bd48a4a87f9d65640f0f5646d97e1c7aab592020732f81903d529d143586bca7",
  10. "container:/app/routing.py": "d9d6d6822a7f608b0649f5dc229b102628c6cfc5b32382bc950185740db2caa3",
  11. "container:car.lua": "cb3df0546318665609606b746a1297f3d65ca3c2ff825f8a6f3c57247d86a2d3",
  12. "built_profile": "bd9949c7160d4edb207185b7fa73eec57fbd6ca970def80da3fa45e380381162",
  13. "pbf": "7b8368383eb1567299e59cd559b1f9999d09206e63d18f3e039e8f6391d4c5e7"
  14. },
  15. "cases": [
  16. {
  17. "name": "baseline:motorcycle_no",
  18. "kind": "assertion",
  19. "passed": true,
  20. "observations": {
  21. "distance": 1028.5,
  22. "duration": 148.1,
  23. "weight": 148.1
  24. }
  25. },
  26. {
  27. "name": "candidate:motorcycle_no",
  28. "kind": "assertion",
  29. "passed": true,
  30. "observations": {
  31. "distance": 1028.5,
  32. "duration": 148.1,
  33. "weight": 148.1
  34. }
  35. },
  36. {
  37. "name": "baseline:motorcar_no",
  38. "kind": "assertion",
  39. "passed": true,
  40. "observations": {
  41. "distance": 221.5,
  42. "duration": 32,
  43. "weight": 32
  44. }
  45. },
  46. {
  47. "name": "candidate:motorcar_no",
  48. "kind": "assertion",
  49. "passed": true,
  50. "observations": {
  51. "distance": 221.5,
  52. "duration": 32,
  53. "weight": 32
  54. }
  55. },
  56. {
  57. "name": "baseline:motorway",
  58. "kind": "assertion",
  59. "passed": true,
  60. "observations": {
  61. "distance": 1028.3,
  62. "duration": 148.1,
  63. "weight": 148.1
  64. }
  65. },
  66. {
  67. "name": "candidate:motorway",
  68. "kind": "assertion",
  69. "passed": true,
  70. "observations": {
  71. "distance": 1028.3,
  72. "duration": 148.1,
  73. "weight": 148.1
  74. }
  75. },
  76. {
  77. "name": "baseline:motorway_link",
  78. "kind": "assertion",
  79. "passed": true,
  80. "observations": {
  81. "distance": 1028.3,
  82. "duration": 148.1,
  83. "weight": 148.1
  84. }
  85. },
  86. {
  87. "name": "candidate:motorway_link",
  88. "kind": "assertion",
  89. "passed": true,
  90. "observations": {
  91. "distance": 1028.3,
  92. "duration": 148.1,
  93. "weight": 148.1
  94. }
  95. },
  96. {
  97. "name": "baseline:trunk",
  98. "kind": "assertion",
  99. "passed": true,
  100. "observations": {
  101. "distance": 1028.3,
  102. "duration": 148.1,
  103. "weight": 148.1
  104. }
  105. },
  106. {
  107. "name": "candidate:trunk",
  108. "kind": "assertion",
  109. "passed": true,
  110. "observations": {
  111. "distance": 1028.3,
  112. "duration": 148.1,
  113. "weight": 148.1
  114. }
  115. },
  116. {
  117. "name": "baseline:trunk_permitted",
  118. "kind": "assertion",
  119. "passed": true,
  120. "observations": {
  121. "distance": 221.6,
  122. "duration": 9.4,
  123. "weight": 9.4
  124. }
  125. },
  126. {
  127. "name": "candidate:trunk_permitted",
  128. "kind": "assertion",
  129. "passed": true,
  130. "observations": {
  131. "distance": 221.6,
  132. "duration": 9.4,
  133. "weight": 9.4
  134. }
  135. },
  136. {
  137. "name": "baseline:motorroad",
  138. "kind": "assertion",
  139. "passed": true,
  140. "observations": {
  141. "distance": 1028,
  142. "duration": 148.1,
  143. "weight": 148.1
  144. }
  145. },
  146. {
  147. "name": "candidate:motorroad",
  148. "kind": "assertion",
  149. "passed": true,
  150. "observations": {
  151. "distance": 1028,
  152. "duration": 148.1,
  153. "weight": 148.1
  154. }
  155. },
  156. {
  157. "name": "baseline:motorroad_permitted",
  158. "kind": "assertion",
  159. "passed": true,
  160. "observations": {
  161. "distance": 221.6,
  162. "duration": 32,
  163. "weight": 32
  164. }
  165. },
  166. {
  167. "name": "candidate:motorroad_permitted",
  168. "kind": "assertion",
  169. "passed": true,
  170. "observations": {
  171. "distance": 221.6,
  172. "duration": 32,
  173. "weight": 32
  174. }
  175. },
  176. {
  177. "name": "car_vs_motorcycle_access",
  178. "kind": "assertion",
  179. "passed": true,
  180. "observations": {
  181. "car": {
  182. "distance": 221.5,
  183. "duration": 32,
  184. "weight": 32
  185. },
  186. "motorcycle": {
  187. "distance": 1028.5,
  188. "duration": 148.1,
  189. "weight": 148.1
  190. }
  191. }
  192. },
  193. {
  194. "name": "baseline:oneway",
  195. "kind": "assertion",
  196. "passed": true,
  197. "observations": {
  198. "forward": {
  199. "distance": 221.6,
  200. "duration": 32,
  201. "weight": 32
  202. },
  203. "reverse": {
  204. "distance": 1028,
  205. "duration": 148.1,
  206. "weight": 148.1
  207. }
  208. }
  209. },
  210. {
  211. "name": "baseline:oneway_motorcycle_override",
  212. "kind": "assertion",
  213. "passed": true,
  214. "observations": {
  215. "distance": 221.6,
  216. "duration": 32,
  217. "weight": 32
  218. }
  219. },
  220. {
  221. "name": "baseline:motorcycle_turn",
  222. "kind": "assertion",
  223. "passed": true,
  224. "observations": {
  225. "distance": 653.6,
  226. "duration": 94.3,
  227. "weight": 94.3
  228. }
  229. },
  230. {
  231. "name": "baseline:generic_turn",
  232. "kind": "assertion",
  233. "passed": true,
  234. "observations": {
  235. "distance": 653.6,
  236. "duration": 94.3,
  237. "weight": 94.3
  238. }
  239. },
  240. {
  241. "name": "candidate:oneway",
  242. "kind": "assertion",
  243. "passed": true,
  244. "observations": {
  245. "forward": {
  246. "distance": 221.6,
  247. "duration": 32,
  248. "weight": 32
  249. },
  250. "reverse": {
  251. "distance": 1028,
  252. "duration": 148.1,
  253. "weight": 151.1
  254. }
  255. }
  256. },
  257. {
  258. "name": "candidate:oneway_motorcycle_override",
  259. "kind": "assertion",
  260. "passed": true,
  261. "observations": {
  262. "distance": 221.6,
  263. "duration": 32,
  264. "weight": 32
  265. }
  266. },
  267. {
  268. "name": "candidate:motorcycle_turn",
  269. "kind": "assertion",
  270. "passed": true,
  271. "observations": {
  272. "distance": 653.6,
  273. "duration": 94.3,
  274. "weight": 100.3
  275. }
  276. },
  277. {
  278. "name": "candidate:generic_turn",
  279. "kind": "assertion",
  280. "passed": true,
  281. "observations": {
  282. "distance": 653.6,
  283. "duration": 94.3,
  284. "weight": 100.3
  285. }
  286. },
  287. {
  288. "name": "motorcycle_speed_limit",
  289. "kind": "assertion",
  290. "passed": true,
  291. "observations": {
  292. "car": {
  293. "distance": 221.6,
  294. "duration": 11,
  295. "weight": 11
  296. },
  297. "motorcycle": {
  298. "distance": 221.6,
  299. "duration": 49.8,
  300. "weight": 49.8
  301. }
  302. }
  303. },
  304. {
  305. "name": "gravel_forced:weight_not_eta",
  306. "kind": "assertion",
  307. "passed": true,
  308. "observations": {
  309. "baseline": {
  310. "distance": 221.6,
  311. "duration": 20,
  312. "weight": 20
  313. },
  314. "candidate": {
  315. "distance": 221.6,
  316. "duration": 20,
  317. "weight": 99.6
  318. }
  319. }
  320. },
  321. {
  322. "name": "signals:weight_not_eta",
  323. "kind": "assertion",
  324. "passed": true,
  325. "observations": {
  326. "baseline": {
  327. "distance": 221.6,
  328. "duration": 34,
  329. "weight": 34
  330. },
  331. "candidate": {
  332. "distance": 221.6,
  333. "duration": 34,
  334. "weight": 42
  335. }
  336. }
  337. },
  338. {
  339. "name": "unrestricted_turn:weight_not_eta",
  340. "kind": "assertion",
  341. "passed": true,
  342. "observations": {
  343. "baseline": {
  344. "distance": 190.4,
  345. "duration": 29.6,
  346. "weight": 29.6
  347. },
  348. "candidate": {
  349. "distance": 190.4,
  350. "duration": 29.6,
  351. "weight": 32.6
  352. }
  353. }
  354. },
  355. {
  356. "name": "gravel_preference_changes_path",
  357. "kind": "assertion",
  358. "passed": true,
  359. "observations": {
  360. "baseline": {
  361. "distance": 221.6,
  362. "duration": 20,
  363. "weight": 20
  364. },
  365. "candidate": {
  366. "distance": 423.1,
  367. "duration": 60.9,
  368. "weight": 63.9
  369. }
  370. }
  371. },
  372. {
  373. "name": "baseline:offroad",
  374. "kind": "assertion",
  375. "passed": true,
  376. "observations": {
  377. "code": "NoSegment"
  378. }
  379. },
  380. {
  381. "name": "baseline:disconnected",
  382. "kind": "assertion",
  383. "passed": true,
  384. "observations": {
  385. "code": "NoRoute"
  386. }
  387. },
  388. {
  389. "name": "candidate:offroad",
  390. "kind": "assertion",
  391. "passed": true,
  392. "observations": {
  393. "code": "NoSegment"
  394. }
  395. },
  396. {
  397. "name": "candidate:disconnected",
  398. "kind": "assertion",
  399. "passed": true,
  400. "observations": {
  401. "code": "NoRoute"
  402. }
  403. },
  404. {
  405. "name": "conditional_access_not_enforced",
  406. "kind": "limitation_probe",
  407. "passed": true,
  408. "observations": {
  409. "distance": 221.6,
  410. "duration": 32,
  411. "weight": 32
  412. }
  413. },
  414. {
  415. "name": "ordered_three_stop_route",
  416. "kind": "assertion",
  417. "passed": true,
  418. "observations": {
  419. "legs": 2,
  420. "distance": 2057,
  421. "duration": 323.6,
  422. "weight": 323.6
  423. }
  424. }
  425. ],
  426. "production_probes": {
  427. "config": {
  428. "api_base": "/api",
  429. "basemap_style": "https://tiles.openfreemap.org/styles/liberty",
  430. "bounds": [
  431. 118.0,
  432. 21.5,
  433. 123.0,
  434. 26.5
  435. ],
  436. "center": [
  437. 121.5654,
  438. 25.033
  439. ],
  440. "country": "TW",
  441. "dataset": "taiwan",
  442. "locale": "zh-TW",
  443. "pricing_provider": "foodie",
  444. "routing_profile": "car",
  445. "routing_profiles": [
  446. "car",
  447. "motorcycle"
  448. ],
  449. "routing_provider": "osrm",
  450. "search_provider": "local",
  451. "test_only": false,
  452. "traffic_aware": false
  453. },
  454. "health/ready": {
  455. "routing": "check /route",
  456. "search": {
  457. "country": "TW",
  458. "dataset": "taiwan",
  459. "dataset_version": "7b8368383eb1567299e59cd559b1f9999d09206e63d18f3e039e8f6391d4c5e7",
  460. "indexed_at": "Wed, 09 Sep 2026 03:50:29 GMT"
  461. },
  462. "status": "ready"
  463. },
  464. "route:car": {
  465. "profile": "car",
  466. "distance_meters": 693,
  467. "duration_seconds": 63,
  468. "traffic_aware": false
  469. },
  470. "route/multi:car": {
  471. "profile": "car",
  472. "distance_meters": 693,
  473. "duration_seconds": 63,
  474. "traffic_aware": false
  475. },
  476. "route:motorcycle": {
  477. "profile": "motorcycle",
  478. "distance_meters": 693,
  479. "duration_seconds": 87,
  480. "traffic_aware": false
  481. },
  482. "route/multi:motorcycle": {
  483. "profile": "motorcycle",
  484. "distance_meters": 693,
  485. "duration_seconds": 87,
  486. "traffic_aware": false
  487. }
  488. },
  489. "errors": [],
  490. "combined_profile_matches_graph": true,
  491. "candidate_sha256": "27c9697ce6cd67c9343d5b300274958b418015f5794fb8f999e325f49af43cfe",
  492. "fixture_sha256": "8ae060942fb1eea16b82c7f5c01351645ef97309ce161044fc71590543c014ba",
  493. "temporary_workspace": "/tmp/foodie-model-eval-herz4q09",
  494. "after": {
  495. "map_api/settings.py": "bd48a4a87f9d65640f0f5646d97e1c7aab592020732f81903d529d143586bca7",
  496. "map_api/routing.py": "d9d6d6822a7f608b0649f5dc229b102628c6cfc5b32382bc950185740db2caa3",
  497. "docker/osrm/profiles/motorcycle.lua": "6f8741c9a6130434074be06302a28c204ed25ed9f5b760f776ac9f6b3bedbe26",
  498. "container:/app/settings.py": "bd48a4a87f9d65640f0f5646d97e1c7aab592020732f81903d529d143586bca7",
  499. "container:/app/routing.py": "d9d6d6822a7f608b0649f5dc229b102628c6cfc5b32382bc950185740db2caa3",
  500. "container:car.lua": "cb3df0546318665609606b746a1297f3d65ca3c2ff825f8a6f3c57247d86a2d3",
  501. "built_profile": "bd9949c7160d4edb207185b7fa73eec57fbd6ca970def80da3fa45e380381162",
  502. "pbf": "7b8368383eb1567299e59cd559b1f9999d09206e63d18f3e039e8f6391d4c5e7"
  503. },
  504. "production_files_unchanged": true,
  505. "production_containers_running": true,
  506. "temporary_containers_removed": true,
  507. "temporary_workspace_removed": true,
  508. "references": {
  509. "valhalla_commit": "34639a33510eb0764da77650e91f6efbb70e8daa",
  510. "sources": {
  511. "src/sif/motorcyclecost.cc": {
  512. "url": "https://raw.githubusercontent.com/valhalla/valhalla/34639a33510eb0764da77650e91f6efbb70e8daa/src/sif/motorcyclecost.cc",
  513. "sha256": "346556fefbd280c43d3bbf426d3546c2acce09ab59e21214d4507b752802ed80",
  514. "bytes": 35728
  515. },
  516. "src/sif/motorscootercost.cc": {
  517. "url": "https://raw.githubusercontent.com/valhalla/valhalla/34639a33510eb0764da77650e91f6efbb70e8daa/src/sif/motorscootercost.cc",
  518. "sha256": "905fe91bf2e148cf73c3f26ff2a791b6b5d40838196c759c40b4151d56d79279",
  519. "bytes": 36269
  520. },
  521. "LICENSE.md": {
  522. "url": "https://raw.githubusercontent.com/valhalla/valhalla/34639a33510eb0764da77650e91f6efbb70e8daa/LICENSE.md",
  523. "sha256": "b199717d0140b89f1b6bfd44f06de1610ede0bbef4b41232c04580837aeb8b13",
  524. "bytes": 44
  525. },
  526. "COPYING": {
  527. "url": "https://raw.githubusercontent.com/valhalla/valhalla/34639a33510eb0764da77650e91f6efbb70e8daa/COPYING",
  528. "sha256": "8bdb14aebb005ffa75ee3890aa10b242b30c840caa01b996c56338ca279f37cd",
  529. "bytes": 1135
  530. }
  531. },
  532. "map_refs": {
  533. "HEAD": "f8d104a4fd9a12d4197593e711135c2b9662db72",
  534. "origin/taiwan-map-profiles": "8906fe1d49d7304e6ea3a579bea2d81d0bd31db6"
  535. },
  536. "branch_files": {
  537. "HEAD": {
  538. "map_api/settings.py": "bb7bbd16bd04e1a7cd66e19d4fb56648049df3d2a45bdfa5e7aa15c6638f10ae",
  539. "map_api/routing.py": "37af230ae95747e66929faa5cebeceea702e2ed6ae01f3732232d6cd225de344",
  540. "docker/osrm/profiles/motorcycle.lua": null
  541. },
  542. "origin/taiwan-map-profiles": {
  543. "map_api/settings.py": "c463570695f1400c548fe3d324f546f483805ba0dd5be4ced6e09aa0311498a8",
  544. "map_api/routing.py": "8742a21d255950dc5a15fa1f68a70f25cb8ff5f30e512276d83083a88e438f4e",
  545. "docker/osrm/profiles/motorcycle.lua": "6f8741c9a6130434074be06302a28c204ed25ed9f5b760f776ac9f6b3bedbe26"
  546. }
  547. },
  548. "branch_lua_sha256": "6f8741c9a6130434074be06302a28c204ed25ed9f5b760f776ac9f6b3bedbe26"
  549. },
  550. "branch_lua_matches_deployment": true
  551. }