feat: 实现关键帧检测与成本控制

- EdgeProcessor:sampleFrame 降采样 160x120 + compareFrames 像素差异对比
- 重复画面跳过:similarity > 0.9 时不发送 query
- 混合采样策略:静默 5s / 用户说话 1s(docs/08-成本控制.md)
- 请求统计:queryCount + totalTokens 实时显示
- App 状态栏显示成本统计

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-06-13 14:38:15 +08:00
parent 8dc59d2c09
commit 2c6489b9a6
5 changed files with 157 additions and 14 deletions

View File

@@ -26,6 +26,7 @@ function App() {
stream,
config,
updateConfig,
stats,
startSession,
stopSession,
interrupt,
@@ -106,6 +107,13 @@ function App() {
</div>
</main>
{isConnected && (stats.queryCount > 0 || stats.totalTokens > 0) && (
<div className="stats-bar">
{stats.queryCount > 0 && <span>{stats.queryCount} </span>}
{stats.totalTokens > 0 && <span>· {stats.totalTokens} tokens</span>}
</div>
)}
<footer className="app-footer">
{!isConnected ? (
<button className="btn btn--primary" onClick={startSession}>