API to develop Python clients to interact with the Cheshire Cat.
The package allows instantiating a WebSocket client and provides the API to interact with all the endpoints.
A part of this Python package is automatically generated by the OpenAPI Generator project.
For deeper documentation about the available endpoints, please refer to the API ReDoc. The official Cheshire Cat documentation is available here.
Python 3.10
You can install the API with pip
:
pip install cheshire-cat-api
Then import the package:
import cheshire_cat_api as ccat
The CatClient
has the following attributes to easily interface with the related APis:
- memory
- plugins
- rabbit_hole
- status
- embedder
- settings
- llm
import cheshire_cat_api as ccat
# A config is necessary to set up base parameters like
# URL, port, user_id, etc.
config = ccat.Config(user_id="my_user_42")
# Connect to the API
cat_client = ccat.CatClient(
config=config
)
# Now retrieve a list of the available plugins
plugins = cat_client.plugins.get_available_plugins()
from cheshire_cat_api.models.body_upload_url import BodyUploadUrl
# Please note that interacting with the RabbitHole to upload
# a URL requires structuring the body like this
body_upload_url = BodyUploadUrl(
url="https://cheshire-cat-ai.github.io/docs/conceptual/cheshire_cat/rabbit_hole/"
)
# then you can make the request as follows
response = cat_client.rabbit_hole.upload_url(body_upload_url)
import time
import cheshire_cat_api as ccat
# A config is necessary to set up base parameters like
# URL, port, user_id, etc.
config = ccat.Config(user_id="my_user_42")
cat_client = ccat.CatClient(config=config)
# Connect to the WebSocket API
cat_client.connect_ws()
while not cat_client.is_ws_connected:
# A better handling is strongly advised to avoid an infinite loop
time.sleep(1)
# Send the message
cat_client.send(message="Hello Cat!")
# Close connection
cat_client.close()
Both the classes are available with:
from cheshire_cat_api import Config
Class | Name | Default | Description |
---|---|---|---|
Config | base_url |
"localhost" | base URL where the Cat is hosted |
Config | port |
1865 | port for the connection |
Config | user_id |
"user" | id of the client |
Config | auth_key |
"" | authentication key for the http endpoints |
Config | secure_connection |
False | if to use secure protocol |
For a more advanced usage, you can directly interact with the auto-generated client. For documentation see here