Files
wevads-platform/public/weval-mind-settings.php
2026-04-07 03:04:16 +02:00

41 lines
4.6 KiB
PHP

<?php
require_once('/opt/wevads/config/credentials.php');
$db=get_pdo('adx_system');
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_SILENT);
$defaults=['interfaces'=>json_encode(['fullscreen'=>['enabled'=>true,'kb'=>true,'name'=>'Fullscreen','file'=>'hamid-fullscreen.php'],'widget'=>['enabled'=>true,'kb'=>true,'name'=>'Widget','file'=>'hamid-widget.php'],'cli_web'=>['enabled'=>true,'kb'=>true,'name'=>'CLI Web','file'=>'hamid-cli.php'],'hub'=>['enabled'=>true,'kb'=>true,'name'=>'Hub','file'=>'hamid-index.php']]),'default_provider'=>'cerebras','prompt_internal'=>'Tu es WEVAL MIND.','prompt_public'=>'Tu es l\'assistant WEVAL Consulting.','api_endpoint'=>'http://95.216.167.89:5821/weval-brain-providers.php'];
foreach($defaults as $k=>$v){$db->prepare("INSERT INTO weval_mind_settings(config_key,config_value)VALUES(?,?)ON CONFLICT(config_key)DO NOTHING")->execute([$k,$v]);}
$action=$_POST['action']??$_GET['action']??'';
if($action==='get'){$stmt=$db->query("SELECT config_key,config_value FROM weval_mind_settings");$s=[];while($r=$stmt->fetch(PDO::FETCH_ASSOC)){$s[$r['config_key']]=$r['config_value'];}echo json_encode(['success'=>true,'settings'=>$s]);exit;}
if($action==='set'){$k=$_POST['key']??'';$v=$_POST['value']??'';if($k){$db->prepare("INSERT INTO weval_mind_settings(config_key,config_value,updated_at)VALUES(?,?,NOW())ON CONFLICT(config_key)DO UPDATE SET config_value=?,updated_at=NOW()")->execute([$k,$v,$v]);echo json_encode(['success'=>true]);}exit;}
$stmt=$db->query("SELECT config_key,config_value FROM weval_mind_settings");$settings=[];while($r=$stmt->fetch(PDO::FETCH_ASSOC)){$settings[$r['config_key']]=$r['config_value'];}
$interfaces=json_decode($settings['interfaces']??'{}',true);
?>
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>WEVAL MIND Settings</title>
<style>*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui;background:#0f172a;color:#e2e8f0;padding:20px}.container{max-width:900px;margin:0 auto}h1{margin-bottom:20px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.card{background:#1e293b;border-radius:12px;padding:20px;border:1px solid #334155}.card h2{font-size:14px;color:#94a3b8;margin-bottom:15px}.item{display:flex;justify-content:space-between;align-items:center;padding:10px;background:#0f172a;border-radius:8px;margin-bottom:8px}.btn{padding:6px 12px;border-radius:6px;border:none;cursor:pointer;font-size:12px}.btn-on{background:#1e40af;color:white}.btn-off{background:#374151;color:#9ca3af}.btn-open{background:#059669;color:white;margin-left:8px}.input{width:100%;padding:10px;border-radius:8px;border:1px solid #334155;background:#0f172a;color:#e2e8f0;margin-bottom:10px}.toast{position:fixed;bottom:20px;right:20px;background:#059669;color:white;padding:12px 24px;border-radius:8px;display:none}</style>
</head><body><div class="container"><h1>⚙️ WEVAL MIND Settings</h1>
<div class="grid">
<div class="card"><h2>🎨 Interfaces IA</h2>
<?php if($interfaces): foreach($interfaces as $k=>$i): ?>
<div class="item"><span><?=$i['name']??$k?></span><div><button class="btn <?=($i['kb']??true)?'btn-on':'btn-off'?>" onclick="toggleKB('<?=$k?>')"><?=($i['kb']??true)?'KB ON':'KB OFF'?></button><a href="<?=$i['file']??'#'?>" target="_blank" class="btn btn-open">Ouvrir</a></div></div>
<?php endforeach; endif; ?>
</div>
<div class="card"><h2>🔗 Configuration</h2>
<label style="font-size:12px;color:#64748b">API Endpoint</label>
<input class="input" value="<?=htmlspecialchars($settings['api_endpoint']??'')?>" onchange="saveSetting('api_endpoint',this.value)">
<label style="font-size:12px;color:#64748b">Provider</label>
<input class="input" value="<?=htmlspecialchars($settings['default_provider']??'cerebras')?>" onchange="saveSetting('default_provider',this.value)">
<label style="font-size:12px;color:#64748b">Prompt Interne</label>
<textarea class="input" style="height:60px" onchange="saveSetting('prompt_internal',this.value)"><?=htmlspecialchars($settings['prompt_internal']??'')?></textarea>
<label style="font-size:12px;color:#64748b">Prompt Public</label>
<textarea class="input" style="height:60px" onchange="saveSetting('prompt_public',this.value)"><?=htmlspecialchars($settings['prompt_public']??'')?></textarea>
</div>
</div></div>
<div class="toast" id="toast">✓</div>
<script>
function toast(m){const t=document.getElementById('toast');t.textContent=m;t.style.display='block';setTimeout(()=>t.style.display='none',2000)}
function saveSetting(k,v){fetch('?action=set',{method:'POST',headers:{'Content-Type':'application/x-www-form-urlencoded'},body:'key='+k+'&value='+encodeURIComponent(v)}).then(r=>r.json()).then(d=>d.success&&toast('✓ Saved'))}
function toggleKB(i){toast('Toggle KB: '+i)}
</script>
</body></html>