import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; import { Textarea } from "@/components/ui/textarea"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { Sparkles, Loader2 } from "lucide-react"; import { useState, useEffect } from "react"; import { usePromptGenerator } from "@/hooks/use-prompt-generator"; import { useLocalModels } from "@/hooks/use-local-models"; interface PromptGeneratorDialogProps { defaultModel: string; onPromptGenerated: (prompt: string) => void; } export function PromptGeneratorDialog({ defaultModel, onPromptGenerated }: PromptGeneratorDialogProps) { const [open, setOpen] = useState(false); const [goal, setGoal] = useState(""); const [selectedModel, setSelectedModel] = useState(defaultModel); const { generatePrompt, isGenerating } = usePromptGenerator(); const { models } = useLocalModels(); // Set default model when dialog opens or defaultModel changes useEffect(() => { if (defaultModel) { setSelectedModel(defaultModel); } }, [defaultModel]); // Try to set specific default if available, otherwise fallback useEffect(() => { const preferredModel = "llama3.2-abliterate:3b"; const hasPreferred = models.some(m => m.name === preferredModel); if (hasPreferred && !selectedModel) { setSelectedModel(preferredModel); } }, [models, selectedModel]); const handleGenerate = async () => { if (!goal.trim() || !selectedModel) return; try { const prompt = await generatePrompt(goal, selectedModel); onPromptGenerated(prompt); setOpen(false); setGoal(""); } catch (error) { // Error handling usually done in hook or global toast } }; return ( Gerador de Prompts Descreva o que você quer que a IA faça, e nós criaremos um System Prompt otimizado para você.

Recomendado: Modelos com boa capacidade de instrução (ex: Llama 3, Mistral).