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 (
core/config.py dosyasına ELEVENLABS_API_KEY eklenmiş olmalı.
.env dosyasına MINIMAX_API_KEY ve MINIMAX_GROUP_ID eklenmiş olmalı.
Departmanlara özel sesli asistanları yapılandırın. FreeSWITCH dialplan'da ?agent_id=N parametresi ile çağırılır.