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

Embedding ძრავა

Embedding ძრავა PRX-Memory-ის სემანტიკური მოძიების შესაძლებლობის საფუძველია. ის ტექსტური მეხსიერებები მაღალ-განზომილებიან ვექტორებად გარდაქმნის, რომლებიც მნიშვნელობას ატარებენ, რაც საშუალებას იძლევა მსგავსება-ზე დაფუძნებული ძიება, რომელიც საკვანძო სიტყვების შეწყობას სცდება.

მუშაობის პრინციპი

embedding-ის ჩართვით მეხსიერების შენახვისას PRX-Memory:

  1. მეხსიერების ტექსტს კონფიგურირებულ embedding პროვაიდერს უგზავნის.
  2. ვექტორულ წარმოდგენას იღებს (ჩვეულებრივ 768--3072 განზომილება).
  3. ვექტორს მეხსიერების metadata-სთან ერთად ინახავს.
  4. გამოძახებისას კოსინუს მსგავსების ძიებისთვის ვექტორს იყენებს.
mermaid
graph LR
    TEXT["Memory Text"] --> PROVIDER["Embedding Provider<br/>Jina | OpenAI | Gemini"]
    PROVIDER --> VECTOR["Float Vector<br/>[0.012, -0.034, ...]"]
    VECTOR --> STORE["Vector Storage"]
    QUERY["Recall Query"] --> QPROVIDER["Same Provider"]
    QPROVIDER --> QVECTOR["Query Vector"]
    QVECTOR --> SEARCH["Cosine Similarity"]
    STORE --> SEARCH
    SEARCH --> RESULTS["Ranked Results"]

პროვაიდერის არქიტექტურა

prx-memory-embed crate განსაზღვრავს პროვაიდერის trait-ს, რომელსაც ყველა embedding backend-ი ახორციელებს. ეს დიზაინი პროვაიდერების გადართვის საშუალებას იძლევა აპლიკაციის კოდის შეცვლის გარეშე.

მხარდაჭერილი პროვაიდერები:

პროვაიდერიგარემოს გასაღებიაღწერა
OpenAI-თავსებადიPRX_EMBED_PROVIDER=openai-compatibleნებისმიერი OpenAI-თავსებადი API (OpenAI, Azure, ლოკალური სერვერები)
JinaPRX_EMBED_PROVIDER=jinaJina AI embedding მოდელები
GeminiPRX_EMBED_PROVIDER=geminiGoogle Gemini embedding მოდელები

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

დააყენეთ პროვაიდერი და სერთიფიკატები გარემოს ცვლადებით:

bash
PRX_EMBED_PROVIDER=jina
PRX_EMBED_API_KEY=your_api_key
PRX_EMBED_MODEL=jina-embeddings-v3
PRX_EMBED_BASE_URL=https://api.jina.ai  # optional, for custom endpoints

პროვაიდერის სარეზერვო გასაღებები

PRX_EMBED_API_KEY-ის დაუყენებლობისას სისტემა პროვაიდერ-სპეციფიკური გასაღებებზე გადადის:

  • Jina: JINA_API_KEY
  • Gemini: GEMINI_API_KEY

როდის ჩართოთ Embedding

სცენარიEmbedding სჭირდება?
მცირე მეხსიერების ნაკრები (<100 ჩანაწერი)სურვილისამებრ -- ლექსიკური ძიება საკმარისი შეიძლება იყოს
დიდი მეხსიერების ნაკრები (1000+ ჩანაწერი)სასურველია -- ვექტორული მსგავსება მნიშვნელოვნად აუმჯობესებს გამოძახებას
ბუნებრივი ენის შეკითხვებისასურველია -- სემანტიკური მნიშვნელობა
ზუსტი tag/scope ფილტრაციაარ სჭირდება -- ლექსიკური ძიება ამ შემთხვევას ამუშავებს
ენათაშორისი გამოძახებასასურველია -- მრავალენოვანი მოდელები ენებს შორის მუშაობს

შესრულების მახასიათებლები

  • Latency: 50--200ms embedding გამოძახებაზე პროვაიდერისა და მოდელის მიხედვით.
  • Batch რეჟიმი: მრავალი ტექსტის ერთ API გამოძახებაში დაჯგუფება round trip-ების შესამცირებლად.
  • ლოკალური caching: ვექტორები ლოკალურად ინახება და გამოიყენება; მხოლოდ ახალ ან შეცვლილ მეხსიერებებს სჭირდება embedding გამოძახება.
  • 100k benchmark: p95 მოძიება 123ms-ის ქვეშ ლექსიკური+მნიშვნელობის+სიახლის გამოძახებაზე 100,000 ჩანაწერისთვის (ქსელის გამოძახებების გარეშე).

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

Released under the Apache-2.0 License.