Vector Storage - это легкая и эффективная векторная база данных, которая хранит векторы документов в IndexedDB браузера. Этот пакет позволяет вам выполнять поиск семантического сходства в текстовых документах с использованием векторных внедрений. Семантический поиск относится к способности понимать значение и контекст текстовых документов и запросов, что позволяет более точным и соответствующим результатам поиска. Векторное хранилище использует встроенные вторжения OpenaI для преобразования текстовых документов в векторы и предоставляет интерфейс для поиска аналогичных документов на основе сходства косинуса.
Сходство косинуса является мерой сходства между двумя ненулевыми векторами во внутреннем пространстве продукта. Это определяется как косинус угла между двумя векторами. Значение сходства косинуса колеблется от -1 до 1, где 1 указывает на полное сходство, 0 указывает на сходство, а -1 указывает на полное различие.
В этом пакете сходство косинуса используется для измерения сходства между векторами документов и вектором запроса. Оценка сходства косинуса рассчитывается с использованием точечного продукта векторов, разделенных на продукт их величин.
Механизм наименьшего недавно используемого (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 ) ; Основной класс управления векторами документов в IndexedDB.
Создает новый экземпляр 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.
} Вклад в этот проект приветствуются! Если вы хотите внести свой вклад, пожалуйста, следуйте этим шагам:
Пожалуйста, убедитесь, что ваш код следит за стилем кодирования проекта и что все тесты проходят перед отправкой запроса на привлечение. Если вы найдете какие -либо ошибки или у вас есть предложения по улучшению, не стесняйтесь открывать проблему на GitHub.
Этот проект лицензирован по лицензии MIT. См. Файл лицензии для полного текста лицензии.
Авторское право (в) Нитай Аарони. Все права защищены.