dsh: multimodal video/screen-recording analyzer (GLM-5v + ffmpeg frames); fix File/UploadFile imports + ffmpeg in image
This commit is contained in:
@@ -87,6 +87,8 @@
|
||||
<button type="button" id="sumDocs" style="border:1px solid #ddd;border-radius:8px;padding:6px 10px;cursor:pointer">Summarise file</button>
|
||||
<input id="genInput" type="text" placeholder="Describe an image to generate…" style="flex:2;min-width:200px;border:1px solid #ddd;border-radius:8px;padding:6px 10px" />
|
||||
<button type="button" id="genImg" style="border:1px solid #ddd;border-radius:8px;padding:6px 10px;cursor:pointer">Generate image</button>
|
||||
<input type="file" id="vidIn" accept="video/*" title="Analyze a video / screen recording (GLM multimodal)" style="flex:1;min-width:150px;border:1px solid #ddd;border-radius:8px;padding:6px;">
|
||||
<button type="button" id="genVid" style="border:1px solid #ddd;border-radius:8px;padding:6px 10px;cursor:pointer">Analyze video</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -203,6 +205,20 @@
|
||||
}
|
||||
document.getElementById('sumWeb').addEventListener('click', () => runTool('/api/summarize/web', 'urlInput', 'Summarise page', 'url'));
|
||||
document.getElementById('sumDocs').addEventListener('click', () => runTool('/api/summarize/docs', 'fileInput', 'Summarise file', 'path'));
|
||||
document.getElementById('genVid').addEventListener('click', async () => {
|
||||
const f = document.getElementById('vidIn').files[0];
|
||||
if (!f) return;
|
||||
addBubble('user', 'Analyze video: ' + f.name); addBubble('bot', '');
|
||||
const b = logEl.lastElementChild.querySelector('.bubble'); b.textContent = '…analyzing';
|
||||
const fd = new FormData(); fd.append('file', f);
|
||||
try {
|
||||
const res = await fetch('/api/tool/video', { method: 'POST', body: fd });
|
||||
const d = await res.json();
|
||||
b.textContent = d.ok ? (d.summary || '') : '[error: ' + (d.error || 'unknown') + ']';
|
||||
} catch (err) { b.textContent = '[error: ' + err + ']'; }
|
||||
logEl.scrollTop = logEl.scrollHeight;
|
||||
});
|
||||
|
||||
document.getElementById('genImg').addEventListener('click', async () => {
|
||||
const val = document.getElementById('genInput').value.trim(); if (!val) return;
|
||||
addBubble('user', 'Generate: ' + val); addBubble('bot', '');
|
||||
|
||||
Reference in New Issue
Block a user