dashvector


Namedashvector JSON
Version 1.0.16 PyPI version JSON
download
home_pagehttps://github.com/alibaba/proxima
SummaryDashVector Client Python Sdk Library
upload_time2024-06-11 07:51:44
maintainerNone
docs_urlNone
authorAlibaba
requires_python<4.0,>=3.7
licenseApache-2.0
keywords dashvector vector database cloud
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # DashVector Client Python Library

DashVector is a scalable and fully-managed vector-database service for building various machine learning applications. The DashVector client SDK is your gateway to access the DashVector service.

For more information about DashVector, please visit: https://help.aliyun.com/document_detail/2510225.html

## Installation
To install the DashVector client Python SDK, simply run:
```shell
pip install dashvector
```

## QuickStart

```python
import numpy as np
import dashvector

# Use DashVector `Client` api to communicate with the backend vectorDB service.
client = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')

# Create a collection named "quickstart" with dimension of 4, using the default Cosine distance metric
rsp = client.create(name='quickstart', dimension=4)
assert rsp

# Get a collection by name
collection = client.get(name='quickstart')

# Operations on 'Collection' includes Inert/Query/Upsert/Update/Delete/Fetch of docs
# Here we insert sample data (4-dimensional vectors) in batches of 16
collection.insert(
    [
        dashvector.Doc(id=str(i), vector=np.random.rand(4), fields={'anykey': 'anyvalue'}) 
        for i in range(16)
    ]
)

# Query a vector from the collection
docs = collection.query([0.1, 0.2, 0.3, 0.4], topk=5)
print(docs)

# Get statistics about collection
stats = collection.stats()
print(stats)

# Delete a collection by name
client.delete(name='quickstart')
```

## Reference

### Create a Client
`Client` host various APIs for interacting with DashVector `Collection`.

```python
dashvector.Client(
    api_key: str,
    endpoint: str = 'dashvector.cn-hangzhou.aliyuncs.com',
    protocal: dashvector.DashVectorProtocol = dashvector.DashVectorProtocol.GRPC, 
    timeout: float = 10.0
) -> Client
```

| Parameters | Type               | Required | Description                                                                                  |
|------------|--------------------|----------|----------------------------------------------------------------------------------------------|
| api_key    | str                | Yes      | Your DashVector API-KEY                                                                      |
| endpoint   | str                | No       | Service Endpoint. <br/>Default value: `dashvector.cn-hangzhou.aliyuncs.com`                  |
| protocol   | DashVectorProtocol | No       | Communication protocol, support HTTP and GRPC. <br/>Default value: `DashVectorProtocol.GRPC` |
| timeout    | float              | No       | Timeout period (in seconds), -1 means no timeout. <br/>Default value: `10.0`                 |

Example:
```python
import dashvector

client = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')
assert client
```

### Create Collection
```python
Client.create(
    name: str,
    dimension: int,
    dtype: Union[Type[int], Type[float]] = float,
    fields_schema: Optional[Dict[str, Union[Type[str], Type[int], Type[float], Type[bool]]]] = None,
    metric: str = 'cosine',
    timeout: Optional[int] = None
) -> DashVectorResponse
```

| Parameters     | Type                                                                       | Required | Description                                                                                                      |
|----------------|----------------------------------------------------------------------------|----------|------------------------------------------------------------------------------------------------------------------|
| name           | str                                                                        | Yes      | The name of the Collection to create.                                                                            |
| dimension      | int                                                                        | Yes      | The dimensions of the Collection's vectors. Valid values:  1-20,000                                              |
| dtype          | Union[Type[int], Type[float]]                                              | No       | The date type of the Collection's vectors.<br/>Default value: `Type[float]`                                      |
| fields_schema  | Optional[Dict[str, Union[Type[str], Type[int], Type[float], Type[bool]]]]  | No       | Fields schema of the Collection.<br/>Default value: `None`<br/>e.g. `{"name": str, "age": int}`                  |
| metric         | str                                                                        | No       | Vector similarity metric. For `cosine`, dtype must be `float`.<br/>Valid values:<br/> 1. (Default)`cosine`<br/>2. `dotproduct`<br/>3. `euclidean`    |
| timeout        | Optional[int]                                                              | No       | Timeout period (in seconds), -1 means asynchronous creation collection.<br/>Default value: `None`                |


Example:
```python
import dashvector

client = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')

rsp = client.create('YOUR-COLLECTION-NAME', dimension=4)
assert rsp
```

### List Collections
`Client.list() -> DashVectorResponse`

