async-annoy Webサーバーのような非同期アプリケーションでAshy Indicesを使用して単純化します。同時アクセスの複雑さを心配することなく、インデックスから読んだり書いたりするように構築されています。最近の隣人を照会したり、インデックスを構築したりするかどうかにかかわらず、すべてがバックグラウンドで簡単にセーフ操作を取得します。
pip install async-annoyライブラリを実行するために必要であるため、イライラとnumpyがインストールされていることを確認してください。
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 )作家は、すべての読者が終了し、ゼロからインデックスを開始するのを待ちます。イライラライブラリはインデックスの更新をサポートせず、再構築のみをサポートしています。
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の最初のセットアップは、環境変数に依存して、イライラインデックスパラメーターを構成し、シームレスなスタートを保証します。これらのデフォルトは利便性を提供しますが、アプリケーションの特定の要件に合わせて設定をカスタマイズする必要がある場合があります。同じインデックスと対話するすべての読者と作家の間でパラメーターの一貫性を維持することが重要です。
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はアルファにあります。テストの準備ができており、フィードバックを改善するためのフィードバックに熱心です。これは初期バージョンであるため、機能を追加し、エクスペリエンスをスムーズにすることに取り組んでいます。