import { Fragment, useState } from "react"; import { CheckCircle2, Edit3, 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 { FilterSelect, OperationsPageHeader } from "./OperationsUi"; import { PROMPTS, PROMPT_REGRESSION, PROMPT_VERSIONS, type PromptKey } from "./governanceData"; import { useCanOperationsAction } from "./operationsRole"; function PromptPreview({ text }: { text: string }) { const parts = text.split(/(\{\{[^}]+\}\})/g); return
{parts.map((part, index) => part.startsWith("{{") ? {part} : {part})}
; } export default function PromptManagementPage() { const canEdit = useCanOperationsAction("prompts:manage"); const canRegression = useCanOperationsAction("prompts:regression"); const [promptKey, setPromptKey] = useState("BC"); const [texts, setTexts] = useState>({ A: "", BC: "" }); const [editing, setEditing] = useState(false); const [versions] = useState(PROMPT_VERSIONS); const prompt = PROMPTS[promptKey]; const passed = PROMPT_REGRESSION.filter((item) => item.result === "通过").length; const savePrompt = () => { toast.info("Prompt保存接口尚未接入"); }; return (
保存并提交回归 : undefined} />
提示词查看与调整属于需求沟通补充项,建议在下一版需求文档中同步固化。平台注入变量由程序取数,不交由大模型计算。
提示词全文变量占位符必须保持双花括号格式 ({ label: item.name, value }))} onChange={(value) => { setPromptKey(value as PromptKey); setEditing(false); }} /> {prompt ? (editing ?