14 KiB
🇺🇸 English 🇪🇸 Español 🇫🇷 Français 🇸🇴 Soomaali 🇸🇦 العربية 🇧🇪/🇳🇱 Nederlands 🇮🇳 हिन्दी 🇧🇩 বাংলা 🇨🇿 Čeština 🇰🇷 한국어 🇯🇵 日本語
Website · Try Sandbox · Docs · Discussions
Memvid je jednosouborová paměťová vrstva pro AI agenty s okamžitým vyhledáváním a dlouhodobou pamětí.
Trvalá, verzovaná a přenosná paměť, bez databází.
⭐️ Zanechte hvězdičku na podporu projektu ⭐️
Co je Memvid?
Memvid je systém pro tvorbu AI pamětí, který balí vaše data, embeddingy, strukturu vyhledávání a metadata do jediného souboru.
Místo spouštění složitých RAG řešení nebo serverových vektorových databází umožňuje Memvid rychlé vyhledávání přímo ze souboru.
Výsledkem je modelově nezávislá paměťová vrstva bez infrastruktury, která poskytuje agentům AI trvalou, dlouhodobou paměť, kterou lze přenášet kamkoli.
Co jsou inteligentní rámce?
Memvid čerpá inspiraci z enkódování videa, nikoli za účelem ukládání videa, ale za účelem organizace paměti AI jako ultraefektivní sekvence inteligentních rámců, do kterých lze data pouze přidávat.
Inteligentní rámec je neměnná jednotka, která ukládá obsah spolu s časovými značkami, kontrolními součty a základními metadaty. Rámce jsou seskupeny tak, aby umožňovaly efektivní kompresi, indexování a paralelní čtení.
Tento design založený na rámcích umožňuje:
- Pouze zápisy bez úpravy nebo poškození existujících dat
- Dotazy na minulé stavy paměti
- Kontrolu vývoje znalostí ve stylu časové osy
- Bezpečnost proti selhání díky závazným, neměnným rámcům
- Efektivní kompresi pomocí technik převzatých z kódování videa
Výsledkem je jediný soubor, který se chová jako časová osa paměti pro systémy AI, ve které lze snadno hledat.
Základní koncepty
-
Living Memory Engine Kontinuální přidávání, rozvětvování a vývoj paměti, napříč relacemi.
-
Capsule Context (
.mv2) Samostatné, sdílené paměťové kapsle s pravidly a dobou platnosti. -
Time-Travel Debugging Převíjení, přehrávání nebo rozvětvování libovolného stavu paměti.
-
Smart Recall Přístup k lokální paměti za méně než 5 ms s prediktivním ukládáním do mezipaměti.
-
Codec Intelligence Automaticky vybírá a vylepšuje kompresi v průběhu času.
Případy použití
Memvid je přenosná paměťová vrstva bez serveru, která poskytuje agentům AI trvalou paměť a rychlé vyvolání. Protože je modelově nezávislá, multimodální a funguje zcela offline, vývojáři používají Memvid v široké škále reálných aplikací.
- Dlouhodobě běžící AI agenti
- Firemní znalostní báze
- Offline-First AI systémy
- Porozumění kódu
- Agenti zákaznické podpory
- Automatizace pracovních postupů
- Asistenti prodeje a marketingu
- Osobní znalostní asistenti
- Lékařští, právní a finanční agenti
- Auditovatelné a laditelné AI pracovní postupy
- Vlastní aplikace
SDK a CLI
Používejte Memvid ve svém preferovaném jazyce:
| Balíček | Instalace | Odkazy |
|---|---|---|
| CLI | npm install -g memvid-cli |
|
| Node.js SDK | npm install @memvid/sdk |
|
| Python SDK | pip install memvid-sdk |
|
| Rust | cargo add memvid-core |
Instalace (Rust)
Požadavky
- Rust 1.85.0+ — Instalace z rustup.rs
Přidejte do svého projektu
[dependencies]
memvid-core = "2.0"
Funkční příznaky
| Funkce | Popis |
|---|---|
lex |
Fulltextové vyhledávání s hodnocením BM25 (Tantivy) |
pdf_extract |
Čistá extrakce textu z PDF v Rustu |
vec |
Vektorové vyhledávání podobnosti (HNSW + lokální vkládání textu přes ONNX) |
clip |
Vizuální vkládání CLIP pro vyhledávání obrázků |
whisper |
Přepis zvuku pomocí Whisper |
temporal_track |
Analýza datumu v přirozeném jazyce ("minulé úterý") |
parallel_segments |
Vícevláknové načítání |
encryption |
Kapsle šifrované pomocí hesla (.mv2e) |
Povolte funkce podle potřeby:
[dependencies]
memvid-core = { version = "2.0", features = ["lex", "vec", "temporal_track"] }
Rychlý start
use memvid_core::{Memvid, PutOptions, SearchRequest};
fn main() -> memvid_core::Result<()> {
// Vytvoř nový paměťový soubor
let mut mem = Memvid::create("knowledge.mv2")?;
// Přidej dokumenty s metadaty
let opts = PutOptions::builder()
.title("Zápis jednání")
.uri("mv2://meetings/2024-01-15")
.tag("project", "alpha")
.build();
mem.put_bytes_with_options(b"Q4 plánované diskuze...", opts)?;
mem.commit()?;
// Vyhledávání
let response = mem.search(SearchRequest {
query: "planning".into(),
top_k: 10,
snippet_chars: 200,
..Default::default()
})?;
for hit in response.hits {
println!("{}: {}", hit.title.unwrap_or_default(), hit.text);
}
Ok(())
}
Sestavení
Klonujte repozitář:
git clone https://github.com/memvid/memvid.git
cd memvid
Sestavení v režimu developkment:
cargo build
Sestavení v režimu production (optimalizované):
cargo build --release
Sestavení s konkrétními funkcemi:
cargo build --release --features "lex,vec,temporal_track"
Spuštění testů
Spuštění všech testů:
cargo test
Spuštění testů s výstupem:
cargo test -- --nocapture
Spuštění konkrétního testu:
cargo test test_name
Spuštění pouze integračních testů:
cargo test --test lifecycle
cargo test --test search
cargo test --test mutation
Příklady
Adresář examples/ obsahuje funkční příklady:
Základní použití
Demonstruje operace vytváření, vkládání, vyhledávání a práci s časovou osou:
cargo run --example basic_usage
Načítání PDF
Načítání a vyhledávání v dokumentech PDF (demo používá dokument "Attention Is All You Need"):
cargo run --example pdf_ingestion
Vizuální vyhledávání CLIP
Vyhledávání obrázků pomocí vložení CLIP (vyžaduje funkci clip):
cargo run --example clip_visual_search --features clip
Přepis Whisper
Přepis zvuku (vyžaduje funkci whisper):
cargo run --example test_whisper --features whisper
Modely vkládání textu
Funkce vec zahrnuje podporu lokálního vkládání textu pomocí modelů ONNX. Před použitím lokálního vkládání textu je nutné ručně stáhnout soubory modelů.
Rychlý start: BGE-small (doporučeno)
Stáhněte si výchozí model BGE-small (384 dimenzí, rychlý a efektivní):
mkdir -p ~/.cache/memvid/text-models
# Download ONNX model
curl -L 'https://huggingface.co/BAAI/bge-small-en-v1.5/resolve/main/onnx/model.onnx' \
-o ~/.cache/memvid/text-models/bge-small-en-v1.5.onnx
# Download tokenizer
curl -L 'https://huggingface.co/BAAI/bge-small-en-v1.5/resolve/main/tokenizer.json' \
-o ~/.cache/memvid/text-models/bge-small-en-v1.5_tokenizer.json
Dostupné modely
| Model | Rozměry | Velikost | Nejvhodnější pro |
|---|---|---|---|
bge-small-en-v1.5 |
384 | ~120 MB | Výchozí, rychlý |
bge-base-en-v1.5 |
768 | ~420 MB | Lepší kvalita |
nomic-embed-text-v1.5 |
768 | ~530 MB | Univerzální úkoly |
gte-large |
1024 | ~1,3 GB | Nejvyšší kvalita |
Další modely
BGE-base (768 dimensions):
curl -L 'https://huggingface.co/BAAI/bge-base-en-v1.5/resolve/main/onnx/model.onnx' \
-o ~/.cache/memvid/text-models/bge-base-en-v1.5.onnx
curl -L 'https://huggingface.co/BAAI/bge-base-en-v1.5/resolve/main/tokenizer.json' \
-o ~/.cache/memvid/text-models/bge-base-en-v1.5_tokenizer.json
Nomic (768 dimensions):
curl -L 'https://huggingface.co/nomic-ai/nomic-embed-text-v1.5/resolve/main/onnx/model.onnx' \
-o ~/.cache/memvid/text-models/nomic-embed-text-v1.5.onnx
curl -L 'https://huggingface.co/nomic-ai/nomic-embed-text-v1.5/resolve/main/tokenizer.json' \
-o ~/.cache/memvid/text-models/nomic-embed-text-v1.5_tokenizer.json
GTE-large (1024 dimensions):
curl -L 'https://huggingface.co/thenlper/gte-large/resolve/main/onnx/model.onnx' \
-o ~/.cache/memvid/text-models/gte-large.onnx
curl -L 'https://huggingface.co/thenlper/gte-large/resolve/main/tokenizer.json' \
-o ~/.cache/memvid/text-models/gte-large_tokenizer.json
Použití v kódu
use memvid_core::text_embed::{LocalTextEmbedder, TextEmbedConfig};
use memvid_core::types::embedding::EmbeddingProvider;
// Použít výchozí model (BGE-small)
let config = TextEmbedConfig::default();
let embedder = LocalTextEmbedder::new(config)?;
let embedding = embedder.embed_text("hello world")?;
assert_eq!(embedding.len(), 384);
// Použijte jiný model
let config = TextEmbedConfig::bge_base();
let embedder = LocalTextEmbedder::new(config)?;
Kompletní příklad s výpočtem podobnosti a hodnocením vyhledávání najdete v souboru examples/text_embedding.rs.
Formát souboru
Vše je uloženo v jediném souboru .mv2:
┌────────────────────────────┐
│ Záhlaví (4 KB) │ Magie, verze, kapacita
├────────────────────────────┤
│ Embedded WAL (1-64 MB) │ Obnova po selhání
├────────────────────────────┤
│ Datové segmenty │ Komprimované rámce
├────────────────────────────┤
│ Lex Index │ Tantivy full-text
├────────────────────────────┤
│ Vec Index │ Vektory HNSW
├────────────────────────────┤
│ Time Index │ Chronologické řazení
├────────────────────────────┤
│ TOC (zápatí) │ Segmentové posuny
└────────────────────────────┘
Žádné další soubory, jako je .wal, .lock, .shm nejsou potřeba. Nikdy.
Kompletní specifikace formátu souboru najdete v MV2_SPEC.md.
Podpora
Máte dotazy nebo připomínky? E-mail: contact@memvid.com
Dejte ⭐ a projevte svou podporu
Licence
Apache License 2.0 — podrobnosti najdete v souboru LICENSE.