Example:
```python
import dashvector

client = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')

collections = client.list()

for collection in collections:
    print(collection)
# outputs:
# 'quickstart'
```

### Describe Collection
`Client.describe(name: str) -> DashVectorResponse`

| Parameters | Type  | Required | Description                             |
|------------|-------|----------|-----------------------------------------|
| name       | str   | Yes      | The name of the Collection to describe. |

Example:
```python
import dashvector

client = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')
rsp = client.describe('YOUR-COLLECTION-NAME')

print(rsp)
# example output:
# {
#   "request_id": "8d3ac14e-5382-4736-b77c-4318761ddfab",
#   "code": 0,
#   "message": "",
#   "output": {
#     "name": "quickstart",
#     "dimension": 4,
#     "dtype": "FLOAT",
#     "metric": "dotproduct",
#     "fields_schema": {
#       "name": "STRING",
#       "age": "INT",
#       "height": "FLOAT"
#     },
#     "status": "SERVING",
#     "partitions": {
#       "default": "SERVING"
#     }
#   }
# }
```

### Delete Collection
`Client.delete(name: str) -> DashVectorResponse`

| Parameters | Type  | Required | Description                           |
|------------|-------|----------|---------------------------------------|
| name       | str   | Yes      | The name of the Collection to delete. |

Example:
```python
import dashvector

client = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')
client.delete('YOUR-COLLECTION-NAME')
```

### Get a Collection Instance
`Collection` provides APIs for accessing `Doc` and `Partition`

`Client.get(name: str) -> Collection`

| Parameters | Type  | Required | Description                        |
|------------|-------|----------|------------------------------------|
| name       | str   | Yes      | The name of the Collection to get. |

Example:
```python
import dashvector

client = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')
collection = client.get('YOUR-COLLECTION-NAME')
assert collection
```

### Describe Collection Statistics
`Collection.stats() -> DashVectorResponse`

Example:
```python
import dashvector

client = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')
collection = client.get('YOUR-COLLECTION-NAME')
rsp = collection.stats()

print(rsp)
# example output:
# {
#   "request_id": "14448bcb-c9a3-49a8-9152-0de3990bce59",
#   "code": 0,
#   "message": "Success",
#   "output": {
#     "total_doc_count": "26",
#     "index_completeness": 1.0,
#     "partitions": {
#       "default": {
#         "total_doc_count": "26"
#       }
#     }
#   }
# }
```

### Insert/Update/Upsert Docs
```python
Collection.insert(
    docs: Union[Doc, List[Doc], Tuple, List[Tuple]],
    partition: Optional[str] = None,
    async_req: False
) -> DashVectorResponse
```

| Parameters | Type                                      | Required | Description                                                            |
|------------|-------------------------------------------|----------|------------------------------------------------------------------------|
| docs       | Union[Doc, List[Doc], Tuple, List[Tuple]] | Yes      | The docs to Insert/Update/Upsert.                                      |
| partition  | Optional[str]                             | No       | Name of the partition to Insert/Update/Upsert.<br/>Default value: `None` |
| async_req  | bool                                      | No       | Enable async request or not.<br/>Default value: `False`                  |

Example:
```python
import dashvector
import numpy as np

client = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')
collection = client.get('YOUR-COLLECTION-NAME')

# insert a doc with Tuple
collection.insert(('YOUR-DOC-ID1', [0.1, 0.2, 0.3, 0.4]))
collection.insert(('YOUR-DOC-ID2', [0.2, 0.3, 0.4, 0.5], {'age': 30, 'name': 'alice', 'anykey': 'anyvalue'}))

# insert a doc with dashvector.Doc
collection.insert(
    dashvector.Doc(
        id='YOUR-DOC-ID3', 
        vector=[0.3, 0.4, 0.5, 0.6], 
        fields={'foo': 'bar'}
    )
)

# insert in batches
ret = collection.insert(
    [
        ('YOUR-DOC-ID4', [0.2, 0.7, 0.8, 1.3], {'age': 1}),
        ('YOUR-DOC-ID4', [0.3, 0.6, 0.9, 1.2], {'age': 2}),
        ('YOUR-DOC-ID6', [0.4, 0.5, 1.0, 1.1], {'age': 3})
    ]
)

# insert in batches
ret = collection.insert(
    [
        dashvector.Doc(id=str(i), vector=np.random.rand(4)) for i in range(10)
    ]
)

# async insert
ret_funture = collection.insert(
    [
        dashvector.Doc(id=str(i+10), vector=np.random.rand(4)) for i in range(10)
    ],
    async_req=True
)
ret = ret_funture.get()
```

