async-annoy simplifica el trabajo con índices de molesto en aplicaciones async como servidores web. Está construido para permitirle leer o escribir para molestar índices sin preocuparse por las complejidades del acceso concurrente. Obtiene operaciones fáciles y seguras, ya sea que consulte a los vecinos más cercanos o construya el índice, todo en segundo plano.
pip install async-annoyAsegúrese de que se instalen molesto y numpy, ya que son necesarios para ejecutar la biblioteca.
Ideal para obtener vecinos más cercanos en respuesta a las solicitudes web.
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 )El escritor esperará a que todos los lectores terminen e inicien el índice desde cero. La biblioteca Molst no admite actualizaciones de índices, solo reconstruidos.
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. La configuración inicial de async-annoy se basa en las variables de entorno para configurar los parámetros del índice molesto, asegurando un inicio sin problemas. Si bien estos valores predeterminados ofrecen conveniencia, es posible que deba personalizar la configuración para adaptarse a los requisitos específicos de su aplicación. Es fundamental mantener la consistencia de los parámetros en todos los lectores y escritores que interactúan con el mismo índice.
async-annoy utiliza las siguientes variables de entorno para la configuración inicial:
ASYNC_ANNOY_DIMENSIONS : la dimensionalidad de los vectores almacenados en el índice.ASYNC_ANNOY_METRIC : la métrica de distancia utilizada para comparar vectores en el índice (por ejemplo, "angular", "euclidiano"). Aunque async-annoy se configura con las variables de entorno, puede anular estos valores predeterminados directamente en su código. Al crear un nuevo AnnoyReader o AnnoyWriter , simplemente pase las dimensiones y la métrica deseadas como argumentos:
from async_annoy import AsyncAnnoy
# Override default parameters when initializing
index_manager = AsyncAnnoy ( "my_index" , dimensions = 128 , metric = "euclidean" )Actualmente, Async-Annoy está en alfa. Está listo para las pruebas, y estamos ansiosos por que sus comentarios lo mejoren. Esta es una versión inicial, por lo que todavía estamos trabajando para agregar más funciones y suavizar la experiencia.