Aller au contenu principal

enterprise_ai.core.transport

Source : sdks/python/src/enterprise_ai/_core/transport.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.

Modèle ClientConfig​

Paramètres de connexion. Les valeurs non fournies reprennent les variables d'environnement EAI_*.

Champs :

NomTypeRequisDescription
base_urlstr | NonenonAdresse de l'API, sans barre oblique finale et validée. Variable : EAI_BASE_URL, une adresse locale par défaut.
api_keystr | NonenonClé d'API envoyée dans l'en-tête X-API-Key. Variable : EAI_API_KEY.
tokenstr | NonenonJeton d'accès au Hub. En écriture seule, scellé ; nul conserve le jeton enregistré.
tenantstr | NonenonIdentifiant court du locataire.
projectstr | NonenonIdentifiant du projet auquel les résultats sont limités.
environmentstr | NonenonEnvironnement cible envoyé dans l'en-tête X-Environment. Variable : EAI_ENVIRONMENT.
localestr | NonenonLangue des messages, envoyée dans Accept-Language, par exemple fr ; déduite de l'environnement si elle n'est pas fournie.
timeoutfloatnonDélai d'expiration de chaque requête HTTP, en secondes. Par défaut 30.0.
retriesintnonNombre de nouvelles tentatives après le premier essai en cas d'échec passager. Par défaut 3.
backofffloatnonDélai de base en secondes de l'attente exponentielle entre tentatives (doublé à chaque tentative, plus une part aléatoire). Par défaut 0.5.
max_backofffloatnonLimite haute en secondes du délai entre deux tentatives, Retry-After compris. Par défaut 20.0.
dev_userstr | NonenonUtilisateur envoyé dans X-Dev-User lorsqu'aucun jeton ni clé d'API n'est défini et qu'un tenant l'est ; sdk-dev par défaut. Variable : EAI_DEV_USER.
dev_rolesstr | NonenonRôles envoyés dans X-Dev-Roles lorsqu'aucun jeton ni clé d'API n'est défini et qu'un tenant l'est. Variable : EAI_DEV_ROLES.
traceparentstr | Nonenontraceparent W3C envoyé lorsqu'aucune opération de enterprise_ai.telemetry n'en définit un.
headersdict[str, str]nonEn-têtes de l'événement, valeurs textuelles. Le contexte de trace y est ajouté.
ca_bundlestr | NonenonFichier PEM d'autorités de certification supplémentaires de confiance ; la vérification reste active. Variable : EAI_CA_BUNDLE.
dangerously_disable_tls_verification_for_localhostboolnonDésactive la vérification des certificats TLS ; refusé avec ValueError sauf si l'hôte de l'URL de base est local. Par défaut False.

ClientConfig.default_headers​

default_headers() -> dict[str, str]

En-têtes envoyés avec chaque requête (authentification, tenant, langue, agent utilisateur).

Cet élément ne prend aucun paramètre.

Retour : dict[str, str]. Nom d'en-tête vers valeur : Accept, Accept-Language, User-Agent, puis les en-têtes d'authentification, X-Dev-*, X-Project, X-Environment et personnalisés.

ClientConfig.httpx_options​

httpx_options() -> dict[str, Any]

TLS 1.2 ou plus avec vérification active (ou la dérogation explicite pour localhost), redirections non suivies.

Cet élément ne prend aucun paramètre.

Retour : dict[str, Any]. Arguments nommés du client httpx : verify (un contexte SSL) et follow_redirects=False.

Modèle ApiResponse​

Corps décodé accompagné des métadonnées de la réponse (appels avec raw=True).

Champs :

NomTypeRequisDescription
dataAnyouiCorps décodé de la réponse : valeur JSON, texte, ou None pour une réponse vide.
statusintouiCode de statut HTTP de la réponse, par exemple 200.
headershttpx.HeadersouiEn-têtes de l'événement, valeurs textuelles. Le contexte de trace y est ajouté.

Attributs :

