weaviate

Weaviate Python Client Library used to interact with a Weaviate instance.

The interaction with Weaviate instance should be through a Client object. A Client instance has instance attributes to all the object needed to create objects/schema, do classification, upload batches, query data, … Creating separate Schema, DataObject, Batch, Classification, Query, Connect, Reference is STRONGLY DISCOURAGED. The Client class creates the needed instances and connects all of them to the same Weaviate instance for you.

Examples

A Weaviate instance running on localhost, on port 8080. With Authentication disables.

>>> import weaviate
>>> client = weaviate.Client('http://localhost:8080')
>>> print_type = lambda obj: print(type(obj))
>>> print_type(client.batch)
<class 'weaviate.batch.crud_batch.Batch'>
>>> print_type(client.schema)
<class 'weaviate.schema.crud_schema.Schema'>
>>> print_type(client.classification)
<class 'weaviate.classification.classify.Classification'>
>>> print_type(client.data_object)
<class 'weaviate.data.crud_data.DataObject'>
>>> print_type(client.query)
<class 'weaviate.gql.query.Query'>
weaviate.__version__

Current weaviate-python library version installed.

Type

str

class weaviate.AuthBearerToken(access_token: str, expires_in: int = 60, refresh_token: Optional[str] = None)

Bases: object

Using a preexisting bearer/access token for authentication.

The expiration time of access tokens is given in seconds.

Only the access token is required. However, when no refresh token is given, the authentication will expire once the lifetime of the access token is up.

access_token: str
expires_in: int = 60
refresh_token: Optional[str] = None
class weaviate.AuthClientCredentials(client_secret: str, scope: Optional[str] = None)

Bases: object

Authenticate for the Client Credential flow using client secrets.

Acquire the client secret from your identify provider and set the appropriate scope. The client includes hardcoded scopes for Azure, otherwise it needs to be supplied.

client_secret: str
scope: Optional[str] = None
class weaviate.AuthClientPassword(username: str, password: str, scope: Optional[str] = 'offline_access')

Bases: object

Using username and password for authentication with Resource Owner Password flow.

For some providers the scope needs to contain “offline_access” (and “openid” which is automatically added) to return a refresh token. Without a refresh token the authentication will expire once the lifetime of the access token is up.

password: str
scope: Optional[str] = 'offline_access'
username: str
exception weaviate.AuthenticationFailedException(message: str = '')

Bases: WeaviateBaseError

Authentication Failed Exception.

Weaviate base exception initializer. :param message: An error message specific to the context in which the error occurred. :type message: str, optional

class weaviate.Client(url: str, auth_client_secret: Optional[Union[AuthBearerToken, AuthClientPassword, AuthClientCredentials]] = None, timeout_config: Union[Tuple[Real, Real], Real] = (10, 60), proxies: Optional[Union[dict, str]] = None, trust_env: bool = False, additional_headers: Optional[dict] = None)

Bases: object

A python native weaviate Client class that encapsulates Weaviate functionalities in one object. A Client instance creates all the needed objects to interact with Weaviate, and connects all of them to the same Weaviate instance. See below the Attributes of the Client instance. For the per attribute functionality see that attribute’s documentation.

backup

A Backup object instance connected to the same Weaviate instance as the Client.

Type

weaviate.backup.Backup

batch

A Batch object instance connected to the same Weaviate instance as the Client.

Type

weaviate.batch.Batch

classification

A Classification object instance connected to the same Weaviate instance as the Client.

Type

weaviate.classification.Classification

contextionary

A Contextionary object instance connected to the same Weaviate instance as the Client.

Type

weaviate.contextionary.Contextionary

data_object

A DataObject object instance connected to the same Weaviate instance as the Client.

Type

weaviate.date.DataObject

schema

A Schema object instance connected to the same Weaviate instance as the Client.

Type

weaviate.schema.Schema

query

A Query object instance connected to the same Weaviate instance as the Client.

Type

weaviate.gql.Query

Initialize a Client class instance.

