enterprise_ai.core.transport
Source : sdks/python/src/enterprise_ai/_core/transport.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 ClientConfig
Paramètres de connexion. Les valeurs non fournies reprennent les variables d'environnement EAI_*.
Champs :
| Nom | Type | Requis | Description |
|---|---|---|---|
base_url | str | None | non | Adresse de l'API, sans barre oblique finale et validée. Variable : EAI_BASE_URL, une adresse locale par défaut. |
api_key | str | None | non | Clé d'API envoyée dans l'en-tête X-API-Key. Variable : EAI_API_KEY. |
token | str | None | non | Jeton d'accès au Hub. En écriture seule, scellé ; nul conserve le jeton enregistré. |
tenant | str | None | non | Identifiant court du locataire. |
project | str | None | non | Identifiant du projet auquel les résultats sont limités. |
environment | str | None | non | Environnement cible envoyé dans l'en-tête X-Environment. Variable : EAI_ENVIRONMENT. |
locale | str | None | non | Langue des messages, envoyée dans Accept-Language, par exemple fr ; déduite de l'environnement si elle n'est pas fournie. |
timeout | float | non | Délai d'expiration de chaque requête HTTP, en secondes. Par défaut 30.0. |
retries | int | non | Nombre de nouvelles tentatives après le premier essai en cas d'échec passager. Par défaut 3. |
backoff | float | non | Dé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_backoff | float | non | Limite haute en secondes du délai entre deux tentatives, Retry-After compris. Par défaut 20.0. |
dev_user | str | None | non | Utilisateur 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_roles | str | None | non | Rô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. |
traceparent | str | None | non | traceparent W3C envoyé lorsqu'aucune opération de enterprise_ai.telemetry n'en définit un. |
headers | dict[str, str] | non | En-têtes de l'événement, valeurs textuelles. Le contexte de trace y est ajouté. |
ca_bundle | str | None | non | Fichier PEM d'autorités de certification supplémentaires de confiance ; la vérification reste active. Variable : EAI_CA_BUNDLE. |
dangerously_disable_tls_verification_for_localhost | bool | non | Dé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 :
| Nom | Type | Requis | Description |
|---|---|---|---|
data | Any | oui | Corps décodé de la réponse : valeur JSON, texte, ou None pour une réponse vide. |
status | int | oui | Code de statut HTTP de la réponse, par exemple 200. |
headers | httpx.Headers | oui | En-têtes de l'événement, valeurs textuelles. Le contexte de trace y est ajouté. |
Attributs :
| Nom | Type | Requis | Description |
|---|---|---|---|
cost_estimated | str | None | oui | Coût estimé de l'appel, lu dans l'en-tête de réponse x-eai-cost-estimated, ou None. |
cost_measured | str | None | oui | Coût mesuré de l'appel, lu dans l'en-tête de réponse x-eai-cost-measured, ou None. |
decision_id | str | None | oui | Identifiant de la décision de politique, lu dans l'en-tête de réponse x-eai-decision-id, ou None. |
request_id | str | None | oui | Identifiant 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 :
| Nom | Type | Requis | Description |
|---|---|---|---|
method | str | oui | Nom de la méthode, par exemple basic, token ou none. |
template | str | oui | Gabarit de chemin documenté à partir duquel l'appel a été construit, par exemple /v1/catalog/bricks/{id}. |
path | str | oui | Chemin dont les paramètres sont remplis et encodés pour l'URL, relatif à l'URL de base. |
params | dict[str, Any] | None | non | Paramètres de requête, sans les valeurs None, ou None. |
json | Any | non | Valeur envoyée comme corps JSON de la requête, ou None. |
files | Any | non | Fichiers à importer (1 à 200). |
data | Any | non | Champs de formulaire de la requête (avec files, un corps multipart), ou None. |
headers | dict[str, str] | non | En-têtes de l'événement, valeurs textuelles. Le contexte de trace y est ajouté. |
idempotency_key | str | None | non | Valeur 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. |
raw | bool | non | Si 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. |
content | bytes | None | non | Octets bruts envoyés comme corps de la requête, ou None. |
Classe SyncTransport
Transport bloquant reposant sur :class:httpx.Client.
_BaseTransport
Attributs :
| Nom | Type | Requis | Description |
|---|---|---|---|
http | oui | httpx.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.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
config | ClientConfig | oui | Paramètres de connexion (ClientConfig) : URL de base, identifiants, délai d'expiration et politique de nouvelles tentatives. | |
http_client | httpx.Client | None | None | non | httpx.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_kwargs | Any | non | Options 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.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
method | str | oui | Méthode HTTP de l'appel, par exemple GET (passée en majuscules). | |
template | str | oui | Gabarit de chemin documenté, par exemple /v1/catalog/bricks/{id}. | |
args | tuple[Any, ...] | () | non | Valeurs des paramètres du chemin, dans l'ordre ; elles sont encodées pour l'URL. |
**kwargs | Any | non | Options 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é.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
method | str | oui | Méthode HTTP de l'appel, par exemple GET (passée en majuscules). | |
template | str | oui | Gabarit de chemin documenté, par exemple /v1/catalog/bricks/{id}. | |
args | tuple[Any, ...] | () | non | Valeurs des paramètres du chemin, dans l'ordre ; elles sont encodées pour l'URL. |
**kwargs | Any | non | Options 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.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
call | Call | oui | Call préparé à envoyer. | |
stream | bool | False | non | Si 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.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
method | str | oui | Méthode HTTP de l'appel, par exemple GET (passée en majuscules). | |
template | str | oui | Gabarit de chemin documenté, par exemple /v1/catalog/bricks/{id}. | |
args | tuple[Any, ...] | () | non | Valeurs des paramètres du chemin, dans l'ordre ; elles sont encodées pour l'URL. |
**kwargs | Any | non | Options 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 :
| Nom | Type | Requis | Description |
|---|---|---|---|
http | oui | httpx.AsyncClient sous-jacent qui envoie les requêtes. | |
sleep | oui | Fonction 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.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
config | ClientConfig | oui | Paramètres de connexion (ClientConfig) : URL de base, identifiants, délai d'expiration et politique de nouvelles tentatives. | |
http_client | httpx.AsyncClient | None | None | non | httpx.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_kwargs | Any | non | Options 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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
method | str | oui | Méthode HTTP de l'appel, par exemple GET (passée en majuscules). | |
template | str | oui | Gabarit de chemin documenté, par exemple /v1/catalog/bricks/{id}. | |
args | tuple[Any, ...] | () | non | Valeurs des paramètres du chemin, dans l'ordre ; elles sont encodées pour l'URL. |
**kwargs | Any | non | Options 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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
method | str | oui | Méthode HTTP de l'appel, par exemple GET (passée en majuscules). | |
template | str | oui | Gabarit de chemin documenté, par exemple /v1/catalog/bricks/{id}. | |
args | tuple[Any, ...] | () | non | Valeurs des paramètres du chemin, dans l'ordre ; elles sont encodées pour l'URL. |
**kwargs | Any | non | Options 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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
call | Call | oui | Call préparé à envoyer. | |
stream | bool | False | non | Si 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.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
method | str | oui | Méthode HTTP de l'appel, par exemple GET (passée en majuscules). | |
template | str | oui | Gabarit de chemin documenté, par exemple /v1/catalog/bricks/{id}. | |
args | tuple[Any, ...] | () | non | Valeurs des paramètres du chemin, dans l'ordre ; elles sont encodées pour l'URL. |
**kwargs | Any | non | Options 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 :
| Nom | Type | Requis | Description |
|---|---|---|---|
items | oui | Éléments de cette page seulement (une liste). | |
next_cursor | oui | Curseur de la page suivante, ou None sur la dernière page. | |
raw | oui | Corps 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.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
transport | SyncTransport | oui | Transport partagé par les sous-clients d'un même client. | |
call | Call | oui | Call préparé qui a produit cette page, réutilisé avec le paramètre de requête cursor pour la page suivante. | |
payload | Any | oui | Corps 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 :
| Nom | Type | Requis | Description |
|---|---|---|---|
items | oui | Éléments de cette page seulement (une liste). | |
next_cursor | oui | Curseur de la page suivante, ou None sur la dernière page. | |
raw | oui | Corps 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.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
transport | AsyncTransport | oui | Transport partagé par les sous-clients d'un même client. | |
call | Call | oui | Call préparé qui a produit cette page, réutilisé avec le paramètre de requête cursor pour la page suivante. | |
payload | Any | oui | Corps 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.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
transport | SyncTransport | AsyncTransport | oui | Transport partagé par les sous-clients d'un même client. | |
client | Any | None | non | Client 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.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
template | str | oui | Gabarit de chemin avec des paramètres {name}, par exemple /v1/catalog/bricks/{id}. | |
args | tuple[Any, ...] | oui | Valeurs 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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
attempt | int | oui | Rang de la nouvelle tentative, à partir de 0 ; l'attente double à chacune. | |
response | httpx.Response | None | oui | Réponse en échec dont l'en-tête Retry-After est respecté, ou None après une erreur réseau. | |
backoff | float | oui | Délai de base en secondes de l'attente exponentielle. | |
max_backoff | float | oui | Limite 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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
result | Any | oui | Valeur renvoyée par un appel synchrone, ou coroutine ou future renvoyée par un appel asynchrone. | |
fn | Callable[[Any], Any] | oui | Fonction 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.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
**fields | Any | non | Champs 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.