diff --git a/agent/application/pages/conversation.py b/agent/application/pages/conversation.py index 09a390e..535ca45 100644 --- a/agent/application/pages/conversation.py +++ b/agent/application/pages/conversation.py @@ -371,6 +371,7 @@ def thinking(item: MessageHistoryItem) -> rx.Component: item.title, font_size="var(--prismui-font-size-1)", color="var(--prismui-color-3)", + class_name=rx.cond(item.is_running, "is_running", None), ), rx.icon( "chevron-right", @@ -455,9 +456,9 @@ def tool_call(item: MessageHistoryItem) -> rx.Component: ) -def output(item: MessageHistoryItem) -> rx.Component: +def text(item: MessageHistoryItem) -> rx.Component: """ - 输出 + 文本 :return: Component """ return rx.markdown( @@ -584,7 +585,7 @@ def message_history_item(item: MessageHistoryItem) -> rx.Component: (MessageType.USER_PROMPT, user_prompt(item)), (MessageType.THINKING, thinking(item)), (MessageType.TOOL_CALL, tool_call(item)), - (MessageType.OUTPUT, output(item)), + (MessageType.TEXT, text(item)), ), padding="0 16px", width="100%", diff --git a/agent/application/states/conversation.py b/agent/application/states/conversation.py index f888cd4..206a022 100644 --- a/agent/application/states/conversation.py +++ b/agent/application/states/conversation.py @@ -348,7 +348,6 @@ class ConversationState(rx.State): # 若等待流式输出则将等待流式输出设置为否 if conversation.awaiting_stream: conversation.awaiting_stream = False - print(event) match event: # ========== 开始事件 ========== case PartStartEvent( @@ -388,7 +387,7 @@ class ConversationState(rx.State): # 文本分片 case TextPart(content=content): # 构建消息实例 - message = Message(type=MessageType.OUTPUT, content=content) + message = Message(type=MessageType.TEXT, content=content) # 添加至消息字典 conversation.messages[message.id] = message # 将消息实例唯一标识与片段索引映射 @@ -466,7 +465,7 @@ class ConversationState(rx.State): case AgentRunEvent(content=content): # 构建消息实例 message = Message( - type=MessageType.OUTPUT, + type=MessageType.TEXT, content=content, ) # 添加至消息字典 diff --git a/agent/application/states/models.py b/agent/application/states/models.py index 1afeb88..aaa459c 100644 --- a/agent/application/states/models.py +++ b/agent/application/states/models.py @@ -38,7 +38,7 @@ class MessageType(StrEnum): USER_PROMPT = "user_prompt" THINKING = "thinking" TOOL_CALL = "tool_call" - OUTPUT = "output" + TEXT = "text" class Message(BaseModel): diff --git a/agent/application/workshop/book_flight.py b/agent/application/workshop/book_flight.py index 4cfa70a..6c75110 100644 --- a/agent/application/workshop/book_flight.py +++ b/agent/application/workshop/book_flight.py @@ -18,6 +18,7 @@ from pydantic_ai import ( RunUsage, UsageLimits, ) +from pydantic_ai.agent.abstract import S from pydantic_ai.messages import ( AgentStreamEvent, FunctionToolResultEvent, @@ -26,6 +27,7 @@ from pydantic_ai.messages import ( ToolReturnPart, ) from pydantic_ai.run import AgentRunResult, AgentRunResultEvent +from reflex.event import T from application.states.models import AgentRunEvent, NoResult from application.workshop.models import ( @@ -342,12 +344,6 @@ async def run_stream_events( case Flight(): yield AgentRunEvent(content="预定成功") - case DeferredToolRequests(approvals=approvals): - yield AgentRunResultEvent( - result=AgentRunResult( - output=DeferredToolRequests( - approvals=approvals - ) - ) - ) + case DeferredToolRequests(approvals=approvals) as t: + t.metadata = {"1": {"Success": "1"}} yield event diff --git a/agent/database.db b/agent/database.db index 63c6843..c99a5da 100644 Binary files a/agent/database.db and b/agent/database.db differ