Minds Ruby SDK provides an interface to interact with the Minds AI system API. It allows you to create and manage “minds” (artificial intelligences), create chat completions, and manage data sources.
The best starting point is the Mind Website, with its introduction and explanation.
Add this line to your application’s Gemfile:
gem 'minds_sdk'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install minds_sdk
and require with:
require 'minds'
There are two ways to configure the Minds client:
You can set up a global configuration that will be used by default for all client instances:
Minds::Client.configure do |config|
config.base_url = "https://mdb.ai" # Optional: defaults to https://mdb.ai
config.api_key = "YOUR_API_KEY"
end
Alternatively, you can configure each client instance individually:
client = Minds::Client.new(api_key: "YOUR_API_KEY", base_url: "https://mdb.ai")
After configuration, you can initialize the client:
# Using global configuration
client = Minds::Client.new
# Or with instance-specific configuration
client = Minds::Client.new(api_key: "YOUR_API_KEY", base_url: "https://mdb.ai")
# For a self-hosted Minds Cloud instance
client = Minds::Client.new(api_key: "YOUR_API_KEY", base_url: "https://<custom_cloud>.mdb.ai")
Get your minds api key here
By default, the Minds SDK does not log any Faraday::Errors encountered during network requests to prevent potential data leaks. To enable error logging, you can set log_errors
to true when configuring the client:
# Global configuration
Minds::Client.configure do |config|
config.log_errors = true
end
# Or instance configuration
client = Minds::Client.new(log_errors: true)
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.
postgres_config = Minds::DatabaseConfig.new(
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>']
)
See supported Data Sources
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_datasources(postgres_config) # Using the config
mind3.add_datasources(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 attributes:
mind.update(
name: 'new_mind_name',
datasources: [postgres_config]
)
You can list all the minds you’ve created:
client.minds.all
You can fetch details of a mind by its name:
mind = client.minds.find('mind_name')
To delete a mind, use the following command:
client.minds.destroy('mind_name')
To view all data sources:
client.datasources.all
You can fetch details of a specific data source by its name:
datasource = client.datasources.find('my_datasource')
To delete a data source, use the following command:
client.datasources.destroy('my_datasource')
Note: The SDK currently does not support automatically removing a data source if it is no longer connected to any mind.
You can use a mind to generate chat completions:
response = mind.completion(message: "Hello, how are you?")
puts response
# For streaming responses
mind.completion(message: "Tell me a story", stream: true) do |chunk|
puts chunk
end
# => {"id"=>"ad2592865b844aadbb070b3fb5090869", "choices"=>[{"delta"=>{"content"=>"I understand your request. I'm working on a detailed response for you.", "function_call"=>nil, "role"=>"assistant", "tool_calls"=>nil}, "finish_reason"=>nil, "index"=>0, "logprobs"=>nil}], "created"=>1729085931, "model"=>"mind_house_sale", "object"=>"chat.completion.chunk", "system_fingerprint"=>nil, "usage"=>nil}
# => ...
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
Bug reports and pull requests are welcome on GitHub at here.
This SDK is built for integration with Minds, AI layer for existing databases. See more docs here
We would like to express our gratitude to the MindsDB team for their innovative work in making AI more accessible. For more information about MindsDB, please visit their official website: https://mindsdb.com/
The gem is available as open source under the terms of the MIT License.