This commit is contained in:
liubiren 2026-09-07 19:59:52 +08:00
parent 714675cf5b
commit d9622ab6b3
5 changed files with 11 additions and 15 deletions

View File

@ -371,6 +371,7 @@ def thinking(item: MessageHistoryItem) -> rx.Component:
item.title, item.title,
font_size="var(--prismui-font-size-1)", font_size="var(--prismui-font-size-1)",
color="var(--prismui-color-3)", color="var(--prismui-color-3)",
class_name=rx.cond(item.is_running, "is_running", None),
), ),
rx.icon( rx.icon(
"chevron-right", "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: Component
""" """
return rx.markdown( return rx.markdown(
@ -584,7 +585,7 @@ def message_history_item(item: MessageHistoryItem) -> rx.Component:
(MessageType.USER_PROMPT, user_prompt(item)), (MessageType.USER_PROMPT, user_prompt(item)),
(MessageType.THINKING, thinking(item)), (MessageType.THINKING, thinking(item)),
(MessageType.TOOL_CALL, tool_call(item)), (MessageType.TOOL_CALL, tool_call(item)),
(MessageType.OUTPUT, output(item)), (MessageType.TEXT, text(item)),
), ),
padding="0 16px", padding="0 16px",
width="100%", width="100%",

View File

@ -348,7 +348,6 @@ class ConversationState(rx.State):
# 若等待流式输出则将等待流式输出设置为否 # 若等待流式输出则将等待流式输出设置为否
if conversation.awaiting_stream: if conversation.awaiting_stream:
conversation.awaiting_stream = False conversation.awaiting_stream = False
print(event)
match event: match event:
# ========== 开始事件 ========== # ========== 开始事件 ==========
case PartStartEvent( case PartStartEvent(
@ -388,7 +387,7 @@ class ConversationState(rx.State):
# 文本分片 # 文本分片
case TextPart(content=content): case TextPart(content=content):
# 构建消息实例 # 构建消息实例
message = Message(type=MessageType.OUTPUT, content=content) message = Message(type=MessageType.TEXT, content=content)
# 添加至消息字典 # 添加至消息字典
conversation.messages[message.id] = message conversation.messages[message.id] = message
# 将消息实例唯一标识与片段索引映射 # 将消息实例唯一标识与片段索引映射
@ -466,7 +465,7 @@ class ConversationState(rx.State):
case AgentRunEvent(content=content): case AgentRunEvent(content=content):
# 构建消息实例 # 构建消息实例
message = Message( message = Message(
type=MessageType.OUTPUT, type=MessageType.TEXT,
content=content, content=content,
) )
# 添加至消息字典 # 添加至消息字典

View File

@ -38,7 +38,7 @@ class MessageType(StrEnum):
USER_PROMPT = "user_prompt" USER_PROMPT = "user_prompt"
THINKING = "thinking" THINKING = "thinking"
TOOL_CALL = "tool_call" TOOL_CALL = "tool_call"
OUTPUT = "output" TEXT = "text"
class Message(BaseModel): class Message(BaseModel):

View File

@ -18,6 +18,7 @@ from pydantic_ai import (
RunUsage, RunUsage,
UsageLimits, UsageLimits,
) )
from pydantic_ai.agent.abstract import S
from pydantic_ai.messages import ( from pydantic_ai.messages import (
AgentStreamEvent, AgentStreamEvent,
FunctionToolResultEvent, FunctionToolResultEvent,
@ -26,6 +27,7 @@ from pydantic_ai.messages import (
ToolReturnPart, ToolReturnPart,
) )
from pydantic_ai.run import AgentRunResult, AgentRunResultEvent from pydantic_ai.run import AgentRunResult, AgentRunResultEvent
from reflex.event import T
from application.states.models import AgentRunEvent, NoResult from application.states.models import AgentRunEvent, NoResult
from application.workshop.models import ( from application.workshop.models import (
@ -342,12 +344,6 @@ async def run_stream_events(
case Flight(): case Flight():
yield AgentRunEvent(content="预定成功") yield AgentRunEvent(content="预定成功")
case DeferredToolRequests(approvals=approvals): case DeferredToolRequests(approvals=approvals) as t:
yield AgentRunResultEvent( t.metadata = {"1": {"Success": "1"}}
result=AgentRunResult(
output=DeferredToolRequests(
approvals=approvals
)
)
)
yield event yield event

Binary file not shown.