Bu konu, Python 2.0 için OSS SDK'yı kullanarak QueryVectors işlemini nasıl çağıracağınızı ve bir vektör dizininde benzerlik araması yapacağınızı açıklar.
İzinler
Varsayılan olarak bir Alibaba Cloud hesabının tam izinleri bulunurken, bir RAM kullanıcısının veya RAM rolünün herhangi bir izni yoktur. Alibaba Cloud hesap sahibi veya bir yönetici, RAM ilkesi veya paket ilkesi kullanarak izinleri vermelidir.
|
|
|
|
|
|
|
|
Yöntem tanımı
query_vectors(request: QueryVectorsRequest, **kwargs) → QueryVectorsResult
İstek parametreleri
|
|
|
|
|
|
|
|
Dönüş değerleri
|
|
|
|
|
|
Yöntemin tam tanımı için bkz. query_vectors.
Örnek kod
import argparse
import alibabacloud_oss_v2 as oss
import alibabacloud_oss_v2.vectors as oss_vectors
parser = argparse.ArgumentParser(description="vector query vectors sample")
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')
parser.add_argument('--index_name', help='The name of the vector index.', required=True)
parser.add_argument('--account_id', help='The account id.', required=True)
def main():
args = parser.parse_args()
# Loading credentials values from the environment variables
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Using the SDK's default configuration
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
cfg.region = args.region
cfg.account_id = args.account_id
cfg.use_internal_endpoint = True # To access the service over the public network, set this to False or remove this line.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
vector_client = oss_vectors.Client(cfg)
query_filter = {
"$and": [{
"type": {
"$nin": ["comedy", "documentary"]
}
}]
}
query_vector = {"float32": [0.1] * 128}
result = vector_client.query_vectors(oss_vectors.models.QueryVectorsRequest(
bucket=args.bucket,
index_name=args.index_name,
filter=query_filter,
query_vector=query_vector,
return_distance=True,
return_metadata=True,
top_k=10
))
print(f'status code: {result.status_code},'
f' request id: {result.request_id},'
)
if result.vectors:
for vector in result.vectors:
print(f'vector: {vector}')
if __name__ == "__main__":
main()
Referans
Vektörleri sorgulamaya ilişkin tam örnek kod için bkz. query_vectors.py.