feat: 检测算法开关设置 + AI大模型分析开关设置
This commit is contained in:
@@ -505,6 +505,17 @@ function loadSettingsForm() {
|
||||
document.getElementById('setting-auto-analyze').checked = config.auto_analyze !== false;
|
||||
document.getElementById('setting-display-limit').value = config.display_limit || 20;
|
||||
document.getElementById('setting-refresh-interval').value = config.refresh_interval || 5;
|
||||
|
||||
// Detection algorithm settings
|
||||
document.getElementById('setting-use-haar').checked = config.use_haar_cascade !== false;
|
||||
document.getElementById('setting-use-mediapipe').checked = config.use_mediapipe_face !== false;
|
||||
document.getElementById('setting-use-face-rec').checked = config.use_face_recognition !== false;
|
||||
|
||||
// Vision API settings
|
||||
document.getElementById('setting-use-vision-api').checked = config.use_vision_api === true;
|
||||
document.getElementById('setting-vision-trigger').value = config.vision_api_trigger || 'person_change';
|
||||
|
||||
// API config
|
||||
document.getElementById('setting-api-url').value = config.vision_api_url || '';
|
||||
document.getElementById('setting-api-key').value = config.vision_api_key || '';
|
||||
document.getElementById('setting-model').value = config.vision_model || '';
|
||||
@@ -520,6 +531,17 @@ function saveSettings() {
|
||||
auto_analyze: document.getElementById('setting-auto-analyze').checked,
|
||||
display_limit: parseInt(document.getElementById('setting-display-limit').value),
|
||||
refresh_interval: parseInt(document.getElementById('setting-refresh-interval').value),
|
||||
|
||||
// Detection algorithms
|
||||
use_haar_cascade: document.getElementById('setting-use-haar').checked,
|
||||
use_mediapipe_face: document.getElementById('setting-use-mediapipe').checked,
|
||||
use_face_recognition: document.getElementById('setting-use-face-rec').checked,
|
||||
|
||||
// Vision API
|
||||
use_vision_api: document.getElementById('setting-use-vision-api').checked,
|
||||
vision_api_trigger: document.getElementById('setting-vision-trigger').value,
|
||||
|
||||
// API config
|
||||
vision_api_url: document.getElementById('setting-api-url').value,
|
||||
vision_api_key: document.getElementById('setting-api-key').value,
|
||||
vision_model: document.getElementById('setting-model').value
|
||||
@@ -533,14 +555,13 @@ function saveSettings() {
|
||||
.then(function(res) { return res.json(); })
|
||||
.then(function(data) {
|
||||
if (data.success) {
|
||||
alert('Settings saved!');
|
||||
showToast('Settings saved!', 1500);
|
||||
closeSettingsModal();
|
||||
// Reload config to apply new refresh interval
|
||||
loadConfig();
|
||||
refreshAll();
|
||||
}
|
||||
})
|
||||
.catch(function(e) { alert('Error: ' + e.message); });
|
||||
.catch(function(e) { showToast('Error: ' + e.message, 3000); });
|
||||
}
|
||||
|
||||
function browseImagesDir() {
|
||||
|
||||
@@ -137,6 +137,43 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="settings-section">
|
||||
<h4>检测算法设置</h4>
|
||||
<div class="setting-item">
|
||||
<label>Haar Cascade 人体检测:</label>
|
||||
<input type="checkbox" id="setting-use-haar" checked>
|
||||
<span class="setting-desc">传统人体检测(备用)</span>
|
||||
</div>
|
||||
<div class="setting-item">
|
||||
<label>MediaPipe 人脸检测:</label>
|
||||
<input type="checkbox" id="setting-use-mediapipe" checked>
|
||||
<span class="setting-desc">高精度人脸检测</span>
|
||||
</div>
|
||||
<div class="setting-item">
|
||||
<label>Face Recognition:</label>
|
||||
<input type="checkbox" id="setting-use-face-rec" checked>
|
||||
<span class="setting-desc">人脸识别(识别同一人)</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="settings-section">
|
||||
<h4>AI大模型分析</h4>
|
||||
<div class="setting-item">
|
||||
<label>启用大模型分析:</label>
|
||||
<input type="checkbox" id="setting-use-vision-api">
|
||||
<span class="setting-desc">调用 Vision API 详细分析</span>
|
||||
</div>
|
||||
<div class="setting-item">
|
||||
<label>触发条件:</label>
|
||||
<select id="setting-vision-trigger">
|
||||
<option value="person_change">人员变化时</option>
|
||||
<option value="motion">运动检测时</option>
|
||||
<option value="brightness">亮度变化时</option>
|
||||
<option value="always">总是分析</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="settings-section">
|
||||
<h4>API 设置</h4>
|
||||
<div class="setting-item">
|
||||
|
||||
@@ -649,6 +649,16 @@ button {
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.person-actions {
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.setting-desc {
|
||||
color: #888;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.control-panel {
|
||||
flex-direction: column;
|
||||
|
||||
Reference in New Issue
Block a user