0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Databricksとn8nを用いたAIシステムの迅速なプロトタイプ

Posted at

Rapid Prototyping AI Systems with n8n in Databricks | Mediumの翻訳です。

本書は著者が手動で翻訳したものであり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。

著者: Mike Lo (Solutions Architect @ Databricks), Trevor Osborne (Senior Solutions Engineer @ Databricks)

イントロダクション

企業が従業員の生産性を向上させ、製品提供を差別化するためのインテリジェントな自動化を切望する中、AIはあらゆる場所で見出しを飾っています。しかし、それらの熱中度にもかかわらず、多くの企業は実装の実情に苦戦することで、広範にAIを導入することに遅れをとっています。実際、チームは多くの場合AIの専門性や、信頼できるデータとAIのインフラストラクチャへのアクセスが欠如しており、この急成長しているテクノロジーのさらなる実験や導入の妨げとなるようなAI投資に対してパッとしない成果につながっています。

これらの課題は、AIに対する基本的な理解をしている組織の誰もがセキュアかつ効率的にAIサービスを構築できる開発環境に対するニーズを示しています。さらに、そのユーザー体験は開発者が、AIシステムを時間と共に経験に基づいて簡単に学習、繰り返せるように、直感的なものであるべきです。

このブログ記事では、アジャイルなAI実験を可能にするためにn8n(ローコード自動化ビルダー)とDatabricksを連携することで、この要件に対応します。この組み合わせによって、Databricksは企業レベルのデータとAI資産を構築するための「ファクトリー」となり、n8nはサービスとしてカスタマイズされたデータインテリジェンスを出荷するための「ラストマイルデリバリー」となります。Databricksにおけるn8nは、AI自動化によってビジネス問題を解決することに興味を持つチームにとって不可欠のソリューションとなります。

AIシステム開発におけるコード中心アプローチの課題

LangChain、LangGraph、Pydantic、CrewAIのようなエージェントフレームワークの急増は、AI開発におけるイノベーションと柔軟性を大幅に改善しています。しかし、これらのコードに重点をおいたフレームワークは、主に以下の理由によって組織におけるAIの実験と導入を妨害します:

  1. スロースタート: コード中心のフレームワークは技術チーム向けとなっており、開発スピードを遅らせる初期のランプアップ時間を必要とし、開発期間や複雑性を増加させます。
  2. 技術的障壁: コード中心のフレームワークは、非技術チームが自分のユースケースでAIソリューションを用いた実験から彼らを排除します。
  3. 切り替えコスト: 新たなAIフレームワークが出現、進化、退場することによって、賭けるべきフレームワークがどれなのかを知ることがこんなんです。この将来にわたる保証の要件は、分析による麻痺につながります。

企業におけるAI導入を加速するには、複雑なフレームワークに絡めとられることなしに、AIソリューションを構築するためのより直感的な手段を入手するために、チームは技術的、それ以外においてのパラダイムシフトが必要となります。

AIシステム開発におけるローコードの代替案としてのn8n

一歩引いて、システムレベルからAIエージェントを検証してみましょう。エージェントは主に3つの栄養、インテリジェンス、ツール、メモリーからパワーを得ます。

  • インテリジェンス: LLMによって提供され、エージェントが人間の言語を理解、生成できるような知恵と能力を提供します。
  • ツール: エージェントがどのように外の世界とやり取りし、情報を見つけるのかを定義し、MCP、関数、サードパーティのAPI、ベクトルストアなどを通じて特定のアクションを実行したり、外部のデータを取得します。
  • メモリー: コンテキストや学習した内容に対するエージェントの脳となり、一貫性を保ち、過去の会話履歴に基づいてレスポンスを調整します。

このモジュール化されたデザインによって、開発者はシンプルにそれらをまとめ上げ、これらの基本的なパーツをアレンジすることで、複雑で非常に適応力の高いAIソリューションを容易に構築できます。これらp分割されたピースを組み合わせることで、複雑なワークフローやスマートな意思決定プロセスの作成が可能となり、パワフルなだけでなく高度にカスタマイズ可能で拡張可能なAIシステムにつながります。

