diff --git a/README.md b/README.md index dd88b72..ccc0115 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,6 @@ WebSocket API SDK для взаимодействия с AI-агентом. - Добавлен параметр `chat_id` в конструктор `AgentAPI`. Нужен для разделения истории сообщений по чатам/веткам. - `AgentAPI.connect()` вызывает `AgentBusyException`, если выбранный чат уже занят другим API клиентом. - Добавлен новый тип события `MsgEventSendFile` для отправки файлов пользователю. Поле `path` — путь к файлу относительно `/workspace`. -- `send_message(text, attachments)` теперь принимает `attachments` — список путей к файлам относительно `/workspace`. ## Установка В `master` всегда будет актуальная рабочая версия. diff --git a/lambda_agent_api/agent_api.py b/lambda_agent_api/agent_api.py index a999429..9dd4608 100644 --- a/lambda_agent_api/agent_api.py +++ b/lambda_agent_api/agent_api.py @@ -164,17 +164,11 @@ class AgentApi: except Exception as e: logger.error(f"Error in on_disconnect: {e}") - async def send_message( - self, text: str, attachments: list[str] | None = None - ) -> AsyncIterator[AgentEventUnion]: + async def send_message(self, text: str) -> AsyncIterator[AgentEventUnion]: """ Нативный асинхронный генератор. Не требует отдельного класса ResponseIterator. Гарантированно освобождает блокировку. - - Args: - text: Текст сообщения. - attachments: Список путей к файлам относительно /workspace. """ if not self._connected or not self._ws: raise AgentException( @@ -191,11 +185,7 @@ class AgentApi: try: self._current_queue = asyncio.Queue() - message = MsgUserMessage( - type=EClientMessage.USER_MESSAGE, - text=text, - attachments=attachments or [], - ) + message = MsgUserMessage(type=EClientMessage.USER_MESSAGE, text=text) await self._ws.send_str(message.model_dump_json()) logger.debug(f"[{self.id}] Sent message: {text[:50]}...") @@ -258,7 +248,7 @@ class AgentApi: self._request_lock.release() async def _listen(self): - """ + """" Прослушивание вебсокета. """ try: diff --git a/lambda_agent_api/client.py b/lambda_agent_api/client.py index ca41435..df672c0 100644 --- a/lambda_agent_api/client.py +++ b/lambda_agent_api/client.py @@ -19,12 +19,6 @@ class MsgUserMessage(BaseModel): """ Текст сообщения. """ - attachments: list[str] = Field(default_factory=list) - """ - Список вложений (файлов) к сообщению. - Передается путь до файла относительно /workspace . - Файлы уже должны быть загружены в директорию. - """ ClientMessage = TypeAdapter(Annotated[ diff --git a/tests/manual.py b/tests/manual.py index 0c7c657..44adea2 100644 --- a/tests/manual.py +++ b/tests/manual.py @@ -23,18 +23,9 @@ async def main(): while True: try: prompt = await asyncio.get_event_loop().run_in_executor(None, input, ">>> ") - attachments_input = await asyncio.get_event_loop().run_in_executor( - None, input, "Attachments (comma-separated, empty for none): " - ) - attachments = ( - [a.strip() for a in attachments_input.split(",") if a.strip()] - if attachments_input.strip() - else None - ) - print("Agent: ", end="") is_tool = False - async for chunk in api.send_message(prompt, attachments): + async for chunk in api.send_message(prompt): match chunk: case MsgEventTextChunk(): is_tool = False