NomTypeRequisDescription
cost_estimatedstr | NoneouiCoût estimé de l'appel, lu dans l'en-tête de réponse x-eai-cost-estimated, ou None.
cost_measuredstr | NoneouiCoût mesuré de l'appel, lu dans l'en-tête de réponse x-eai-cost-measured, ou None.
decision_idstr | NoneouiIdentifiant de la décision de politique, lu dans l'en-tête de réponse x-eai-decision-id, ou None.
request_idstr | NoneouiIdentifiant de la requête, lu dans l'en-tête de réponse x-request-id, ou None.

Modèle Call​

Un appel d'API préparé. template est le gabarit de chemin documenté.

Champs :

NomTypeRequisDescription
methodstrouiNom de la méthode, par exemple basic, token ou none.
templatestrouiGabarit de chemin documenté à partir duquel l'appel a été construit, par exemple /v1/catalog/bricks/{id}.
pathstrouiChemin dont les paramètres sont remplis et encodés pour l'URL, relatif à l'URL de base.
paramsdict[str, Any] | NonenonParamètres de requête, sans les valeurs None, ou None.
jsonAnynonValeur envoyée comme corps JSON de la requête, ou None.
filesAnynonFichiers à importer (1 à 200).
dataAnynonChamps de formulaire de la requête (avec files, un corps multipart), ou None.
headersdict[str, str]nonEn-têtes de l'événement, valeurs textuelles. Le contexte de trace y est ajouté.
idempotency_keystr | NonenonValeur de l'en-tête Idempotency-Key ; lorsqu'elle est définie, l'appel est retenté même si sa méthode n'est pas idempotente.
rawboolnonSi True, l'appel renvoie une ApiResponse avec le statut et les en-têtes au lieu du seul corps décodé. Par défaut False.
contentbytes | NonenonOctets bruts envoyés comme corps de la requête, ou None.

Classe SyncTransport​

Transport bloquant reposant sur :class:httpx.Client.

_BaseTransport

Attributs :

NomTypeRequisDescription
httpouihttpx.Client sous-jacent qui envoie les requêtes.

Constructeur SyncTransport​

SyncTransport(config: ClientConfig, http_client: httpx.Client | None = None, **httpx_kwargs: Any) -> None

Crée le transport, en construisant un httpx.Client à partir de la configuration sauf si un client est fourni.

NomTypeDéfautRequisDescription
configClientConfigouiParamètres de connexion (ClientConfig) : URL de base, identifiants, délai d'expiration et politique de nouvelles tentatives.
http_clienthttpx.Client | NoneNonenonhttpx.Client existant à utiliser tel quel ; par défaut, un nouveau client est créé avec l'URL de base, le délai et les options TLS configurés.
**httpx_kwargsAnynonOptions supplémentaires passées à httpx.Client ; verify et follow_redirects=True sont refusées avec ValueError.

SyncTransport.close​

close() -> None

Ferme le client HTTP sous-jacent et ses connexions.

Cet élément ne prend aucun paramètre.

Retour : None.

SyncTransport.paginate​

paginate(method: str, template: str, args: tuple[Any, ...] = (), **kwargs: Any) -> Page

Envoie un appel de liste et renvoie sa première page sous forme de Page.

NomTypeDéfautRequisDescription
methodstrouiMéthode HTTP de l'appel, par exemple GET (passée en majuscules).
templatestrouiGabarit de chemin documenté, par exemple /v1/catalog/bricks/{id}.
argstuple[Any, ...]()nonValeurs des paramètres du chemin, dans l'ordre ; elles sont encodées pour l'URL.
**kwargsAnynonOptions de l'appel : params, json, files, data, content, headers, idempotent, idempotency_key, raw.

Retour : Page. Une Page : première page d'une liste {items, next_cursor}. L'itération suit chaque curseur.

SyncTransport.request​

request(method: str, template: str, args: tuple[Any, ...] = (), **kwargs: Any) -> Any

Prépare et envoie un appel, puis renvoie son corps décodé.

