enterprise_ai.runtime.bus
Source : sdks/python/src/enterprise_ai/runtime/bus.py. Retour à l'index de la référence du SDK Python.
Cette page est générée par tools/docs/gen_sdk_reference.py depuis les sources du SDK et les dossiers de textes OpenAPI. Ne la modifiez pas à la main : changez la source et régénérez.
Modèle BusMessage
Un message sur le bus.
Champs :
| Nom | Type | Requis | Description |
|---|---|---|---|
content | str | oui | Texte du message. |
session_id | str | None | non | Session à laquelle appartient le message, ou None. |
channel | str | non | Canal d'où vient la conversation. |
sender | str | non | Auteur du message (user par défaut). |
metadata | dict[str, Any] | non | Paires clé-valeur libres enregistrées avec l'objet et renvoyées telles quelles ; la plateforme ne les interprète jamais. |
BusMessage.from_json
from_json(data: bytes) -> BusMessage
Reconstruit un message à partir de son encodage JSON (l'inverse de to_json).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
data | bytes | oui | Octets JSON contenant les champs du message. |
Retour : BusMessage. Un BusMessage : un message sur le bus.
BusMessage.to_json
to_json() -> bytes
Encode tous les champs du message en JSON.
Cet élément ne prend aucun paramètre.
Retour : bytes. Octets JSON en UTF-8 ; les valeurs qui ne sont pas des types JSON sont écrites en chaînes.
Classe MessageBus
Bus asyncio dans le processus, avec une file entrante, une file sortante et des abonnés.
Attributs :
| Nom | Type | Requis | Description |
|---|---|---|---|
inbound | asyncio.Queue[BusMessage] | oui | asyncio.Queue des messages des canaux vers la boucle d'agent. |
outbound | asyncio.Queue[BusMessage] | oui | asyncio.Queue des messages de la boucle d'agent vers les canaux. |
Constructeur MessageBus
MessageBus() -> None
Crée un bus avec des files entrante et sortante vides et aucun abonné.
Cet élément ne prend aucun paramètre.
MessageBus.consume_inbound
async consume_inbound(timeout: float | None = None) -> BusMessage | None
Prochain message entrant, ou None après timeout secondes.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
timeout | float | None | None | non | Attente maximale en secondes ; None attend l'arrivée d'un message. |
Retour : BusMessage \| None. Un BusMessage : un message sur le bus.
MessageBus.get_inbound_nowait
get_inbound_nowait() -> BusMessage | None
Prend le prochain message entrant sans attendre.
Cet élément ne prend aucun paramètre.
Retour : BusMessage \| None. Un BusMessage : un message sur le bus.
MessageBus.publish_inbound
async publish_inbound(message: BusMessage) -> None
Place un message dans la file entrante, puis appelle les abonnés inbound.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
message | BusMessage | oui | Message envoyé par un canal à l'agent. |
Retour : None.
MessageBus.publish_outbound
async publish_outbound(message: BusMessage) -> None
Place un message dans la file sortante, puis appelle les abonnés outbound.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
message | BusMessage | oui | Message envoyé par l'agent aux canaux. |
Retour : None.
MessageBus.subscribe
subscribe(topic: str, handler: Handler) -> Callable[[], None]
Appelle handler pour chaque message de topic (inbound ou outbound). Renvoie une fonction de désabonnement.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
topic | str | oui | Sujet à suivre : inbound ou outbound. | |
handler | Handler | oui | Fonction appelée avec chaque BusMessage ; elle peut être une fonction coroutine, qui est attendue. |
Retour : Callable[[], None]. Fonction sans argument qui supprime l'abonnement.
Classe NatsMessageBus
Même API adossée aux sujets NATS <prefix>.inbound et <prefix>.outbound.
MessageBus
Attributs :
| Nom | Type | Requis | Description |
|---|---|---|---|
prefix | oui | Préfixe des sujets NATS. | |
url | oui | Adresse du serveur NATS. |
Constructeur NatsMessageBus
NatsMessageBus(url: str = 'nats://127.0.0.1:4222', prefix: str = 'eai.agent') -> None
Crée un bus adossé à NATS ; demande l'extra nats (nats-py), sinon lève ImportError. Appelez connect() avant usage.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
url | str | 'nats://127.0.0.1:4222' | non | Adresse du serveur NATS ; par défaut, un serveur local. |
prefix | str | 'eai.agent' | non | Préfixe des sujets NATS (eai.agent par défaut). |
Erreurs levées : ImportError.
NatsMessageBus.close
async close() -> None
Vide et ferme la connexion NATS si elle est ouverte.
Cet élément ne prend aucun paramètre.
Retour : None.
NatsMessageBus.connect
async connect() -> NatsMessageBus
Se connecte à NATS et relaie les messages de <prefix>.inbound vers la file entrante locale.
Cet élément ne prend aucun paramètre.
Retour : NatsMessageBus. Un NatsMessageBus : même API adossée aux sujets NATS <prefix>.inbound et <prefix>.outbound.
NatsMessageBus.publish_inbound
async publish_inbound(message: BusMessage) -> None
Publie un message sur le sujet <prefix>.inbound ; il atteint la file par le relais.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
message | BusMessage | oui | Message envoyé par un canal à l'agent. |
Retour : None.
NatsMessageBus.publish_outbound
async publish_outbound(message: BusMessage) -> None
Publie un message sur le sujet <prefix>.outbound, puis appelle les abonnés outbound locaux.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
message | BusMessage | oui | Message envoyé par l'agent aux canaux. |
Retour : None.