Aller au contenu principal

Assistant — chat public

Endpoints anonymes du chat citoyen (Assistant Wast'O), préfixe /public/chat.
Gating : module console ASSIST'O sur le cityGroup de la ville. Distinct de MCP.

Guide opérateur : L'Assistant.
SDK : client.public.chat.* — Client SDK.

Disponibilité​

GET /public/chat/availability?cityId={uuid}
GET /public/chat/availability?cityGroupId={uuid}

Réponse typique : { "enabled": true|false, "cityGroupId": "…", "reason": "…" }.
Sans cityId ni cityGroupId → enabled: false.

SDK : client.public.chat.getAvailability({ cityId }) (accepte aussi une string cityId seule).

Conversations​

Créer​

POST /public/chat/conversations
Content-Type: application/json
{
"deviceId": "uuid-appareil",
"cityId": "uuid-ville",
"cityGroupId": "uuid-groupement"
}

deviceId est obligatoire (identifiant client local). cityId / cityGroupId recommandés pour le gating ASSIST'O.

Localisation​

PATCH /public/chat/conversations/:id/location
Content-Type: application/json
{ "cityId": "uuid-ville", "placeId": "uuid-secteur" }

Lister par appareil​

GET /public/chat/conversations/:deviceId?page=1&pageSize=20

Réponse paginée (data + meta).

Messages d’une conversation​

GET /public/chat/conversations/:id/messages

Envoyer un message​

POST /public/chat/conversations/:id/messages
Content-Type: application/json
{
"content": "Quand est la prochaine collecte ?",
"actionOptionId": null,
"placeId": "uuid-secteur-optionnel"
}

Le serveur enregistre le message USER, exécute le pipeline (arbre → RAG → LLM optionnel), puis renvoie la réponse assistant (et métadonnées éventuelles : llmUsed, groundingHits, confidence).

Rate limiting​

≈ 20 requêtes / minute par deviceId (ou IP) sur création de conversation et envoi de messages.
Dépassement → HTTP 429 avec message FR (« Trop de messages — réessayez dans une minute. »).

Routes console (JWT)​

Préfixe /chat — JWT console + permission CHAT_CONVERSATIONS (pas l’API publique) :

MéthodePathNotes
GET/chat/conversationsInbox agents
GET/chat/conversations/:idDétail
POST/chat/conversations/:id/assignAssigner un agent
POST/chat/conversations/:id/messagesRéponse agent
PATCH/chat/conversations/:id/statusStatut conversation
POST/chat/conversations/:id/create-ticketTicket depuis le chat
GET/chat/llm-usageSnapshot tokens (ADMIN)
GET/chat/llm-usage/city-group?cityGroupId=Conso groupement

Ces routes ne sont pas destinées aux intégrateurs site : elles alimentent la console Assistant IA.

Voir aussi​