AIスペースでは、これらの主要なコンポーネントを持つエージェントを構成するためにビジュアルなキャンバスを提供するローコード/ノーコードエージェントビルダーが多数存在しています。DifyLangflowFlowisen8nPySpurSmolagentHuginnなどのようなツールがここ数年で出現し、AI開発者コミュニティで注目を集めています、これらの中で最も高速に成長しているツールはn8nです。n8nが急速に成長している理由には以下のようなものがあります:

  • 汎用性と柔軟性: 複雑なワークフローのためのループ、分岐、条件、HTTPリクエスト、アプリベースのアクショントトリーが、human-in-the-loopのような様々なフローをサポート。カスタムノードや関数によって、シンプルや複雑なタスクに柔軟に対応。
  • オープンソースのコアとセルフホスティング: データとインフラストラクチャに対する完全なコントロール。様々なプラットフォーム(Docker、Kubernetes、Virtual Private Servers)においてコスト効率の高いセルフホスティング。
  • ユーザーフレンドリーなインタフェース: 簡単なワークフロー管理やデータフローの可視化のための直感的なビジュアルキャンバス。様々な開発者がアクセス可能。
  • コミュニティとサポート: SaaSエコシステムの多くと繋がっている数百のノードを持つ活気がありサポーティブなコミュニティやリソース。新規ユーザー向けの豊富なドキュメントとチュートリアル。

n8nワークフローの解剖学

n8nのユーザーインタフェースに表示されるビジュアルワークフローは、使用されるノード、接続、それらの固有の設定を含む、ワークフローに関するすべての情報を含む単なるJSONファイルです。これによって、ドラッグ&ドロップで構築可能でありながらも、あなたの自動化処理の「コードのような」レベルのバージョン管理や可搬性を実現します。この標準的なJSON表現は、エクスポート、インポート、共有の方法を大きく簡素化し、AIが生成するワークフローを作成することができます。

このJSONファイルはそれぞれのノードのパラメータ(ノードのバージョン、キャンバスにおける位置、資格情報、オプションなど)を定義するノード、ノードがどのように接続されるのかを定義するコネクションから構成されます。多くのノード、特にサードパーティAPIとのインタフェースを持つノードでは、資格情報のパラメータ(APIキー、OAuthなど)が必要となります。これらは個別に手動で定義され、n8nのバックエンドデータベースで暗号化、格納されます。

n8nのデータ構造に関しては、ノード間でやり取りされるすべてのデータはオブジェクトの配列となります。以下の構造を有します:

[
  {
    // For most data:
    // Wrap each item in another object, with the key 'json'
    "json": {
      // Example data
      "apple": "beets",
      "carrot": {
        "dill": 1
      }
    },
    // For binary data:
    // Wrap each item in another object, with the key 'binary'
    "binary": {
      // Example data
      "apple-picture": {
        "data": "....", // Base64 encoded binary data (required)
        "mimeType": "image/png", // Best practice to set if possible (optional)
        "fileExtension": "png", // Best practice to set if possible (optional)
        "fileName": "example.png", // Best practice to set if possible (optional)
      }
    }
  },
]

詳細はn8nのデータ構造をご覧ください。

エージェントの場合、n8nのAIエージェントノードが基本的にはLangChainのラッパーとなります。これは、ルートノードとルートノードの機能を拡張するサブノード(LLM、ツール、メモリーなど)から構成されます。例えば、こちらはDatabricksがホストするMCPでGenieにアクセスするDatabricks Llama 3 70Bモデルを使うシンプルなAIエージェントとなります:


MCPツールとしてGenieを使用するn8n <> Databricksインテグレーションのアーキテクチャ


n8nルートノードの設定

そして、こちらがこのシンプルなエージェントに対応するJSON定義となります:

