SQLite შენახვა
SQLite backend-ი უზრუნველყოფს მყარ, ფაილ-ზე დაფუძნებულ შენახვის ძრავას ACID ტრანზაქციებით, ინდექსირებული შეკითხვებითა და ჩაშენებული ვექტორული სვეტის მხარდაჭერით. ეს სასურველი backend-ია 100,000 მეხსიერებამდე საწარმოო განასახებებისთვის.
კონფიგურაცია
PRX_MEMORY_BACKEND=sqlite
PRX_MEMORY_DB=./data/memory.dbმონაცემთა ბაზის ფაილი ავტომატურად იქმნება პირველი გაშვებისას. ყველა ცხრილი, ინდექსი და ვექტორული სვეტი PRX-Memory-ის მიერ ინიციალიზდება.
სქემის მიმოხილვა
SQLite backend-ი მეხსიერებებს სტრუქტურირებულ სქემაში ინახავს:
| სვეტი | ტიპი | აღწერა |
|---|---|---|
id | TEXT | მეხსიერების უნიკალური იდენტიფიკატორი |
text | TEXT | მეხსიერების შინაარსი |
scope | TEXT | მეხსიერების scope (global, project, და ა.შ.) |
tags | TEXT | tag-ების JSON მასივი |
importance | REAL | მნიშვნელობის ქულა (0.0--1.0) |
created_at | TEXT | ISO 8601 timestamp |
updated_at | TEXT | ISO 8601 timestamp |
embedding | BLOB | ვექტორული embedding (ჩართვისას) |
metadata | TEXT | დამატებითი JSON metadata |
ვექტორული შენახვა
embedding-ის ჩართვისას ვექტორული მონაცემები იმავე ცხრილში BLOB სვეტებად ინახება, სადაც მეხსიერების ჩანაწერი. ეს co-location შეკითხვებს ამარტივებს და join-ის overhead-ს ავლის.
ვექტორული მსგავსების ძიება იყენებს brute-force cosine მსგავსების გამოთვლას შენახულ ვექტორებზე. 100,000-მდე ჩანაწერის ნაკრებებისთვის ეს წამს ქვემოთ მოთხოვნის დროებს იძლევა (p95 123ms-ს ქვეშ benchmark-ების საფუძველზე).
ტექნიკური მომსახურება
კომპაქტიზება
დროთა განმავლობაში წაშლებმა და განახლებებმა შეიძლება დაფრაგმენტული სივრცე დატოვოს. გამოიყენეთ memory_compact სივრცის გასათავისუფლებლად:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "memory_compact",
"arguments": {}
}
}Backup
SQLite მონაცემთა ბაზის ფაილი შეიძლება დარეზერვდეს სერვერის გაჩერებისას ფაილის კოპირებით:
cp ./data/memory.db ./data/memory.db.backupWARNING
ნუ დააკოპირებთ მონაცემთა ბაზის ფაილს სერვერის გაშვებისას. SQLite იყენებს write-ahead logging (WAL)-ს და ჩაწერების დროს ფაილის კოპირება შეიძლება დამახინჯებული backup-ის შექმნას. ჯერ გააჩერეთ სერვერი ან გამოიყენეთ memory_export ინსტრუმენტი უსაფრთხო ექსპორტისთვის.
JSON-დან მიგრაცია
JSON backend-იდან SQLite-ზე გადასასვლელად:
- ექსპორტი
memory_export-ის გამოყენებით. - შეცვალეთ backend-ის კონფიგურაცია SQLite-ზე.
- ექსპორტირებული მონაცემების იმპორტი
memory_import-ის გამოყენებით.
ან გამოიყენეთ memory_migrate ინსტრუმენტი პირდაპირი მიგრაციისთვის.
შემდეგი ნაბიჯები
- ვექტორული ძიება -- მსგავსების ძიების შიდა მუშაობის პრინციპი
- შენახვის მიმოხილვა -- ყველა backend-ის შედარება
- კონფიგურაციის ცნობარი -- ყველა გარემოს ცვლადი