This commit is contained in:
parent
714675cf5b
commit
d9622ab6b3
|
|
@ -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%",
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
)
|
)
|
||||||
# 添加至消息字典
|
# 添加至消息字典
|
||||||
|
|
|
||||||
|
|
@ -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):
|
||||||
|
|
|
||||||
|
|
@ -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.
Loading…
Reference in New Issue