diff --git a/frontend-web/src/components/workspace/input-box.tsx b/frontend-web/src/components/workspace/input-box.tsx index 85dc3dd4..7bc633fa 100644 --- a/frontend-web/src/components/workspace/input-box.tsx +++ b/frontend-web/src/components/workspace/input-box.tsx @@ -86,6 +86,30 @@ import { Tooltip } from "./tooltip"; type InputMode = "flash" | "thinking" | "pro" | "ultra"; +// 推荐问题列表 — 可自由配置 title(卡片标题)和 content(发送给对话的内容) +const RECOMMENDED_QUESTIONS: { title: string; content: string }[] = [ + { + title: "市场分析报告", + content: "请帮我写一份关于当前 AI 市场的详细分析报告,包括市场规模、主要玩家和发展趋势。", + }, + { + title: "制定学习计划", + content: "请帮我制定一个为期 3 个月的 Python 编程学习计划,从基础到进阶,每周安排具体任务。", + }, + { + title: "代码审查建议", + content: "请帮我审查代码,找出潜在的问题、性能瓶颈以及改进建议,并给出修改示例。", + }, + { + title: "数据分析方案", + content: "请帮我设计一个用于分析用户行为数据的方案,包括数据收集、处理和可视化策略。", + }, + { + title: "文章润色优化", + content: "请帮我润色以下文章,使其更加流畅、专业,并保持原意不变。", + }, +]; + function getResolvedMode( mode: InputMode | undefined, supportsThinking: boolean, @@ -430,7 +454,32 @@ export function InputBox({ }, [context.model_name, disabled, isMock, status, thread.messages, threadId]); return ( -
+
+ {extraHeader && ( +
+ {extraHeader} +
+ )} + + {isNewThread && searchParams.get("mode") !== "skill" && ( +
+ {RECOMMENDED_QUESTIONS.map((q) => ( + + ))} +
+ )} + {showFollowups && (
@@ -473,13 +522,6 @@ export function InputBox({ onSubmit={handleSubmit} {...props} > - {extraHeader && ( -
-
- {extraHeader} -
-
- )} {(attachment) => } @@ -846,12 +888,6 @@ export function InputBox({ )} - {isNewThread && searchParams.get("mode") !== "skill" && ( -
- -
- )} - diff --git a/frontend-web/src/components/workspace/messages/message-list.tsx b/frontend-web/src/components/workspace/messages/message-list.tsx index 4a37f957..b9c8b90b 100644 --- a/frontend-web/src/components/workspace/messages/message-list.tsx +++ b/frontend-web/src/components/workspace/messages/message-list.tsx @@ -68,7 +68,7 @@ export function MessageList({ - + {groupMessages(messages, (group) => { if (group.type === "human" || group.type === "assistant") { return group.messages.map((msg) => { diff --git a/frontend-web/src/components/workspace/messages/skeleton.tsx b/frontend-web/src/components/workspace/messages/skeleton.tsx index 66601b92..77fce907 100644 --- a/frontend-web/src/components/workspace/messages/skeleton.tsx +++ b/frontend-web/src/components/workspace/messages/skeleton.tsx @@ -24,7 +24,7 @@ function SkeletonBar({ export function MessageListSkeleton() { let index = 0; return ( -
+
{searchParams.get("mode") === "skill" ? (
- {t.welcome.createYourOwnSkillDescription.includes("\n") ? ( + {/* {t.welcome.createYourOwnSkillDescription.includes("\n") ? (
               {t.welcome.createYourOwnSkillDescription}
             
) : (

{t.welcome.createYourOwnSkillDescription}

- )} + )} */}
) : (
- {t.welcome.description.includes("\n") ? ( + {/* {t.welcome.description.includes("\n") ? (
               {t.welcome.description}
             
) : (

{t.welcome.description}

- )} + )} */}
)}
diff --git a/frontend-web/src/core/i18n/locales/zh-CN.ts b/frontend-web/src/core/i18n/locales/zh-CN.ts index 64d52a81..8fec05ae 100644 --- a/frontend-web/src/core/i18n/locales/zh-CN.ts +++ b/frontend-web/src/core/i18n/locales/zh-CN.ts @@ -59,7 +59,7 @@ export const zhCN: Translations = { // Welcome welcome: { - greeting: "你好,欢迎回来!", + greeting: "你好,欢迎使用CM助手", description: "欢迎使用 CM 助手", diff --git a/frontend-web/src/pages/ChatPage.tsx b/frontend-web/src/pages/ChatPage.tsx index 8a2cd504..0ac3427c 100644 --- a/frontend-web/src/pages/ChatPage.tsx +++ b/frontend-web/src/pages/ChatPage.tsx @@ -145,8 +145,8 @@ export default function ChatPage() { "relative w-full", isLandingState && "-translate-y-[calc(50vh-96px)]", isLandingState - ? "max-w-(--container-width-sm)" - : "max-w-(--container-width-md)", + ? "max-w-(--container-width-md)" + : "max-w-(--container-width-lg)", )} >