import { Fragment, useState } from "react"; import { CheckCircle2, Edit3, RotateCcw, Save, Sparkles } from "lucide-react"; import { toast } from "sonner"; import { Button } from "~/components/ui/button"; import { Card, CardAction, CardContent, CardDescription, CardHeader, CardTitle } from "~/components/ui/card"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "~/components/ui/table"; import { Textarea } from "~/components/ui/textarea"; import { usePersistentState } from "~/hooks/use-persistent-state"; import { FilterSelect, OperationsPageHeader } from "./OperationsUi"; import { PROMPTS, PROMPT_REGRESSION, PROMPT_VERSIONS } from "./governanceData"; type PromptKey = keyof typeof PROMPTS; function PromptPreview({ text }: { text: string }) { const parts = text.split(/(\{\{[^}]+\}\})/g); return
{parts.map((part, index) => part.startsWith("{{") ? {part} : {part})}
; } export default function PromptManagementPage() { const [promptKey, setPromptKey] = useState("BC"); const [texts, setTexts] = usePersistentState>("a-card-prompt-texts", { A: PROMPTS.A.text, BC: PROMPTS.BC.text }); const [editing, setEditing] = useState(false); const [versions, setVersions] = usePersistentState("a-card-prompt-versions", PROMPT_VERSIONS); const passed = PROMPT_REGRESSION.filter((item) => item.result === "通过").length; const savePrompt = () => { const version = `P${Number(versions[0]?.version.slice(1) ?? 5) + 1}`; setVersions((current) => [{ version, author: "模型团队 李伟", createdAt: "2026-08-31 11:05", current: true, note: "手动保存并提交回归(Mock)" }, ...current.map((item) => ({ ...item, current: false }))]); setEditing(false); toast.success(`已保存为 ${version} 并提交回归评审`); }; return (
保存并提交回归} />
提示词查看与调整属于需求沟通补充项,建议在下一版需求文档中同步固化。平台注入变量由程序取数,不交由大模型计算。
提示词全文变量占位符必须保持双花括号格式 { setPromptKey(value as PromptKey); setEditing(false); }} /> {editing ?