EmbedDesigner 组件
概述
EmbedDesigner 是一个交互式嵌入设计器组件,用于创建和预览可嵌入的 AI 提示框。用户可以通过可视化界面配置各种参数,生成对应的 iframe 嵌入代码。
文件路径
src/components/developers/embed-designer.tsx
功能特性
- 可视化配置面板: 左侧设置面板,右侧实时预览
- 丰富的配置选项:
- Prompt 文本和上下文 - AI 模型选择(支持自定义模型) - 模式选择(Chat/Code/Ask/Plan) - 思考、推理、规划等 AI 功能开关 - 文件树展示 - Diff 视图配置 - MCP 工具展示 - 外观主题和颜色配置
- 示例加载: 内置多种预设示例(Coding/Chat/Planning/Research 等)
- 嵌入代码生成: 自动生成可直接使用的 iframe HTML 代码
- 本地存储: 配置自动保存到 localStorage
接口定义
interface EmbedConfig {
prompt: string; // 提示文本
context: string; // 上下文信息
model: string; // AI 模型
mode: string; // 模式
thinking: boolean; // 思考模式
reasoning: boolean; // 推理模式
planning: boolean; // 规划模式
fast: boolean; // 快速模式
max: boolean; // 最大模式
lightColor: string; // 浅色主题颜色
darkColor: string; // 深色主题颜色
height: number; // 嵌入高度
themeMode: "auto" | "light" | "dark"; // 主题模式
filetree: string; // 文件树内容
showFiletree: boolean; // 是否显示文件树
showDiff: boolean; // 是否显示 Diff
diffFilename: string; // Diff 文件名
diffOldText: string; // 旧代码
diffNewText: string; // 新代码
flashButton: string; // 闪光按钮类型
mcpTools: string; // MCP 工具列表
showMcpTools: boolean; // 是否显示 MCP 工具
}
使用示例
import { EmbedDesigner } from "@/components/developers/embed-designer";
export default function EmbedPage() {
return (
<div className="h-screen">
<EmbedDesigner />
</div>
);
}
预设模型
- GPT-5, GPT-4o, o3, o4-mini
- Claude 4.5 Sonnet, Claude 4 Opus
- Gemini 3, Gemini 2.5 Pro
- Grok 4, DeepSeek R2, Llama 4
- Custom(自定义)
颜色预设
Blue | Green | Orange | Purple | Pink | Red
依赖
next-intl- 国际化@monaco-editor/react- 代码编辑器lucide-react- 图标sonner- toast 通知@/components/ui/*- UI 组件./embed-examples- 示例数据
注意事项
- 组件使用
"use client"指令,仅在客户端渲染 - 配置自动保存到 localStorage,键名为
"embedDesignerConfig" - 预览通过 iframe 加载
/embed路由 - 自定义模型需要先在模型选择器中切换到 "Custom..."