@wendongfly/myhi 1.3.60 → 1.3.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chat.html +51 -0
- package/dist/index.js +1 -1
- package/dist/index.min.js +2 -2
- package/package.json +2 -1
package/dist/chat.html
CHANGED
|
@@ -392,6 +392,19 @@
|
|
|
392
392
|
<label class="setting-toggle"><span>显示思考过程</span><input type="checkbox" id="set-thinking" checked></label>
|
|
393
393
|
<label class="setting-toggle"><span>工具调用默认折叠</span><input type="checkbox" id="set-collapse" checked></label>
|
|
394
394
|
</div>
|
|
395
|
+
<div class="setting-group">
|
|
396
|
+
<h4>语音识别 (ASR)</h4>
|
|
397
|
+
<div style="font-size:0.72rem;color:#8b949e;margin-bottom:0.35rem">SenseVoice 或兼容服务的地址,留空表示禁用语音</div>
|
|
398
|
+
<div style="display:flex;gap:0.4rem">
|
|
399
|
+
<input id="set-asr-url" class="slash-inp" placeholder="http://192.168.x.x:8765" autocomplete="off" style="flex:1;font-size:0.82rem">
|
|
400
|
+
<button onclick="saveAsrUrl()" style="background:#1f6feb;color:#fff;border:none;border-radius:8px;padding:0.4rem 0.8rem;font-size:0.78rem;cursor:pointer;white-space:nowrap">保存</button>
|
|
401
|
+
</div>
|
|
402
|
+
<div id="set-asr-status" style="font-size:0.72rem;min-height:1.2em;margin-top:0.25rem;color:#8b949e"></div>
|
|
403
|
+
</div>
|
|
404
|
+
<div class="setting-group">
|
|
405
|
+
<h4>服务管理</h4>
|
|
406
|
+
<button onclick="restartMyhi()" style="width:100%;padding:0.6rem;background:#da3633;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:0.85rem;font-weight:600;margin-top:0.1rem">重启 myhi</button>
|
|
407
|
+
</div>
|
|
395
408
|
</div>
|
|
396
409
|
|
|
397
410
|
<!-- QR弹窗 -->
|
|
@@ -2075,11 +2088,49 @@
|
|
|
2075
2088
|
document.getElementById('set-parse').checked = settings.parseOutput;
|
|
2076
2089
|
document.getElementById('set-thinking').checked = settings.showThinking;
|
|
2077
2090
|
document.getElementById('set-collapse').checked = settings.collapseTools;
|
|
2091
|
+
// 从服务端加载 ASR URL
|
|
2092
|
+
fetch('/api/server-config').then(r => r.json()).then(d => {
|
|
2093
|
+
document.getElementById('set-asr-url').value = d.asrUrl || '';
|
|
2094
|
+
}).catch(() => {});
|
|
2078
2095
|
}
|
|
2079
2096
|
document.getElementById('set-parse').addEventListener('change', (e) => { settings.parseOutput = e.target.checked; saveSettings(); });
|
|
2080
2097
|
document.getElementById('set-thinking').addEventListener('change', (e) => { settings.showThinking = e.target.checked; saveSettings(); });
|
|
2081
2098
|
document.getElementById('set-collapse').addEventListener('change', (e) => { settings.collapseTools = e.target.checked; saveSettings(); });
|
|
2082
2099
|
|
|
2100
|
+
window.saveAsrUrl = async function() {
|
|
2101
|
+
const url = document.getElementById('set-asr-url').value.trim();
|
|
2102
|
+
const statusEl = document.getElementById('set-asr-status');
|
|
2103
|
+
statusEl.style.color = '#8b949e';
|
|
2104
|
+
statusEl.textContent = '保存中...';
|
|
2105
|
+
try {
|
|
2106
|
+
const resp = await fetch('/api/server-config', {
|
|
2107
|
+
method: 'POST',
|
|
2108
|
+
headers: { 'Content-Type': 'application/json' },
|
|
2109
|
+
body: JSON.stringify({ asrUrl: url }),
|
|
2110
|
+
});
|
|
2111
|
+
const data = await resp.json();
|
|
2112
|
+
if (data.ok) {
|
|
2113
|
+
statusEl.style.color = '#3fb950';
|
|
2114
|
+
statusEl.textContent = url ? '已保存,重启后生效(如已设置 ASR_URL 环境变量则以环境变量为准)' : '已清空';
|
|
2115
|
+
} else {
|
|
2116
|
+
statusEl.style.color = '#f85149';
|
|
2117
|
+
statusEl.textContent = '保存失败: ' + (data.error || '未知错误');
|
|
2118
|
+
}
|
|
2119
|
+
} catch (e) {
|
|
2120
|
+
statusEl.style.color = '#f85149';
|
|
2121
|
+
statusEl.textContent = '请求失败: ' + e.message;
|
|
2122
|
+
}
|
|
2123
|
+
};
|
|
2124
|
+
|
|
2125
|
+
window.restartMyhi = async function() {
|
|
2126
|
+
if (!confirm('确认重启 myhi 服务?\n重启期间连接会短暂中断,页面将自动重连。')) return;
|
|
2127
|
+
try {
|
|
2128
|
+
await fetch('/api/restart', { method: 'POST' });
|
|
2129
|
+
} catch {}
|
|
2130
|
+
addStatusMessage('服务重启中,请稍候...');
|
|
2131
|
+
closeSettings();
|
|
2132
|
+
};
|
|
2133
|
+
|
|
2083
2134
|
// ── 辅助 ──────────────────────────────────────
|
|
2084
2135
|
function updateViewers(count) { document.getElementById('viewer-count').textContent = count > 1 ? `${count} 人在线` : ''; }
|
|
2085
2136
|
window.goBack = function() { window.location.href = '/'; };
|