Mugu.AI.VectorLite 0.1.0

dotnet add package Mugu.AI.VectorLite --version 0.1.0
                    
NuGet\Install-Package Mugu.AI.VectorLite -Version 0.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Mugu.AI.VectorLite" Version="0.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Mugu.AI.VectorLite" Version="0.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Mugu.AI.VectorLite" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Mugu.AI.VectorLite --version 0.1.0
                    
#r "nuget: Mugu.AI.VectorLite, 0.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Mugu.AI.VectorLite@0.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Mugu.AI.VectorLite&version=0.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Mugu.AI.VectorLite&version=0.1.0
                    
Install as a Cake Tool

Mugu.AI.VectorLite

单文件 · 零配置 · 高性能 — 为 .NET 平台打造的极致轻量嵌入式向量数据库。

.NET 8.0+ C# 12 License


✨ 特性

  • 🗄️ 单文件存储 — 所有数据保存在一个 .vldb 文件中,无需外部数据库
  • ⚡ SIMD 加速 — 向量距离计算自动适配 AVX-512 / AVX2 / Vector<T> 硬件指令集
  • 🔍 混合查询 — 元数据过滤 + 向量语义搜索一站完成
  • 🧠 HNSW 索引 — 分层可导航小世界图,实现近似最近邻的亚线性搜索
  • 🔒 WAL 机制 — 预写日志保证数据持久性与崩溃恢复
  • 🧩 Semantic Kernel 集成 — 开箱即用的 IMemoryStore 适配器
  • 🪶 零依赖 — 核心库仅依赖 Microsoft.Extensions.Logging.AbstractionsSystem.IO.Hashing

🎯 目标场景

场景 说明
桌面端 RAG 应用 本地知识库检索增强生成
个人 AI 助手 对话记忆与上下文管理
游戏 NPC 记忆系统 角色长期记忆存储与语义回忆
边缘设备语义检索 IoT / 嵌入式设备上的轻量向量搜索

🚀 快速开始

安装

<PackageReference Include="Mugu.AI.VectorLite" Version="0.1.0" />

最小示例

using Mugu.AI.VectorLite;

// 打开或创建数据库(单文件,零配置)
using var db = new VectorLiteDB("my_memory.vldb");

// 创建集合(名称 + 向量维度)
var notes = db.GetOrCreateCollection("notes", 1536);

// 插入一条记录
var id = await notes.InsertAsync(new VectorRecord
{
    Vector   = embedding,           // float[],由你的 Embedding 模型生成
    Metadata = new() { ["tag"] = "工作", ["priority"] = 5L },
    Text     = "今天的会议纪要…",
});

// 语义搜索 Top-5
var results = await notes.Query(queryEmbedding)
    .TopK(5)
    .ToListAsync();

foreach (var r in results)
    Console.WriteLine($"[{r.Score:F4}] {r.Record.Text}");

混合查询(过滤 + 向量搜索)

using Mugu.AI.VectorLite.Engine;

// 精确匹配 + 范围过滤(链式 .Where 自动 AND 组合)
var results = await notes.Query(queryEmbedding)
    .Where("tag", "工作")
    .Where(new RangeFilter("priority", lowerBound: 8L))
    .TopK(10)
    .WithMinScore(0.7f)
    .ToListAsync();

📖 更多示例请参见 examples/QuickStart/


🏗️ 架构概览

┌──────────────────────────────────────────────────┐
│  API 层 (public)                                 │
│  VectorLiteDB · Collection · QueryBuilder        │
├──────────────────────────────────────────────────┤
│  核心引擎层 (internal)                           │
│  HNSWIndex · ScalarIndex · QueryEngine           │
│  SIMD Distance (Cosine/Euclidean/DotProduct)     │
├──────────────────────────────────────────────────┤
│  存储层 (internal)                               │
│  FileStorage · PageManager (mmap) · WAL          │
└──────────────────────────────────────────────────┘

数据流

  • 写入InsertAsync → WAL 追加 → HNSW 索引更新 → 异步检查点合并到主文件
  • 查询Query().Where().TopK() → 标量索引预过滤 → HNSW 向量搜索 → 按距离排序返回

🧩 Semantic Kernel 集成

using Mugu.AI.VectorLite.SemanticKernel;

using var db = new VectorLiteDB("sk_memory.vldb");
var memoryStore = new VectorLiteMemoryStore(db);