NomTypeDéfautRequisDescription
methodstrouiMéthode HTTP de l'appel, par exemple GET (passée en majuscules).
templatestrouiGabarit de chemin documenté, par exemple /v1/catalog/bricks/{id}.
argstuple[Any, ...]()nonValeurs des paramètres du chemin, dans l'ordre ; elles sont encodées pour l'URL.
**kwargsAnynonOptions de l'appel : params, json, files, data, content, headers, idempotent, idempotency_key, raw.

Retour : Any. Corps décodé (valeur JSON, texte ou None pour une réponse vide), ou une ApiResponse avec raw=True.

SyncTransport.send​

send(call: Call, stream: bool = False) -> httpx.Response

Envoie avec de nouvelles tentatives ; lève l'erreur typée sur un échec définitif.

NomTypeDéfautRequisDescription
callCallouiCall préparé à envoyer.
streamboolFalsenonSi True, le corps n'est pas lu d'avance afin d'être consommé en flux. Par défaut False.

Retour : httpx.Response. La httpx.Response réussie (statut inférieur à 400).

Erreurs levées : TransportError.

SyncTransport.sse​

sse(method: str, template: str, args: tuple[Any, ...] = (), **kwargs: Any) -> Iterator[ServerSentEvent]

Ouvre un flux Server Sent Events (Accept: text/event-stream) et renvoie un itérateur de ses événements.

NomTypeDéfautRequisDescription
methodstrouiMéthode HTTP de l'appel, par exemple GET (passée en majuscules).
templatestrouiGabarit de chemin documenté, par exemple /v1/catalog/bricks/{id}.
argstuple[Any, ...]()nonValeurs des paramètres du chemin, dans l'ordre ; elles sont encodées pour l'URL.
**kwargsAnynonOptions de l'appel : params, json, files, data, content, headers, idempotent, idempotency_key, raw.

Retour : Iterator[ServerSentEvent]. Un ServerSentEvent : un événement SSE. data est le texte brut ; :meth:json le décode.

Classe AsyncTransport​

Transport non bloquant reposant sur :class:httpx.AsyncClient.

_BaseTransport

Attributs :

NomTypeRequisDescription
httpouihttpx.AsyncClient sous-jacent qui envoie les requêtes.
sleepouiFonction attendue entre deux tentatives ; asyncio.sleep par défaut, remplaçable dans les tests.

Constructeur AsyncTransport​

AsyncTransport(config: ClientConfig, http_client: httpx.AsyncClient | None = None, **httpx_kwargs: Any) -> None

Crée le transport, en construisant un httpx.AsyncClient à partir de la configuration sauf si un client est fourni.

NomTypeDéfautRequisDescription
configClientConfigouiParamètres de connexion (ClientConfig) : URL de base, identifiants, délai d'expiration et politique de nouvelles tentatives.
http_clienthttpx.AsyncClient | NoneNonenonhttpx.AsyncClient existant à utiliser tel quel ; par défaut, un nouveau client est créé avec l'URL de base, le délai et les options TLS configurés.
**httpx_kwargsAnynonOptions supplémentaires passées à httpx.AsyncClient ; verify et follow_redirects=True sont refusées avec ValueError.

AsyncTransport.close​

async close() -> None

Ferme le client HTTP sous-jacent et ses connexions (une coroutine).

Cet élément ne prend aucun paramètre.

Retour : None.

AsyncTransport.paginate​

async paginate(method: str, template: str, args: tuple[Any, ...] = (), **kwargs: Any) -> AsyncPage

Envoie un appel de liste et renvoie sa première page sous forme d'AsyncPage (une coroutine).

NomTypeDéfautRequisDescription
methodstrouiMéthode HTTP de l'appel, par exemple GET (passée en majuscules).
templatestrouiGabarit de chemin documenté, par exemple /v1/catalog/bricks/{id}.
argstuple[Any, ...]()nonValeurs des paramètres du chemin, dans l'ordre ; elles sont encodées pour l'URL.
**kwargsAnynonOptions de l'appel : params, json, files, data, content, headers, idempotent, idempotency_key, raw.

