Aller au contenu

API Chat & Conversations

Endpoints de gestion des conversations et messages.

POST /chat/conversations

Créer une nouvelle conversation.

Request

{
  "title": "Nouvelle conversation",
  "system_prompt": "Tu es un assistant utile."
}

Response 201

{
  "id": "uuid",
  "title": "Nouvelle conversation",
  "system_prompt": "Tu es un assistant utile.",
  "created_at": "2026-01-16T10:00:00Z",
  "message_count": 0
}

GET /chat/conversations

Lister les conversations de l'utilisateur.

Query Parameters

Param Type Default Description
skip int 0 Offset pagination
limit int 20 Nombre (max 100)
archived bool false Inclure archivées

Response 200

{
  "items": [
    {
      "id": "uuid",
      "title": "Conversation 1",
      "created_at": "2026-01-16T10:00:00Z",
      "message_count": 15,
      "last_message_preview": "Merci pour..."
    }
  ],
  "total": 42
}

GET /chat/conversations/{id}

Récupérer une conversation avec ses messages.

Response 200

{
  "id": "uuid",
  "title": "Ma conversation",
  "messages": [
    {
      "id": "uuid",
      "role": "user",
      "content": "Bonjour!",
      "created_at": "2026-01-16T10:00:00Z"
    },
    {
      "id": "uuid",
      "role": "assistant",
      "content": "Bonjour! Comment puis-je vous aider?",
      "metadata": {
        "model": "claude-3-sonnet",
        "tokens_used": 45
      }
    }
  ]
}

POST /chat/conversations/{id}/messages

Envoyer un message dans une conversation.

Request

{
  "content": "Peux-tu m'expliquer le concept de RAG?"
}

Response 200

{
  "user_message": {
    "id": "uuid",
    "role": "user",
    "content": "Peux-tu m'expliquer le concept de RAG?"
  },
  "assistant_message": {
    "id": "uuid",
    "role": "assistant",
    "content": "RAG (Retrieval-Augmented Generation) est...",
    "metadata": {
      "model": "claude-3-sonnet",
      "tokens_input": 120,
      "tokens_output": 450,
      "latency_ms": 1200,
      "llm_provider": "anthropic",
      "sensitivity_score": 0.1
    }
  }
}

Routage LLM

Le sensitivity_score détermine le routage:

  • > 0.7: LLM local (Ollama) - données sensibles
  • < 0.7: LLM cloud (Claude/GPT)

DELETE /chat/conversations/{id}

Archiver une conversation.

Response 200

{
  "message": "Conversation archived successfully"
}