Compare commits

...

3 Commits

Author SHA1 Message Date
6dc6a405f2 Merge remote-tracking branch 'origin/main' 2026-06-12 16:09:42 +08:00
d4cdfe962e vault backup: 2026-06-12 16:09:42 2026-06-12 16:09:42 +08:00
hhs
04c0172038 vault backup: 2026-06-12 16:05:34 2026-06-12 16:05:34 +08:00
2 changed files with 14 additions and 4 deletions

View File

@@ -192,10 +192,11 @@ func GetWeeklyUsage(ctx context.Context, pool *pgxpool.Pool, userID string) ([]U
}
```
JSONB 查询示例——在对话上下文中搜索包含特定关键词的消息
JSONB 包容查询示例——精确匹配 JSONB 子结构
```sql
-- 在 messages.contentJSONB中搜索包含"花"的用户消息
-- @> 是包容操作符,检查 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 @@ VADVoice Activity Detection是交互流程的**起始触发器**——用
| 方案 | 特点 | 适用场景 |
|------|------|---------|
| **@ricky0123/vad-web** | 基于 WebRTC VAD2KB,纯前端零延迟 | 只需要"有没有人说话"的二分类判断 |
| **@ricky0123/vad-web** | 基于 WebRTC VAD体积极小(~100KB 含 WASM,纯前端零延迟 | 只需要"有没有人说话"的二分类判断 |
| **Web Audio API + 能量检测** | 用 AnalyserNode 计算音量 RMS阈值判断 | 极简场景,但抗噪能力差 |
| **ONNX 跑 Silero VAD** | 神经网络级 VAD准确率高但推理开销更大 | 嘈杂环境下需要更精准的检测 |
| **Picovoice Porcupine** | 商业级唤醒词引擎,支持自定义唤醒词 | 需要"嘿 Siri"式的唤醒词功能 |

View File

@@ -85,6 +85,14 @@ graph LR
REDIS -->|"TTL 过期自动清理"| CLEANUP["自动清理"]
```
#### PostgreSQL
- **一句话**:功能强大的开源关系型数据库,适合持久化存储结构化数据。
- **展开**Redis 存的数据在内存里,重启就丢了。**PostgreSQL**(简称 PG则把数据写到磁盘上永久保存。它用**SQL**语言查询支持复杂的联表查询和事务保证数据一致性。在本项目里上线后用来存对话历史、用量统计、用户偏好等需要「永久保留」的数据。MVP 阶段可以先不用,等产品验证后再引入。
> [!question] 想一想
> Redis 超快但重启丢数据PostgreSQL 慢一点但数据不丢。为什么不二选一因为它们擅长的事情不同——Redis 做「热数据缓存」频繁读写的会话状态PG 做「冷数据持久化」(需要长期保存的记录)。两者配合才是生产级架构。
#### Viper
- **一句话**Go 语言的配置管理工具,帮你读取各种格式的配置文件。
@@ -136,6 +144,7 @@ graph LR
| VAD | 语音技术 | 检测人有没有在说话 |
| Go | 后端语言 | 高并发,轻量协程 |
| Redis | 数据库 | 内存 KV 缓存,读写极快 |
| PostgreSQL | 数据库 | 关系型数据库,数据持久化 |
| LLM | AI 模型 | 大语言模型 |
| STT | AI 能力 | 语音转文字 |
| TTS | AI 能力 | 文字转语音 |