Passer au contenu principal
Utilisez le streaming AI lorsqu’un site Web ou une surface d’assistance doit afficher la réponse AI telle qu’elle est générée.
POST /api/v1/connect/ai-stream
La réponse utilise des événements envoyés par le serveur.

Demande

curl "https://api.plato.ae/api/v1/connect/ai-stream" \
  -X POST \
  -H "Authorization: Bearer $PLATO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agentId": "ai_agent_id",
    "conversationId": "conversation_id",
    "lastMessageId": "message_id"
  }'

Corps

{
  agentId: string;
  conversationId: string;
  channelId?: string | null;
  lastMessageId?: string | null;
  senderId?: string | null;
}
senderId est requis sauf si Plato peut le lire à partir de lastMessageId. channelId est facultatif lorsque la conversation a déjà un canal ou que le dernier message a un canal.

Événements

Le flux envoie des événements data:. Événement Delta :
{
  "type": "delta",
  "delta": "Hello",
  "text": "Hello"
}
Événement terminé :
{
  "type": "done",
  "messageId": "message_id",
  "text": "Hello, how can I help?"
}
Événement d’erreur :
{
  "type": "error",
  "error": "Conversation not found."
}

Exemple de navigateur

const response = await fetch("https://api.plato.ae/api/v1/connect/ai-stream", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    agentId: "ai_agent_id",
    conversationId: "conversation_id",
    lastMessageId: "message_id",
  }),
});

const reader = response.body?.getReader();
Pour les sites Web publics, appelez ce point de terminaison depuis votre backend lorsque cela est possible. N’exposez pas les clés API de longue durée dans le code du navigateur.

Autorisation

Le streaming AI nécessite :
connect360:conversation:engage