### Query a Collection
```python
Collection.query(
    vector: Optional[Union[List[Union[int, float]], np.ndarray]] = None,
    id: Optional[str] = None,
    topk: int = 10,
    filter: Optional[str] = None,
    include_vector: bool = False,
    partition: Optional[str] = None,
    output_fields: Optional[List[str]] = None,
    async_req: False
) -> DashVectorResponse
```

| Parameters      | Type                                                 | Required | Description                                                                                                  |
|-----------------|------------------------------------------------------|----------|--------------------------------------------------------------------------------------------------------------|
| vector          | Optional[Union[List[Union[int, float]], np.ndarray]] | No       | The vector to query                                                                                          |
| id              | Optional[str]                                        | No       | The doc id to query.<br/>Setting `id` means searching by vector corresponding to the id                      |
| topk            | Optional[str]                                        | No       | Number of similarity results to return.<br/>Default value: `10`                                              |
| filter          | Optional[str]                                        | No       | Expression used to filter results <br/>Default value: None <br/>e.g. `age>20`                                |
| include_vector  | bool                                                 | No       | Return vector details or not.<br/>Default value: `False`                                                     |
| partition       | Optional[str]                                        | No       | Name of the partition to Query.<br/>Default value: `None`                                                    |
| output_fields   | Optional[List[str]]                                  | No       | List of field names to return.<br/>Default value: `None`, means return all fields<br/>e.g. `['name', 'age']` |
| async_req       | bool                                                 | No       | Enable async request or not.<br/>Default value: `False`                                                      |

Example:
```python
import dashvector

client = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')
collection = client.get('YOUR-COLLECTION-NAME')
match_docs = collection.query([0.1, 0.2, 0.3, 0.4], topk=100, filter='age>20', include_vector=True, output_fields=['age','name','foo'])
if match_docs:
    for doc in match_docs:
        print(doc.id)
        print(doc.vector)
        print(doc.fields)
        print(doc.score)
```

### Delete Docs
```python
collection.delete(
    ids: Union[str, List[str]],
    delete_all: bool = False,
    partition: Optional[str] = None,
    async_req: bool = False
) -> DashVectorResponse
```

| Parameters | Type                  | Required | Description                                                     |
|------------|-----------------------|----------|-----------------------------------------------------------------|
| ids        | Union[str, List[str]] | Yes      | The id (or list of ids) for the Doc(s) to Delete                |
| delete_all | bool                  | No       | Delete all vectors from partition.<br/>Default value: `False`    |
| partition  | Optional[str]         | No       | Name of the partition to Delete from.<br/>Default value: `None` |
| async_req  | bool                  | No       | Enable async request or not.<br/>Default value: `False`         |

Example:
```python
import dashvector

client = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')
collection = client.get('YOUR-COLLECTION-NAME')
collection.delete(['YOUR-DOC-ID1','YOUR-DOC-ID2'])
```

### Fetch Docs
```python
Collection.fetch(
    ids: Union[str, List[str]],
    partition: Optional[str] = None,
    async_req: bool = False
) -> DashVectorResponse
```

| Parameters | Type                  | Required | Description                                                    |
|------------|-----------------------|----------|----------------------------------------------------------------|
| ids        | Union[str, List[str]] | Yes      | The id (or list of ids) for the Doc(s) to Fetch                |
| partition  | Optional[str]         | No       | Name of the partition to Fetch from.<br/>Default value: `None` |
| async_req  | bool                  | No       | Enable async request or not.<br/>Default value: `False`        |

Example:
```python
import dashvector

client = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')
collection = client.get('YOUR-COLLECTION-NAME')
fetch_docs = collection.fetch(['YOUR-DOC-ID1', 'YOUR-DOC-ID2'])
if fetch_docs:
    for doc_id in fetch_docs:
        doc = fetch_docs[doc_id]
        print(doc.id)
        print(doc.vector)
        print(doc.fields)
```

### Create Collection Partition
`Collection.create_partition(name: str) -> DashVectorResponse`

| Parameters | Type           | Required | Description                                                                                           |
|------------|----------------|----------|-------------------------------------------------------------------------------------------------------|
| name       | str            | Yes      | The name of the Partition to Create.                                                                  |
| timeout    | Optional[int]  | No       | Timeout period (in seconds), -1 means asynchronous creation partition.<br/>Default value: `None`      |

Example:
```python
import dashvector

client = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')
collection = client.get('YOUR-COLLECTION-NAME')
rsp = collection.create_partition('YOUR-PARTITION-NAME')
assert rsp
```

### Delete Collection Partition
`Collection.delete_partition(name: str) -> DashVectorResponse`

