MindsDB Docker ExtensionでリアルタイムAIアプリケーションの開発を効率化

この記事は、MindsDB のソフトウェア エンジニアである Martyna Slawinska が、Docker の開発者アドボケイトである Ajeet Singh と共同で寄稿したものです。

AIテクノロジーには、間違いなくその進歩を妨げるいくつかの課題があります。 AIを活用したアプリケーションを構築するには、資格のある専門家、コスト、時間など、かなりのリソースが必要です。 主な障害は次のとおりです。

  • データパイプラインを介して(リアルタイムの)データをAIモデルに取り込むことは複雑で、定期的なメンテナンスが必要です。
  • さまざまなAI/MLフレームワークをテストするには、専用のセットアップが必要です。
  • 動的データでAIをカスタマイズし、AIシステムを自動的に改善することは、大事業のように聞こえます。

これらの困難により、AIシステムは中小企業と大企業の両方にとってほとんど実現不可能です。 しかし、 MindsDB プラットフォームはこれらの課題の解決に役立ち、 Docker Desktop Extensions Marketplace で利用できるようになりました。 

この記事では、MindsDB が AI を活用したアプリケーションの開発を合理化する方法と、Docker Desktop 拡張機能を使用して簡単にセットアップできる方法を紹介します。

2400x1260 mindsDB Docker 拡張機能でリアルタイム AI アプリケーションの開発を効率化

MindsDB は AI を活用したアプリの開発をどのように促進しますか?

MindsDB は、動的データから AI をカスタマイズするためのプラットフォームです。 データソースAI/MLフレームワークとのほぼ200統合により、開発者は独自のデータを使用して、目的に合わせてAIをより迅速かつ安全にカスタマイズできます。

定義された問題を1つずつ解決しましょう。

  • MindsDBは、データベース、ベクターストア、アプリケーションなど、多数のデータソースと統合できます。 多くの一般的な AI/ML フレームワークからデータにアクセスできるようにするには、1 つのステートメントを実行して データを MindsDB に接続するだけです。
  • MindsDB は、LLM や AutoML などの一般的な AI/ML フレームワークと統合されています。 そのため、データを MindsDB に接続したら、それをさまざまなモデルに渡して、ユースケースに最適なモデルを選択し、 MindsDB 内にデプロイできます。
  • MindsDB を使用すると、モデルとデータをシームレスに管理し、カスタム自動化フローを実装し、継続的な微調整で AI システム自体を改善できます。

MindsDB を使用すると、AI/ML の経験がなくても、AI を活用したアプリケーションを簡単に構築できます。 MindsDB は、SQL、MongoDB-QLREST APIPythonJavaScript を介して操作できます。

Docker Desktop で MindsDB をセットアップする方法を学習します。

MindsDBはどのように機能しますか?

MindsDB を使用すると、データベース、ベクター ストア、またはアプリケーションのデータを、LLM や AutoML モデルなどのさまざまな AI/ML モデルに接続できます (図 1)。 そうすることで、MindsDB はデータと AI を統合し、カスタマイズされた AI システムを直感的に実装できるようにします。

mindsdbアーキテクチャの図解:モデル管理、AI統合、データ統合。
図 1: MindsDBのアーキテクチャ図。

MindsDB を使用すると、AI を活用したアプリケーションを簡単に作成して自動化できます。 データベース、ベクターストア、アプリケーションからのデータを利用して、モデルをリアルタイムでデプロイ、提供、微調整し、開発者が使い慣れたユニバーサルツールを使用してAI搭載アプリを構築できます。

MindsDB とその機能およびユースケースの詳細については、MindsDB の Web サイトをご覧ください。

なぜMindsDBをDockerデスクトップ拡張機能として実行するのですか?

MindsDB は、 Docker Desktop を介してマシンに簡単にインストールできます。 MindsDB は、Docker Desktop 環境内で MindsDB を使用できるようにする Docker Desktop 拡張機能を提供します。

MindsDB は多数の データ ソースAI フレームワークと統合されるため、各統合には特定の依存関係のセットが必要です。 Docker Desktop で MindsDB を実行すると、必要な依存関係のみを簡単にインストールして、イメージを軽量に保ち、問題が発生しにくすることができます。

MindsDB を Docker Desktop 拡張機能として実行すると、次のような柔軟性が得られます。

  • 拡張機能をインストールすることで、MindsDB 環境を簡単にセットアップできます。
  • 必要な依存関係のみをインストールして、MindsDB 環境をカスタマイズします。
  • Docker Desktop からアクセスできるログを使用して、MindsDB 環境を監視します。

次に、Docker Desktop で MindsDB を設定する手順を説明します。 詳しくは、 ドキュメントを参照してください。

はじめ

Docker Desktop での MindsDB のセットアップ

開始するには、 コンピューターに Docker Desktop をダウンロードしてセットアップする必要があります。 次に、以下の手順に従って、Docker Desktop に MindsDB をインストールします。

まず、Docker Desktop の [拡張機能 ] ページに移動し、MindsDB を検索して、MindsDB 拡張機能をインストールします (図 2)。

mindsdbを示す拡張機能マーケットプレイスのスクリーンショット
図 2:Docker DesktopへのMindsDB拡張機能のインストール。

次に、Docker Desktop 内の MindsDB にアクセスします (図 3)。

mindsdbエディタが実行されていることを示すdockerデスクトップのスクリーンショット。
図 3: Docker Desktop で MindsDB エディターにアクセスする。

