async-annoy упрощает работу с раздражающими индексами в асинхронных приложениях, таких как веб-серверы. Он построен, чтобы позволить вам читать или писать, чтобы достать индексы, не беспокоясь о сложностях одновременного доступа. Вы получаете простые, безопасные для поток операций, независимо от того, запрашиваете ли вы ближайших соседей или строите индекс, все на заднем плане.
pip install async-annoyУбедитесь, что Anyy и Numpy установлены, поскольку они необходимы для запуска библиотеки.
Идеально подходит для привлечения ближайших соседей в ответ на веб -запросы.
from async_annoy import AsyncAnnoy
async with AsyncAnnoy ( "my_index" ). reader () as reader :
neighbours = await reader . get_neighbours_for ( vector = my_vector , n = 5 )
print ( neighbours )Писатель будет ждать, пока все читатели закончат и начнут индекс с нуля. Библиотека Anoy не поддерживает обновления индекса, только перестраивается.
from async_annoy import AsyncAnnoy
async with AsyncAnnoy ( "my_index" ). writer () as writer :
await writer . add_item ( index = 1 , vector = my_vector )
# The index is automatically built and saved when done. Первоначальная настройка async-annoy зависит от переменных среды для настройки параметров Indoy Index, обеспечивающего беспрепятственное запуск. Хотя эти значения по умолчанию предлагают удобство, вам может потребоваться настроить настройки в соответствии с конкретными требованиями вашего приложения. Очень важно поддерживать согласованность параметров для всех читателей и писателей, взаимодействующих с одним и тем же индексом.
async-annoy использует следующие переменные среды для начальной конфигурации:
ASYNC_ANNOY_DIMENSIONS : размерность векторов, хранящихся в индексе.ASYNC_ANNOY_METRIC : метрика расстояния, используемая для сравнения векторов в индексе (например, «Angular», «Euclidean»). Хотя async-annoy настраивается с переменными среды, вы можете переопределить эти значения по умолчанию непосредственно в вашем коде. При создании нового AnnoyReader или AnnoyWriter просто передайте желаемые измерения и метрику в качестве аргументов:
from async_annoy import AsyncAnnoy
# Override default parameters when initializing
index_manager = AsyncAnnoy ( "my_index" , dimensions = 128 , metric = "euclidean" )В настоящее время Async-annoy находится в Альфе. Он готов к тестированию, и мы стремимся к вашему отзыву, чтобы сделать его лучше. Это начальная версия, поэтому мы все еще работаем над добавлением большего количества функций и сглаживанию опыта.