| Parameters | Type  | Required | Description                          |
|------------|-------|----------|--------------------------------------|
| name       | str   | Yes      | The name of the Partition to Delete. |

Example:
```python
import dashvector

client = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')
collection = client.get('YOUR-COLLECTION-NAME')
rsp = collection.delete_partition('YOUR-PARTITION-NAME')
assert rsp
```

### List Collection Partitions
`Collection.list_partitions() -> DashVectorResponse`

Example:
```python
import dashvector

client = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')
collection = client.get('YOUR-COLLECTION-NAME')
partitions = collection.list_partitions()

assert partitions
for pt in partitions:
    print(pt)
```

### Describe Collection Partition
`Collection.describe_partition(name: str) -> DashVectorResponse`

| Parameters | Type  | Required | Description                            |
|------------|-------|----------|----------------------------------------|
| name       | str   | Yes      | The name of the Partition to Describe. |

Example:
```python
import dashvector

client = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')
collection = client.get('YOUR-COLLECTION-NAME')

rsp = collection.describe_partition('shoes')
print(rsp)
# example output:
# {"request_id":"296267a7-68e2-483a-87e6-5992d85a5806","code":0,"message":"","output":"SERVING"}
```

### Statistics for Collection Partition
`Collection.stats_partition(name: str) -> DashVectorResponse`

| Parameters | Type  | Required | Description                                  |
|------------|-------|----------|----------------------------------------------|
| name       | str   | Yes      | The name of the Partition to get Statistics. |

Example:
```python
import dashvector

client = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')
collection = client.get('YOUR-COLLECTION-NAME')

rsp = collection.stats_partition('shoes')
print(rsp)
# example outptut:
# {
#     "code":0,
#     "message":"",
#     "requests_id":"330a2bcb-e4a7-4fc6-a711-2fe5f8a24e8c",
#     "output":{
#         "total_doc_count":0
#     }
# }
```


## Class
### dashvector.Doc
```python
@dataclass(frozen=True)
class Doc(object):
    id: str
    vector: Union[List[int], List[float], numpy.ndarray]
    fields: Optional[Dict[str, Union[Type[str], Type[int], Type[float], Type[bool]]]] = None 
    score: float = 0.0
```

### dashvector.DashVectorResponse

```python
class DashVectorResponse(object):
    code: DashVectorCode
    message: str
    request_id: str
    output: Any
```

