Files
memvid--memvid/docs/i18n/README.ko.md
T
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 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는 AI 에이전트를 위한 단일 파일 메모리 레이어로, 인스턴스 검색 및 장기 메모리 기능을 제공합니다.
데이터 베이스 없이 지속적이고, 버전 관리가 용이하며 여러 어플리케이션에 자유로운 적용이 가능합니다.

️ STAR로 이 프로젝트를 지원해주세요

Memvid란?

Memvid는 데이터, 임베딩, 검색 구조 및 메타데이터를 단일 파일로 패키징하는 이식 가능한 AI 메모리 시스템입니다. ​ 복잡한 RAG 파이프라인이나 서버 기반 벡터 데이터베이스를 실행하는 대신, Memvid는 파일에서 직접 빠른 검색을 가능하게 합니다.

결과적으로 모델에 독립적이며 인프라 구조와는 독립적인 메모리 레이어로, AI 에이전트가 어디서나 휴대할 수 있는 지속적 장기 메모리를 제공합니다


Smart Frames란?

Memvid는 AI 메모리를 추가 전용(append-only)의 초고효율 Smart Frame 시퀀스로 구성하기 위해 비디오 인코딩에서 영감을 받았습니다.

Smart Frame은 타임스탬프, 체크섬 및 기본 메타데이터와 함께 콘텐츠를 저장하는 불변 단위입니다. 프레임은 효율적인 압축, 인덱싱 및 병렬 읽기를 허용하는 방식으로 그룹화됩니다.

이러한 프레임 기반 설계는 다음을 가능하게 합니다:

  • 기존 데이터를 수정하거나 손상시키지 않는 추가 전용(append-only) 쓰기
  • 과거 메모리 상태에 대한 쿼리
  • 지식이 어떻게 변화하는지에 대한 타임라인 스타일 검사
  • 불변 프레임워크를 통한 크래시 안전성
  • 비디오 인코딩에서 차용한 기술을 사용한 효율적인 압축

이를 위한 결과물은 AI 시스템을 위한 되감기 가능한 메모리 타임라인처럼 동작하는 단일 파일입니다.


주요 개념

  • 실시간 변화하는 메모리 엔진 세션 간에 메모리를 지속적으로 추가, 분기 및 변화시킵니다.

  • 문맥 캡슐화 (.mv2) 규칙과 만료 시간이 포함된 자립형 공유 가능 형대의 메모리 캡슐입니다.

  • 시간 기반 디버깅 임의의 메모리 상태로 되감기, 재생 또는 분기합니다.

  • 예측 기반 호출 예측 캐싱을 사용한 5ms 미만 로컬 메모리 액세스를 제공합니다.

  • 코덱 인텔리전스 시간 경과에 따라 압축을 자동 선택 및 업그레이드합니다.


이용 사례

Memvid 이동 가능한 서버리스 메모리 레이어로 AI 에이전트에 지속적인 메모리와 빠른 호출을 제공합니다. 이는 모델과 독립적이고, 멀티모달을 지원하며, 인터넷을 사용하지 않으므로, 개발자들은 다양한 실제 어플리케이션에서 Memvid를 활용하고 있습니다.

  • 장기 실행 AI 에이전트
  • 기업 내의 지식 베이스
  • 오프라인 우선의 AI 시스템
  • 코드베이스 이해
  • 고객 지원 에이전트
  • 워크플로 자동화
  • 판매 및 마케팅 코파일럿
  • 개인 지식 어시스턴트
  • 의료, 법률 및 금융 에이전트
  • 모니터링 및 디버깅 가능한 AI 워크플로
  • 그 외의 여러 애플리케이션

SDKs & CLI

원하는 언어로 Memvid를 사용하세요:

패키지 설치 커맨드 링크
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

설치 (Rust)

요구 사항

  • Rust 1.85.0+rustup.rs에서 설치 가능합니다.

프로젝트에 추가

[dependencies]
memvid-core = "2.0"

Feature Flags

Feature Description
lex BM25 랭킹 기반 전체 텍스트 검색 (Tantivy)
pdf_extract Rust 기반 PDF 텍스트 추출
vec 벡터 유사도 검색 (HNSW + ONNX)
clip 이미지 검색을 위한 CLIP 임베딩
whisper Whisper 기반 오디오 전사
temporal_track 자연어 날짜 추출 ("지난 화요일")
parallel_segments 멀티-스레딩 처리
encryption Password 기반 암호화 (.mv2e)

