Skip to content
이 페이지는 AI의 도움으로 작성 및 번역되었습니다. 부정확한 내용이 있으면 개선에 참여해 주세요. GitHub에서 편집

스토리지 백엔드

PRX-Memory는 메모리와 벡터 임베딩을 영속화하기 위한 여러 스토리지 백엔드를 지원합니다. prx-memory-storage 크레이트는 모든 백엔드가 구현하는 통합 인터페이스를 제공합니다.

사용 가능한 백엔드

백엔드설정 값벡터 지원영속성적합한 용도
JSONjson항목에 임베딩파일 기반개발, 소규모 데이터셋
SQLitesqlite내장 벡터 컬럼파일 기반프로덕션, 중규모 데이터셋
LanceDBlancedb네이티브 벡터 인덱스디렉토리 기반대규모 데이터셋, 빠른 ANN 검색

기본 백엔드

기본 백엔드는 JSON(PRX_MEMORY_BACKEND=json)으로 추가 설정이 필요 없습니다. 프로덕션 배포에는 SQLite를 권장합니다.

JSON 백엔드

가장 단순한 백엔드로 모든 메모리를 단일 JSON 파일에 저장합니다. 개발, 테스트, 소규모 메모리 세트(10,000개 항목 미만)에 이상적입니다.

bash
PRX_MEMORY_BACKEND=json
PRX_MEMORY_DB=./data/memory-db.json

장점:

  • 제로 설정 -- 파일 경로만 지정.
  • 사람이 읽을 수 있음 -- 모든 텍스트 편집기로 검사 및 편집 가능.
  • 이식성 -- 파일을 복사하여 전체 메모리 데이터베이스를 이동.

한계:

  • 시작 시 전체 파일이 메모리에 로드됨.
  • 쓰기 작업이 전체 파일을 다시 씀.
  • 인덱스 벡터 검색 없음 -- 유사도를 위한 브루트 포스 스캔.

SQLite 백엔드

SQLite는 ACID 트랜잭션, 인덱스 쿼리, 효율적인 유사도 검색을 위한 내장 벡터 컬럼 지원을 제공합니다.

bash
PRX_MEMORY_BACKEND=sqlite
PRX_MEMORY_DB=./data/memory.db

상세 설정은 SQLite 스토리지를 참조하세요.

LanceDB 백엔드 (선택적)

LanceDB는 열 형식 스토리지가 있는 네이티브 근사 최근접 이웃(ANN) 벡터 검색을 제공합니다. lancedb-backend 기능 플래그로 활성화합니다:

bash
cargo build --release -p prx-memory-mcp --bin prx-memoryd --features lancedb-backend
bash
PRX_MEMORY_BACKEND=lancedb
PRX_MEMORY_DB=./data/lancedb

기능 플래그 필요

LanceDB 지원은 기본 빌드에 포함되지 않습니다. 컴파일 시 lancedb-backend 기능 플래그를 활성화해야 합니다.

백엔드 선택

시나리오권장 백엔드
로컬 개발JSON
10만 항목 미만의 프로덕션SQLite
10만 항목 초과의 프로덕션LanceDB
사람이 읽을 수 있는 스토리지 필요JSON
ACID 트랜잭션 필요SQLite
빠른 ANN 벡터 검색 필요LanceDB

스토리지 작업

PRX-Memory는 스토리지 유지 관리를 위한 도구를 제공합니다:

도구설명
memory_export모든 메모리를 이식 가능한 형식으로 내보내기
memory_import내보내기에서 메모리 가져오기
memory_migrate스토리지 백엔드 간 마이그레이션
memory_compact스토리지 최적화 및 공간 회수
memory_reembed새 모델로 모든 메모리 재임베딩

다음 단계

Released under the Apache-2.0 License.