Getting Started with the Minds JavaScript SDK

Aashish Karki - Oct 30 - - Dev Community

Ever wanted to integrate AI models with your databases seamlessly? The MindsDB JavaScript SDK provides exactly that - a bridge between your data sources and AI models. In this comprehensive guide, we'll explore how to use this powerful tool to create and manage "minds" (AI models) and data sources.

What is MindsDB?

MindsDB allows you to add AI capabilities directly to your database. Instead of moving your data to machine learning tools, MindsDB brings machine learning capabilities right to where your data lives. The JavaScript SDK makes this integration smooth and straightforward.

Getting Started

Installation

First, let's install the SDK:

npm install mindsdb_js_sdk
Enter fullscreen mode Exit fullscreen mode

Basic Configuration

The SDK offers flexible configuration options:

import MindsClient from 'mindsdb_js_sdk';

// Using environment variables
const client = new MindsClient();

// Or with custom configuration
const client = new MindsClient('your_api_key', 'https://mdb.ai');
Enter fullscreen mode Exit fullscreen mode

Working with Data Sources

Let's dive into managing your data sources.

Creating a Data Source

Here's how to connect your PostgreSQL database:

const datasourceConfig = {
  name: 'my_postgres_db',
  engine: 'postgres',
  description: 'My PostgreSQL database',
  connection_data: {
    host: 'localhost',
    port: 5432,
    database: 'mydb',
    user: 'user',
    password: 'password'
  },
  tables: ['table1', 'table2']
};

try {
  const datasource = await client.datasources.create(datasourceConfig);
  console.log('Datasource created:', datasource);
} catch (error) {
  console.error('Error:', error);
}
Enter fullscreen mode Exit fullscreen mode

Managing Data Sources

The SDK provides simple methods for data source management:

// List all data sources
const datasources = await client.datasources.list();

// Get details of a specific data source
const datasource = await client.datasources.get('my_postgres_db');

// Delete a data source
await client.datasources.drop('my_postgres_db');
Enter fullscreen mode Exit fullscreen mode

Working with Minds (AI Models)

Now comes the exciting part - creating and managing AI models!

Creating a Mind

Here's how to create an AI model connected to your data source:

const mindConfig = {
  name: 'my_mind',
  model_name: 'gpt-4',
  provider: 'openai',
  prompt_template: 'Use your database tools to answer the user\'s question: {{question}}',
  datasources: ['my_postgres_db'],
  parameters: {
    // Additional model parameters
  }
};

try {
  const mind = await client.minds.create('my_mind', mindConfig);
  console.log('Mind created:', mind);
} catch (error) {
  console.error('Error:', error);
}
Enter fullscreen mode Exit fullscreen mode

Managing Minds

Similar to data sources, minds can be managed easily:

// List all minds
const minds = await client.minds.list();

// Get specific mind
const mind = await client.minds.get('my_mind');

// Delete a mind
await client.minds.drop('my_mind');
Enter fullscreen mode Exit fullscreen mode

Using a Mind for Completions

Here's where the magic happens - using your AI model:

try {
  // Regular completion
  const result = await mind.completion('What was our revenue last month?');
  console.log('Answer:', result);

  // Streaming completion
  await mind.completion('Analyze our sales trend', true);
  // Results will stream to stdout
} catch (error) {
  console.error('Error:', error);
}
Enter fullscreen mode Exit fullscreen mode

Error Handling Best Practices

The SDK includes custom error classes for better error handling:

import { ObjectNotFound, ObjectNotSupported } from 'mindsdb_js_sdk/exception';

try {
  const mind = await client.minds.get('non_existent_mind');
} catch (error) {
  if (error instanceof ObjectNotFound) {
    console.error('Mind not found');
  } else if (error instanceof ObjectNotSupported) {
    console.error('Unsupported operation');
  } else {
    console.error('Unexpected error:', error);
  }
}
Enter fullscreen mode Exit fullscreen mode

Pro Tips

  1. Default Prompt Template: The SDK comes with a default prompt template: "Use your database tools to answer the user's question: {{question}}"

  2. OpenAI Integration: The SDK uses OpenAI's client for completions, making it compatible with popular AI models.

  3. Project Structure: All minds are created under the 'mindsdb' project by default.

Conclusion

The MindsDB JavaScript SDK provides a powerful interface to integrate AI capabilities with your databases. Whether you're building a data analytics tool, a chatbot, or any application that needs AI-powered database interactions, this SDK makes the process straightforward and developer-friendly.

Remember to check out the official documentation for more advanced features and updates.

Resources

Have you tried integrating AI with your databases before? What challenges did you face? Let's discuss in the comments below! 👇


Note: This article is based on the latest version of the MindsDB JavaScript SDK. Features and APIs might change in future versions.

.