const { useState, useEffect } = React; function AgentModal({ agent, onClose, onSave }) { const [form, setForm] = useState(agent || { name: '', department: 'support', description: '', system_prompt: '', welcome_message: 'Merhaba, size nasıl yardımcı olabilirim?', voice: 'en-US-NovaMultilingualNeural', max_tokens: 150, is_active: true, enable_background: true, background_volume: 0.15, ws_tool_ids: [] }); const [wsServices, setWsServices] = useState([]); const [departments, setDepartments] = useState([]); const set = (k, v) => setForm(f => ({ ...f, [k]: v })); // Web servis + departman listesini yükle useEffect(() => { authFetch('/api/ws/services').then(r => r.ok ? r.json() : []).then(setWsServices).catch(() => {}); authFetch('/api/departments').then(r => r.ok ? r.json() : []).then(d => { setDepartments(d.filter(x => x.is_active)); // Yeni asistan oluşturulurken ilk departmanı varsayılan yap if (!agent && d.length > 0 && !form.department) set('department', d[0].key); }).catch(() => {}); }, []); async function save() { const url = agent ? `/api/agents/${agent.id}` : '/api/agents'; const method = agent ? 'PUT' : 'POST'; const r = await authFetch(url, { method, headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(form) }); if (r.ok) onSave(); } return (
e.stopPropagation()}>
{agent ? 'Asistanı Düzenle' : 'Yeni Asistan Oluştur'}
set('name', e.target.value)} placeholder="Örn: Ayşe — Müşteri Destek" />
{form.voice?.startsWith('elevenlabs:') && (
ElevenLabs API key gerekli — core/config.py dosyasına ELEVENLABS_API_KEY eklenmiş olmalı.
)} {form.voice?.startsWith('minimax:') && (
MiniMax API key gerekli — sunucuda .env dosyasına MINIMAX_API_KEY ve MINIMAX_GROUP_ID eklenmiş olmalı.
)}
set('description', e.target.value)} />