From 5f438285a9ad9866fc094f45830d970246c1ae95 Mon Sep 17 00:00:00 2001 From: liubiren Date: Thu, 30 Jul 2026 11:20:39 +0800 Subject: [PATCH] 1 --- .gitignore | 1 + agent/application/pages/conversation.py | 100 +++++++++++------------ agent/application/pages/index.py | 2 +- agent/application/states/conversation.py | 6 +- agent/assets/styles.css | 15 +++- agent/database.db | Bin 204800 -> 253952 bytes agent/test.py | 31 +++++++ 7 files changed, 97 insertions(+), 58 deletions(-) create mode 100644 agent/test.py diff --git a/.gitignore b/.gitignore index a6cab14..b1a60d4 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ __pycache__/ **/__pycache__/ .DS_Store .gitignore +agent/models/ \ No newline at end of file diff --git a/agent/application/pages/conversation.py b/agent/application/pages/conversation.py index ef8d58f..9d073f0 100644 --- a/agent/application/pages/conversation.py +++ b/agent/application/pages/conversation.py @@ -142,7 +142,7 @@ def conversation_history_item_showing( min_width="14px", cursor="pointer", opacity=rx.cond(highlight, "1", "0"), - transition="opacity 0.18s ease", + transition="opacity 0.18s ease-in-out", pointer_events=rx.cond(highlight, "auto", "none"), ), display="flex", @@ -221,7 +221,7 @@ def conversation_history_items_showing( min_width=rx.cond(is_conversation_history_shown, "240px", "0px"), max_width=rx.cond(is_conversation_history_shown, "380px", "0px"), height="100%", - transition="all 0.3s ease-in-out", + transition="all 0.18s ease-in-out", overflow="hidden", ) @@ -346,8 +346,8 @@ def thought_showing(item: Tuple[int, Thought]): "thinking", rx.text( thought.content, - line_height="22px", - font_size="var(--prismui-font-size-2)", + line_height="1.6", + font_size="var(--prismui-font-size-1)", color="var(--prismui-color-3)", ), ), @@ -416,35 +416,32 @@ def dialog_showing(item: Tuple[str, Dialog]) -> rx.Component: ), # 思考折叠面板 rx.vstack( - # 标题栏 + # 标题 rx.box( rx.hstack( rx.text( rx.cond(is_thinking, "思考中", "思考完成"), + font_size="var(--prismui-font-size-1)", color="var(--prismui-color-3)", - font_size="var(--prismui-font-size-2)", ), rx.icon( "chevron-right", width="14px", height="14px", color="var(--prismui-color-3)", - style={ - "transform": rx.cond( - is_expanded, "rotate(90deg)", "rotate(0deg)" - ), - "transition": "transform 0.2s ease-out", - }, + transform=rx.cond(is_expanded, "rotate(90deg)", "rotate(0deg)"), + transition="transform 0.18s ease-in-out", ), align_items="center", gap="4px", margin_bottom="8px", line_height="22px", ), - cursor="pointer", # 点击事件,展开/折叠思考折叠面板 on_click=lambda: ConversationState.toggle_collapse(dialog.id), + cursor="pointer", ), + # 思考 rx.box( rx.box( rx.auto_scroll( @@ -458,15 +455,13 @@ def dialog_showing(item: Tuple[str, Dialog]) -> rx.Component: ), style={"overflow": "hidden", "min-height": "0"}, ), + display="grid", + grid_template_rows=rx.cond(is_expanded, "1fr", "0fr"), width="100%", - style={ - "display": "grid", - "overflow": "hidden", - "grid_template_rows": rx.cond(is_expanded, "1fr", "0fr"), - "opacity": rx.cond(is_expanded, "1", "0"), - # 双属性同步过渡,和千问一致 - "transition": "grid-template-rows 0.3s ease-out, opacity 0.3s ease-out", - }, + margin_bottom="8px", + opacity=rx.cond(is_expanded, "1", "0"), + overflow="hidden", + transition="grid-template-rows 0.18s ease-in-out, opacity 0.18s ease-in-out", ), ), # 结果输出 @@ -481,11 +476,23 @@ def dialog_showing(item: Tuple[str, Dialog]) -> rx.Component: word_break="break-all", white_space="pre-line", ), + "strong": lambda text: rx.text( + text, + display="inline", + font_weight="var(--prismui-font-weight-3)", + ), + "code": lambda text: rx.text( + text, + display="inline", + background_color="var(--prismui-background-color-6)", + border_radius="var(--prismui-border-radius-1)", + color="var(--prismui-color-5)", + ), "h1": lambda text: rx.text( text, margin="8px 0 4px", line_height="1.75", - font_size="18px", + font_size="var(--prismui-font-size-4)", font_weight="var(--prismui-font-weight-3)", word_wrap="break-word", word_break="break-all", @@ -495,7 +502,7 @@ def dialog_showing(item: Tuple[str, Dialog]) -> rx.Component: text, margin="6px 0 4px", line_height="1.75", - font_size="16px", + font_size="var(--prismui-font-size-3)", font_weight="var(--prismui-font-weight-3)", word_wrap="break-word", word_break="break-all", @@ -510,11 +517,6 @@ def dialog_showing(item: Tuple[str, Dialog]) -> rx.Component: word_break="break-all", white_space="pre-line", ), - "strong": lambda text: rx.text( - text, - display="inline", - font_weight="var(--prismui-font-weight-3)", - ), "ul": lambda children: rx.vstack( children, align_items="flex-start", @@ -532,8 +534,8 @@ def dialog_showing(item: Tuple[str, Dialog]) -> rx.Component: width="4.5px", height="4.5px", margin_right="8px", - background_color="var(--prismui-color-5)", - border_radius="50%", + background_color="var(--prismui-background-color-7)", + border_radius="100%", ), rx.text( text, @@ -553,31 +555,25 @@ def dialog_showing(item: Tuple[str, Dialog]) -> rx.Component: ), "table": lambda children: rx.el.table( children, - style={ - "margin": "12px 0", - "width": "100%", - "border-collapse": "collapse", - }, + width="100%", + margin="8px 0", + border_collapse="collapse", ), "thead": lambda children: rx.el.thead(children), "tbody": lambda children: rx.el.tbody(children), "tr": lambda children: rx.el.tr(children), - "th": lambda text: rx.el.th( - text, - style={ - "padding": "10px 12px", - "background": "var(--prismui-background-color-3)", - "border": "1px solid var(--prismui-background-color-6)", - "text-align": "left", - }, + "th": lambda children: rx.el.th( + children, + padding="8px 12px", + background_color="var(--prismui-background-color-6)", + border="1px solid var(--prismui-background-color-2)", + text_align="left", ), - "td": lambda text: rx.el.td( - text, - style={ - "padding": "10px 12px", - "border": "1px solid var(--prismui-background-color-6)", - "vertical-align": "top", - }, + "td": lambda children: rx.el.td( + children, + padding="8px 12px", + border="1px solid var(--prismui-background-color-2)", + text_align="left", ), }, width="100%", @@ -860,7 +856,7 @@ def conversation_history_collapse_button( "0 var(--prismui-border-radius-2)", ), box_shadow="var(--prismui-box-shadow-4)", - transition="all 0.3s ease-in-out", + transition="all 0.18s ease-in-out", cursor="pointer", ) @@ -901,7 +897,7 @@ def conversation() -> rx.Component: height="100%", min_height="0", overflow="hidden", - transition="all 0.3s ease-in-out", + transition="all 0.18s ease-in-out", ), # 会话历史折叠面板按钮 conversation_history_collapse_button(is_conversation_history_shown), diff --git a/agent/application/pages/index.py b/agent/application/pages/index.py index 9703301..633f191 100644 --- a/agent/application/pages/index.py +++ b/agent/application/pages/index.py @@ -224,7 +224,7 @@ def login_popup() -> rx.Component: "登录解锁更多功能", margin_bottom="24px", line_height="32px", - font_size="var(--prismui-font-size-4)", + font_size="var(--prismui-font-size-5)", font_weight="var(--prismui-font-weight-3)", ), # 邮箱输入框 diff --git a/agent/application/states/conversation.py b/agent/application/states/conversation.py index ae40dc3..fe6c8ed 100644 --- a/agent/application/states/conversation.py +++ b/agent/application/states/conversation.py @@ -286,10 +286,9 @@ class ConversationState(rx.State): match part: # 思考分片开始事件 case ThinkingPart(content=content): - # 若上一分片种类为空则将正在思考设置为 True、思考折叠面板展开状态设置为展开 + # 若上一分片种类为空则将正在思考设置为正在思考 if not previous_part_kind: dialog.is_thinking = True - dialog.is_expanded = True dialog.thoughts[index] = Thought( type="thinking", content=content ) @@ -350,10 +349,9 @@ class ConversationState(rx.State): match part: # 思考分片结束事件 case ThinkingPart(content=content): - # 若下一分片种类为文本则将思考状态设置为思考完成、思考面板展开状态设置为折叠 + # 若下一分片种类为文本则将思考状态设置为思考完成 if next_part_kind == "text": dialog.is_thinking = False - dialog.is_expanded = False # ========== 函数工具调用事件 ========== case FunctionToolCallEvent(tool_call_id=tool_call_id, part=part): diff --git a/agent/assets/styles.css b/agent/assets/styles.css index ca7d6e8..2d45ce1 100644 --- a/agent/assets/styles.css +++ b/agent/assets/styles.css @@ -5,6 +5,7 @@ --prismui-background-color-4: #babbc0; --prismui-background-color-5: #ffffff33; --prismui-background-color-6: #f2f2f3; + --prismui-background-color-7: #5e7ce0; --prismui-background-1: linear-gradient(to bottom, #D0C9FF 0%, #E6D6F0 8%, #F1DBEA 12%, #C8DCFB 40%, #ABC6F6 60%, #87AEFE 90%); --prismui-background-2: linear-gradient(180deg, #fffffff2, #f8fafff2 99%); --prismui-background-3: linear-gradient(to right, #f3efff, #f3efff33, #e2f1fd33, #e2f1fd); @@ -12,7 +13,8 @@ --prismui-font-size-1: 12px; --prismui-font-size-2: 14px; --prismui-font-size-3: 16px; - --prismui-font-size-4: 20px; + --prismui-font-size-4: 18px; + --prismui-font-size-5: 20px; --prismui-font-weight-1: normal; --prismui-font-weight-2: 500; --prismui-font-weight-3: 700; @@ -46,4 +48,15 @@ --prismui-box-shadow-8:0 1px 8px #1919190f; --prismui-box-shadow-9: 0 1px 8px 0 #1919190f; background-color: var(--prismui-background-color-1); +} + +pre { + padding: 16px !important; + margin: 12px 0 !important; + background-color: var(--prismui-background-color-1) !important; + border-radius: var(--prismui-border-radius-1) !important; +} + +pre, pre code { + font-family: Consolas, "Microsoft YaHei", sans-serif !important; } \ No newline at end of file diff --git a/agent/database.db b/agent/database.db index aeb34310d738a5e2de92ad66fc4c971a82c21f39..b4433d48796d366f1396c468f62ef41b03ef9ff0 100644 GIT binary patch literal 253952 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 P`T-D`y)As*_xAq>Sao&w delta 190 zcmZoTz~69yXM!|q1p@zCKS2Jg?BYJzrHKUB*Vpj z4rHVe|8M?p{2%$>@IU8&#DACn2LEOLa~mhBuxxiJVeI0beD1v&GavWf$?P9MhR@`l gJn^r7^PAu8Z+