#5 Реализовать клиентскую часть канала общения.Добавлен класс AgentApi, реализованный контекстным менеджером. Добавлен init.py для пакета api. В uv добавлена зависимость aiohttp

This commit is contained in:
Ярослав Малинин 2026-03-29 18:02:27 +03:00
parent 5f5dd3e83e
commit dab8cf6335
6 changed files with 581 additions and 15 deletions

View file

@ -12,8 +12,8 @@ class IM:
class Type(str, Enum):
USER_MESSAGE = "USER_MESSAGE"
# noinspection PyPep8Naming
class UserMessage(BaseModel):
"""
Полное сообщение от пользователя.
@ -49,7 +49,6 @@ class OM:
ERROR = "ERROR"
GRACEFUL_DISCONNECT = "GRACEFUL_DISCONNECT"
class Status(BaseModel):
"""
Отправляется сервером при открытии соединения с клиентом.
@ -57,12 +56,10 @@ class OM:
"""
type: Literal[OM.Type.STATUS]
class AgentEventType(str, Enum):
TEXT_CHUNK = "TEXT_CHUNK"
END = "END"
class AgentEvent(BaseModel):
"""
Базовый класс для ивентов, которые стримит агент во время генерации ответа.
@ -71,7 +68,6 @@ class OM:
type: Literal[OM.Type.AGENT_EVENT]
subtype: OM.AgentEventType
class EventTextChunk(AgentEvent):
"""
Чанк текста ответа агента.
@ -79,7 +75,6 @@ class OM:
subtype: Literal[OM.AgentEventType.TEXT_CHUNK]
text: str
class EventEnd(AgentEvent):
"""
Агент закончил генерацию ответа.
@ -87,7 +82,6 @@ class OM:
subtype: Literal[OM.AgentEventType.END]
tokens_used: int
class Error(BaseModel):
"""
Неопределенная ошибка в работе агента.
@ -96,7 +90,6 @@ class OM:
code: str
details: str
class GracefulDisconnect(BaseModel):
"""
Отправляется перед завершением работы контейнера с агентом. Например, при долгом бездействии.