これは、なにをしたくて書いたもの?
Qdrant Clientを使っていて、時々パッケージ名に戸惑うことがあります。
models
パッケージのインポートが、ドキュメントによって
from qdrant_client.models import Distance,VectorParams
だったり
from qdrant_client.http.models import Distance, VectorParams
だったりするからです。
なんとなくどちらでもよさそうだったのですが、気になるのでちょっと確認してみました。
qdrant_client.modelsパッケージでいいのでは?
結果からすると、qdrant_client.models
パッケージを使う方で良さそうです。
少なくとも、実体としては同じものを指しています。
バージョン1.8.0のqdrant_client/models/__init__.py
の定義は以下のようになっています。
from qdrant_client.http.models import * from qdrant_client.fastembed_common import *
https://github.com/qdrant/qdrant-client/blob/v1.8.0/qdrant_client/models/__init__.py
qdrant_client.models
パッケージには、他のファイルはありません。
そして実体はqdrant_client.http.models
パッケージにあります。
https://github.com/qdrant/qdrant-client/tree/v1.8.0/qdrant_client/http/models
つまり、qdrant_client.models
パッケージはqdrant_client.http.models
パッケージとqdrant_client.fastembed_common
パッケージを
まとめて公開したものです。
過去の履歴を見ると、最初にあったのはqdrant_client.http.models
パッケージです。これがv0.10.0の時にqdrant_client/models/__init__.py
で
まとめられるようにしてリリースされたようです。
その後、Qdrant Clientのドキュメント内でもqdrant_client.http.models
パッケージの記述がqdrant_client.models
パッケージに
変わっていきます。
Qdrant自体のドキュメントではqdrant_client.models
パッケージを使っていたりqdrant_client.http.models
パッケージを使っていたりと
揺れているのですが、こちらは修正されていない(かつ動くので問題はない)という状態だと見るのがよさそうかなと。
というわけで、Qdrant Clientとしてはqdrant_client.models
パッケージとして使った方が良さそうなので、今後はこちらで合わせて
いこうと思います。
そして、qdrant_client.http.models
パッケージとして使ったところで、結局同じものを見ているので完全な間違いでもないことも
わかったので安心ですね。