var memory = new MemoryBuilder()
    .WithMemoryStore(memoryStore)
    .WithTextEmbeddingGeneration(embeddingService)
    .Build();

await memory.SaveInformationAsync("notes", "会议内容…", "meeting-001");

⚙️ 配置

using var db = new VectorLiteDB("my.vldb", new VectorLiteOptions
{
    PageSize              = 8192,                        // 页大小(字节)
    MaxDimensions         = 4096,                        // 最大向量维度
    HnswM                 = 16,                          // HNSW 邻居数
    HnswEfConstruction    = 200,                         // 构建时候选集大小
    HnswEfSearch          = 50,                          // 搜索默认 efSearch
    DefaultDistanceMetric = DistanceMetric.Cosine,       // 距离度量
    CheckpointInterval    = TimeSpan.FromMinutes(5),     // 自动检查点间隔
    LoggerFactory         = loggerFactory,               // ILoggerFactory(可选)
});
参数 默认值 调优建议
HnswM 16 增大→召回率↑内存↑;通用场景 16 足够
HnswEfConstruction 200 100~300,一次构建多次查询用较大值
HnswEfSearch 50 精度要求高可设 100~200,可被查询级覆盖

🧪 构建与测试

# 构建
dotnet build

# 运行功能基线测试(14 项)
dotnet test

# 运行性能基准(BenchmarkDotNet,需 Release 模式)
cd tests/Mugu.AI.VectorLite.QualityGate
dotnet run -c Release

# 运行快速入门示例
cd examples/QuickStart
dotnet run

📁 项目结构

Mugu.AI.VectorLite/
├── src/
│   ├── Mugu.AI.VectorLite/              # 核心库
│   │   ├── API/                         # 公共 API(VectorLiteDB/Collection/QueryBuilder)
│   │   ├── Engine/                      # HNSW 索引 / 标量索引 / 查询引擎 / SIMD 距离
│   │   ├── Storage/                     # 文件存储 / 页管理 / WAL
│   │   └── Common/Exceptions/           # 异常层次
│   └── Mugu.AI.VectorLite.SemanticKernel/  # SK IMemoryStore 适配器
├── tests/
│   ├── Mugu.AI.VectorLite.Tests/        # 单元测试
│   └── Mugu.AI.VectorLite.QualityGate/  # 质量门禁(6 功能基线 + 4 性能基准)
├── examples/
│   └── QuickStart/                      # 快速入门示例
└── docs/
    ├── design/                          # 详细设计文档(5 篇)
    └── reference/                       # 开发参考手册(8 篇)

📚 文档

文档 说明
文档中心 所有文档的总索引
快速入门 5 分钟上手教程
API 参考 公共 API 全量签名
过滤器指南 7 种过滤表达式详解
SK 集成 Semantic Kernel 适配指南
内部架构 存储/索引/引擎实现细节
项目构建 构建命令与依赖版本
质量门禁 基线测试与性能基准

📋 技术栈

组件 版本
.NET 8.0+
C# 12
Microsoft.Extensions.Logging.Abstractions 8.0.2
System.IO.Hashing 8.0.0
Microsoft.SemanticKernel 1.74.0(SK 集成包)
xUnit 2.9.3(测试)
BenchmarkDotNet 0.14.0(基准)
FluentAssertions 6.12.2(断言)

🤝 贡献

  1. Fork 本仓库
  2. 创建特性分支:git checkout -b feature/my-feature
  3. 提交更改(使用简体中文提交信息)
  4. 确保所有测试通过:dotnet test
  5. 提交 Pull Request

编码规范

  • 注释、文档、提交信息使用简体中文
  • 文件编码 UTF-8,换行符 LF
  • 方法 ≤ 30 行,类 ≤ 300 行,嵌套 ≤ 3 层
  • 使用 ILogger 记录日志,禁止 Console.WriteLine

📄 许可证

MIT License


<p align="center"> <sub>Made with ❤️ for the .NET AI ecosystem</sub> </p>

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Mugu.AI.VectorLite:

Package Downloads
Mugu.AI.VectorLite.SemanticKernel

Mugu.AI.VectorLite 的 Microsoft Semantic Kernel IMemoryStore 适配器。

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0 128 7/24/2026
0.0.2 144 4/10/2026
0.0.1 127 4/10/2026