Aller au contenu principal

enterprise_ai.llm.context

Source : sdks/python/src/enterprise_ai/llm/context/__init__.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 ContextBudget​

Budget de tokens d'un appel au modèle.

Champs :

NomTypeRequisDescription
windowintouiFenêtre de contexte du modèle, en tokens.
output_reservedintnonTokens réservés à la sortie du modèle.
reasoning_reservedintnonTokens réservés au raisonnement du modèle.
safety_marginintnonTokens laissés libres comme marge de sécurité.

Attributs :

NomTypeRequisDescription
context_budgetintouiTokens disponibles pour le contexte d'entrée.

ContextBudget.check​

check() -> ContextBudget

Lève :class:ContextOverflow quand les réservations dépassent la fenêtre.

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

Retour : ContextBudget. Un ContextBudget : budget de tokens d'un appel au modèle.

Erreurs levées : ContextOverflow.

ContextBudget.for_model​

for_model(model: dict[str, Any], effort: str | Effort | None = None, max_output_tokens: int | None = None, safety_ratio: float = 0.02, min_safety: int = 256) -> ContextBudget

Budget déduit d'un Model Manifest ou d'une entrée du registre et de l'effort demandé.

NomTypeDéfautRequisDescription
modeldict[str, Any]ouiModel Manifest ou entrée du registre ; son spec.context_window donne la fenêtre.
effortstr | Effort | NoneNonenonEffort de raisonnement demandé, qui sert à dimensionner la réserve de raisonnement.
max_output_tokensint | NoneNonenonTokens réservés à la sortie ; par défaut, le max_output_tokens du modèle plafonné à 4096.
safety_ratiofloat0.02nonPart de la fenêtre gardée comme marge de sécurité (0.02 par défaut), au moins min_safety.
min_safetyint256nonMarge de sécurité minimale en tokens (256 par défaut).

Retour : ContextBudget. Un ContextBudget : budget de tokens d'un appel au modèle.

ContextBudget.to_dict​

to_dict(used: int = 0, estimator: str = 'heuristic:chars/4') -> dict[str, Any]

Budget sous la forme du bloc budget du Context Contract.

NomTypeDéfautRequisDescription
usedint0nonTokens réellement consommés par le contexte (0 par défaut).
estimatorstr'heuristic:chars/4'nonNom de l'estimateur de tokens inscrit dans le bloc (heuristic:chars/4 par défaut).

Retour : dict[str, Any]. Dict avec window, output_reserved, reasoning_reserved, safety_margin, context_budget, used et estimator.

Modèle Segment​

Élément de contexte avec sa priorité (0-100), sa classification et sa provenance.

Champs :

