vault backup: 2026-06-12 16:05:34
This commit is contained in:
@@ -192,10 +192,11 @@ func GetWeeklyUsage(ctx context.Context, pool *pgxpool.Pool, userID string) ([]U
|
||||
}
|
||||
```
|
||||
|
||||
JSONB 查询示例——在对话上下文中搜索包含特定关键词的消息:
|
||||
JSONB 包容查询示例——精确匹配 JSONB 子结构:
|
||||
|
||||
```sql
|
||||
-- 在 messages.content(JSONB)中搜索包含"花"的用户消息
|
||||
-- @> 是包容操作符,检查 content 是否包含 {"text": "花"} 这个子结构
|
||||
-- 适合"字段精确匹配"场景;若需模糊关键词搜索,应使用 tsvector 全文检索
|
||||
SELECT id, content, created_at
|
||||
FROM messages
|
||||
WHERE role = 'user'
|
||||
@@ -292,7 +293,7 @@ graph TD
|
||||
| **Transformers.js** | Hugging Face 生态,直接跑 HuggingFace 上的模型 | 想快速集成 NLP/CV 预训练模型(如 Whisper、CLIP) |
|
||||
|
||||
> [!question] 思考
|
||||
> 为什么 ONNX Runtime Web 胜出?项目需要同时跑**两种**轻量模型——VAD 和关键帧检测,这是自定义 pipeline,不是单一 CV 任务。ONNX 是跨框架的通用格式,可以在 Python 端用 PyTorch 训练,导出 ONNX,然后在浏览器用统一引擎加载。TensorFlow.js 被锁死在 TF 生态,MediaPipe 虽然开箱即用但灵活性不够(不能自定义模型逻辑)。**ONNX Runtime 的核心优势是"模型无关"**。
|
||||
> 为什么 ONNX Runtime Web 胜出?项目需要同时跑**两种**轻量模型——VAD 和关键帧检测,这是自定义 pipeline,不是单一 CV 任务。ONNX 是跨框架的通用格式,无论模型用什么框架训练,都可以导出为 ONNX 并在浏览器中用统一引擎加载。TensorFlow.js 被锁死在 TF 生态,MediaPipe 虽然开箱即用但灵活性不够(不能自定义模型逻辑)。**ONNX Runtime 的核心优势是"模型无关"**。
|
||||
|
||||
### 语音检测:@ricky0123/vad-web
|
||||
|
||||
@@ -300,7 +301,7 @@ VAD(Voice Activity Detection)是交互流程的**起始触发器**——用
|
||||
|
||||
| 方案 | 特点 | 适用场景 |
|
||||
|------|------|---------|
|
||||
| **@ricky0123/vad-web** | 基于 WebRTC VAD,2KB,纯前端零延迟 | 只需要"有没有人说话"的二分类判断 |
|
||||
| **@ricky0123/vad-web** | 基于 WebRTC VAD,体积极小(~100KB 含 WASM),纯前端零延迟 | 只需要"有没有人说话"的二分类判断 |
|
||||
| **Web Audio API + 能量检测** | 用 AnalyserNode 计算音量 RMS,阈值判断 | 极简场景,但抗噪能力差 |
|
||||
| **ONNX 跑 Silero VAD** | 神经网络级 VAD,准确率高,但推理开销更大 | 嘈杂环境下需要更精准的检测 |
|
||||
| **Picovoice Porcupine** | 商业级唤醒词引擎,支持自定义唤醒词 | 需要"嘿 Siri"式的唤醒词功能 |
|
||||
|
||||
Reference in New Issue
Block a user