From 11a51c6100b0b6c6e56c353a07c39648db81d82c Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Wed, 29 Oct 2025 13:53:02 +0000 Subject: [PATCH] feat: Add prompt creation modal with AI assistant --- src/components/prompts/CreatePromptDialog.tsx | 212 ++++++++++++++++++ src/pages/Prompts.tsx | 9 +- 2 files changed, 220 insertions(+), 1 deletion(-) create mode 100644 src/components/prompts/CreatePromptDialog.tsx diff --git a/src/components/prompts/CreatePromptDialog.tsx b/src/components/prompts/CreatePromptDialog.tsx new file mode 100644 index 0000000..eee2d88 --- /dev/null +++ b/src/components/prompts/CreatePromptDialog.tsx @@ -0,0 +1,212 @@ +import { useState } from "react"; +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, +} from "@/components/ui/dialog"; +import { Button } from "@/components/ui/button"; +import { Input } from "@/components/ui/input"; +import { Label } from "@/components/ui/label"; +import { Textarea } from "@/components/ui/textarea"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select"; +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; +import { Wand2 } from "lucide-react"; + +interface CreatePromptDialogProps { + open: boolean; + onOpenChange: (open: boolean) => void; +} + +export function CreatePromptDialog({ open, onOpenChange }: CreatePromptDialogProps) { + const [title, setTitle] = useState(""); + const [systemPrompt, setSystemPrompt] = useState(""); + + // Assistente fields + const [agentName, setAgentName] = useState(""); + const [agentRole, setAgentRole] = useState(""); + const [targetAudience, setTargetAudience] = useState(""); + const [mainObjective, setMainObjective] = useState(""); + const [toneOfVoice, setToneOfVoice] = useState(""); + const [forbiddenPatterns, setForbiddenPatterns] = useState(""); + + const handleGeneratePrompt = () => { + const generatedPrompt = `Você é ${agentName}, ${agentRole}. + +Público-alvo: ${targetAudience} + +Objetivo principal: ${mainObjective} + +Tom de voz: ${toneOfVoice} + +${forbiddenPatterns ? `Padrões proibidos:\n${forbiddenPatterns}` : ''} + +Siga estas diretrizes em todas as suas interações.`; + + setSystemPrompt(generatedPrompt); + }; + + const handleSave = () => { + console.log("Salvando prompt:", { title, systemPrompt }); + // Aqui você implementaria a lógica de salvar no backend + onOpenChange(false); + }; + + return ( + + ); +} diff --git a/src/pages/Prompts.tsx b/src/pages/Prompts.tsx index ca466d4..40428d9 100644 --- a/src/pages/Prompts.tsx +++ b/src/pages/Prompts.tsx @@ -1,9 +1,11 @@ import { useState } from "react"; import { PromptCard } from "@/components/prompts/PromptCard"; +import { CreatePromptDialog } from "@/components/prompts/CreatePromptDialog"; import { Button } from "@/components/ui/button"; import { Plus } from "lucide-react"; export default function Prompts() { + const [isCreateDialogOpen, setIsCreateDialogOpen] = useState(false); const [prompts] = useState([ { id: 1, @@ -44,7 +46,7 @@ export default function Prompts() { Crie, edite e gerencie os prompts dos seus agentes de IA
-