필요한 기능을 아래 방식으로 활성화하세요:

[dependencies]
memvid-core = { version = "2.0", features = ["lex", "vec", "temporal_track"] }

Quick Start

use memvid_core::{Memvid, PutOptions, SearchRequest};

fn main() -> memvid_core::Result<()> {
    // Create a new memory file
    let mut mem = Memvid::create("knowledge.mv2")?;

    // Add documents with metadata
    let opts = PutOptions::builder()
        .title("Meeting Notes")
        .uri("mv2://meetings/2024-01-15")
        .tag("project", "alpha")
        .build();
    mem.put_bytes_with_options(b"Q4 planning discussion...", opts)?;
    mem.commit()?;

    // Search
    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(())
}

빌드

이 레포지토리 클론:

git clone https://github.com/memvid/memvid.git
cd memvid

디버그 모드로 빌드:

cargo build

배포 모드로 빌드 (optimized):

cargo build --release

특수 기능을 포함하도록 빌드:

cargo build --release --features "lex,vec,temporal_track"

테스트

전체 테스트 실행:

cargo test

테스트 실행 및 결과 출력:

cargo test -- --nocapture

특정 테스트 실행:

cargo test test_name

인테그레이션 테스트만 실행:

cargo test --test lifecycle
cargo test --test search
cargo test --test mutation

예시

examples/ 디렉토리에 예제가 있습니다:

기본 사용법

생성, 추가, 검색 및 타임라인 작업을 보여줍니다:

cargo run --example basic_usage

PDF 수집

PDF 문서 수집 및 검색 ("Attention Is All You Need" 논문 사용):

cargo run --example pdf_ingestion

CLIP 이미지 검색

CLIP 임베딩을 사용한 이미지 검색 (clip 기능 필요):

cargo run --example clip_visual_search --features clip

Whisper 전사

오디오 전사 (whisper 기능 필요):

cargo run --example test_whisper --features whisper

Text Embedding 모델

vec 기능은 ONNX 모델을 사용한 로컬 텍스트 임베딩을 포함합니다. 로컬 텍스트 임베딩을 사용하기 전에 모델 파일을 수동으로 다운로드해야 합니다.

Quick Start: BGE-small (추천함)

기본 BGE-small 모델(384 차원, 빠르고 효율적) 다운로드:

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

지원 모델

모델명 차원 수 크기 권장 용도
bge-small-en-v1.5 384 ~120MB 기본 설정, 가장 빠름
bge-base-en-v1.5 768 ~420MB 꽤 좋은 성능
nomic-embed-text-v1.5 768 ~530MB 다양한 업무 가능
gte-large 1024 ~1.3GB 가장 좋은 성능

타 모델

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

코드 내 사용법

use memvid_core::text_embed::{LocalTextEmbedder, TextEmbedConfig};
use memvid_core::types::embedding::EmbeddingProvider;

// Use default model (BGE-small)
let config = TextEmbedConfig::default();
let embedder = LocalTextEmbedder::new(config)?;

let embedding = embedder.embed_text("hello world")?;
assert_eq!(embedding.len(), 384);

// Use different model
let config = TextEmbedConfig::bge_base();
let embedder = LocalTextEmbedder::new(config)?;

유사도 계산 및 검색 랭킹이 포함된 전체 예제는 examples/text_embedding.rs를 참조하세요.


파일 구조

모든 구성 요소는 단일 .mv2 파일 내에 구성됩니다:

┌────────────────────────────┐
│ Header (4KB)               │  Magic, version, capacity
├────────────────────────────┤
│ Embedded WAL (1-64MB)      │  Crash recovery
├────────────────────────────┤
│ Data Segments              │  Compressed frames
├────────────────────────────┤
│ Lex Index                  │  Tantivy full-text
├────────────────────────────┤
│ Vec Index                  │  HNSW vectors
├────────────────────────────┤
│ Time Index                 │  Chronological ordering
├────────────────────────────┤
│ TOC (Footer)               │  Segment offsets
└────────────────────────────┘

.wal, .lock, .shm, 혹은 그 외의 별도 구성 요소는 없습니다.

MV2_SPEC.md에서 파일 세부 형식을 확인할 수 있습니다.


Support

문의 사항은 아래 이메일로 부탁드립니다. Email: contact@memvid.com

를 눌러 이 프로젝트를 지원해주세요


License

Apache License 2.0 — LICENSE 파일 참고.