mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 23:47:41 +08:00
feat(agent): 添加reset方法支持流式消息原地更新
This commit is contained in:
@@ -98,6 +98,19 @@ class StreamingHandler:
|
|||||||
self._message_response = None
|
self._message_response = None
|
||||||
self._msg_start_offset = 0
|
self._msg_start_offset = 0
|
||||||
|
|
||||||
|
def reset(self):
|
||||||
|
"""
|
||||||
|
重置缓冲区,清空已发送的文本从头更新,但保持消息编辑能力。
|
||||||
|
|
||||||
|
与 clear 的区别:
|
||||||
|
- clear:完全重置所有状态,后续会开新消息
|
||||||
|
- reset:只清空buffer,保留消息编辑状态,后续继续编辑同一条消息
|
||||||
|
"""
|
||||||
|
with self._lock:
|
||||||
|
self._buffer = ""
|
||||||
|
self._sent_text = ""
|
||||||
|
self._msg_start_offset = 0
|
||||||
|
|
||||||
async def start_streaming(
|
async def start_streaming(
|
||||||
self,
|
self,
|
||||||
channel: Optional[str] = None,
|
channel: Optional[str] = None,
|
||||||
|
|||||||
@@ -59,8 +59,8 @@ class MoviePilotTool(BaseTool, metaclass=ABCMeta):
|
|||||||
if tool_message:
|
if tool_message:
|
||||||
self._stream_handler.emit(f"\n\n⚙️ => {tool_message}\n\n")
|
self._stream_handler.emit(f"\n\n⚙️ => {tool_message}\n\n")
|
||||||
else:
|
else:
|
||||||
# 非VERBOSE,不输出最后结果前的消息
|
# 非VERBOSE,重置缓冲区从头更新,保持消息编辑能力
|
||||||
self._stream_handler.clear()
|
self._stream_handler.reset()
|
||||||
else:
|
else:
|
||||||
# 非流式渠道:保持原有行为,取出 Agent 文字 + 工具消息合并独立发送
|
# 非流式渠道:保持原有行为,取出 Agent 文字 + 工具消息合并独立发送
|
||||||
agent_message = (
|
agent_message = (
|
||||||
|
|||||||
Reference in New Issue
Block a user