Parameters
  • url (str) – The URL to the weaviate instance.

  • auth_client_secret (weaviate.AuthCredentials or None, optional) – Authenticate to weaviate by using one of the given authentication modes: - weaviate.auth.AuthBearerToken to use existing access and (optionally, but recommended) refresh tokens - weaviate.auth.AuthClientPassword to use username and password for oidc Resource Owner Password flow - weaviate.auth.AuthClientCredentials to use a client secret for oidc client credential flow

  • timeout_config (tuple(Real, Real) or Real, optional) – Set the timeout configuration for all requests to the Weaviate server. It can be a real number or, a tuple of two real numbers: (connect timeout, read timeout). If only one real number is passed then both connect and read timeout will be set to that value, by default (2, 20).

  • proxies (dict, str or None, optional) – Proxies to be used for requests. Are used by both ‘requests’ and ‘aiohttp’. Can be passed as a dict (‘requests’ format: https://docs.python-requests.org/en/stable/user/advanced/#proxies), str (HTTP/HTTPS protocols are going to use this proxy) or None. By default None.

  • trust_env (bool, optional) – Whether to read proxies from the ENV variables: (HTTP_PROXY or http_proxy, HTTPS_PROXY or https_proxy). By default False. NOTE: ‘proxies’ has priority over ‘trust_env’, i.e. if ‘proxies’ is NOT None, ‘trust_env’ is ignored.

  • additional_headers (dict or None) –

    Additional headers to include in the requests. Can be used to set OpenAI/HuggingFace keys. OpenAI/HuggingFace key looks like this:

    {“X-OpenAI-Api-Key”: “<THE-KEY>”}, {“X-HuggingFace-Api-Key”: “<THE-KEY>”}

    by default None

Examples

Without Auth.

>>> client = Client(
...     url = 'http://localhost:8080'
... )
>>> client = Client(
...     url = 'http://localhost:8080',
...     timeout_config = (5, 15)
... )

With Auth.

>>> my_credentials = weaviate.auth.AuthClientPassword(USER_NAME, MY_PASSWORD)
>>> client = Client(
...     url = 'http://localhost:8080',
...     auth_client_secret = my_credentials
... )
Raises

TypeError – If arguments are of a wrong data type.

get_meta() dict

Get the meta endpoint description of weaviate.

Returns

The dict describing the weaviate configuration.

Return type

dict

Raises

weaviate.UnexpectedStatusCodeException – If weaviate reports a none OK status.

get_open_id_configuration() Optional[dict]

Get the openid-configuration.

Returns

The configuration or None if not configured.

Return type

dict

Raises

weaviate.UnexpectedStatusCodeException – If weaviate reports a none OK status.

is_live() bool

Ping Weaviate’s live state.

Returns

True if weaviate is live and should not be killed, False otherwise.

Return type

bool

is_ready() bool

Ping Weaviate’s ready state

Returns

True if Weaviate is ready to accept requests, False otherwise.

Return type

bool

property timeout_config: Tuple[Real, Real]

Getter/setter for timeout_config.

Parameters

timeout_config (tuple(Real, Real) or Real, optional) –

For Getter only: Set the timeout configuration for all requests to the Weaviate server. It can be a real number or, a tuple of two real numbers:

(connect timeout, read timeout).

If only one real number is passed then both connect and read timeout will be set to that value.

Returns

For Getter only: Requests Timeout configuration.

Return type

Tuple[Real, Real]

class weaviate.ConsistencyLevel(value)

Bases: str, BaseEnum

An enumeration.

ALL = '1'
ONE = '2'
QUORUM = '3'
exception weaviate.ObjectAlreadyExistsException(message: str = '')

Bases: WeaviateBaseError

Object Already Exists Exception.

Weaviate base exception initializer. :param message: An error message specific to the context in which the error occurred. :type message: str, optional

exception weaviate.SchemaValidationException(message: str = '')

Bases: WeaviateBaseError

Schema Validation Exception.

Weaviate base exception initializer. :param message: An error message specific to the context in which the error occurred. :type message: str, optional

exception weaviate.UnexpectedStatusCodeException(message: str, response: Response)

Bases: WeaviateBaseError

Is raised in case the status code returned from Weaviate is not handled in the client implementation and suggests an error.

Is raised in case the status code returned from Weaviate is not handled in the client implementation and suggests an error.

Custom code can act on the attributes: - status_code - json

Parameters
  • message (str) – An error message specific to the context, in which the error occurred.

  • response (requests.Response) – The request response of which the status code was unexpected.

Subpackages