enterprise_ai.llm.streaming
Source : sdks/python/src/enterprise_ai/llm/streaming/__init__.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 ServerSentEvent
Un événement SSE. data est le texte brut ; :meth:json le décode.
Champs :
| Nom | Type | Requis | Description |
|---|---|---|---|
event | str | non | Type d'événement tiré du champ event: (message par défaut). |
data | str | non | Texte brut des lignes data de l'événement, joint par des retours à la ligne ; json() le décode. |
id | str | None | non | Dernier identifiant d'événement tiré du champ id:, ou None ; sert de Last-Event-ID pour reprendre. |
retry | int | None | non | Délai de reconnexion en millisecondes tiré du champ retry:, ou None. |
Attributs :
| Nom | Type | Requis | Description |
|---|---|---|---|
is_done | bool | oui | Vrai quand data est le terminateur [DONE]. |
ServerSentEvent.json
json() -> Any
Décode data en JSON (None pour des données vides).
Cet élément ne prend aucun paramètre.
Retour : Any. Valeur JSON décodée, ou None pour des données vides.
Classe SSEDecoder
Décodeur incrémental : on lui fournit des lignes, il assemble les événements complets.
Constructeur SSEDecoder
SSEDecoder() -> None
Crée un décodeur sans événement en attente.
Cet élément ne prend aucun paramètre.
SSEDecoder.feed
feed(line: str) -> ServerSentEvent | None
Traite une ligne (sans son saut de ligne). Renvoie un événement quand une ligne vide en termine un.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
line | str | oui | Une ligne du flux d'événements ; les lignes de commentaire qui commencent par : sont ignorées. |
Retour : ServerSentEvent \| None. Un ServerSentEvent : un événement SSE. data est le texte brut ; :meth:json le décode.
SSEDecoder.flush
flush() -> ServerSentEvent | None
Émet un dernier événement qui n'est pas suivi d'une ligne vide.
Cet élément ne prend aucun paramètre.
Retour : ServerSentEvent \| None. Un ServerSentEvent : un événement SSE. data est le texte brut ; :meth:json le décode.
Modèle ChatAccumulator
Reconstruit le message de l'assistant (contenu, raisonnement, appels d'outils, consommation) à partir des fragments.
Champs :
| Nom | Type | Requis | Description |
|---|---|---|---|
content | str | non | Contenu texte fusionné jusqu'ici. |
reasoning | str | non | Texte de raisonnement fusionné à partir des deltas reasoning_content. |
finish_reason | str | None | non | Dernier finish_reason vu dans les fragments, par exemple stop ou tool_calls ; None jusqu'à la fin. |
usage | dict[str, Any] | non | Compteurs d'usage ajoutés à la consommation de budget, par exemple input_tokens, output_tokens. |
tool_calls | dict[int, dict[str, Any]] | non | Appels d'outils en cours de reconstruction, par index : id, type et function avec name et arguments concaténés. |
model | str | None | non | Modèle indiqué par le dernier fragment qui en portait un, ou None. |
ChatAccumulator.add
add(chunk: dict[str, Any]) -> str
Fusionne un fragment et renvoie le delta de texte qu'il portait.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
chunk | dict[str, Any] | oui | Dict chat.completion.chunk décodé. |
Retour : str. Contenu texte porté par les deltas du fragment, vide s'il n'en avait pas.
ChatAccumulator.completion
completion() -> dict[str, Any]
Équivalent chat.completion non diffusé en flux.
Cet élément ne prend aucun paramètre.
Retour : dict[str, Any]. Dict avec object chat.completion, model, un choix contenant message() et finish_reason, et usage.
ChatAccumulator.message
message() -> dict[str, Any]
Message final de l'assistant au format OpenAI.
Cet élément ne prend aucun paramètre.
Retour : dict[str, Any]. Dict {role: assistant, content} avec tool_calls triés par index quand le modèle a appelé des outils.
Fonctions
iter_sse
iter_sse(lines: Iterable[str]) -> Iterator[ServerSentEvent]
Analyse un itérable de lignes de texte en événements.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
lines | Iterable[str] | oui | Itérable de lignes ou de blocs de texte ; un bloc de plusieurs lignes est découpé. |
Retour : Iterator[ServerSentEvent]. Un ServerSentEvent : un événement SSE. data est le texte brut ; :meth:json le décode.
aiter_sse
async aiter_sse(lines: AsyncIterator[str]) -> AsyncIterator[ServerSentEvent]
Variante asynchrone de :func:iter_sse.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
lines | AsyncIterator[str] | oui | Itérateur asynchrone de lignes ou de blocs de texte ; un bloc de plusieurs lignes est découpé. |
Retour : AsyncIterator[ServerSentEvent]. Un ServerSentEvent : un événement SSE. data est le texte brut ; :meth:json le décode.
chat_chunks
chat_chunks(events: Iterable[ServerSentEvent]) -> Iterator[dict[str, Any]]
Décode les charges chat.completion.chunk compatibles OpenAI jusqu'à [DONE].
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
events | Iterable[ServerSentEvent] | oui | Itérable de ServerSentEvent issus d'un flux de complétion de chat. |
Retour : Iterator[dict[str, Any]]. Itérateur des dicts de fragments décodés ; s'arrête à [DONE] et ignore les événements vides.
achat_chunks
async achat_chunks(events: AsyncIterator[ServerSentEvent]) -> AsyncIterator[dict[str, Any]]
Variante asynchrone de :func:chat_chunks.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
events | AsyncIterator[ServerSentEvent] | oui | Itérateur asynchrone de ServerSentEvent issus d'un flux de complétion de chat. |
Retour : AsyncIterator[dict[str, Any]]. Itérateur asynchrone des dicts de fragments décodés ; s'arrête à [DONE] et ignore les événements vides.