DEV Community

Aashish Karki
Aashish Karki

Posted on • Edited on

Getting Started with the Minds JavaScript SDK

Ever wanted to integrate AI models with your databases seamlessly? The Minds 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 Minds?

Minds is an AI platform designed to simplify the creation, deployment, and management of AI models—referred to as "minds". It allows developers to build AI-powered applications that can interact with data sources to provide intelligent responses or automate tasks. The JavaScript SDK makes this integration smooth and straightforward.

Note: This article focuses on the Minds platform and its JavaScript SDK. It is different from MindsDB, which is an open-source AI layer for existing databases. For more details on the differences, refer to the Minds vs. MindsDB section at the end.

Getting Started

Installation

First, let's install the SDK:

npm install minds_js_sdk
Enter fullscreen mode Exit fullscreen mode

Basic Configuration

The SDK offers flexible configuration options:

import MindsClient from 'minds_js_sdk';

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

// Or with custom configuration
const client = new MindsClient('your_api_key', 'https://api.minds.com');
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 a 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 'minds_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 'minds' project by default.

Conclusion

The Minds 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.

Minds vs. MindsDB

It's important to note the difference between Minds and MindsDB:

  • Minds: An AI platform that simplifies the creation and deployment of AI models (minds) that interact with data sources via APIs and SDKs. Ideal for developers building AI-powered applications.

  • MindsDB: An open-source AI layer for existing databases, allowing machine learning models to be trained and deployed inside the database environment using SQL. Suited for data scientists and database administrators.

Understanding these differences ensures you choose the right tool for your specific needs.

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 **Minds JavaScript SDK. Features and APIs might change in future versions.

Top comments (0)