mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-27 07:54:19 +00:00
perf: 控制台输出请求响应过程
This commit is contained in:
@@ -23,3 +23,12 @@ class MessageHandler(metaclass=abc.ABCMeta):
|
|||||||
query: core_entities.Query,
|
query: core_entities.Query,
|
||||||
) -> entities.StageProcessResult:
|
) -> entities.StageProcessResult:
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
|
def cut_str(self, s: str) -> str:
|
||||||
|
"""
|
||||||
|
取字符串第一行,最多20个字符,若有多行,或超过20个字符,则加省略号
|
||||||
|
"""
|
||||||
|
s0 = s.split('\n')[0]
|
||||||
|
if len(s0) > 20 or '\n' in s:
|
||||||
|
s0 = s0[:20] + '...'
|
||||||
|
return s0
|
||||||
|
|||||||
@@ -78,6 +78,8 @@ class ChatMessageHandler(handler.MessageHandler):
|
|||||||
async for result in query.use_model.requester.request(query):
|
async for result in query.use_model.requester.request(query):
|
||||||
query.resp_messages.append(result)
|
query.resp_messages.append(result)
|
||||||
|
|
||||||
|
self.ap.logger.info(f'对话({query.query_id})响应: {self.cut_str(result.readable_str())}')
|
||||||
|
|
||||||
if result.content is not None:
|
if result.content is not None:
|
||||||
text_length += len(result.content)
|
text_length += len(result.content)
|
||||||
|
|
||||||
@@ -86,6 +88,9 @@ class ChatMessageHandler(handler.MessageHandler):
|
|||||||
new_query=query
|
new_query=query
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
||||||
|
self.ap.logger.error(f'对话({query.query_id})请求失败: {str(e)}')
|
||||||
|
|
||||||
yield entities.StageProcessResult(
|
yield entities.StageProcessResult(
|
||||||
result_type=entities.ResultType.INTERRUPT,
|
result_type=entities.ResultType.INTERRUPT,
|
||||||
new_query=query,
|
new_query=query,
|
||||||
|
|||||||
@@ -91,6 +91,8 @@ class CommandHandler(handler.MessageHandler):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self.ap.logger.info(f'命令({query.query_id})报错: {self.cut_str(str(ret.error))}')
|
||||||
|
|
||||||
yield entities.StageProcessResult(
|
yield entities.StageProcessResult(
|
||||||
result_type=entities.ResultType.CONTINUE,
|
result_type=entities.ResultType.CONTINUE,
|
||||||
new_query=query
|
new_query=query
|
||||||
@@ -106,6 +108,8 @@ class CommandHandler(handler.MessageHandler):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self.ap.logger.info(f'命令返回: {self.cut_str(ret.text)}')
|
||||||
|
|
||||||
yield entities.StageProcessResult(
|
yield entities.StageProcessResult(
|
||||||
result_type=entities.ResultType.CONTINUE,
|
result_type=entities.ResultType.CONTINUE,
|
||||||
new_query=query
|
new_query=query
|
||||||
|
|||||||
@@ -34,7 +34,12 @@ class Processor(stage.PipelineStage):
|
|||||||
|
|
||||||
self.ap.logger.info(f"处理 {query.launcher_type.value}_{query.launcher_id} 的请求({query.query_id}): {message_text}")
|
self.ap.logger.info(f"处理 {query.launcher_type.value}_{query.launcher_id} 的请求({query.query_id}): {message_text}")
|
||||||
|
|
||||||
if message_text.startswith('!') or message_text.startswith('!'):
|
async def generator():
|
||||||
return self.cmd_handler.handle(query)
|
if message_text.startswith('!') or message_text.startswith('!'):
|
||||||
else:
|
async for result in self.cmd_handler.handle(query):
|
||||||
return self.chat_handler.handle(query)
|
yield result
|
||||||
|
else:
|
||||||
|
async for result in self.chat_handler.handle(query):
|
||||||
|
yield result
|
||||||
|
|
||||||
|
return generator()
|
||||||
|
|||||||
@@ -31,3 +31,13 @@ class Message(pydantic.BaseModel):
|
|||||||
tool_calls: typing.Optional[list[ToolCall]] = None
|
tool_calls: typing.Optional[list[ToolCall]] = None
|
||||||
|
|
||||||
tool_call_id: typing.Optional[str] = None
|
tool_call_id: typing.Optional[str] = None
|
||||||
|
|
||||||
|
def readable_str(self) -> str:
|
||||||
|
if self.content is not None:
|
||||||
|
return self.content
|
||||||
|
elif self.function_call is not None:
|
||||||
|
return f'{self.function_call.name}({self.function_call.arguments})'
|
||||||
|
elif self.tool_calls is not None:
|
||||||
|
return f'调用工具: {self.tool_calls[0].id}'
|
||||||
|
else:
|
||||||
|
return '未知消息'
|
||||||
|
|||||||
Reference in New Issue
Block a user