Files
wehub-resource-sync 70cb81e982
CI / Test (macos-latest, stable) (push) Has been cancelled
CI / Test (ubuntu-latest, stable) (push) Has been cancelled
CI / Test (windows-latest, stable) (push) Has been cancelled
CI / Lint (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:45:24 +08:00

14 KiB
Raw Permalink Blame History

Social Cover (9)

🇺🇸 English 🇪🇸 Español 🇫🇷 Français 🇸🇴 Soomaali 🇸🇦 العربية 🇧🇪/🇳🇱 Nederlands 🇮🇳 हिन्दी 🇧🇩 বাংলা 🇨🇿 Čeština 🇰🇷 한국어 🇯🇵 日本語

Website · Try Sandbox · Docs · Discussions

Crates.io docs.rs License

Stars Forks Issues Discord

memvid%2Fmemvid | Trendshift

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 npm
Node.js SDK npm install @memvid/sdk npm
Python SDK pip install memvid-sdk PyPI
Rust cargo add memvid-core Crates.io

Instalace (Rust)

Požadavky

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.