تخزين Vector هو قاعدة بيانات متجه خفيفة الوزن وفعالة تخزن متجهات المستندات في Browser's IndustedDB. تتيح لك هذه الحزمة إجراء عمليات البحث عن التشابه الدلالي على المستندات النصية باستخدام ضمانات المتجهات. يشير البحث الدلالي إلى القدرة على فهم معنى الوثائق والاستعلامات النصية والاستعلامات ، مما يتيح نتائج البحث الأكثر دقة وذات صلة. يقوم تخزين Vector بتزويد Openai بتضمينات لتحويل المستندات النصية إلى متجهات ويوفر واجهة للبحث عن مستندات مماثلة استنادًا إلى تشابه جيب التمام.
تشابه جيب التمام هو مقياس للتشابه بين متجهين غير صفريين في مساحة منتج داخلية. يتم تعريفه على أنه جيب التمام للزاوية بين المتجهات. تتراوح قيمة تشابه جيب التمام من -1 إلى 1 ، حيث تشير 1 إلى التشابه الكامل ، 0 يشير 0 إلى أي تشابه ، ويشير -1 إلى الاختلاف التام.
في هذه الحزمة ، يتم استخدام تشابه جيب التمام لقياس التشابه بين متجهات المستند ومتجه الاستعلام. يتم حساب درجة تشابه جيب التمام باستخدام منتج DOT الخاص بالمتجهات ، مقسومًا على منتجات أحجامها.
يتم استخدام آلية (LRU) الأقل استخدامًا في الآونة الأخيرة لإدارة حجم التخزين وإزالة المستندات تلقائيًا عندما يتجاوز حجم التخزين الحد المحدد. يتم فرز المستندات من خلال عدادها الضخم (تصاعدي) ثم بواسطة الطابع الزمني الخاص بهم (تصاعدي). تتم إزالة المستندات التي تحتوي على أدنى عدد ضربات وأقدم الطابع الزمني أولاً حتى يكون حجم التخزين أقل من الحد الأقصى.
قم بتثبيت الحزمة باستخدام NPM:
npm i vector-storageفيما يلي مثال أساسي على كيفية استخدام فئة VectorStorage:
import { VectorStorage } from "vector-storage" ;
// Create an instance of VectorStorage
const vectorStore = new VectorStorage ( { openAIApiKey : "your-openai-api-key" } ) ;
// Add a text document to the store
await vectorStore . addText ( "The quick brown fox jumps over the lazy dog." , {
category : "example" ,
} ) ;
// Perform a similarity search
const results = await vectorStore . similaritySearch ( {
query : "A fast fox leaps over a sleepy hound." ,
} ) ;
// Display the search results
console . log ( results ) ; الفئة الرئيسية لإدارة متجهات المستندات في الفهرسة.
يخلق مثيلًا جديدًا من VectorStorage.
الخيارات : كائن يحتوي على الخصائص التالية:
interface IVSOptions {
openAIApiKey : string ; // The OpenAI API key used for generating embeddings.
maxSizeInMB ?: number ; // The maximum size of the storage in megabytes. Defaults to 2GB
debounceTime ?: number ; // The debounce time in milliseconds for saving to IndexedDB. Defaults to 0.
openaiModel ?: string ; // The OpenAI model used for generating embeddings. Defaults to 'text-embedding-ada-002'.
}يضيف مستند نصي إلى المتجر ويعيد المستند الذي تم إنشاؤه.
يضيف مستندات نصية متعددة إلى المتجر وإرجاع مجموعة من المستندات التي تم إنشاؤها.
يؤدي بحثًا عن التشابه على المستندات المخزنة ويعيد مجموعة من المستندات المطابقة.
params : كائن يحتوي على الخصائص التالية:
تمثل واجهة IVSDocument كائن مستند مخزّن في قاعدة بيانات المتجه. أنه يحتوي على الخصائص التالية:
interface IVSDocument {
hits ?: number ; // The number of hits (accesses) for the document. Omit if the value is 0.
metadata : object ; // The metadata associated with the document for filtering.
text : string ; // The text content of the document.
timestamp : number ; // The timestamp indicating when the document was added to the store.
vectorMag : number ; // The magnitude of the document vector.
vector : number [ ] ; // The vector representation of the document.
} مساهمات في هذا المشروع مرحب بها! إذا كنت ترغب في المساهمة ، فيرجى اتباع هذه الخطوات:
يرجى التأكد من أن الكود الخاص بك يتبع نمط ترميز المشروع وأن جميع الاختبارات تمر قبل تقديم طلب سحب. إذا وجدت أي أخطاء أو لديك اقتراحات للتحسينات ، فلا تتردد في فتح مشكلة على جيثب.
هذا المشروع مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. راجع ملف الترخيص لنص الترخيص الكامل.
حقوق الطبع والنشر (ج) نيتاي أهاروني. جميع الحقوق محفوظة.