async-annoy vereinfacht die Arbeit mit ärgerlichen Indizes in asynchronen Anwendungen wie Webservern. Es wurde entwickelt, damit Sie von Indizes lesen oder schreiben können, ohne sich über die Komplexität des gleichzeitigen Zugangs zu sorgen. Sie erhalten einfache, fadensichere Operationen, unabhängig davon, ob Sie die nächsten Nachbarn abfragen oder den Index aufbauen, alles im Hintergrund.
pip install async-annoyStellen Sie sicher, dass ärgerlich und numpy installiert sind, da sie für den Ausführen der Bibliothek benötigt werden.
Ideal, um die nächsten Nachbarn als Antwort auf Webanfragen zu holen.
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 )Der Schriftsteller wird darauf warten, dass alle Leser den Index von Grund auf neu erstellen und starten. Die Nervenbibliothek unterstützt keine Index -Updates, sondern nur umgebaut.
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. Das anfängliche Aufbau von async-annoy basiert auf Umgebungsvariablen, um die Nervenzindexparameter zu konfigurieren und einen nahtlosen Start zu gewährleisten. Während diese Standardeinstellungen Komfort bieten, müssen Sie möglicherweise Einstellungen an die spezifischen Anforderungen Ihrer Anwendung anpassen. Es ist wichtig, die Parameterkonsistenz für alle Leser und Autoren beizubehalten, die mit demselben Index interagieren.
async-annoy verwendet die folgenden Umgebungsvariablen für die erste Konfiguration:
ASYNC_ANNOY_DIMENSIONS : Die Dimensionalität der im Index gespeicherten Vektoren.ASYNC_ANNOY_METRIC : Die Distanzmetrik zum Vergleich von Vektoren im Index (z. B. "Angular", "euclidean"). Obwohl sich async-annoy mit Umgebungsvariablen konfiguriert, können Sie diese Standardeinstellungen direkt in Ihrem Code überschreiben. Wenn Sie einen neuen AnnoyReader oder AnnoyWriter erstellen, bestehen Sie einfach die gewünschten Dimensionen und Metrik als Argumente:
from async_annoy import AsyncAnnoy
# Override default parameters when initializing
index_manager = AsyncAnnoy ( "my_index" , dimensions = 128 , metric = "euclidean" )Derzeit ist Async-Annoy in Alpha. Es ist bereit zum Testen und wir sind bestrebt, dass Ihr Feedback es besser macht. Dies ist eine erste Version, daher arbeiten wir immer noch daran, weitere Funktionen hinzuzufügen und die Erfahrung zu glätten.