To install the SDK, use pip:
pip install minds-sdk
To get started, you'll need to initialize the Client with your API key. If you're using a different server, you can also specify a custom base URL.
from minds.client import Client
# Default connection to Minds Cloud that uses 'https://mdb.ai' as the base URL
client = Client("YOUR_API_KEY")
# If you have self-hosted Minds Cloud instance, use your custom base URL
base_url = 'https://<custom_cloud>.mdb.ai/'
client = Client("YOUR_API_KEY", base_url)
You can connect to various databases, such as PostgreSQL, by configuring your data source. Use the DatabaseConfig to define the connection details for your data source.
from minds.datasources import DatabaseConfig
postgres_config = DatabaseConfig(
name='my_datasource',
description='<DESCRIPTION-OF-YOUR-DATA>',
engine='postgres',
connection_data={
'user': 'demo_user',
'password': 'demo_password',
'host': 'samples.mindsdb.com',
'port': 5432,
'database': 'demo',
'schema': 'demo_data'
},
tables=['<TABLE-1>', '<TABLE-2>']
)
You can create a mind
and associate it with a data source.
# Create a mind with a data source
mind = client.minds.create(name='mind_name', datasources=[postgres_config])
# Alternatively, create a data source separately and add it to a mind later
datasource = client.datasources.create(postgres_config)
mind2 = client.minds.create(name='mind_name', datasources=[datasource])
You can also add a data source to an existing mind:
# Create a mind without a data source
mind3 = client.minds.create(name='mind_name')
# Add a data source to the mind
mind3.add_datasource(postgres_config) # Using the config
mind3.add_datasource(datasource) # Using the data source object
You can create a mind or replace an existing one with the same name.
mind = client.minds.create(name='mind_name', replace=True, datasources=[postgres_config])
To update a mind, specify the new name and data sources. The provided data sources will replace the existing ones.
mind.update(
name='mind_name',
datasources=[postgres_config]
)
You can list all the minds you’ve created.
print(client.minds.list())
You can fetch details of a mind by its name.
mind = client.minds.get('mind_name')
To delete a mind, use the following command:
client.minds.drop('mind_name')
To view all data sources:
print(client.datasources.list())
You can fetch details of a specific data source by its name.
datasource = client.datasources.get('my_datasource')
To delete a data source, use the following command:
client.datasources.drop('my_datasource')
Note: The SDK currently does not support automatically removing a data source if it is no longer connected to any mind.