Qdrant Python 客户端文档¶
Qdrant 向量搜索引擎的客户端库。
该库包含所有 Qdrant API 的类型定义,并允许进行同步和异步请求。
Pydantic 用于描述请求模型,httpx 用于处理 http 查询。
客户端允许直接调用所有 Qdrant API 方法。它还提供了一些额外的辅助方法,用于处理常用操作,例如初始集合上传。
安装¶
pip install qdrant-client
示例¶
实例化客户端
from qdrant_client import QdrantClient
client = QdrantClient(host="localhost", port=6333)
创建新集合
from qdrant_client.models import VectorParams, Distance
if not client.collection_exists("my_collection"):
client.create_collection(
collection_name="my_collection",
vectors_config=VectorParams(size=100, distance=Distance.COSINE),
)
将向量插入集合
import numpy as np
from qdrant_client.models import PointStruct
vectors = np.random.rand(100, 100)
client.upsert(
collection_name="my_collection",
points=[
PointStruct(
id=idx,
vector=vector.tolist(),
payload={"color": "red", "rand_number": idx % 10}
)
for idx, vector in enumerate(vectors)
]
)
搜索相似向量
query_vector = np.random.rand(100)
hits = client.search(
collection_name="my_collection",
query_vector=query_vector,
limit=5 # Return 5 closest points
)
按过滤条件搜索相似向量
from qdrant_client.models import Filter, FieldCondition, Range
hits = client.search(
collection_name="my_collection",
query_vector=query_vector,
query_filter=Filter(
must=[ # These conditions are required for search results
FieldCondition(
key='rand_number', # Condition based on values of `rand_number` field.
range=Range(
gte=3 # Select only those results where `rand_number` >= 3
)
)
]
),
limit=5 # Return 5 closest points
)
异步客户端¶
从版本 1.6.1 开始,所有 Python 客户端方法都提供了异步版本。
from qdrant_client import AsyncQdrantClient, models
import numpy as np
import asyncio
async def main():
# Your async code using QdrantClient might be put here
client = AsyncQdrantClient(url="https://:6333")
if not await client.collection_exists("my_collection"):
await client.create_collection(
collection_name="my_collection",
vectors_config=models.VectorParams(size=10, distance=models.Distance.COSINE),
)
await client.upsert(
collection_name="my_collection",
points=[
models.PointStruct(
id=i,
vector=np.random.rand(10).tolist(),
)
for i in range(100)
],
)
res = await client.search(
collection_name="my_collection",
query_vector=np.random.rand(10).tolist(), # type: ignore
limit=10,
)
print(res)
asyncio.run(main())
异步模式支持 gRPC 和 REST API。
重点类¶
索引和表格¶
API 参考
- 模型
AbortReshardingOperationAbortShardTransferAbortTransferOperationAbsExpressionAliasDescriptionAppBuildTelemetryAppFeaturesTelemetryBatchBinaryQuantizationBinaryQuantizationConfigBoolIndexParamsBoolIndexTypeChangeAliasesOperationClearPayloadOperationClusterConfigTelemetryClusterStatusOneOfClusterStatusOneOf1ClusterStatusTelemetryClusterTelemetryCollectionClusterInfoCollectionConfigCollectionConfigTelemetryCollectionDescriptionCollectionExistenceCollectionInfoCollectionParamsCollectionParamsDiffCollectionStatusCollectionTelemetryCollectionsAggregatedTelemetryCollectionsAliasesResponseCollectionsResponseCollectionsTelemetryCompressionRatioConsensusConfigTelemetryConsensusThreadStatusOneOfConsensusThreadStatusOneOf1ConsensusThreadStatusOneOf2ContextExamplePairContextPairContextQueryCountRequestCountResultCpuEndianCreateAliasCreateAliasOperationCreateCollectionCreateFieldIndexCreateShardingKeyCreateShardingKeyOperationDatatypeDatetimeExpressionDatetimeIndexParamsDatetimeIndexTypeDatetimeKeyExpressionDatetimeRangeDecayParamsExpressionDeleteAliasDeleteAliasOperationDeleteOperationDeletePayloadDeletePayloadOperationDeleteVectorsDeleteVectorsOperationDirectionDisabledDiscoverInputDiscoverQueryDiscoverRequestDiscoverRequestBatchDistanceDivExpressionDivParamsDocumentDropReplicaOperationDropShardingKeyDropShardingKeyOperationErrorResponseErrorResponseStatusExpDecayExpressionExpExpressionFacetRequestFacetResponseFacetValueHitFieldConditionFilterFilterSelectorFloatIndexParamsFloatIndexTypeFormulaQueryFusionFusionQueryGaussDecayExpressionGeoBoundingBoxGeoDistanceGeoDistanceParamsGeoIndexParamsGeoIndexTypeGeoLineStringGeoPointGeoPolygonGeoRadiusGpuDeviceTelemetryGroupsResultGrpcTelemetryHardwareTelemetryHardwareUsageHasIdConditionHasVectorConditionHnswConfigHnswConfigDiffImageIndexesOneOfIndexesOneOf1InferenceObjectInitFromInlineResponse200InlineResponse2001InlineResponse20010InlineResponse20011InlineResponse20012InlineResponse20013InlineResponse20014InlineResponse20015InlineResponse20016InlineResponse20017InlineResponse20018InlineResponse20019InlineResponse2002InlineResponse20020InlineResponse20021InlineResponse20022InlineResponse20023InlineResponse20024InlineResponse20025InlineResponse2003InlineResponse2004InlineResponse2005InlineResponse2006InlineResponse2007InlineResponse2008InlineResponse2009InlineResponse202IntegerIndexParamsIntegerIndexTypeIsEmptyConditionIsNullConditionKeywordIndexParamsKeywordIndexTypeLinDecayExpressionLnExpressionLocalShardInfoLocalShardTelemetryLocksOptionLog10ExpressionLookupLocationMatchAnyMatchExceptMatchTextMatchValueMaxOptimizationThreadsSettingMemoryTelemetryMessageSendErrorsMinShouldModifierMoveShardMoveShardOperationMultExpressionMultiVectorComparatorMultiVectorConfigNamedSparseVectorNamedVectorNearestQueryNegExpressionNestedNestedConditionOperationDurationStatisticsOptimizerTelemetryOptimizersConfigOptimizersConfigDiffOptimizersStatusOneOfOptimizersStatusOneOf1OrderByOrderByQueryOverwritePayloadOperationP2pConfigTelemetryPayloadFieldPayloadIndexInfoPayloadIndexTelemetryPayloadSchemaTypePayloadSelectorExcludePayloadSelectorIncludePayloadStorageTypeOneOfPayloadStorageTypeOneOf1PayloadStorageTypeOneOf2PeerInfoPointGroupPointIdsListPointRequestPointStructPointVectorsPointsBatchPointsListPowExpressionPowParamsPrefetchProductQuantizationProductQuantizationConfigQuantizationSearchParamsQueryGroupsRequestQueryRequestQueryRequestBatchQueryResponseRaftInfoRangeReadConsistencyTypeRecommendGroupsRequestRecommendInputRecommendQueryRecommendRequestRecommendRequestBatchRecommendStrategyRecordRemoteShardInfoRemoteShardTelemetryRenameAliasRenameAliasOperationReplicaReplicaSetTelemetryReplicaStateReplicateShardReplicateShardOperationRequestsTelemetryReshardingDirectionOneOfReshardingDirectionOneOf1ReshardingInfoRestartTransferRestartTransferOperationRunningEnvironmentTelemetrySampleSampleQueryScalarQuantizationScalarQuantizationConfigScalarTypeScoredPointScrollRequestScrollResultSearchGroupsRequestSearchMatrixOffsetsResponseSearchMatrixPairSearchMatrixPairsResponseSearchMatrixRequestSearchParamsSearchRequestSearchRequestBatchSegmentConfigSegmentInfoSegmentTelemetrySegmentTypeSetPayloadSetPayloadOperationShardCleanStatusFailedTelemetryShardCleanStatusProgressTelemetryShardCleanStatusTelemetryOneOfShardCleanStatusTelemetryOneOf1ShardCleanStatusTelemetryOneOf2ShardSnapshotRecoverShardStatusShardTransferInfoShardTransferMethodOneOfShardTransferMethodOneOf1ShardTransferMethodOneOf2ShardTransferMethodOneOf3ShardingMethodSnapshotDescriptionSnapshotPrioritySnapshotRecoverSparseIndexConfigSparseIndexParamsSparseIndexTypeOneOfSparseIndexTypeOneOf1SparseIndexTypeOneOf2SparseVectorSparseVectorDataConfigSparseVectorParamsSparseVectorStorageTypeOneOfSparseVectorStorageTypeOneOf1SqrtExpressionStartReshardingStartReshardingOperationStateRoleStrictModeConfigStrictModeConfigOutputStrictModeMultivectorStrictModeMultivectorOutputStrictModeSparseStrictModeSparseOutputSumExpressionTelemetryDataTextIndexParamsTextIndexTypeTokenizerTypeTrackerStatusOneOfTrackerStatusOneOf1TrackerStatusOneOf2TrackerTelemetryUpdateCollectionUpdateOperationsUpdateResultUpdateStatusUpdateVectorsUpdateVectorsOperationUpsertOperationUuidIndexParamsUuidIndexTypeValuesCountVectorDataConfigVectorDataInfoVectorIndexSearchesTelemetryVectorParamsVectorParamsDiffVectorStorageDatatypeVectorStorageTypeOneOfVectorStorageTypeOneOf1VectorStorageTypeOneOf2VectorStorageTypeOneOf3VersionInfoWalConfigWalConfigDiffWebApiTelemetryWithLookupWriteOrdering
- 异常
- QdrantClient
- AsyncQdrantClient
- FastEmbed Mixin
完整文档