この MindsDB のセットアップでは、 これらの統合がプリロードされた MindsDB の軽量 Docker イメージである Docker イメージを使用します mindsdb/mindsdb:latest

Docker Desktop に MindsDB をインストールしたので、実行するユースケースを考え、使用するすべての統合をリストアップします。 たとえば、PostgreSQL データベースのデータと Anthropic のモデルの 1 つを使用してデータを分析する場合は、Anthropic の依存関係をインストールする必要があります (PostgreSQL の依存関係はデフォルトでインストールされるため)。

その他の ユースケース については、MindsDB の Web サイトを参照してください。

依存関係をインストールする方法は次のとおりです(図 4)。

  1. MindsDB エディターで、[ 設定 ] と [統合の管理] に移動します。
  2. 使用する統合を選択し、[ インストール] を選択します。
統合の管理ページと依存関係のリストを示すmindsdbエディターのスクリーンショット。
図 4: MindsDB エディターを使用した依存関係のインストール。

MindsDB イメージは、必要な依存関係のみをインストールすることでカスタマイズしました。 詳細については、ドキュメントをご覧ください

MindsDB を使用した AI エージェントのデプロイ

このセクションでは、MindsDB が開発した AI エージェント機能を紹介します。 AI エージェントには、基盤となる大規模言語モデルと、データベース、ファイル、または Web サイトに保存されているデータに関する質問に答えるための一連のスキルが付属しています (図 5)。

会話モデル、スキル、ナレッジ ベースを示す AI エージェントの図。
図 5:AIエージェントの図

エージェントには、会話モードのモデルが必要です。 現在、MindsDB は LangChain ハンドラーを介したモデルの使用をサポートしています。

スキルには、次の 2 つのタイプがあります。

  • Text-to-SQL スキルは、自然言語で尋ねられた質問を SQL コードに変換して、正しいデータを取得し、質問に回答します。
  • ナレッジベースのスキルは、埋め込みモデルとベクターストアを利用して、割り当てられたデータを保存および検索します。

申し込み

ステップ 1. データ ソースを MindsDB に接続します。

ここでは、サンプルの PostgreSQL データベースを使用して、MindsDB に接続します。

CREATE DATABASE example_db
WITH ENGINE = "postgres",
PARAMETERS = {
    "user": "demo_user",
    "password": "demo_password",
    "host": "samples.mindsdb.com",
    "port": "5432",
    "database": "demo",
    "schema": "demo_data"
};

関心のあるテーブルをプレビューしましょう。

SELECT *
FROM example_db.car_sales;

このテーブルには、近年販売された自動車の詳細が格納されています。 このデータは、次のステップでスキルを作成するために使用されます。

ステップ 2. スキルを作成します。

ここでは、テーブルのデータを使用して car_sales Text-to-SQL スキルを作成します。

CREATE SKILL my_skill
USING
    type = 'text_to_sql',
    database = 'example_db',
    tables = ['car_sales'],
    description = 'car sales data of different car types';

スキルの説明は、モデルが特定の質問に回答するために選択するスキルを決定するために使用するため、正確である必要があります。 このスキルは、エージェントのコンポーネントの 1 つです。

ステップ 3. 会話モデルを作成します。

AI エージェントには、会話モデルのモデルも必要です。 現在、MindsDB は LangChain ハンドラーを介したモデルの使用をサポートしています。

OpenAI モデルの 1 つを選択する場合は、エンジンの次の構成が必要であることに注意してください。

CREATE ML_ENGINE langchain_engine
FROM langchain
USING
      openai_api_key = 'your-openai-api-key';

これで、このエンジンを使用してモデルを作成できます。

CREATE MODEL my_conv_model
PREDICT answer
USING
    engine = 'langchain_engine',
    input_column = 'question',
    model_name = 'gpt-4',
    mode = 'conversational',
    user_column = 'question' ,
    assistant_column = 'answer',
    max_tokens = 100,
    temperature = 0,
    verbose = True,
    prompt_template = 'Answer the user input in a helpful way';

などのパラメータ値は、 prompt_templateユースケースに合わせて調整できます。 このモデルは、エージェントのコンポーネントの 1 つです。

ステップ 4. エージェントを作成します。

スキルと会話モデルができたので、AIエージェントを作成しましょう。

CREATE AGENT my_agent
USING
    model = 'my_conv_model',
    skills = ['my_skill'];

このエージェントを直接クエリして、スキル()に割り当てられているテーブル( car_sales )からデータに関する回答を取得し、スキル(my_skill)がエージェント()my_agentに割り当てられています。

いくつかの質問をしてみましょう。

SELECT *
FROM my_agent
WHERE question = 'what is the most commonly sold model?';

図 6 は、エージェントによって生成された出力を示しています。

「最も一般的に販売されているモデルは何ですか?」という質問に対する回答として ai エージェントによって生成された出力のスクリーンショット。
図 6: エージェントによって生成された出力。

さらに、 チャットボット オブジェクトを使用して、このエージェントを Slack などのチャットアプリに接続できます。

結論

MindsDB は、開発者のデータと AI の統合を合理化し、さまざまな データ ソースAI フレームワークとのシームレスな接続を提供し、ユーザーが AI ワークフローをカスタマイズし、データの予測をリアルタイムで取得できるようにします。 

Docker Desktop を活用することで、MindsDB デプロイメントの依存関係管理が簡素化されるだけでなく、異なるシステム間で一貫した環境を確保し、セットアップの複雑さを最小限に抑えることで、開発者に幅広いメリットをもたらします。

さらに詳しく