Retour : AsyncPage. Une AsyncPage : équivalent asynchrone de :class:Page (async for item in page).

AsyncTransport.request​

async request(method: str, template: str, args: tuple[Any, ...] = (), **kwargs: Any) -> Any

Prépare et envoie un appel, puis renvoie son corps décodé (une coroutine).

NomTypeDéfautRequisDescription
methodstrouiMéthode HTTP de l'appel, par exemple GET (passée en majuscules).
templatestrouiGabarit de chemin documenté, par exemple /v1/catalog/bricks/{id}.
argstuple[Any, ...]()nonValeurs des paramètres du chemin, dans l'ordre ; elles sont encodées pour l'URL.
**kwargsAnynonOptions de l'appel : params, json, files, data, content, headers, idempotent, idempotency_key, raw.

Retour : Any. Corps décodé (valeur JSON, texte ou None pour une réponse vide), ou une ApiResponse avec raw=True.

AsyncTransport.send​

async send(call: Call, stream: bool = False) -> httpx.Response

Envoie un appel préparé avec de nouvelles tentatives sur les échecs passagers ; lève l'erreur typée sur un échec définitif (une coroutine).

NomTypeDéfautRequisDescription
callCallouiCall préparé à envoyer.
streamboolFalsenonSi True, le corps n'est pas lu d'avance afin d'être consommé en flux. Par défaut False.

Retour : httpx.Response. La httpx.Response réussie (statut inférieur à 400).

Erreurs levées : TransportError.

AsyncTransport.sse​

sse(method: str, template: str, args: tuple[Any, ...] = (), **kwargs: Any) -> AsyncIterator[ServerSentEvent]

Ouvre un flux Server Sent Events (Accept: text/event-stream) et renvoie un itérateur asynchrone de ses événements.

NomTypeDéfautRequisDescription
methodstrouiMéthode HTTP de l'appel, par exemple GET (passée en majuscules).
templatestrouiGabarit de chemin documenté, par exemple /v1/catalog/bricks/{id}.
argstuple[Any, ...]()nonValeurs des paramètres du chemin, dans l'ordre ; elles sont encodées pour l'URL.
**kwargsAnynonOptions de l'appel : params, json, files, data, content, headers, idempotent, idempotency_key, raw.

Retour : AsyncIterator[ServerSentEvent]. Un ServerSentEvent : un événement SSE. data est le texte brut ; :meth:json le décode.

Classe Page​

Première page d'une liste {items, next_cursor}. L'itération suit chaque curseur.

Attributs :

NomTypeRequisDescription
itemsouiÉléments de cette page seulement (une liste).
next_cursorouiCurseur de la page suivante, ou None sur la dernière page.
rawouiCorps de réponse décodé de cette page, tel que reçu.

Constructeur Page​

Page(transport: SyncTransport, call: Call, payload: Any) -> None

Enveloppe le contenu décodé d'un appel de liste ; l'appel est conservé pour récupérer les pages suivantes.

NomTypeDéfautRequisDescription
transportSyncTransportouiTransport partagé par les sous-clients d'un même client.
callCallouiCall préparé qui a produit cette page, réutilisé avec le paramètre de requête cursor pour la page suivante.
payloadAnyouiCorps de réponse décodé : un objet {items, next_cursor}, une simple liste ou une valeur unique.

Page.next_page​

next_page() -> Page | None

Récupère la page suivante, ou None à la fin.

Cet élément ne prend aucun paramètre.

Retour : Page \| None. Une Page : première page d'une liste {items, next_cursor}. L'itération suit chaque curseur.

Classe AsyncPage​

Équivalent asynchrone de :class:Page (async for item in page).

Attributs :

NomTypeRequisDescription
itemsouiÉléments de cette page seulement (une liste).
next_cursorouiCurseur de la page suivante, ou None sur la dernière page.
rawouiCorps de réponse décodé de cette page, tel que reçu.

Constructeur AsyncPage​

