enterprise_ai.channels.bridge
Source : sdks/python/src/enterprise_ai/channels/bridge.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.
Classe ChannelBridgeError
Le canal ne peut pas être relié (pas de connexion Navin, résolveur de secrets manquant, adaptateur non installé).
EaiError
Modèle Inbound
Un message entrant, quel que soit le bus qui l'a produit.
Champs :
| Nom | Type | Requis | Description |
|---|---|---|---|
text | str | oui | Texte du message. |
user | str | oui | Expéditeur du message (sender_id ou sender du message de bus, user par défaut). |
conversation_id | str | oui | Conversation à laquelle appartient le message (200 caractères au plus). Une nouvelle est générée si omise. |
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. |
Inbound.of
of(message: Any) -> Inbound
Construit un Inbound à partir d'un message de bus lu par attribut : content, sender_id ou sender, chat_id ou session_id, metadata.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
message | Any | oui | Message du bus Navin ou de enterprise_ai.runtime.bus ; sans content textuel, ChannelBridgeError est levée. |
Retour : Inbound. Un Inbound : un message entrant, quel que soit le bus qui l'a produit.
Erreurs levées : ChannelBridgeError.
Classe ChannelBridge
Canaux. Channel Gateway : les points d'entrée où les utilisateurs finaux parlent aux agents (web, mobile, e-mail, Slack, Teams, WhatsApp, SMS, voix, API, et les canaux Navin Discord, Telegram, Matrix, Mattermost et Signal). Un message entrant devient un message de session et lance un run de l'agent du canal, dans des limites de taille, de débit et de sessions et avec DLP.
Attributs :
| Nom | Type | Requis | Description |
|---|---|---|---|
adapter | tuple[str, str] | oui | Module et classe de l'adaptateur Navin, extraits de spec.connection.adapter ("<module>:<class>"). |
channel | oui | Le canal tel que renvoyé par channels.get(name). | |
client | oui | Client de la plateforme utilisé pour les appels aux canaux, aux exécutions et aux sessions. | |
connection | oui | Le spec.connection du manifeste du canal : provider, adapter, settings, secret_refs. | |
name | oui | Nom du canal de la plateforme relié. | |
outbound_factory | oui | Fonction qui construit les messages sortants publiés sur le bus. | |
poll_interval | oui | Secondes entre deux lectures de l'état de l'exécution. | |
resolve_secret | oui | Fonction qui résout les références de secrets de la connexion. | |
timeout | oui | Attente maximale en secondes de la fin d'une exécution. |
Constructeur ChannelBridge
ChannelBridge(client: Any, name: str, resolve_secret: Callable[[str], str] = env_resolver, outbound_factory: Callable[[str, str, str, dict[str, Any]], Any] | None = None, poll_interval: float = 1.0, timeout: float = 300.0) -> None
Lit le canal name et conserve son spec.connection ; lève ChannelBridgeError si ce n'est pas une connexion Navin (provider: navin, adapter: "<module>:<class>").
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
client | Any | oui | Client parent. | |
name | str | oui | Nom du canal de la plateforme à relier. | |
resolve_secret | Callable[[str], str] | env_resolver | non | Fonction qui transforme une référence de secret de secret_refs en sa valeur ; par défaut env_resolver (env://NAME uniquement). |
outbound_factory | Callable[[str, str, str, dict[str, Any]], Any] | None | None | non | Construit le message sortant à partir de (channel, chat_id, content, metadata) ; par défaut un BusMessage envoyé par assistant. |
poll_interval | float | 1.0 | non | Secondes entre deux lectures de l'état de l'exécution pendant l'attente des réponses (1 par défaut). |
timeout | float | 300.0 | non | Attente maximale en secondes de la fin de l'exécution (300 par défaut) ; au-delà, ChannelBridgeError est levée. |
Erreurs levées : ChannelBridgeError.
ChannelBridge.adapter_config
adapter_config() -> dict[str, Any]
Configuration de l'adaptateur Navin : réglages et secrets résolus, enabled à vrai. Les noms pointés (dm.allowFrom) deviennent des objets imbriqués, comme l'attend la configuration Navin.
Cet élément ne prend aucun paramètre.
Retour : dict[str, Any]. Dict de configuration transmis à la classe de l'adaptateur.
ChannelBridge.handle
async handle(message: Any, bus: Any) -> dict[str, Any]
Relaie un message et publie les réponses sur bus (publish_outbound).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
message | Any | oui | Message entrant du bus, lu par attribut (content, sender_id, chat_id, metadata). | |
bus | Any | oui | Bus de messages de l'adaptateur ; les réponses partent par son publish_outbound. |
Retour : dict[str, Any]. Réponse de POST /v1/channels/{name}/inbound (session_id, run_id, message_id).
ChannelBridge.load_adapter
load_adapter(bus: Any, config_factory: Callable[[dict[str, Any]], Any] | None = None) -> Any
Instancie la classe d'adaptateur Navin (navin.channels.<module>) sur bus ; nécessite le paquet navin.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
bus | Any | oui | Bus de messages transmis à l'adaptateur. | |
config_factory | Callable[[dict[str, Any]], Any] | None | None | non | Fonction facultative qui transforme le dict adapter_config en l'objet de configuration attendu par l'adaptateur. |
Retour : Any. L'instance de l'adaptateur ; ChannelBridgeError si les canaux navin ne sont pas installés.
Erreurs levées : ChannelBridgeError.
ChannelBridge.relay
relay(message: Any) -> dict[str, Any]
Envoyer un message entrant. Remet un message d'un utilisateur final (202) et renvoie session_id, session_created, message_id, run_id (ou run_skipped quand l'agent n'est pas actif) et le résultat DLP. Demande tenant_admin, developer ou agent. Étapes : 1. Le canal doit être actif (409 channel_disabled) ; un canal signed_webhook vérifie X-EAI-Signature (t=<secondes unix>,v1=<HMAC-SHA256 hexadécimal de "<t>." + corps brut>, fenêtre de 5 minutes ; 401 invalid_signature). 2. La politique channel.inbound est évaluée ; la taille (413 message_too_large) et le débit par utilisateur (429 rate_limited) sont contrôlés. 3. La DLP entrante s'exécute (detect par défaut ; block répond 403 dlp_blocked, mask enregistre le texte masqué). 4. La session ouverte de l'utilisateur et de la conversation est réutilisée, ou une nouvelle est ouverte (429 too_many_sessions, 409 session_closed au-delà de max_session_minutes). 5. Le message est ajouté et un run de l'agent du canal démarre avec le déclencheur channel.
Route : /v1/channels/{name}/inbound (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
message | Any | oui | Message d'état (2000 caractères au plus). |
Retour : dict[str, Any]. Réponse JSON décodée de l'opération « Envoyer un message entrant ».
Erreurs levées : les erreurs typées du transport (Erreurs).
ChannelBridge.replies
replies(accepted: dict[str, Any]) -> list[str]
Messages de l'assistant de la session écrits après le message entrant, une fois l'exécution arrêtée.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
accepted | dict[str, Any] | oui | Réponse de l'appel entrant, avec session_id, run_id et message_id. |
Retour : list[str]. Textes des réponses, dans l'ordre ; vide si la réponse n'a ni session ni exécution.
Erreurs levées : ChannelBridgeError.
ChannelBridge.run
async run(bus: Any, stop: asyncio.Event | None = None) -> None
Consomme bus.consume_inbound() jusqu'à ce que stop soit positionné, en relayant chaque message.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
bus | Any | oui | Bus de messages à consommer (consume_inbound) et sur lequel répondre (publish_outbound). | |
stop | asyncio.Event | None | None | non | asyncio.Event qui termine la boucle une fois positionné ; par défaut un nouvel événement jamais positionné. |
Retour : None.
Fonctions
env_resolver
env_resolver(ref: str) -> str
Résout env://NAME à partir de l'environnement du processus.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
ref | str | oui | Référence de secret, env://NAME ; tout autre schéma lève ChannelBridgeError. |
Retour : str. Valeur de la variable d'environnement ; ChannelBridgeError si elle n'est pas définie.
Erreurs levées : ChannelBridgeError.