您的私人AI堆栈
矢量数据库+RAG+LLM——全部在浏览器中
](https://www.npmjs.com/package/haven) 
______________________________________________________________________
为什么是Haven?
构建没有云依赖的RAG应用程序。所有处理都使用WebAssembly和WebGPU在客户端进行。
- 🔒 私人:数据永远不会离开浏览器
- ⚡ 快速:带WASM回退的WebGPU加速
- 💰 自由:零云成本,无API密钥
- 📦 完成:矢量数据库+嵌入+LLM+RAG
- 🌐 离线:初始加载后无需互联网即可工作
快速开始
npm install havenimport Haven from 'haven';
// Create database
const db = new Haven({
storage: { dbName: 'my-app' },
index: { dimensions: 384, metric: 'cosine' },
embedding: { model: 'Xenova/all-MiniLM-L6-v2', device: 'wasm' },
});
await db.initialize();
// Add documents
await db.insert({
text: 'Haven is a privacy-first vector database for browsers',
metadata: { category: 'intro' },
});
// Semantic search
const results = await db.search({
text: 'What is Haven?',
k: 5,
});
console.log(results);特性
- 矢量搜索:使用语义理解存储和搜索10万多个文档
- 本地嵌入:Transformers.js与WebGPU加速集成
- 私人RAG:完整的检索增强生成管道
- 双LLM支持:WebLLM(WebGPU)+Wllama(WASM),具有自动回退功能
- MCP集成:与Claude Desktop和AI代理生态系统合作
- 易于集成:具有完全类型安全性的Clean TypeScript API
用例
隐私关键应用程序
- 法律技术、医疗保健、金融
- 设计符合GDPR
- 律师-客户特权保护
离线优先应用
- 浏览器扩展
- 电子应用
- 渐进式网络应用
成本敏感项目
- 零云基础设施成本
- 没有API费率限制
- 无限制使用
核心功能
矢量搜索
// Semantic search with metadata filtering
const results = await db.search({
text: 'machine learning concepts',
k: 10,
filter: { field: 'category', operator: 'eq', value: 'AI' },
});RAG管道
import { RAGPipelineManager, WllamaProvider } from 'haven';
// Setup RAG with local LLM
const llm = new WllamaProvider({ model: '...' });
const rag = new RAGPipelineManager(db, llm, embedding);
// Ask questions with context
const result = await rag.query('What is machine learning?', {
topK: 3,
generateOptions: { maxTokens: 256, temperature: 0.7 },
});
console.log(result.answer);
console.log(result.sources); // CitationsMCP集成
import { MCPServer } from 'haven';
// Expose as MCP tools for AI agents
const mcp = new MCPServer(db, rag);
// Use with Claude Desktop, ChatGPT, etc.
const tools = mcp.getTools();文档
入门指南
教程
高级
建筑
Haven将多种技术组合成一个有凝聚力的堆栈:
- 存储:用于持久矢量存储的IndexedDB
- 索引:Voy(WASM)用于快速k-d树搜索
- 嵌入:带WebGPU/WASM的Transformers.js
- LLM:WebLLM(WebGPU)和Wllama(WASM)
- 协议:用于AI代理集成的MCP
所有组件都完全在浏览器中运行,与服务器无关。
高层架构图
graph TB
subgraph "Application Layer"
APP[User Application]
MCP[MCP Interface]
end
subgraph "API Layer"
API[VectorDB API]
RAG[RAG Pipeline Manager]
end
subgraph "Embedding Layer"
TJS[Transformers.js]
CACHE[Model Cache]
end
subgraph "LLM Layer"
WLLAMA[wllama - WASM]
WEBLLM[WebLLM - WebGPU]
end
subgraph "Index Layer"
VOY[Voy WASM Engine]
IDX[Index Manager]
end
subgraph "Storage Layer"
IDB[IndexedDB]
STORE[Storage Manager]
end
APP --> API
MCP --> API
API --> RAG
API --> IDX
RAG --> TJS
RAG --> WLLAMA
RAG --> WEBLLM
TJS --> CACHE
IDX --> VOY
IDX --> STORE
STORE --> IDB
VOY --> IDB演出
| 操作 | 延迟 | 吞吐量 |
|---|---|---|
| 搜索(10K矢量) | \<50ms | - |
| 插入(批量) | - | 2000+文档/秒 |
| 嵌入生成 | 50-200ms | - |
| RAG查询(完整) | 500ms-5s | - |
*Chrome 120、M1 MacBook Pro的基准测试*
生产使用
Haven为隐私层功能提供支持 我们正在阅读,在没有云传输的情况下为欧盟律师事务所处理敏感法律文件。
发展
# Install dependencies
npm install
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Run integration tests (requires network)
npm run test:integration
# Build library
npm run build
# Type check
npm run type-check
# Run benchmarks
npm run benchmark浏览器支持
- Chrome/Edge:90+(WebGPU:113+)
- 火狐:88+(WebGPU:尚不支持)
- 游猎:14+(WebGPU:尚不支持)
要求:
- IndexedDB支持
- WebAssembly支持
- ES2020+JavaScript
可选:
- WebGPU用于加速推理
- 用于多线程的SharedArrayBuffer
路线图
- \[\]Python绑定(PyScript)
- \[\]React钩子包
- \[\]混合搜索(密集+稀疏)
- \[\]多模态嵌入(CLIP)
- \[\]浏览器中的量化
贡献
欢迎投稿!请打开问题或PR。
许可证
麻省理工学院©2024
______________________________________________________________________
内置于❤️ 面向注重隐私的开发人员