AsyncPage(transport: AsyncTransport, call: Call, payload: Any) -> None

Enveloppe le contenu décodé d'un appel de liste ; l'appel est conservé pour récupérer les pages suivantes.

NomTypeDéfautRequisDescription
transportAsyncTransportouiTransport partagé par les sous-clients d'un même client.
callCallouiCall préparé qui a produit cette page, réutilisé avec le paramètre de requête cursor pour la page suivante.
payloadAnyouiCorps de réponse décodé : un objet {items, next_cursor}, une simple liste ou une valeur unique.

AsyncPage.next_page​

async next_page() -> AsyncPage | None

Récupère la page suivante, ou renvoie None à la fin de la liste.

Cet élément ne prend aucun paramètre.

Retour : AsyncPage \| None. Une AsyncPage : équivalent asynchrone de :class:Page (async for item in page).

Classe Resource​

Base de chaque sous-client. Les méthodes correspondent une à une aux chemins documentés de l'API.

Constructeur Resource​

Resource(transport: SyncTransport | AsyncTransport, client: Any = None) -> None

Lie le sous-client à un transport synchrone ou asynchrone et, en option, à son client parent.

NomTypeDéfautRequisDescription
transportSyncTransport | AsyncTransportouiTransport partagé par les sous-clients d'un même client.
clientAnyNonenonClient parent.

Fonctions​

new_traceparent​

new_traceparent() -> str

Génère un nouveau traceparent W3C échantillonné.

Cet élément ne prend aucun paramètre.

Retour : str. Une chaîne traceparent 00-<trace id de 32 hex>-<span id de 16 hex>-01.

expand_path​

expand_path(template: str, args: tuple[Any, ...]) -> str

Remplit dans l'ordre les {placeholders} de template avec les args encodés pour l'URL.

NomTypeDéfautRequisDescription
templatestrouiGabarit de chemin avec des paramètres {name}, par exemple /v1/catalog/bricks/{id}.
argstuple[Any, ...]ouiValeurs des paramètres, dans l'ordre ; une valeur manquante ou en trop lève ValueError.

Retour : str. Le chemin rempli, chaque valeur étant encodée pour l'URL sans caractère réservé conservé.

Erreurs levées : ValueError.

retry_delay​

retry_delay(attempt: int, response: httpx.Response | None, backoff: float, max_backoff: float) -> float

Délai avant la tentative attempt (comptée à partir de 0), en respectant Retry-After (secondes ou date HTTP).

NomTypeDéfautRequisDescription
attemptintouiRang de la nouvelle tentative, à partir de 0 ; l'attente double à chacune.
responsehttpx.Response | NoneouiRéponse en échec dont l'en-tête Retry-After est respecté, ou None après une erreur réseau.
backofffloatouiDélai de base en secondes de l'attente exponentielle.
max_backofffloatouiLimite haute du délai renvoyé, en secondes.

Retour : float. Délai en secondes : Retry-After plafonné à max_backoff, sinon backoff * 2**attempt plus jusqu'à sa moitié en part aléatoire, plafonné.

then​

then(result: Any, fn: Callable[[Any], Any]) -> Any

Applique fn à un résultat synchrone, ou l'enchaîne après un résultat attendable (client asynchrone).

NomTypeDéfautRequisDescription
resultAnyouiValeur renvoyée par un appel synchrone, ou coroutine ou future renvoyée par un appel asynchrone.
fnCallable[[Any], Any]ouiFonction appliquée au résultat résolu.

Retour : Any. fn(result) directement, ou une coroutine qui attend result puis applique fn.

body​

body(**fields: Any) -> dict[str, Any]

Construit un corps JSON en retirant les valeurs None et en fusionnant un dictionnaire extra.

NomTypeDéfautRequisDescription
**fieldsAnynonChamps du corps passés en arguments nommés ; les valeurs None sont retirées et le dictionnaire extra est fusionné en dernier.

Retour : dict[str, Any]. Le corps JSON sous forme de dictionnaire.