From d0b0f2209aa5ef1ce8be83e2834eb98e6447c593 Mon Sep 17 00:00:00 2001 From: RockChinQ <1010553892@qq.com> Date: Wed, 20 Mar 2024 23:32:28 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20chat=E5=A4=84=E7=90=86=E8=BF=87=E7=A8=8B?= =?UTF-8?q?=E7=9A=84=E6=8F=92=E4=BB=B6=E8=BF=94=E5=9B=9E=E5=80=BC=E7=9B=AE?= =?UTF-8?q?=E6=A0=87=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/pipeline/process/handlers/chat.py | 9 ++++++++- pkg/pipeline/wrapper/wrapper.py | 7 +++++++ pkg/provider/entities.py | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/pkg/pipeline/process/handlers/chat.py b/pkg/pipeline/process/handlers/chat.py index 33dedb04..58b7a830 100644 --- a/pkg/pipeline/process/handlers/chat.py +++ b/pkg/pipeline/process/handlers/chat.py @@ -39,7 +39,14 @@ class ChatMessageHandler(handler.MessageHandler): if event_ctx.is_prevented_default(): if event_ctx.event.reply is not None: - query.resp_message_chain = mirai.MessageChain(event_ctx.event.reply) + mc = mirai.MessageChain(event_ctx.event.reply) + + query.resp_messages.append( + llm_entities.Message( + role='plugin', + content=str(mc), + ) + ) yield entities.StageProcessResult( result_type=entities.ResultType.CONTINUE, diff --git a/pkg/pipeline/wrapper/wrapper.py b/pkg/pipeline/wrapper/wrapper.py index 0278b603..80277a0f 100644 --- a/pkg/pipeline/wrapper/wrapper.py +++ b/pkg/pipeline/wrapper/wrapper.py @@ -29,6 +29,13 @@ class ResponseWrapper(stage.PipelineStage): if query.resp_messages[-1].role == 'command': query.resp_message_chain = mirai.MessageChain("[bot] "+query.resp_messages[-1].content) + yield entities.StageProcessResult( + result_type=entities.ResultType.CONTINUE, + new_query=query + ) + elif query.resp_messages[-1].role == 'plugin': + query.resp_message_chain = mirai.MessageChain(query.resp_messages[-1].content) + yield entities.StageProcessResult( result_type=entities.ResultType.CONTINUE, new_query=query diff --git a/pkg/provider/entities.py b/pkg/provider/entities.py index 2a555311..0dffc636 100644 --- a/pkg/provider/entities.py +++ b/pkg/provider/entities.py @@ -22,7 +22,7 @@ class ToolCall(pydantic.BaseModel): class Message(pydantic.BaseModel): """消息""" - role: str # user, system, assistant, tool, command + role: str # user, system, assistant, tool, command, plugin name: typing.Optional[str] = None