NomTypeRequisDescription
contentstrouiTexte d'origine du segment.
typestrnonType de segment, par exemple system, prompt (par défaut), history, tool_result ou rag_document.
rolestrnonRôle de chat du message construit à partir du segment (user par défaut).
priorityintnonPriorité du segment de 0 à 100 (50 par défaut) : les plus hautes sont gardées en premier quand le budget manque.
classificationstrnonClassification des données, de public à secret (internal par défaut).
provenancedict[str, Any] | NonenonDéclaration in-toto v1 signée avec un prédicat SLSA v1 : {statement, signature: {value, signer}}.
segment_idstrnonIdentifiant du segment, 12 caractères hexadécimaux aléatoires par défaut.
compressibleboolnonLe segment peut être tronqué, résumé ou écarté si le budget manque.
cacheableboolnonLe segment fait partie du préfixe du prompt pouvant être mis en cache.
tokensintnonTokens comptés pour le segment après build (0 s'il est écarté).
original_tokensintnonTokens estimés du texte d'origine.
includedboolnonLe segment est conservé dans le contexte construit.
compressionstrnonCe que build a fait du segment : none, truncated, summarized ou dropped.
content_outstrnonTexte envoyé au modèle après build (d'origine, tronqué ou résumé).

Modèle BuiltContext​

Sortie de :meth:ContextBuilder.build.

Champs :

NomTypeRequisDescription
messageslist[dict[str, Any]]ouiMessages de chat {role, content} des segments retenus, dans l'ordre où ils ont été ajoutés.
contractdict[str, Any]ouiDocument Context Contract : budget, segments avec provenance, classification maximale, actions de compression et préfixe de cache.
segmentslist[Segment]ouiTous les segments du constructeur, avec leurs tokens finaux, leur inclusion et leur mode de compression.
usedintouiTokens consommés par les segments retenus, dans la limite du budget de contexte.
budgetContextBudgetouiBudget de tokens d'un appel au modèle.

Classe ContextBuilder​

Assemble un contexte dans les limites d'un :class:ContextBudget.

Attributs :

NomTypeRequisDescription
budgetouiBudget de tokens dans lequel le contexte doit tenir.
min_segment_tokensouiPlus petit budget restant, en tokens, pour lequel un segment est compressé.
model_idouiIdentifiant du modèle inscrit dans le Context Contract.
segmentslist[Segment]ouiSegments ajoutés jusqu'ici, dans l'ordre d'insertion.
summarizerouiFonction de résumé utilisée à la place de la troncature, ou None.
tenant_idouiTenant inscrit dans le Context Contract.

Constructeur ContextBuilder​

ContextBuilder(budget: ContextBudget, model_id: str = 'unknown', tenant_id: str = 'local', summarizer: Callable[[str, int], str] | None = None, min_segment_tokens: int = 32) -> None

Crée un constructeur vide pour un appel au modèle dans les limites de budget.

NomTypeDéfautRequisDescription
budgetContextBudgetouiBudget de tokens dans lequel le contexte doit tenir.
model_idstr'unknown'nonIdentifiant du modèle inscrit dans le Context Contract (unknown par défaut).
tenant_idstr'local'nonTenant inscrit dans le Context Contract (local par défaut).
summarizerCallable[[str, int], str] | NoneNonenonFonction (text, target_tokens) -> str qui résume un segment au lieu de le tronquer.
min_segment_tokensint32nonPlus petit budget restant, en tokens, pour lequel un segment est compressé ; en dessous, il est écarté (32 par défaut).

ContextBuilder.add​

add(content: str, type: str = 'prompt', role: str = 'user', priority: int = 50, classification: str = 'internal', source_type: str = 'user_input', source_id: str | None = None, compressible: bool = True, cacheable: bool = False, **provenance: Any) -> Segment

Ajoute un segment et le renvoie.

NomTypeDéfautRequisDescription
contentstrouiTexte du segment.
typestr'prompt'nonType de segment : system, prompt (par défaut), history, tool_result, rag_document, memory, image, audio, video ou file.
rolestr'user'nonRôle de chat du message construit à partir du segment (user par défaut).
priorityint50nonPriorité de 0 à 100 (50 par défaut) ; les segments les plus prioritaires sont gardés en premier.
classificationstr'internal'nonClassification des données : public, internal (par défaut), confidential, restricted ou secret.
source_typestr'user_input'nonType de source inscrit dans la provenance (user_input par défaut).
source_idstr | NoneNonenonIdentifiant de la source ; par défaut <type>:<index>.
compressibleboolTruenonLe segment peut être tronqué, résumé ou écarté si le budget manque (True par défaut).
cacheableboolFalsenonLe segment fait partie du préfixe du prompt pouvant être mis en cache (False par défaut).
**provenanceAnynonChamps de provenance supplémentaires enregistrés avec source_type et source_id.

Retour : Segment. Un Segment : élément de contexte avec sa priorité (0-100), sa classification et sa provenance.

ContextBuilder.build​

build() -> BuiltContext

Sélectionne, compresse et ordonne les segments ; lève :class:ContextOverflow si un contenu obligatoire dépasse.

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

Retour : BuiltContext. Un BuiltContext : sortie de :meth:ContextBuilder.build.

Erreurs levées : ContextOverflow.

ContextBuilder.system​

system(content: str, **kw: Any) -> Segment

Ajoute le prompt système (priorité 100, jamais compressé, mis en cache).

NomTypeDéfautRequisDescription
contentstrouiTexte du prompt système.
**kwAnynonAutres options de add (classification, source_id, provenance) ; source_type vaut system par défaut.

Retour : Segment. Un Segment : élément de contexte avec sa priorité (0-100), sa classification et sa provenance.

Classe ContextClient​

LLM et passerelle de modèles. Fournisseurs de modèles, registre des modèles, règles de routage et passerelle de modèles (Model Gateway) : le seul chemin par lequel agents et applications appellent les modèles.

Resource

ContextClient.plan​

plan(window: int, output: int, reasoning: int = 0, safety: int = 0, segments: list[dict[str, Any]] | None = None, **extra: Any) -> Any

Planifier la fenêtre de contexte. Simulation du Context Manager : calcule le budget de jetons d'une fenêtre de modèle (réserves de sortie, de raisonnement et de sécurité) et les segments conservés, compressés ou écartés selon leur priorité. Avec model, la fenêtre et la réserve de sortie viennent du registre. Une fenêtre qui n'est pas un entier positif répond 422 parameter_invalid ; des segments qui ne peuvent pas tenir répondent 422 context_overflow. Demande un rôle de lecteur.

Route : /v1/context/plan (POST).

NomTypeDéfautRequisDescription
windowintouiFenêtre de contexte du modèle, en tokens.
outputintouiSortie de l'opération (transcription, références d'images...).
reasoningint0nonTokens réservés au raisonnement (0 par défaut).
safetyint0nonTokens gardés comme marge de sécurité (0 par défaut).
segmentslist[dict[str, Any]] | NoneNonenonSegments à planifier, sous forme de dicts ; liste vide par défaut.
**extraAnynonChamps supplémentaires fusionnés dans le corps de la requête.

Retour : Any. Réponse JSON décodée de l'opération « Planifier la fenêtre de contexte ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Fonctions​

estimate_tokens​

estimate_tokens(text: str) -> int

Estimation heuristique des tokens (chars/4, au moins 1 pour un texte non vide).

NomTypeDéfautRequisDescription
textstrouiTexte à mesurer.

Retour : int. Nombre estimé de tokens, 0 pour un texte vide.

truncate​

truncate(text: str, tokens: int) -> str

Garde le début de text dans la limite de tokens (estimateur heuristique).

NomTypeDéfautRequisDescription
textstrouiTexte à raccourcir.
tokensintouiNombre maximal de tokens à garder (4 caractères par token).

Retour : str. Le texte inchangé s'il tient, sinon son début terminé par ... ; vide si tokens vaut 0 ou moins.