IM-LogicDesignerとLangflowを連携して生成AIフローを実行する

はじめに

本記事では、intra-mart Accel Platform(iAP)の IM-LogicDesigner と Langflow を連携させることで、生成AIを活用したフロー処理を柔軟かつ効率的に実行する方法について解説します。

この連携により、複数のAIサービスを組み合わせた高度な処理や、ローコードによる開発効率の向上など、活用の幅が広がる可能性があります。

背景と目的

近年、生成AI技術の急速な進化により、多様なAIサービスが登場しています。それぞれが独自の機能やAPI仕様を持ち、活用の幅は広がる一方で、運用面ではいくつかの課題も浮上しています。

intra-mart Accel Platform(iAP)の「IM-Copilot」を含め、特定のAIサービスに特化した支援機能を提供する製品が数多く登場しています。
これは、製品の安定性や品質保証、コスト管理の観点から、特定のモデルに最適化されているケースが多いためと考えられます。
こうした製品は、特定の用途において高い有用性を発揮しますが、仮に複数のAIサービスに対応・拡充し、組み合わせて活用できるようになった場合には、以下のような運用上の課題にも直面する可能性があります:

  • 各AIサービスのAPI仕様が頻繁に変更される
  • 新しいAI機能への対応に時間とコストがかかる
  • 複数サービスの使い分けや管理が煩雑になる

これらの課題を解決する手段として、Langflow との連携が有効ではないかと考えました。

この連携により、以下のようなメリットが期待できます:

  1. 生成AI処理の一元管理
    LangFlow側でAI処理を集約することで、運用管理が簡素化されます。

  2. 柔軟なサービス対応
    LangFlow が複数の AI サービスへの対応・切り替えを吸収するため、変更にも柔軟に対応できます。

  3. ローコード開発環境
    ローコードでAIフローを構築・変更できるため、開発効率の向上が期待できます。

Langflow とは

Langflow は、LLM(大規模言語モデル)を活用したアプリケーションを視覚的に構築できるオープンソースのフロー設計ツールです。
ドラッグ&ドロップ操作でAIコンポーネントを組み合わせることで、複雑な処理フローも直感的に作成できます。

主な特徴

  • ビジュアルフロー設計
    GUIベースでAI処理フローを構築可能です。

  • 豊富なコンポーネント
    OpenAI、Anthropic、HuggingFaceなど、主要なAIサービスに対応しています。

  • カスタムコンポーネント
    独自の処理ロジックを組み込むことも可能です。

  • API提供機能
    作成したフローをREST APIとして外部に公開することができます。

Langflow の簡単なフロー紹介

1. 簡易チャットフロー

ユーザ入力を受けて、LLM(例:OpenAI GPT)が応答を生成する基本的なチャットフローです。
「Chat Input」「Language Model」「Chat Output」などのコンポーネントを組み合わせて構成します。

cookbook264707_langflow_05_en

このフローの構成:

  • Chat Input
    ユーザの入力を受け取るノードです。
    会話の起点となります。

  • Prompt
    プロンプトテンプレートを定義するノードです。

  • Language Model
    AIモデルを使って応答を生成するノードです。
    プロンプトに基づいて自然な返答を生成します。

  • Chat Output
    返答を表示するノードです。

  • Message History
    保存されたチャットメッセージを取得、保存するノードです。

2. 外部情報取得エージェントフロー

ユーザの質問に応じて、News SearchノードやURLノードなどのツールを呼び出し、外部情報を取得・要約するシンプルなエージェントフローです。

cookbook264707_langflow_02_en

このフローの構成:

  • Chat Input
    ユーザの質問を受け取るノードです。

  • Agent
    AIモデルを使って応答を生成するノードです。
    ユーザの意図に応じて、適切なツール(News Search、URL)を呼び出します。
    プロンプトに基づいて自然な返答を生成します。

  • Tool(News Search)
    ニュース検索APIを呼び出して、最新情報を取得します。

  • Tool(URL)
    Webページの内容を取得するノードです。

  • Chat Output
    返答を表示するノードです。

Langflow と IM-Copilot の使い分け

複数の LLM を組み合わせるような高度なユースケースを想定していない場合は、Langflow を導入する必要はありません。
Langflow は、複数の AI サービスを柔軟に統合・管理できるフロー設計や、サービス間の切り替え・拡張に対応できる高い運用性を備えている点が特徴です。

