Обновлено логирование, добавили прозрачность запросов и ответов агента

This commit is contained in:
Ярослав Малинин 2026-05-02 12:19:28 +03:00
parent d9207f3e06
commit f87051e35b
2 changed files with 11 additions and 7 deletions

View file

@ -110,7 +110,7 @@ class AgentService:
new_message = text
if attachments:
logger.debug(f"Processing {len(attachments)} attachments for chat {chat_id}")
logger.debug(f"Processing {attachments} attachments for chat {chat_id}")
attachments_description = await self.__describe_attachments(attachments)
new_message += "\n" + attachments_description
@ -130,7 +130,7 @@ class AgentService:
# обычный текст
if chunk.content:
logger.trace(f"Yielding text chunk for chat {chat_id}")
logger.trace(f"Yielding text chunk {chunk.content} for chat {chat_id}")
yield MsgEventTextChunk(text=chunk.content)
# если вернулся tool_call

View file

@ -49,8 +49,8 @@ async def websocket_endpoint(
# Генерируем ID для каждого сообщения
message_id = generate_message_id()
set_message_id(message_id)
logger.trace(f"Received raw message: {len(raw)} characters for chat_id: {chat_id}")
# тут должен быть trace или дебаг в будущем, но пока что info для прозрачности
logger.info(f"Received raw message: {raw} for chat_id: {chat_id}")
try:
msg = ClientMessage.validate_json(raw)
except ValidationError as e:
@ -74,9 +74,13 @@ async def websocket_endpoint(
async def process_message(ws: WebSocket, chat: AgentChat, msg):
match msg:
case MsgUserMessage():
logger.debug(f"Processing user message for chat {chat.chat_id} (text length: {len(msg.text)}, attachments: {len(msg.attachments) if msg.attachments else 0})")
logger.debug(f"Processing user message for chat {chat.chat_id} (text length: {len(msg.text)}, attachments: {msg.attachments if msg.attachments else None})")
chunks = []
async for chunk in chat.astream(msg.text, msg.attachments):
logger.trace(f"Sending stream chunk to chat {chat.chat_id}: {chunk.__class__.__name__}")
logger.trace(f"Sending stream chunk to chat {chat.chat_id}: {chunk}")
await ws.send_text(chunk.model_dump_json())
logger.debug(f"Finished processing user message for chat {chat.chat_id}")
chunks.append(chunk.text if hasattr(chunk, 'text') else '')
chunks = ''.join(chunks)
logger.debug(f"Finished processing user message for chat {chat.chat_id} with {MsgEventEnd(tokens_used=0)}")
logger.info(f"Processed user message for chat {chat.chat_id}: \n {chunks}")
await ws.send_text(MsgEventEnd(tokens_used=0).model_dump_json()) # TODO: подставить реальное потребление токенов