поле attachments в модели MsgUserMessage и соответствующие параметры в send_message

This commit is contained in:
Егор Кандрушин 2026-04-20 13:20:36 +03:00
parent 483a63b999
commit bd2923ffca
2 changed files with 19 additions and 3 deletions

View file

@ -164,11 +164,17 @@ class AgentApi:
except Exception as e: except Exception as e:
logger.error(f"Error in on_disconnect: {e}") logger.error(f"Error in on_disconnect: {e}")
async def send_message(self, text: str) -> AsyncIterator[AgentEventUnion]: async def send_message(
self, text: str, attachments: list[str] | None = None
) -> AsyncIterator[AgentEventUnion]:
""" """
Нативный асинхронный генератор. Нативный асинхронный генератор.
Не требует отдельного класса ResponseIterator. Не требует отдельного класса ResponseIterator.
Гарантированно освобождает блокировку. Гарантированно освобождает блокировку.
Args:
text: Текст сообщения.
attachments: Список путей к файлам относительно /workspace.
""" """
if not self._connected or not self._ws: if not self._connected or not self._ws:
raise AgentException( raise AgentException(
@ -185,7 +191,11 @@ class AgentApi:
try: try:
self._current_queue = asyncio.Queue() self._current_queue = asyncio.Queue()
message = MsgUserMessage(type=EClientMessage.USER_MESSAGE, text=text) message = MsgUserMessage(
type=EClientMessage.USER_MESSAGE,
text=text,
attachments=attachments or [],
)
await self._ws.send_str(message.model_dump_json()) await self._ws.send_str(message.model_dump_json())
logger.debug(f"[{self.id}] Sent message: {text[:50]}...") logger.debug(f"[{self.id}] Sent message: {text[:50]}...")
@ -248,7 +258,7 @@ class AgentApi:
self._request_lock.release() self._request_lock.release()
async def _listen(self): async def _listen(self):
"""" """
Прослушивание вебсокета. Прослушивание вебсокета.
""" """
try: try:

View file

@ -19,6 +19,12 @@ class MsgUserMessage(BaseModel):
""" """
Текст сообщения. Текст сообщения.
""" """
attachments: list[str] = Field(default_factory=list)
"""
Список вложений (файлов) к сообщению.
Передается путь до файла относительно /workspace .
Файлы уже должны быть загружены в директорию.
"""
ClientMessage = TypeAdapter(Annotated[ ClientMessage = TypeAdapter(Annotated[