Aller au contenu principal

enterprise_ai.channels.bridge

Source : sdks/python/src/enterprise_ai/channels/bridge.py. Retour à l'index de la référence du SDK Python.

remarque

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 :

NomTypeRequisDescription
textstrouiTexte du message.
userstrouiExpéditeur du message (sender_id ou sender du message de bus, user par défaut).
conversation_idstrouiConversation à laquelle appartient le message (200 caractères au plus). Une nouvelle est générée si omise.
metadatadict[str, Any]nonPaires 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.

NomTypeDéfautRequisDescription
messageAnyouiMessage 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 :

NomTypeRequisDescription
adaptertuple[str, str]ouiModule et classe de l'adaptateur Navin, extraits de spec.connection.adapter ("<module>:<class>").
channelouiLe canal tel que renvoyé par channels.get(name).
clientouiClient de la plateforme utilisé pour les appels aux canaux, aux exécutions et aux sessions.
connectionouiLe spec.connection du manifeste du canal : provider, adapter, settings, secret_refs.
nameouiNom du canal de la plateforme relié.
outbound_factoryouiFonction qui construit les messages sortants publiés sur le bus.
poll_intervalouiSecondes entre deux lectures de l'état de l'exécution.
resolve_secretouiFonction qui résout les références de secrets de la connexion.
timeoutouiAttente 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>").

NomTypeDéfautRequisDescription
clientAnyouiClient parent.
namestrouiNom du canal de la plateforme à relier.
resolve_secretCallable[[str], str]env_resolvernonFonction qui transforme une référence de secret de secret_refs en sa valeur ; par défaut env_resolver (env://NAME uniquement).
outbound_factoryCallable[[str, str, str, dict[str, Any]], Any] | NoneNonenonConstruit le message sortant à partir de (channel, chat_id, content, metadata) ; par défaut un BusMessage envoyé par assistant.
poll_intervalfloat1.0nonSecondes entre deux lectures de l'état de l'exécution pendant l'attente des réponses (1 par défaut).
timeoutfloat300.0nonAttente 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).

NomTypeDéfautRequisDescription
messageAnyouiMessage entrant du bus, lu par attribut (content, sender_id, chat_id, metadata).
busAnyouiBus 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.

NomTypeDéfautRequisDescription
busAnyouiBus de messages transmis à l'adaptateur.
config_factoryCallable[[dict[str, Any]], Any] | NoneNonenonFonction 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).

NomTypeDéfautRequisDescription
messageAnyouiMessage 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.

NomTypeDéfautRequisDescription
accepteddict[str, Any]ouiRé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.

NomTypeDéfautRequisDescription
busAnyouiBus de messages à consommer (consume_inbound) et sur lequel répondre (publish_outbound).
stopasyncio.Event | NoneNonenonasyncio.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.

NomTypeDéfautRequisDescription
refstrouiRé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.