Refactor prompt creation flow

This commit is contained in:
gpt-engineer-app[bot]
2025-10-29 13:58:45 +00:00
parent b9786d6abc
commit 0b96ab51fb
+70 -16
View File
@@ -36,9 +36,11 @@ export function CreatePromptDialog({ open, onOpenChange }: CreatePromptDialogPro
const [mainObjective, setMainObjective] = useState(""); const [mainObjective, setMainObjective] = useState("");
const [toneOfVoice, setToneOfVoice] = useState(""); const [toneOfVoice, setToneOfVoice] = useState("");
const [forbiddenPatterns, setForbiddenPatterns] = useState(""); const [forbiddenPatterns, setForbiddenPatterns] = useState("");
const [refinementInstructions, setRefinementInstructions] = useState("");
const [isGenerated, setIsGenerated] = useState(false);
const handleGeneratePrompt = () => { const handleGeneratePrompt = () => {
const generatedPrompt = `Você é ${agentName}, ${agentRole}. let generatedPrompt = `Você é ${agentName}, ${agentRole}.
Público-alvo: ${targetAudience} Público-alvo: ${targetAudience}
@@ -50,7 +52,24 @@ ${forbiddenPatterns ? `Padrões proibidos:\n${forbiddenPatterns}` : ''}
Siga estas diretrizes em todas as suas interações.`; Siga estas diretrizes em todas as suas interações.`;
if (refinementInstructions && isGenerated) {
generatedPrompt += `\n\nInstruções adicionais:\n${refinementInstructions}`;
}
setSystemPrompt(generatedPrompt); setSystemPrompt(generatedPrompt);
setIsGenerated(true);
};
const handleStartOver = () => {
setAgentName("");
setAgentRole("");
setTargetAudience("");
setMainObjective("");
setToneOfVoice("");
setForbiddenPatterns("");
setRefinementInstructions("");
setSystemPrompt("");
setIsGenerated(false);
}; };
const handleSave = () => { const handleSave = () => {
@@ -175,23 +194,58 @@ Siga estas diretrizes em todas as suas interações.`;
/> />
</div> </div>
<Button <div className="flex gap-2">
onClick={handleGeneratePrompt} <Button
className="w-full" onClick={handleGeneratePrompt}
variant="secondary" className="flex-1"
> variant="secondary"
<Wand2 className="w-4 h-4 mr-2" /> disabled={!agentName || !agentRole}
Gerar System Prompt >
</Button> <Wand2 className="w-4 h-4 mr-2" />
{isGenerated ? "Regenerar Prompt" : "Gerar System Prompt"}
</Button>
{isGenerated && (
<Button
onClick={handleStartOver}
variant="outline"
>
Começar do Zero
</Button>
)}
</div>
{systemPrompt && ( {systemPrompt && (
<div className="space-y-2"> <div className="space-y-4 p-4 border rounded-lg bg-muted/50">
<Label>Prompt Gerado</Label> <div className="space-y-2">
<Textarea <Label>Prompt Gerado</Label>
value={systemPrompt} <Textarea
onChange={(e) => setSystemPrompt(e.target.value)} value={systemPrompt}
className="min-h-[400px] font-mono text-sm" onChange={(e) => setSystemPrompt(e.target.value)}
/> className="min-h-[400px] font-mono text-sm"
/>
</div>
<div className="space-y-2">
<Label htmlFor="refinement">
Instruções Adicionais (opcional)
</Label>
<Textarea
id="refinement"
placeholder="Ex: Adicione mais empatia nas respostas, seja mais direto, inclua exemplos práticos..."
value={refinementInstructions}
onChange={(e) => setRefinementInstructions(e.target.value)}
className="min-h-[100px]"
/>
<Button
onClick={handleGeneratePrompt}
size="sm"
variant="secondary"
disabled={!refinementInstructions}
>
<Wand2 className="w-4 h-4 mr-2" />
Aplicar Refinamento
</Button>
</div>
</div> </div>
)} )}
</TabsContent> </TabsContent>