一方、IM-Copilot は、iAP をより便利に活用するための製品特化機能(各種アシスタント機能やアシスタント UI など)に強みがあり、今後もさまざまな便利機能の追加が予定されています。

両者は排他的な関係ではなく、併用することで相互に補完し合うことが可能です。

本記事の後半では、Langflow を活用したフロー設計と、それを IM-Copilot のアシスタント UI から呼び出す連携例を紹介します。

Langflow フローを呼び出すための連携資材

Langflow で作成したフローを、IM-LogicDesigner から呼び出すための連携資材を用意しました:

この資材は、intra-mart Accel Platform 2025 Spring 上で動作確認を行ったものです。
そのため、上記以外の環境では正常に動作しない可能性があります。

本資材には、Langflow の REST API を通じてフローを実行するための「Langflowフロー実行」タスクが含まれています。

この資材を活用することで、以下のようなメリットが期待できます:

  • フロー構成の柔軟性向上
    LangFlow 側のフロー構成を変更しても、呼び出し元(iAP)の修正は最小限に抑えられます。
    例:Langflow を担当する AIエンジニアがフローを改良しても、iAP を使う業務担当者の操作や設定はほとんど変わらずに済みます。

  • 役割分担の明確化
    Langflow 側は生成AIフローの最適化に専念でき、iAP・IM-LogicDesigner 側は業務フローの最適化に集中できます。
    例:Langflow を使ってプロンプト設計やモデル選定を行うデータサイエンティストが、業務知識を持つ現場担当者(営業、カスタマーサポートなど)と分業することで、それぞれの専門性を活かした開発が可能になります。

アーキテクチャ

Langflow と iAP(IM-LogicDesigner)の連携構成を以下に示します。

cookbook264707_langflow_03_en

この構成では、以下のような役割分担がされています:

  • iAP Application
    業務ユーザが操作するUIを提供し、業務アプリケーションとして機能します。

  • IM-LogicDesigner
    Langflow のタスクを制御し、フローの中継役を担います。

  • Langflow
    生成AIを活用したフローを実行し、各種AIサービスと連携します。

通信は HTTP/REST API を通じて行われ、各コンポーネントが疎結合で連携します。

Langflow連携タスクを使った簡単なサンプル紹介

ここでは、ユーザUI への表示の実現性を確認するため、IM-Copilot の アシスタントUI と連携するサンプルを紹介します。

アシスタントUI を意識した LangFlow フローの設計と作成

cookbook264707_langflow_06_en

IM-Copilot では、チャット履歴をアシスタント側で一元管理・制御する仕様となっているため、LangFlow の標準ノード「Message History」の利用は避け、各リクエスト時に履歴を JSON 形式で明示的に渡す構成としました。

このアプローチにより、以下のようなメリットがあります:

  • 履歴管理は IM-Copilot 側で完結し、LangFlow 側の状態管理が不要
  • 履歴の加工やフィルタリングなど、柔軟な前処理が可能
  • LangFlow 側は一問一答を意識した簡潔なフロー構成

具体的には、IM-LogicDesigner 側の Langflow 連携タスクの入力(input_value)の値を以下のような構造のJSON文字列で渡すことで、履歴と現在の入力を同時に処理できるようにしています:

{
  "history": [
    { "role": "user", "content": "こんにちは!青柳と申します。" },
    { "role": "assistant", "content": "こんにちは、青柳さん!ご挨拶ありがとうございます!" }
  ],
  "current_input": "青柳を連想するかわいいニックネームを考えていただけますか?"
}

この構成により、LangFlow 側は文脈を理解した応答が可能となり、自然な対話体験を実現しました。

⚠ この設計の留意点と対策例(今回のサンプルでは未実装)
  • 留意点:

    • 履歴が長くなると、応答が遅くなったりコストが増える
    • 古い履歴が多いと、文脈の精度が下がる可能性がある
  • 対策例:

    • 履歴が一定以上になったら、要約処理(サマリーフロー)を挟む
    • 履歴を直近のやり取りに限定することで、文脈を維持しつつ効率化を図る
💡 応用と拡張の可能性

この構成をベースに、LangFlow 側で RAG や各種ツールに関するノードを自由に組み合わせることで、目的に応じたインテリジェントなフローを柔軟に構築できます。

たとえば:

  • RAGに関するノードを追加して外部知識を取り込みながら応答の精度を向上
  • ツールやMCPに関するノードで、LLMの限界を補完

