Обновлено логирование, добавили прозрачность запросов и ответов агента
This commit is contained in:
parent
d9207f3e06
commit
f87051e35b
2 changed files with 11 additions and 7 deletions
|
|
@ -110,7 +110,7 @@ class AgentService:
|
||||||
|
|
||||||
new_message = text
|
new_message = text
|
||||||
if attachments:
|
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)
|
attachments_description = await self.__describe_attachments(attachments)
|
||||||
new_message += "\n" + attachments_description
|
new_message += "\n" + attachments_description
|
||||||
|
|
||||||
|
|
@ -130,7 +130,7 @@ class AgentService:
|
||||||
|
|
||||||
# обычный текст
|
# обычный текст
|
||||||
if chunk.content:
|
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)
|
yield MsgEventTextChunk(text=chunk.content)
|
||||||
|
|
||||||
# если вернулся tool_call
|
# если вернулся tool_call
|
||||||
|
|
|
||||||
|
|
@ -49,8 +49,8 @@ async def websocket_endpoint(
|
||||||
# Генерируем ID для каждого сообщения
|
# Генерируем ID для каждого сообщения
|
||||||
message_id = generate_message_id()
|
message_id = generate_message_id()
|
||||||
set_message_id(message_id)
|
set_message_id(message_id)
|
||||||
|
# тут должен быть trace или дебаг в будущем, но пока что info для прозрачности
|
||||||
logger.trace(f"Received raw message: {len(raw)} characters for chat_id: {chat_id}")
|
logger.info(f"Received raw message: {raw} for chat_id: {chat_id}")
|
||||||
try:
|
try:
|
||||||
msg = ClientMessage.validate_json(raw)
|
msg = ClientMessage.validate_json(raw)
|
||||||
except ValidationError as e:
|
except ValidationError as e:
|
||||||
|
|
@ -74,9 +74,13 @@ async def websocket_endpoint(
|
||||||
async def process_message(ws: WebSocket, chat: AgentChat, msg):
|
async def process_message(ws: WebSocket, chat: AgentChat, msg):
|
||||||
match msg:
|
match msg:
|
||||||
case MsgUserMessage():
|
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):
|
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())
|
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: подставить реальное потребление токенов
|
await ws.send_text(MsgEventEnd(tokens_used=0).model_dump_json()) # TODO: подставить реальное потребление токенов
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue