Skip to content
ეს გვერდი შეიქმნა და ითარგმნა ხელოვნური ინტელექტის დახმარებით. თუ შეამჩნევთ უზუსტობას, გთხოვთ, დაგვეხმარეთ გაუმჯობესებაში. GitHub-ზე რედაქტირება

SQLite შენახვა

SQLite backend-ი უზრუნველყოფს მყარ, ფაილ-ზე დაფუძნებულ შენახვის ძრავას ACID ტრანზაქციებით, ინდექსირებული შეკითხვებითა და ჩაშენებული ვექტორული სვეტის მხარდაჭერით. ეს სასურველი backend-ია 100,000 მეხსიერებამდე საწარმოო განასახებებისთვის.

კონფიგურაცია

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

მონაცემთა ბაზის ფაილი ავტომატურად იქმნება პირველი გაშვებისას. ყველა ცხრილი, ინდექსი და ვექტორული სვეტი PRX-Memory-ის მიერ ინიციალიზდება.

სქემის მიმოხილვა

SQLite backend-ი მეხსიერებებს სტრუქტურირებულ სქემაში ინახავს:

სვეტიტიპიაღწერა
idTEXTმეხსიერების უნიკალური იდენტიფიკატორი
textTEXTმეხსიერების შინაარსი
scopeTEXTმეხსიერების scope (global, project, და ა.შ.)
tagsTEXTtag-ების JSON მასივი
importanceREALმნიშვნელობის ქულა (0.0--1.0)
created_atTEXTISO 8601 timestamp
updated_atTEXTISO 8601 timestamp
embeddingBLOBვექტორული embedding (ჩართვისას)
metadataTEXTდამატებითი JSON metadata

ვექტორული შენახვა

embedding-ის ჩართვისას ვექტორული მონაცემები იმავე ცხრილში BLOB სვეტებად ინახება, სადაც მეხსიერების ჩანაწერი. ეს co-location შეკითხვებს ამარტივებს და join-ის overhead-ს ავლის.

ვექტორული მსგავსების ძიება იყენებს brute-force cosine მსგავსების გამოთვლას შენახულ ვექტორებზე. 100,000-მდე ჩანაწერის ნაკრებებისთვის ეს წამს ქვემოთ მოთხოვნის დროებს იძლევა (p95 123ms-ს ქვეშ benchmark-ების საფუძველზე).

ტექნიკური მომსახურება

კომპაქტიზება

დროთა განმავლობაში წაშლებმა და განახლებებმა შეიძლება დაფრაგმენტული სივრცე დატოვოს. გამოიყენეთ memory_compact სივრცის გასათავისუფლებლად:

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "memory_compact",
    "arguments": {}
  }
}

Backup

SQLite მონაცემთა ბაზის ფაილი შეიძლება დარეზერვდეს სერვერის გაჩერებისას ფაილის კოპირებით:

bash
cp ./data/memory.db ./data/memory.db.backup

WARNING

ნუ დააკოპირებთ მონაცემთა ბაზის ფაილს სერვერის გაშვებისას. SQLite იყენებს write-ahead logging (WAL)-ს და ჩაწერების დროს ფაილის კოპირება შეიძლება დამახინჯებული backup-ის შექმნას. ჯერ გააჩერეთ სერვერი ან გამოიყენეთ memory_export ინსტრუმენტი უსაფრთხო ექსპორტისთვის.

JSON-დან მიგრაცია

JSON backend-იდან SQLite-ზე გადასასვლელად:

  1. ექსპორტი memory_export-ის გამოყენებით.
  2. შეცვალეთ backend-ის კონფიგურაცია SQLite-ზე.
  3. ექსპორტირებული მონაცემების იმპორტი memory_import-ის გამოყენებით.

ან გამოიყენეთ memory_migrate ინსტრუმენტი პირდაპირი მიგრაციისთვის.

შემდეგი ნაბიჯები

Released under the Apache-2.0 License.