cookbook264707_langflow_07

このように、LangFlowは単なるチャットフロー構築ツールではなく、目的に応じたAIアーキテクチャを設計・実装できるプラットフォームとして活用できます。

アシスタントUI と Langflow を意識した IM-LogicDesigner フローの作成

cookbook264707_iap_11_en

この構成では、以下のタスクを使用しています:

  • im_copilotGetAssistantMessageHistory
    IM-Copilot の「メッセージ履歴の取得」タスクを使用して履歴を取得します。

  • payload
    ユーザ定義(JavaScript定義)を用いてペイロードを作成します。

  • langflow_run_flow
    Langflow フローIDを指定して実行します。


入出力設定や各タスクのマッピングなどは、インポートして確認してください:

ロジックフローアシスタントの作成

cookbook264707_iap_12_en

ロジックフローアシスタントについては、IM-Copilot 利用ガイドを参照してください。

アシスタント UI における表示確認

cookbook264707_iap_13_en

期待した通り、ユーザUI への表示が実現可能であることを確認できました。

まとめと今後の展望

本記事では、Langflow と iAP(IM-LogicDesigner)の連携を通じて、生成AIを活用したフロー処理の構築方法を紹介しました。
Langflow は、視覚的な操作で複雑なAI処理を構築できる柔軟な製品であり、業務フローとの連携にも適しています。

今後は、より多様なAIサービスとの統合や、社内業務への適用など、Langflow の活用範囲はさらに広がっていくと考えられます。
本記事のサンプルや連携資材が、そうした取り組みの一助となれば幸いです。

補足:拡張や変更について

LangFlow はオープンソースとして公開されており、開発が継続的に進められているため、今後仕様が変更される可能性があります。

利用時には、最新のドキュメントやリポジトリの確認を推奨します。

また、今回取り上げた「Langflowフロー実行」タスクの拡張や変更が必要な場合は、以下のソースコードをダウンロードし、直接編集してください。

  • ユーザモジュールソース:cookbook264707_source.zip
    このソースは、intra-mart Accel Platform 2025 Spring 上で動作確認を行ったものです。
    そのため、上記以外の環境では正常に動作しない可能性があります。環境に合わせて編集してください。

補足:その他の連携タスクの追加について

今回の連携資材には含まれていませんが、「Langflowフロー実行」タスク以外にも、補助的な連携タスクを追加することで、連携の幅をさらに広げることが可能です。

以下は、各エンドポイントの概要です。

利用可能なエンドポイント一覧

  • Flow Trigger Endpoints ※今回扱った中心的なエンドポイントです

    • /api/v1/run/{flow_id}
      • 指定したフローを実行するためのエンドポイント。入力値や調整パラメータ(tweaks)を POST リクエストで渡すことで、フローを起動できる。
  • Flow Management Endpoints ※今回の資材では未対応のエンドポイントです

    • /api/v1/flows
      • フローの一覧取得、作成、更新、削除などを行うための管理用エンドポイント。複数のフローを扱う場合に便利。
  • Files Endpoints ※今回の資材では未対応のエンドポイントです

    • /api/v1/files
      • ファイルのアップロードや取得を行うエンドポイント。フロー内でファイルを扱う処理が必要な場合に使用。
  • Projects Endpoints ※今回の資材では未対応のエンドポイントです

    • /api/v1/projects
      • プロジェクト単位でフローを整理・管理するためのエンドポイント。複数のフローをグループ化して運用する際に有効。
  • Logs Endpoints ※今回の資材では未対応のエンドポイントです

    • /api/v1/logs
      • フロー実行時のログ情報を取得するためのエンドポイント。エラー解析や履歴確認に活用できる。
  • Monitor Endpoints ※今回の資材では未対応のエンドポイントです

    • /api/v1/monitor
      • フローの実行状況やパフォーマンスを監視するためのエンドポイント。運用中の安定性確認に役立つ。
  • Build Endpoints ※今回の資材では未対応のエンドポイントです

    • /api/v1/build
      • カスタムコンポーネントのビルドやテンプレート生成に使用されるエンドポイント。独自機能の追加に対応。
  • Users Endpoints ※今回の資材では未対応のエンドポイントです

    • /api/v1/users
      • ユーザー情報の取得や管理を行うエンドポイント。マルチユーザー環境での権限管理やユーザー設定に利用。