You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
204 lines
7.6 KiB
204 lines
7.6 KiB
# Weaviate API Client Documentation
|
|
|
|
## Overview
|
|
|
|
The Weaviate API Client is an interface to Weaviate, a vector database with a GraphQL API. This client allows you to interact with Weaviate programmatically, making it easier to create collections, add objects, query data, update objects, and delete objects within your Weaviate instance.
|
|
|
|
This documentation provides a comprehensive guide on how to use the Weaviate API Client, including its initialization, methods, and usage examples.
|
|
|
|
## Table of Contents
|
|
|
|
- [Installation](#installation)
|
|
- [Initialization](#initialization)
|
|
- [Methods](#methods)
|
|
- [create_collection](#create-collection)
|
|
- [add](#add)
|
|
- [query](#query)
|
|
- [update](#update)
|
|
- [delete](#delete)
|
|
- [Examples](#examples)
|
|
|
|
## Installation
|
|
|
|
Before using the Weaviate API Client, make sure to install the `swarms` library. You can install it using pip:
|
|
|
|
```bash
|
|
pip install swarms
|
|
```
|
|
|
|
## Initialization
|
|
|
|
To use the Weaviate API Client, you need to initialize an instance of the `WeaviateDB` class. Here are the parameters you can pass to the constructor:
|
|
|
|
| Parameter | Type | Description |
|
|
|----------------------|----------------|----------------------------------------------------------------------------------------------------------------------------------|
|
|
| `http_host` | str | The HTTP host of the Weaviate server. |
|
|
| `http_port` | str | The HTTP port of the Weaviate server. |
|
|
| `http_secure` | bool | Whether to use HTTPS. |
|
|
| `grpc_host` | Optional[str] | The gRPC host of the Weaviate server. (Optional) |
|
|
| `grpc_port` | Optional[str] | The gRPC port of the Weaviate server. (Optional) |
|
|
| `grpc_secure` | Optional[bool] | Whether to use gRPC over TLS. (Optional) |
|
|
| `auth_client_secret` | Optional[Any] | The authentication client secret. (Optional) |
|
|
| `additional_headers` | Optional[Dict[str, str]] | Additional headers to send with requests. (Optional) |
|
|
| `additional_config` | Optional[weaviate.AdditionalConfig] | Additional configuration for the client. (Optional) |
|
|
| `connection_params` | Dict[str, Any] | Dictionary containing connection parameters. This parameter is used internally and can be ignored in most cases. |
|
|
|
|
Here's an example of how to initialize a WeaviateDB:
|
|
|
|
```python
|
|
from swarms.memory import WeaviateDB
|
|
|
|
weaviate_client = WeaviateDB(
|
|
http_host="YOUR_HTTP_HOST",
|
|
http_port="YOUR_HTTP_PORT",
|
|
http_secure=True,
|
|
grpc_host="YOUR_gRPC_HOST",
|
|
grpc_port="YOUR_gRPC_PORT",
|
|
grpc_secure=True,
|
|
auth_client_secret="YOUR_APIKEY",
|
|
additional_headers={"X-OpenAI-Api-Key": "YOUR_OPENAI_APIKEY"},
|
|
additional_config=None, # You can pass additional configuration here
|
|
)
|
|
```
|
|
|
|
## Methods
|
|
|
|
### `create_collection`
|
|
|
|
The `create_collection` method allows you to create a new collection in Weaviate. A collection is a container for storing objects with specific properties.
|
|
|
|
#### Parameters
|
|
|
|
- `name` (str): The name of the collection.
|
|
- `properties` (List[Dict[str, Any]]): A list of dictionaries specifying the properties of objects to be stored in the collection.
|
|
- `vectorizer_config` (Any, optional): Additional vectorizer configuration for the collection. (Optional)
|
|
|
|
#### Usage
|
|
|
|
```python
|
|
weaviate_client.create_collection(
|
|
name="my_collection",
|
|
properties=[
|
|
{"name": "property1", "dataType": ["string"]},
|
|
{"name": "property2", "dataType": ["int"]},
|
|
],
|
|
vectorizer_config=None, # Optional vectorizer configuration
|
|
)
|
|
```
|
|
|
|
### `add`
|
|
|
|
The `add` method allows you to add an object to a specified collection in Weaviate.
|
|
|
|
#### Parameters
|
|
|
|
- `collection_name` (str): The name of the collection where the object will be added.
|
|
- `properties` (Dict[str, Any]): A dictionary specifying the properties of the object to be added.
|
|
|
|
#### Usage
|
|
|
|
```python
|
|
weaviate_client.add(
|
|
collection_name="my_collection", properties={"property1": "value1", "property2": 42}
|
|
)
|
|
```
|
|
|
|
### `query`
|
|
|
|
The `query` method allows you to query objects from a specified collection in Weaviate.
|
|
|
|
#### Parameters
|
|
|
|
- `collection_name` (str): The name of the collection to query.
|
|
- `query` (str): The query string specifying the search criteria.
|
|
- `limit` (int, optional): The maximum number of results to return. (Default: 10)
|
|
|
|
#### Usage
|
|
|
|
```python
|
|
results = weaviate_client.query(
|
|
collection_name="my_collection",
|
|
query="property1:value1",
|
|
limit=20 # Optional, specify the limit
|
|
|
|
if needed
|
|
)
|
|
```
|
|
|
|
### `update`
|
|
|
|
The `update` method allows you to update an object in a specified collection in Weaviate.
|
|
|
|
#### Parameters
|
|
|
|
- `collection_name` (str): The name of the collection where the object exists.
|
|
- `object_id` (str): The ID of the object to be updated.
|
|
- `properties` (Dict[str, Any]): A dictionary specifying the properties to update.
|
|
|
|
#### Usage
|
|
|
|
```python
|
|
weaviate_client.update(
|
|
collection_name="my_collection",
|
|
object_id="object123",
|
|
properties={"property1": "new_value", "property2": 99},
|
|
)
|
|
```
|
|
|
|
### `delete`
|
|
|
|
The `delete` method allows you to delete an object from a specified collection in Weaviate.
|
|
|
|
#### Parameters
|
|
|
|
- `collection_name` (str): The name of the collection from which to delete the object.
|
|
- `object_id` (str): The ID of the object to delete.
|
|
|
|
#### Usage
|
|
|
|
```python
|
|
weaviate_client.delete(collection_name="my_collection", object_id="object123")
|
|
```
|
|
|
|
## Examples
|
|
|
|
Here are three examples demonstrating how to use the Weaviate API Client for common tasks:
|
|
|
|
### Example 1: Creating a Collection
|
|
|
|
```python
|
|
weaviate_client.create_collection(
|
|
name="people",
|
|
properties=[
|
|
{"name": "name", "dataType": ["string"]},
|
|
{"name": "age", "dataType": ["int"]},
|
|
],
|
|
)
|
|
```
|
|
|
|
### Example 2: Adding an Object
|
|
|
|
```python
|
|
weaviate_client.add(collection_name="people", properties={"name": "John", "age": 30})
|
|
```
|
|
|
|
### Example 3: Querying Objects
|
|
|
|
```python
|
|
results = weaviate_client.query(collection_name="people", query="name:John", limit=5)
|
|
```
|
|
|
|
These examples cover the basic operations of creating collections, adding objects, and querying objects using the Weaviate API Client.
|
|
|
|
## Additional Information and Tips
|
|
|
|
- If you encounter any errors during the operations, the client will raise exceptions with informative error messages.
|
|
- You can explore more advanced features and configurations in the Weaviate documentation.
|
|
- Make sure to handle authentication and security appropriately when using the client in production environments.
|
|
|
|
## References and Resources
|
|
|
|
- [Weaviate Documentation](https://weaviate.readthedocs.io/en/latest/): Official documentation for Weaviate.
|
|
- [Weaviate GitHub Repository](https://github.com/semi-technologies/weaviate): The source code and issue tracker for Weaviate.
|
|
|
|
This documentation provides a comprehensive guide on using the Weaviate API Client to interact with Weaviate, making it easier to manage and query your data. |