[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 02:59:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Comment aller à Nice ?

[Assistant] {"name": "search_trains", "parameters": {"city_from": "", "city_to": "Nice", "departure_date": "2025-08-28", "departure_time": "07:43", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-27 13:46:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Trajet Nîmes - Bordeaux

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Nîmes", "city_to": "Bordeaux", "departure_date": "2025-08-27", "departure_time": "15:38", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-27 23:50:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Contexte de recherche précédent: trajet Metz → Villeurbanne le 2025-08-27 à 20:50. Nouvelle demande: Et les suivants ?. geoloc: Nîmes

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Metz", "city_to": "Villeurbanne", "departure_date": "2025-08-27", "departure_time": "03:50", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 01:43:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] De Lyon vers Nîmes

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Lyon", "city_to": "Nîmes", "departure_date": "2025-08-28", "departure_time": "02:09", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 08:04:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Comment aller de Tours à Perpignan ? Départ à 17:15

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Tours", "city_to": "Perpignan", "departure_date": "2025-08-28", "departure_time": "17:15", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 12:42:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Comment aller de Reims à Aix-en-Provence ? Aux alentours de 10:30

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Reims", "city_to": "Aix-en-Provence", "departure_date": "2025-08-28", "departure_time": "14:47", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-27 14:03:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Train Montpellier → Marseille

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Montpellier", "city_to": "Marseille", "departure_date": "2025-08-27", "departure_time": "19:18", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 00:08:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Comment aller de Nice à Tours ? Aux alentours de 21:45

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Nice", "city_to": "Tours", "departure_date": "2025-08-28", "departure_time": "21:45", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 11:53:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Au départ de Saint-Étienne

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Saint-Étienne", "city_to": "", "departure_date": "2025-08-28", "departure_time": "13:21", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 06:23:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Je veux aller à Dijon. geoloc: Limoges

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Limoges", "city_to": "Dijon", "departure_date": "2025-08-28", "departure_time": "07:42", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 06:14:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Voyage de Brest à Amiens

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Brest", "city_to": "Amiens", "departure_date": "2025-08-28", "departure_time": "10:36", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 07:52:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Il faut que j'aille à Avignon

[Assistant] {"name": "search_trains", "parameters": {"city_from": "", "city_to": "Avignon", "departure_date": "2025-08-28", "departure_time": "12:54", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 02:16:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Contexte de recherche précédent: trajet Clermont-Ferrand → Angers le 2025-08-28 à 01:16. Nouvelle demande: C'est quoi les trains suivants ?. geoloc: Tours

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Clermont-Ferrand", "city_to": "Angers", "departure_date": "2025-08-28", "departure_time": "03:16", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-27 19:34:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Je voudrais partir pour Strasbourg

[Assistant] {"name": "search_trains", "parameters": {"city_from": "", "city_to": "Strasbourg", "departure_date": "2025-08-27", "departure_time": "01:19", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 11:50:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Liaison Nantes Bordeaux Pour 11:15

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Nantes", "city_to": "Bordeaux", "departure_date": "2025-08-28", "departure_time": "15:40", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 03:26:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Je dois me rendre à Amiens. geoloc: Nice

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Nice", "city_to": "Amiens", "departure_date": "2025-08-28", "departure_time": "04:05", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 08:18:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] À partir de Marseille

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Marseille", "city_to": "", "departure_date": "2025-08-28", "departure_time": "12:08", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-27 13:55:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Comment aller à Saint-Étienne ?

[Assistant] {"name": "search_trains", "parameters": {"city_from": "", "city_to": "Saint-Étienne", "departure_date": "2025-08-27", "departure_time": "19:13", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-27 23:35:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] À partir de Strasbourg

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Strasbourg", "city_to": "", "departure_date": "2025-08-27", "departure_time": "02:05", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-27 17:50:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Comment aller de Amiens à Villeurbanne ? Vers 11:00

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Amiens", "city_to": "Villeurbanne", "departure_date": "2025-08-27", "departure_time": "20:25", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 03:37:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Je cherche un train pour Dijon

[Assistant] {"name": "search_trains", "parameters": {"city_from": "", "city_to": "Dijon", "departure_date": "2025-08-28", "departure_time": "07:28", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-27 23:08:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Je veux aller à Nîmes

[Assistant] {"name": "search_trains", "parameters": {"city_from": "", "city_to": "Nîmes", "departure_date": "2025-08-27", "departure_time": "02:41", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-27 23:22:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Direction Grenoble

[Assistant] {"name": "search_trains", "parameters": {"city_from": "", "city_to": "Grenoble", "departure_date": "2025-08-27", "departure_time": "00:24", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 05:23:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Contexte de recherche précédent: trajet Saint-Étienne → Perpignan le 2025-08-28 à 03:23. Nouvelle demande: C'est quoi les trains suivants ?. geoloc: Nice

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Saint-Étienne", "city_to": "Perpignan", "departure_date": "2025-08-28", "departure_time": "09:23", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 00:52:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] De Metz vers Bordeaux Vers 10:45

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Metz", "city_to": "Bordeaux", "departure_date": "2025-08-28", "departure_time": "10:45", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 09:02:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] De Perpignan vers Lille

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Perpignan", "city_to": "Lille", "departure_date": "2025-08-28", "departure_time": "14:39", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 06:18:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Je dois me rendre à Brest

[Assistant] {"name": "search_trains", "parameters": {"city_from": "", "city_to": "Brest", "departure_date": "2025-08-28", "departure_time": "09:40", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-27 22:59:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Contexte de recherche précédent: trajet Reims → Strasbourg le 2025-08-27 à 19:59. Nouvelle demande: C'est quoi les trains suivants ?. geoloc: Bordeaux

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Reims", "city_to": "Strasbourg", "departure_date": "2025-08-27", "departure_time": "02:59", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 08:23:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Un train pour Strasbourg s'il vous plaît

[Assistant] {"name": "search_trains", "parameters": {"city_from": "", "city_to": "Strasbourg", "departure_date": "2025-08-28", "departure_time": "14:07", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 01:12:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Je pars de Clermont-Ferrand pour Marseille Je veux partir à 12:15

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Clermont-Ferrand", "city_to": "Marseille", "departure_date": "2025-08-28", "departure_time": "12:15", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 05:22:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Comment aller de Marseille à Tours ?

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Marseille", "city_to": "Tours", "departure_date": "2025-08-28", "departure_time": "08:23", "max_results": 10}}


[System]
Tu es un routeur d'outils intelligent. Analyse la requête et la géolocalisation pour déterminer l'action.
Répond UNIQUEMENT avec le JSON de l'outil choisi. Ne me génère pas de texte.
Heure actuelle (locale): 2025-08-28 03:12:00

RÈGLES STRICTES DE GESTION DES VILLES:
1. Si 2 villes sont mentionnées: utilise-les comme origine et destination
2. Si 1 seule ville + position utilisateur disponible: utilise la position geolocalisation comme origine et la ville comme destination
3. Si 1 seule ville sans position: laisse l'autre champ VIDE (ne pas inventer de ville)
4. Si aucune ville: laisse les deux champs VIDES
5. INTERDICTION ABSOLUE d'utiliser des villes par défaut comme Paris ou Lyon
6. Si tu ne connais pas une ville, laisse le champ vide plutôt que d'inventer sauf si tu has la géolocalisation

EXEMPLES:
- 'Je veux aller à Lyon' → city_from='', city_to='Lyon'
- 'Je pars de Marseille' → city_from='Marseille', city_to=''
- 'Je veux voyager demain' → city_from='', city_to=''
- 'J'aimerais un train pour aller à Nantes.', 'geoloc: Paris' → city_from='Paris', city_to='Nantes'

7. Si tu as une demande sans aucune ville, il faut regarder dans le Contexte de recherche précédent pour trouver les villes et regarder les détails de la nouvelle demande pour adapter l'appel à l'outil

EXEMPLE:
- 'Contexte de recherche précédent: trajet Paris → Marseille le 27/08/2025 à 12:38. Nouvelle demande: j'aimerais les prochains trains, geoloc: Paris' → city_from='Paris', city_to='Marseille', departure_time='14:38'
- 'Contexte de recherche précédent: trajet Paris → Lille le 27/08/2025 à 13:11. Nouvelle demande: J'aimerais les trains suivants.', 'geoloc': 'Paris' → city_from='Paris', city_to='Lille', departure_time='15:11'

Règle d'horodatage: toute recherche doit être au minimum à partir d'aujourd'hui, heure actuelle + 5 minutes. Si l'utilisateur demande le passé, ajuste vers le plus tôt possible (now+5min) sans le mentionner.Format de date: YYYY-MM-DD.Format d'heure: HH:MM.Règle du paramètre max_results: il faut convertir l'entrée de l'utilisateur. Par exemple: 'le prochain train'devient max_results=1. Si l'utilisateur ne précise pas de max_results, utilise 10, sinon utilise la valeur fournie.

[{"name": "search_trains", "description": "Recherche de trains entre deux villes", "parameters": {"type": "object", "properties": {"city_from": {"type": "string", "description": "Ville de départ"}, "city_to": {"type": "string", "description": "Ville d'arrivée"}, "departure_date": {"type": "string", "description": "Date de départ (YYYY-MM-DD)"}, "departure_time": {"type": "string", "description": "Heure de départ (HH:MM)"}, "max_results": {"type": "integer", "description": "Nombre maximum de résultats"}}, "required": ["departure_date", "departure_time"]}}]

RENVOIE STRICTEMENT: {"name":"...","parameters":{...}}

[User] Un train pour Limoges s'il vous plaît. geoloc: Aix-en-Provence

[Assistant] {"name": "search_trains", "parameters": {"city_from": "Aix-en-Provence", "city_to": "Limoges", "departure_date": "2025-08-28", "departure_time": "03:38", "max_results": 10}}