## License
This project is licensed under the Apache License (Version 2.0).
            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/alibaba/proxima",
    "name": "dashvector",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.7",
    "maintainer_email": null,
    "keywords": "DashVector, vector, database, cloud",
    "author": "Alibaba",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/00/c1/2d117f6c52dc1c9226891ce4f1f0e35ba3dd32a4f582b42d71ded2de9e66/dashvector-1.0.16.tar.gz",
    "platform": null,
    "description": "# DashVector Client Python Library\n\nDashVector is a scalable and fully-managed vector-database service for building various machine learning applications. The DashVector client SDK is your gateway to access the DashVector service.\n\nFor more information about DashVector, please visit: https://help.aliyun.com/document_detail/2510225.html\n\n## Installation\nTo install the DashVector client Python SDK, simply run:\n```shell\npip install dashvector\n```\n\n## QuickStart\n\n```python\nimport numpy as np\nimport dashvector\n\n# Use DashVector `Client` api to communicate with the backend vectorDB service.\nclient = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')\n\n# Create a collection named \"quickstart\" with dimension of 4, using the default Cosine distance metric\nrsp = client.create(name='quickstart', dimension=4)\nassert rsp\n\n# Get a collection by name\ncollection = client.get(name='quickstart')\n\n# Operations on 'Collection' includes Inert/Query/Upsert/Update/Delete/Fetch of docs\n# Here we insert sample data (4-dimensional vectors) in batches of 16\ncollection.insert(\n    [\n        dashvector.Doc(id=str(i), vector=np.random.rand(4), fields={'anykey': 'anyvalue'}) \n        for i in range(16)\n    ]\n)\n\n# Query a vector from the collection\ndocs = collection.query([0.1, 0.2, 0.3, 0.4], topk=5)\nprint(docs)\n\n# Get statistics about collection\nstats = collection.stats()\nprint(stats)\n\n# Delete a collection by name\nclient.delete(name='quickstart')\n```\n\n## Reference\n\n### Create a Client\n`Client` host various APIs for interacting with DashVector `Collection`.\n\n```python\ndashvector.Client(\n    api_key: str,\n    endpoint: str = 'dashvector.cn-hangzhou.aliyuncs.com',\n    protocal: dashvector.DashVectorProtocol = dashvector.DashVectorProtocol.GRPC, \n    timeout: float = 10.0\n) -> Client\n```\n\n| Parameters | Type               | Required | Description                                                                                  |\n|------------|--------------------|----------|----------------------------------------------------------------------------------------------|\n| api_key    | str                | Yes      | Your DashVector API-KEY                                                                      |\n| endpoint   | str                | No       | Service Endpoint. <br/>Default value: `dashvector.cn-hangzhou.aliyuncs.com`                  |\n| protocol   | DashVectorProtocol | No       | Communication protocol, support HTTP and GRPC. <br/>Default value: `DashVectorProtocol.GRPC` |\n| timeout    | float              | No       | Timeout period (in seconds), -1 means no timeout. <br/>Default value: `10.0`                 |\n\nExample:\n```python\nimport dashvector\n\nclient = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')\nassert client\n```\n\n### Create Collection\n```python\nClient.create(\n    name: str,\n    dimension: int,\n    dtype: Union[Type[int], Type[float]] = float,\n    fields_schema: Optional[Dict[str, Union[Type[str], Type[int], Type[float], Type[bool]]]] = None,\n    metric: str = 'cosine',\n    timeout: Optional[int] = None\n) -> DashVectorResponse\n```\n\n| Parameters     | Type                                                                       | Required | Description                                                                                                      |\n|----------------|----------------------------------------------------------------------------|----------|------------------------------------------------------------------------------------------------------------------|\n| name           | str                                                                        | Yes      | The name of the Collection to create.                                                                            |\n| dimension      | int                                                                        | Yes      | The dimensions of the Collection's vectors. Valid values:  1-20,000                                              |\n| dtype          | Union[Type[int], Type[float]]                                              | No       | The date type of the Collection's vectors.<br/>Default value: `Type[float]`                                      |\n| fields_schema  | Optional[Dict[str, Union[Type[str], Type[int], Type[float], Type[bool]]]]  | No       | Fields schema of the Collection.<br/>Default value: `None`<br/>e.g. `{\"name\": str, \"age\": int}`                  |\n| metric         | str                                                                        | No       | Vector similarity metric. For `cosine`, dtype must be `float`.<br/>Valid values:<br/> 1. (Default)`cosine`<br/>2. `dotproduct`<br/>3. `euclidean`    |\n| timeout        | Optional[int]                                                              | No       | Timeout period (in seconds), -1 means asynchronous creation collection.<br/>Default value: `None`                |\n\n\nExample:\n```python\nimport dashvector\n\nclient = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')\n\nrsp = client.create('YOUR-COLLECTION-NAME', dimension=4)\nassert rsp\n```\n\n### List Collections\n`Client.list() -> DashVectorResponse`\n\nExample:\n```python\nimport dashvector\n\nclient = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')\n\ncollections = client.list()\n\nfor collection in collections:\n    print(collection)\n# outputs:\n# 'quickstart'\n```\n\n### Describe Collection\n`Client.describe(name: str) -> DashVectorResponse`\n\n| Parameters | Type  | Required | Description                             |\n|------------|-------|----------|-----------------------------------------|\n| name       | str   | Yes      | The name of the Collection to describe. |\n\nExample:\n```python\nimport dashvector\n\nclient = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')\nrsp = client.describe('YOUR-COLLECTION-NAME')\n\nprint(rsp)\n# example output:\n# {\n#   \"request_id\": \"8d3ac14e-5382-4736-b77c-4318761ddfab\",\n#   \"code\": 0,\n#   \"message\": \"\",\n#   \"output\": {\n#     \"name\": \"quickstart\",\n#     \"dimension\": 4,\n#     \"dtype\": \"FLOAT\",\n#     \"metric\": \"dotproduct\",\n#     \"fields_schema\": {\n#       \"name\": \"STRING\",\n#       \"age\": \"INT\",\n#       \"height\": \"FLOAT\"\n#     },\n#     \"status\": \"SERVING\",\n#     \"partitions\": {\n#       \"default\": \"SERVING\"\n#     }\n#   }\n# }\n```\n\n### Delete Collection\n`Client.delete(name: str) -> DashVectorResponse`\n\n| Parameters | Type  | Required | Description                           |\n|------------|-------|----------|---------------------------------------|\n| name       | str   | Yes      | The name of the Collection to delete. |\n\nExample:\n```python\nimport dashvector\n\nclient = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')\nclient.delete('YOUR-COLLECTION-NAME')\n```\n\n### Get a Collection Instance\n`Collection` provides APIs for accessing `Doc` and `Partition`\n\n`Client.get(name: str) -> Collection`\n\n| Parameters | Type  | Required | Description                        |\n|------------|-------|----------|------------------------------------|\n| name       | str   | Yes      | The name of the Collection to get. |\n\nExample:\n```python\nimport dashvector\n\nclient = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')\ncollection = client.get('YOUR-COLLECTION-NAME')\nassert collection\n```\n\n### Describe Collection Statistics\n`Collection.stats() -> DashVectorResponse`\n\nExample:\n```python\nimport dashvector\n\nclient = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')\ncollection = client.get('YOUR-COLLECTION-NAME')\nrsp = collection.stats()\n\nprint(rsp)\n# example output:\n# {\n#   \"request_id\": \"14448bcb-c9a3-49a8-9152-0de3990bce59\",\n#   \"code\": 0,\n#   \"message\": \"Success\",\n#   \"output\": {\n#     \"total_doc_count\": \"26\",\n#     \"index_completeness\": 1.0,\n#     \"partitions\": {\n#       \"default\": {\n#         \"total_doc_count\": \"26\"\n#       }\n#     }\n#   }\n# }\n```\n\n### Insert/Update/Upsert Docs\n```python\nCollection.insert(\n    docs: Union[Doc, List[Doc], Tuple, List[Tuple]],\n    partition: Optional[str] = None,\n    async_req: False\n) -> DashVectorResponse\n```\n\n| Parameters | Type                                      | Required | Description                                                            |\n|------------|-------------------------------------------|----------|------------------------------------------------------------------------|\n| docs       | Union[Doc, List[Doc], Tuple, List[Tuple]] | Yes      | The docs to Insert/Update/Upsert.                                      |\n| partition  | Optional[str]                             | No       | Name of the partition to Insert/Update/Upsert.<br/>Default value: `None` |\n| async_req  | bool                                      | No       | Enable async request or not.<br/>Default value: `False`                  |\n\nExample:\n```python\nimport dashvector\nimport numpy as np\n\nclient = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')\ncollection = client.get('YOUR-COLLECTION-NAME')\n\n# insert a doc with Tuple\ncollection.insert(('YOUR-DOC-ID1', [0.1, 0.2, 0.3, 0.4]))\ncollection.insert(('YOUR-DOC-ID2', [0.2, 0.3, 0.4, 0.5], {'age': 30, 'name': 'alice', 'anykey': 'anyvalue'}))\n\n# insert a doc with dashvector.Doc\ncollection.insert(\n    dashvector.Doc(\n        id='YOUR-DOC-ID3', \n        vector=[0.3, 0.4, 0.5, 0.6], \n        fields={'foo': 'bar'}\n    )\n)\n\n# insert in batches\nret = collection.insert(\n    [\n        ('YOUR-DOC-ID4', [0.2, 0.7, 0.8, 1.3], {'age': 1}),\n        ('YOUR-DOC-ID4', [0.3, 0.6, 0.9, 1.2], {'age': 2}),\n        ('YOUR-DOC-ID6', [0.4, 0.5, 1.0, 1.1], {'age': 3})\n    ]\n)\n\n# insert in batches\nret = collection.insert(\n    [\n        dashvector.Doc(id=str(i), vector=np.random.rand(4)) for i in range(10)\n    ]\n)\n\n# async insert\nret_funture = collection.insert(\n    [\n        dashvector.Doc(id=str(i+10), vector=np.random.rand(4)) for i in range(10)\n    ],\n    async_req=True\n)\nret = ret_funture.get()\n```\n\n### Query a Collection\n```python\nCollection.query(\n    vector: Optional[Union[List[Union[int, float]], np.ndarray]] = None,\n    id: Optional[str] = None,\n    topk: int = 10,\n    filter: Optional[str] = None,\n    include_vector: bool = False,\n    partition: Optional[str] = None,\n    output_fields: Optional[List[str]] = None,\n    async_req: False\n) -> DashVectorResponse\n```\n\n| Parameters      | Type                                                 | Required | Description                                                                                                  |\n|-----------------|------------------------------------------------------|----------|--------------------------------------------------------------------------------------------------------------|\n| vector          | Optional[Union[List[Union[int, float]], np.ndarray]] | No       | The vector to query                                                                                          |\n| id              | Optional[str]                                        | No       | The doc id to query.<br/>Setting `id` means searching by vector corresponding to the id                      |\n| topk            | Optional[str]                                        | No       | Number of similarity results to return.<br/>Default value: `10`                                              |\n| filter          | Optional[str]                                        | No       | Expression used to filter results <br/>Default value: None <br/>e.g. `age>20`                                |\n| include_vector  | bool                                                 | No       | Return vector details or not.<br/>Default value: `False`                                                     |\n| partition       | Optional[str]                                        | No       | Name of the partition to Query.<br/>Default value: `None`                                                    |\n| output_fields   | Optional[List[str]]                                  | No       | List of field names to return.<br/>Default value: `None`, means return all fields<br/>e.g. `['name', 'age']` |\n| async_req       | bool                                                 | No       | Enable async request or not.<br/>Default value: `False`                                                      |\n\nExample:\n```python\nimport dashvector\n\nclient = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')\ncollection = client.get('YOUR-COLLECTION-NAME')\nmatch_docs = collection.query([0.1, 0.2, 0.3, 0.4], topk=100, filter='age>20', include_vector=True, output_fields=['age','name','foo'])\nif match_docs:\n    for doc in match_docs:\n        print(doc.id)\n        print(doc.vector)\n        print(doc.fields)\n        print(doc.score)\n```\n\n### Delete Docs\n```python\ncollection.delete(\n    ids: Union[str, List[str]],\n    delete_all: bool = False,\n    partition: Optional[str] = None,\n    async_req: bool = False\n) -> DashVectorResponse\n```\n\n| Parameters | Type                  | Required | Description                                                     |\n|------------|-----------------------|----------|-----------------------------------------------------------------|\n| ids        | Union[str, List[str]] | Yes      | The id (or list of ids) for the Doc(s) to Delete                |\n| delete_all | bool                  | No       | Delete all vectors from partition.<br/>Default value: `False`    |\n| partition  | Optional[str]         | No       | Name of the partition to Delete from.<br/>Default value: `None` |\n| async_req  | bool                  | No       | Enable async request or not.<br/>Default value: `False`         |\n\nExample:\n```python\nimport dashvector\n\nclient = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')\ncollection = client.get('YOUR-COLLECTION-NAME')\ncollection.delete(['YOUR-DOC-ID1','YOUR-DOC-ID2'])\n```\n\n### Fetch Docs\n```python\nCollection.fetch(\n    ids: Union[str, List[str]],\n    partition: Optional[str] = None,\n    async_req: bool = False\n) -> DashVectorResponse\n```\n\n| Parameters | Type                  | Required | Description                                                    |\n|------------|-----------------------|----------|----------------------------------------------------------------|\n| ids        | Union[str, List[str]] | Yes      | The id (or list of ids) for the Doc(s) to Fetch                |\n| partition  | Optional[str]         | No       | Name of the partition to Fetch from.<br/>Default value: `None` |\n| async_req  | bool                  | No       | Enable async request or not.<br/>Default value: `False`        |\n\nExample:\n```python\nimport dashvector\n\nclient = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')\ncollection = client.get('YOUR-COLLECTION-NAME')\nfetch_docs = collection.fetch(['YOUR-DOC-ID1', 'YOUR-DOC-ID2'])\nif fetch_docs:\n    for doc_id in fetch_docs:\n        doc = fetch_docs[doc_id]\n        print(doc.id)\n        print(doc.vector)\n        print(doc.fields)\n```\n\n### Create Collection Partition\n`Collection.create_partition(name: str) -> DashVectorResponse`\n\n| Parameters | Type           | Required | Description                                                                                           |\n|------------|----------------|----------|-------------------------------------------------------------------------------------------------------|\n| name       | str            | Yes      | The name of the Partition to Create.                                                                  |\n| timeout    | Optional[int]  | No       | Timeout period (in seconds), -1 means asynchronous creation partition.<br/>Default value: `None`      |\n\nExample:\n```python\nimport dashvector\n\nclient = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')\ncollection = client.get('YOUR-COLLECTION-NAME')\nrsp = collection.create_partition('YOUR-PARTITION-NAME')\nassert rsp\n```\n\n### Delete Collection Partition\n`Collection.delete_partition(name: str) -> DashVectorResponse`\n\n| Parameters | Type  | Required | Description                          |\n|------------|-------|----------|--------------------------------------|\n| name       | str   | Yes      | The name of the Partition to Delete. |\n\nExample:\n```python\nimport dashvector\n\nclient = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')\ncollection = client.get('YOUR-COLLECTION-NAME')\nrsp = collection.delete_partition('YOUR-PARTITION-NAME')\nassert rsp\n```\n\n### List Collection Partitions\n`Collection.list_partitions() -> DashVectorResponse`\n\nExample:\n```python\nimport dashvector\n\nclient = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')\ncollection = client.get('YOUR-COLLECTION-NAME')\npartitions = collection.list_partitions()\n\nassert partitions\nfor pt in partitions:\n    print(pt)\n```\n\n### Describe Collection Partition\n`Collection.describe_partition(name: str) -> DashVectorResponse`\n\n| Parameters | Type  | Required | Description                            |\n|------------|-------|----------|----------------------------------------|\n| name       | str   | Yes      | The name of the Partition to Describe. |\n\nExample:\n```python\nimport dashvector\n\nclient = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')\ncollection = client.get('YOUR-COLLECTION-NAME')\n\nrsp = collection.describe_partition('shoes')\nprint(rsp)\n# example output:\n# {\"request_id\":\"296267a7-68e2-483a-87e6-5992d85a5806\",\"code\":0,\"message\":\"\",\"output\":\"SERVING\"}\n```\n\n### Statistics for Collection Partition\n`Collection.stats_partition(name: str) -> DashVectorResponse`\n\n| Parameters | Type  | Required | Description                                  |\n|------------|-------|----------|----------------------------------------------|\n| name       | str   | Yes      | The name of the Partition to get Statistics. |\n\nExample:\n```python\nimport dashvector\n\nclient = dashvector.Client(api_key='YOUR-DASHVECTOR-API-KEY')\ncollection = client.get('YOUR-COLLECTION-NAME')\n\nrsp = collection.stats_partition('shoes')\nprint(rsp)\n# example outptut:\n# {\n#     \"code\":0,\n#     \"message\":\"\",\n#     \"requests_id\":\"330a2bcb-e4a7-4fc6-a711-2fe5f8a24e8c\",\n#     \"output\":{\n#         \"total_doc_count\":0\n#     }\n# }\n```\n\n\n## Class\n### dashvector.Doc\n```python\n@dataclass(frozen=True)\nclass Doc(object):\n    id: str\n    vector: Union[List[int], List[float], numpy.ndarray]\n    fields: Optional[Dict[str, Union[Type[str], Type[int], Type[float], Type[bool]]]] = None \n    score: float = 0.0\n```\n\n### dashvector.DashVectorResponse\n\n```python\nclass DashVectorResponse(object):\n    code: DashVectorCode\n    message: str\n    request_id: str\n    output: Any\n```\n\n## License\nThis project is licensed under the Apache License (Version 2.0).",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "DashVector Client Python Sdk Library",
    "version": "1.0.16",
    "project_urls": {
        "Documentation": "https://help.aliyun.com/document_detail/2510225.html",
        "Homepage": "https://github.com/alibaba/proxima"
    },
    "split_keywords": [
        "dashvector",
        " vector",
        " database",
        " cloud"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ee6a9963913f639ee704bb53cbaeb7bd2a36a1ca55a32ccbbcb428efd16e23fe",
                "md5": "88a1be003dd2f8efad4c5d48e02e6352",
                "sha256": "734222198d0b6b0317b744055a00c04b4157c3612af1997340b458aaf6f86acf"
            },
            "downloads": -1,
            "filename": "dashvector-1.0.16-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "88a1be003dd2f8efad4c5d48e02e6352",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.7",
            "size": 76264,
            "upload_time": "2024-06-11T07:51:43",
            "upload_time_iso_8601": "2024-06-11T07:51:43.259486Z",
            "url": "https://files.pythonhosted.org/packages/ee/6a/9963913f639ee704bb53cbaeb7bd2a36a1ca55a32ccbbcb428efd16e23fe/dashvector-1.0.16-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "00c12d117f6c52dc1c9226891ce4f1f0e35ba3dd32a4f582b42d71ded2de9e66",
                "md5": "174300fb9c6e5d5f0cc7694b3ee6f7cc",
                "sha256": "e8871c36b79717be82182720365b6b309358f318fdc693b8aacc8adc92c7ba8b"
            },
            "downloads": -1,
            "filename": "dashvector-1.0.16.tar.gz",
            "has_sig": false,
            "md5_digest": "174300fb9c6e5d5f0cc7694b3ee6f7cc",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.7",
            "size": 46548,
            "upload_time": "2024-06-11T07:51:44",
            "upload_time_iso_8601": "2024-06-11T07:51:44.692205Z",
            "url": "https://files.pythonhosted.org/packages/00/c1/2d117f6c52dc1c9226891ce4f1f0e35ba3dd32a4f582b42d71ded2de9e66/dashvector-1.0.16.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-11 07:51:44",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "alibaba",
    "github_project": "proxima",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "dashvector"
}
        
Elapsed time: 0.32123s