all repos — blog @ 8d3f3ea102f855e39fb4891b48a540d211c2a971

Code and content for 5ika.ch

content/posts/un-bot-pour-les-transports-en-commun.md (view raw)

 1---
 2Title: Un chatbot pour les transports en Suisse
 3Date: 2024-08-16
 4---
 5
 6Il y a environ 7 ans, j'ai développé un chatbot nommé Tipigee fonctionannt sur Telegram et Facebook Messenger qui permettait d'avoir des informations sur les transports publics genevois ([TPG](https://www.tpg.ch/)) rapidement en chattant.
 7
 8Ce service, totalement gratuit, reposait sur l'API Open Data des TPG et utilisait DialogFlow de Google (avant l'arrivée des LLMs). Le chatbot a eu un gentil succès et j'ai même eu l'occasion de le présenter à une conférence sur l'Open Data à Lausanne en novembre 2017. Les retours étaient riches et les utilisateurs semblaient contents... jusqu'à ce que les TPG arrêtent leur API Open Data en 2019 pour se raccorder à un service centralisé au niveau fédéral.
 9
10Manquant de temps à cette époque pour effectuer la migration (qui demandait un gros redéveloppement), j'ai dû arrêter le service avec regrets.
11
12La semaine dernière, dans le cadre de veille technique pour [Caroster](/caroster/), j'ai pris le temps de me plonger dans le service Open Data des transports en commun suisses. Avec 7 ans d'expérience supplémentaire et du temps permis par la période des vacances estivales, j'ai relancé, pour le plaisir, le développement d'un chatbot dans la même idée que Tipigee mais plus droit au but et fonctionnant pour l'ensemble du réseau de transport public du pays, pas juste Genève.
13
14Ça faisait un moment que l'idée me trottait dans la tête. En tant qu'usager quotidien des transports en commun, j'ai été très déçu par la nouvelle app des TPG, bien moins pratique que la précédente. Quand on arrive à un arrêt de bus ou de tram, on veut savoir rapidement quand part le prochain et si on a le temps de l'attraper. S'il faut faire une dizaine d'actions dans l'app pour avoir la bonne information, cela casse le côté pratique d'un service mobile.
15Aussi, la nouvelle app donne **plein** d'informations mais noie l'essentiel dans des écrans complexes.
16
17L'approche chatbot est bien plus pratique pour cela: on ouvre notre app de messagerie, on fait deux clics et boum, on a les prochains départs pour le train.
18
19C'est ainsi que j'ai développé [Kokyo](https://t.me/KokyoBot), un chatbot Telegram qui permet d'obtenir des infos sur les transports en commun partout en Suisse (et un peu en Europe aussi).
20Pour le moment, les fonctionnalités sont simples et limitées: on recherche un arrêt de bus, tram, train ou bateau et il retourne les 5 prochains départs à cet arrêt. Pour permettre un accès rapide, un système de favoris permet de stocker vos arrêts les plus courants.
21
22J'envisage prochainement d'ajouter les fonctionnalités suivantes:
23
24- Possibilité de filtrer les départs pour une certaine ligne
25- Recherche d'un arrêt à partir de sa position GPS
26- Recherche d'itinéraire
27
28Techniquement, les données sont récupérées depuis la [plateforme open data pour la mobilité en Suisse](https://opentransportdata.swiss/fr) et leur API _Open Journey Planner_ (standard européen). Le serveur, développé avec Deno, est hébergé sur un VPS chez Infomaniak.
29
30Ça vous intéresse ? Vous pouvez...
31
32- tester le bot ici: https://t.me/KokyoBot
33- me partager vos retours sur [Mastodon](https://tooting.ch/@5ika) ou par mail
34- récupérer le code source: `git clone ssh://5ika.ch:1917/tccli`
35
36> Pour le moment, le chatbot est encore jeune et potentiellement instable. C'est un service gratuit que je m'efforce de maintenir avec le temps que j'ai à disposition.