{
  "nodes": [
    {
      "parameters": {
        "options": {
          "systemMessage": "You are a helpful assistant"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 2.1,
      "position": [
        -368,
        -224
      ],
      "id": "763b04bf-b6e8-48a9-8e3c-0fa702db1c9e",
      "name": "AI Agent"
    },
    {
      "parameters": {
        "model": "databricks-meta-llama-3-3-70b-instruct",
        "options": {}
      },
      "type": "n8n-nodes-databricks.lmChatDatabricks",
      "typeVersion": 1,
      "position": [
        -368,
        -16
      ],
      "id": "8abb2d03-0156-4bc4-b340-e72b2edfc33b",
      "name": "Databricks Chat Model",
      "credentials": {
        "databricks": {
          "id": "0ubsyhYq4meJgDLQ",
          "name": "Databricks account"
        }
      }
    },
    {
      "parameters": {
        "endpointUrl": "https://dbc-2a333432-a91c.cloud.databricks.com/api/2.0/mcp/genie/01f047a9cdb519ea9d31392249992298",
        "serverTransport": "httpStreamable",
        "authentication": "bearerAuth",
        "include": "selected"
      },
      "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
      "typeVersion": 1.1,
      "position": [
        -176,
        -16
      ],
      "id": "b1d60904-5990-4a67-b779-0658c33210e7",
      "name": "Genie MCP",
      "credentials": {
        "httpBearerAuth": {
          "id": "1ykL50GPnRDiwLcP",
          "name": "Databricks Bearer Auth"
        }
      }
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "typeVersion": 1.1,
      "position": [
        -592,
        -224
      ],
      "id": "77767377-f374-4103-aeaa-6cfbd80a14e1",
      "name": "When chat message received",
      "webhookId": "e990abf1-18bc-4118-9555-61cc180ed69a"
    }
  ],
  "connections": {
    "AI Agent": {
      "main": [
        []
      ]
    },
    "Databricks Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Genie MCP": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "meta": {
    "templateCredsSetupCompleted": true,
    "instanceId": "df7c3da36feb7b38c688e9a05fe02f8c3ed699371fdd9bf452a28d6b69a773a2"
  }
}

これによってLangChainのコードを抽象化するので、開発者が必要とするのは入力の設定(ユーザープロンプト)、オプションのパラメータ(システムメッセージ、繰り返しの最大数など)、出力(モデルの出力を送信する下流のノード)だけです。

エージェントフレームワークのコードを抽象化することに加え、n8nはエージェント開発プロセスをシンプルにし、拡張する柔軟な機能を提供します。いくつかのハイライトを示します:

  • LangChainコードノード: LangChain Code nodeを通じて、デフォルトではサポートされないカスタムのLangChainの機能を追加できます。
  • サブワークフロー: サブワークフローとして他のワークフローからワークフローを呼び出すことができます。これによって、エージェントツールとして利用できる、モジュール化され、マイクロサービスのようなワークフローを構築することができます。
  • MCPサーバーとしてのワークフロー: MCPサーバーとしてn8nツールやワークフローを公開し、外部AIエージェントシステムで利用できるようにするために、MCPサーバートリガーノードを活用できます。

デリバリーのためのファクトリー: なぜn8nとDatabricksパワフルな組み合わせなのか

n8nとDatabricksは互いのコア機能を補完し合うので、エンドツーエンドのAIシステムの構築でうまく組み合わせることができます。

  • AIファクトリーとしてのDatabricks: DatabricksはMLモデル、エージェント、データ製品の包括的な開発や管理のために設計されたエンタープライズレベルの環境を提供します。これは、プロダクションレベルのデータインテリジェンスを製造するための「ファクトリー」として機能し、エンドツーエンドのガバナス、堅牢なセキュリティ対策、継続的モニタリング、詳細なロギング機能を提供します。
  • AIサービスのラストマイルデリバリーとしてのn8n: n8nは複雑かつマルチステップのワークフローにモジュール化されたノードとしてDatabricksのAI資産をデプロイすることで、Databricksを活用します。これによって、Databricksのデータインテリジェントと他のSaaS APIを効果的に連携させ、エンドユーザーが利用できる包括的かつ堅牢なAIサービスを作成することになります。

Databricks: プロダクションレベルのインテリジェンスのAIファクトリー

DatabricksはAIライフサイクル全体に対する基盤的かつエンタープライズレベルのプラットフォームとして動作し、洗練されたAIモデル、インテリジェントなエージェント、データ製品が最新の注意を払って作成され、プロダクションに向けた準備が行われる「ファクトリー」として動作します。この、昨日の包括的なスイートによって、AIの取り組みが革新的で堅牢、スケーラブルであることを確実なものにします。

Databricks環境においては、組織は統合されたプラットフォームを以下の目的で活用することができます:

  • データ取り込みと準備: 様々なデータソースとシームレスに連携し、生データを高品質でAIで利用できるデータセットに変換します。
  • 特徴量エンジニアリングと管理: 特徴量を作成、管理し、様々なAIプロジェクトで再利用可能な特徴量を共有するための機能を提供し、開発を加速し、一貫性を改善します。
  • モデル開発: (Agent Bricksのような)AIモデルを構築、トレーニング、繰り返すためのパワフルな計算リソースと豊富な機械学習フレームワークのエコシステム(MLflowなど)を提供します。また、実験を追跡し、モデルバージョンを管理し、再現性を確実にする堅牢なツールも提供します。
  • エンドツーエンドのガバナンスとセキュリティ: AIパイプラインを通じて機密データと知的財産を保護するためのUnity Catalogによる強力なガバナンスポリシーを実装します。
  • デプロイメントとスケーラビリティ: プロダクション環境へのAIモデルとエージェントのシームレスなデプロイメントを促進し、大規模なデータとユーザーリクエストに対応でき、高い可用性と低レーテンシーを確実なものとします。
  • モニタリングとロギング: リアルタイムでモデルのパフォーマンスを追跡し、異常を検知し、運用の効率性を保持するための包括的なモニタリングとロギングの能力を提供します。これによって、ドリフト、バイアスなどの問題を積極的に特定することができます。

これらの連携され、管理された環境を提供することで、Databricksは組織が自身のAIプロジェクトを自信を持って実験から本格運用に移行する手助けを行い、生データをビジネス価値を生み出すアクション可能でインテリジェントな洞察に変換します。これは、すべてのAI資産に対する単一の信頼できる情報源として動作し、組織におけるデータインテリジェンスの取り組みにおける一貫性、信頼性、監査可能性を確実なものにします。

n8n: AIサービスのラストマイルのデリバリーシステム

DatabricksがコアとなるAI資産を構成しますが、n8nは重要な「ラストマイルデリバリー」として動作し、これら洗練されたAI資産を容易に活用可能で、高度に統合されたAIサービスに変換します。n8nのパワーの源泉は、膨大な他のSaaS APIやビジネスアプリケーションにシームレスに組み込まれ、モジュール化されたノードにパッケージングすることで、Databricksで構築されたインテリジェンスへのアクセスを民主化する能力にあります。

この能力は、以下を可能にすることで膨大な価値を解放します:

  • モジュール化されたAIのインテグレーション: n8nはDatabricksから複雑なAIモデルやエージェントを受け取り、それらの機能を別々で再利用可能なノードにカプセル化します。このモジュール性によって、AIに対する深い専門性を必要とすることなしに、複雑でマルチステップのワークフローに簡単なドラッグ&ドロップのインテグレーションを導入します。
  • カスタマイズされ高品質なデータインテリジェンス: n8nはDatabricksを活用したAIノードを、CRM、マーケティングオートメーション、カスタマーサポートシステムのような他のSaaSプラットフォームに接続することで、仕立てられて、インテリジェントな能力で既存のビジネスプロセスを強化します。このインテグレーションによって、必要なタイミング、場所でAIドリブンの洞察が正確に提供されることを確実にし、エンドユーザーにとってのデータインテリジェンスの品質と適切性を改善します。
  • ワークフローの自動化とオーケストレーション: n8nのワークフロービルダーによって、特定のイベントや他のアプリケーションからのデータ入力に基づいて、Databricksで構築されたAIサービスをトリガーする複雑な自動化シーケンスの作成を可能にします。例えば、CRMの新たなカスタマーサポートチケットは、Databricksでトレーニングされた感情分析モデルをn8nを通じて起動し、チケットを適切にルーティングすることができます。
  • エンドユーザーによるアクセシビリティ: エージェントワークフローを開発する際に背後にある複雑性を抽象化することで、n8nはビジネスアナリスト、運用チーム、非技術者ユーザーであってもDatabricksのパワフルなツールにアクセスできるようにします。これによって、組織のより多くの人が意思決定や運用改善にAIを活用できるように支援します。
  • AIアプリケーションの迅速なプロトタイピングとデプロイメント: n8nは、AIモデルを現実世界のアプリケーションに接続するためのローコード/ノーコード環境を提供することで、AIプロジェクトから価値を得るのに要する時間を劇的に短縮します。これによって、ビジネスは新たなAIを活用したソリューションをクイックに実験、デプロイできるようになります。

基本的には、Databricksが高性能なAIを生み出すエンジンなら、n8nはパワーを効率的、効果的に様々なビジネスオペレーションのホイールに伝達し、生のインテリジェンスを手触りのあるユーザーフレンドリーなAIサービスに変換する洗練されたトランスミッションシステムと言えます。

Databricksでn8nを使い始める

Databricksにおけるn8nインテグレーション

n8nのオープンソースコア、セルフホスティングのオプション、強力なコミュニティサポートのおかげで、以下の方でDatabricksと連携することができます:

  • Databricks Appsでのセルフホスティング: n8nのセルフホスティングの機能によって、Databricks Appsに直接ホストすることができ、データ、資格情報、ワークフローの実行のすべては、あなたがDatabricksに期待するマネージドのインフラストラクチャ、セキュリティ、ガバナンスと共にDatabricksワークスペースに存在することになります。Databricksでn8nをセルフホストするには、こちらをご覧ください。
  • n8nのバックエンドとしてのLakebase: Databricks Lakebaseは、ワークフロー、実行履歴、暗号化された資格情報などをセキュアに永続化するためのn8nのバックエンドとして活用することができます。
  • Databricksコミュニティノードサポート: コミュニティノードサポートのおかげで、ユーザーはn8nのDatabricksコミュニティノードを活用することができます。これによって、エージェントのツールやワークフローのコンポーネントとして、(APIを通じて)Databricksのサービスを含めることができ、n8nの自動化フローでDatabricksのAI機能をシームレスにインテグレーション、活用することができます。

ユースケース例

Databricksでn8nをセルフホストしたら、あなたが作成できるAIワークフローのポテンシャルは非常に大きなものとなります。ポテンシャルのあるユースケースの例をいくつか説明します:

  • カスタマーサポートエージェント: チケットの優先度付け、レスポンスの生成、解決法の記録、重要なケースのみを人間のエージェントへ転送を自動化するサポートAIエージェント。
  • AIソーシャルメディアマネージャ: マーケティングコンテンツ生成、スケジューリング、ソーシャルメディアチャネルにおけるパフォーマンス追跡を自動化します。
  • AIマーケティングマネージャ: Webフォーム、ソーシャルメディア、メールキャンペーン、サードパーティプラットフォームのような様々なソースからのリードを自動で収集、スコアリングし、それらを単一のシステムに統合します。セールスチームにとってポテンシャルの高いリードを優先付けするために、挙動、デモグラフィック、エンゲージメントデータを分析することで、リードのスコアリングを自動化します。
  • AIセールスアシスタント: CRMシステム、コミュニケーションプラットフォーム、自然言語処理のためのAIサービス(Databricksなど)と連携します。また、データの補強、ワークフローのトリガー、パーソナライズされたコンテンツを生成することもできます。この自動化によって、セールスエージェントは高価値の活動にフォーカスし、効率性を改善し、一貫性のある顧客コミュニケーションを維持することができます。
  • システムモニタリングエージェント: アラート、障害対応ワークフロー(チケット作成、チームへの通知、診断の開始、ログの収集、修復の試行)のオーケストレーション、プロアクティブなヘルスチェックの実施、モニタリングデータからのレポートとダッシュボードの生成、様々なITツールとの連携、スケジュールされたメンテナンスタスクの自動化を行います。
  • 企業知識アシスタント: 従業員のアクセスを改善し、オンボーディング期間を短縮するために、企業のポリシー、トレーニングマテリアル、製品ドキュメントのような内部知識ベースのために集中管理され、自動化された検索システムを作成します。あるいは、内部問い合わせやチームの調整をサポートするために、HRシステム、ディレクトリ、コラボレーションツールから従業員情報(コンタクト詳細、ロール、スキル、チームへの割り当て)の集計や収集を行います。
  • AIリサーチアシスタント: リサーチやレポートのためにニュースレターやWebコンテンツのようなソースからの情報収集、要約、蓄積を自動化します。データの抽出、変換、UCボリュームへのアップロード、リアルタイムの洞察を生み出すためのLakeflowジョブを起動することもできます。

上述した特化型のAIエージェントは、DatabricksのAgent Bricksで構築することができ、AIエージェントツールMCPVector SearchAI/BI Genieのようなツールで拡張可能であり、ノードとしてワークフローに組み込むことがでいます。モデルの品質を監視、改善するために、MLflowがモデルのライフサイクルを通じてエージェントを追跡、監視する助けとなります。

注意点

n8n <> Databricksインテグレーションは前途有望ではありあすが、トライする際に注意すべき点がいくつかあります:

  • n8nアプリの認証: セルフホストされたコミュニティエディションは、インスタンスあたり基本認証を使用する1ユーザーのみを許可します。
  • n8n資格情報の管理: (Google、Slackなど)APIに対する資格情報は暗号化と共にアプリで直接管理されるので、アクセストークンはセキュアに取り扱うようにしてください。
  • n8nコミュニティエディションの制限: セルフホストされたコミュニティエディションは、バージョン管理、SSO、外部シークレット、ログのストリーミング、ライブコラボレーションなどを提供しません。n8nのコミュニティエディションの機能をご覧ください。
  • (まだ)外部向けプロダクションワークロードではお勧めしません: Databricksにおけるn8nは未だ新しいものであり、ミッションクリティカルなアプリケーションでテストされたわけではありませんので、内部のユースケースからスタートしてストレステストを行うことがベストと言えます。

謝辞

Trevor Osborne、Ashwin Srikant、Zac Daviesが査読、フィードバックを提供してくれたことで、この記事の執筆を助けてくれました。

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?