LangGraph と Cvent のデータを CData Connect AI で統合
LangGraph は、推論モデル(LLM)、ツール統合、データ操作を組み合わせたインテリジェントなグラフベースの AI ワークフローを構築・可視化するためのフレームワークです。CData Connect AI と統合することで、エージェントは標準化されたツールセットを通じてエンタープライズデータにリアルタイムでセキュアにアクセス、クエリ、操作できるようになります。
CData Connect AI は、Cvent などのデータソースを Model Context Protocol(MCP)を通じて公開できるマネージド MCP プラットフォームです。これにより、AI エージェントは複雑な ETL やカスタム統合なしに、数百種類のデータソースのメタデータ、カタログ、テーブル、SQL 対応のデータアクセスを操作できます。
この記事では、LangGraph で MCP エンドポイントを登録し、CData Connect AI を通じてデータソース接続を設定し、リアルタイムデータ(例:Cvent オブジェクト)をオンデマンドでクエリ・可視化するワークフローを構築する方法を説明します。また、組み込みの MCP ツールセット(getCatalogs、getSchemas、getTables、queryData など)を使用して、自然言語エージェントがエンタープライズデータとセキュアかつインタラクティブに対話できるようにする方法を示します。
前提条件
- CData Connect AI のアカウント
- Python バージョン 3.10 以上(LangGraph パッケージのインストール用)
- OpenAI API キーを生成して保存
- Visual Studio Code をシステムにインストール
- LangGraph から LangGraph API キーを取得して保存
ステップ1:LangGraph 用の Cvent 接続を設定
LangGraph が Cvent にアクセスする前に、CData Connect AI で Cvent 接続を作成する必要があります。この接続はリモート MCP サーバーを通じて LangGraph に公開されます。
- Connect AI にログインして「Sources」をクリック、次に「+ Add Connection」をクリック
- 利用可能なデータソースから「Cvent」を選択
-
Cvent に接続するために必要な認証プロパティを入力します。
Cvent への認証を行う前に、ワークスペースとOAuth アプリケーションを作成する必要があります。
ワークスペースの作成
ワークスペースを作成するには:
- Cvent にサインインし、App Switcher(ページ右上の青いボタン) -> Admin に移動します。
- Admin メニューから、Integrations -> REST API に移動します。
- Developer Management の新しいタブが立ち上がります。新しいタブでManage API Access をクリックします。
- Workspace を作成し、名前を付けます。開発者にアクセスさせたいスコープを選択します。スコープは、開発者がアクセスできるデータドメインを制御します。
- All を選択すると、開発者は任意のスコープ、およびREST API にこれから追加されるスコープを選択できます。
- Custom を選択すると、開発者がOAuth アプリで選択できるスコープを、選択したスコープに制限できます。CData 製品によって公開されるすべてのテーブルにアクセスするには、次のスコープを設定する必要があります。
event/attendees:read event/attendees:write event/contacts:read event/contacts:write event/custom-fields:read event/custom-fields:write event/events:read event/events:write event/sessions:delete event/sessions:read event/sessions:write event/speakers:delete event/speakers:read event/speakers:write budget/budget-items:read budget/budget-items:write exhibitor/exhibitors:read exhibitor/exhibitors:write survey/surveys:read survey/surveys:write
OAuth アプリケーションの作成
Workspace を設定して招待すると、開発者はサインアップしてカスタムOAuth アプリを作成できます。手順については、ヘルプドキュメントのカスタムOAuth アプリケーションの作成を参照してください。
Cvent への接続
OAuth アプリケーションを作成したら、次の接続プロパティを設定してCvent に接続します。
- InitiateOAuth:GETANDREFRESH。OAuthAccessToken を自動的に取得およびリフレッシュするために使用します。
- OAuthClientId:OAuth アプリケーションに関連付けられたClient ID。これは、Cvent Developer Portal のApplications page ページにあります。
- OAuthClientSecret:OAuth アプリケーションに関連付けられたClient secret。これは、Cvent Developer Portal のApplications page ページにあります。
- 「Save & Test」をクリック
- 認証後、Cvent 接続の「Permissions」タブを開き、必要に応じてユーザーベースの権限を設定します
パーソナルアクセストークン(PAT)を生成
LangGraph はアカウントのメールアドレスとパーソナルアクセストークン(PAT)を使用して Connect AI に認証します。きめ細かなアクセス制御を維持するため、統合ごとに個別の PAT を作成することをお勧めします。
- Connect AI で、右上の「歯車アイコン」を選択して「Settings」を開きます
- 「Access Tokens」で「Create PAT」を選択します
- トークンにわかりやすい名前を付けて「Create」を選択します
- トークンをコピーして安全に保管します。PAT は作成時にのみ表示されます
Cvent 接続が設定され PAT が生成されたので、LangGraph は CData MCP サーバーを通じてCvent のデータに接続する準備が整いました。
ステップ2:開発環境をセットアップ
LangGraph と CData Connect AI を接続し、OpenAI LLM を推論に使用するためのプロジェクトディレクトリをセットアップし、必要な依存関係をインストールします。このセットアップにより、LangGraph は Connect AI が公開する Cvent MCP サーバーツールを呼び出し、OpenAI が自然言語推論を処理できるようになります。
- LangGraph プロジェクト用の新しいフォルダを作成します:
mkdir LangGraph cd LangGraph
- 必要な Python パッケージをインストールします:
pip install langgraph langchain-openai langchain-mcp-adapters python-dotenv "langgraph-cli[inmem]"
- Python 3.10 以上と有効な OpenAI API キーが環境に設定されていることを確認します。
ステップ3:MCP 接続の環境変数を設定
LangGraph は環境変数を使用して CData Connect AI に接続し、API 認証情報と設定を定義します。これらの認証情報を .env ファイルに保存して、セキュアで再利用可能にします。LangGraph は実行時にこのファイルを自動的に読み込むため、スクリプトは機密情報をハードコードすることなく MCP サーバーに認証・通信できます。
- プロジェクトディレクトリに .env という新しいファイルを作成します。
- 以下の環境変数を追加して、LangGraph、CData Connect AI、OpenAI の設定を定義します:
# LangSmith(オプション) LANGSMITH_API_KEY=lsv2_pt_xxxx #LangSmith API Key LANGCHAIN_TRACING_V2=true LANGCHAIN_PROJECT=LangGraph-Demo # MCP 設定 MCP_BASE_URL=https://mcp.cloud.cdata.com/mcp #MCP サーバー URL MCP_AUTH=base64encoded(EMAIL:PAT) #Base64 エンコードされた Connect AI Email:PAT OPENAI_API_KEY=sk-proj-xxxx
- ファイルを保存します。LangGraph はこれらの値を使用して CData Connect AI の Cvent MCP サーバーに認証し、Cvent のデータに接続し、推論用に OpenAI モデルを初期化します。
注意: Base64 エンコードされた認証文字列は、Base64 エンコードツールなどのオンライン Base64 エンコーダーを使用して生成できます。前提条件で取得した CData Connect AI のユーザー名と PAT をエンコードしてください。
ステップ4:LangGraph エージェントスクリプトを作成
このステップでは、LangGraph を CData Connect AI MCP サーバーに接続する Python スクリプトを作成します。スクリプトは getCatalogs、getSchemas、queryData などの利用可能な MCP ツールを取得し、LangGraph ワークフローを構築し、接続されたCvent のデータに対して自然言語プロンプトを実行します。
ワークフローは MCP を使用して Connect AI からリアルタイムのCvent のデータをセキュアに取得し、OpenAI GPT-4o を使用してそのデータを解釈・推論します。 また、後で LangGraph Studio で可視化できるようにグラフを公開します。
ファイルを作成
LangGraph プロジェクトフォルダ内に test.py という新しい Python ファイルを作成します。
以下のコードを追加
test.py に以下のスクリプトを使用します:
import asyncio
import os
import operator
from typing_extensions import TypedDict, Annotated
from dotenv import load_dotenv
from langgraph.graph import StateGraph, START, END
from langchain.agents import create_agent
from langchain_mcp_adapters.client import MultiServerMCPClient
from langchain_openai import ChatOpenAI
from langchain_core.messages import BaseMessage, HumanMessage
# Load environment variables
load_dotenv()
# Define the agent state
class AgentState(TypedDict):
messages: Annotated[list[BaseMessage], operator.add]
# Define the async agent logic
async def run_agent(user_prompt: str) -> str:
MCP_BASE_URL = os.getenv("MCP_BASE_URL")
MCP_AUTH = os.getenv("MCP_AUTH")
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
print("Connecting to the MCP server...")
mcp_client = MultiServerMCPClient(
connections={
"default": {
"transport": "streamable_http",
"url": MCP_BASE_URL,
"headers": {"Authorization": f"Basic {MCP_AUTH}"} if MCP_AUTH else {},
}
}
)
print("Loading available MCP tools...")
all_mcp_tools = await mcp_client.get_tools()
print(f"Loaded tools: {[tool.name for tool in all_mcp_tools]}")
# Initialize the LLM
llm = ChatOpenAI(model="gpt-4o", temperature=0.2, api_key=OPENAI_API_KEY)
print("Creating the LangGraph agent...")
agent = create_agent(
model=llm,
tools=all_mcp_tools,
system_prompt="You are a helpful assistant. Use tools when needed."
)
# Build the workflow graph
builder = StateGraph(AgentState)
builder.add_node("agent", agent)
builder.add_edge(START, "agent")
builder.add_edge("agent", END)
graph_instance = builder.compile()
print(f"Processing user query: {user_prompt}\n")
initial_state = {"messages": [HumanMessage(content=user_prompt)]}
result = await graph_instance.ainvoke(initial_state)
print(f"Agent Response:\n{result['messages'][-1].content}")
# Expose the graph for visualization
builder = StateGraph(AgentState)
builder.add_node(
"agent",
create_agent(
model=ChatOpenAI(model="gpt-4o", temperature=0.2, api_key=os.getenv("OPENAI_API_KEY")),
tools=[],
system_prompt="You are a helpful assistant."
)
)
builder.add_edge(START, "agent")
builder.add_edge("agent", END)
graph = builder.compile()
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--serve", action="store_true", help="Run visualization server")
args = parser.parse_args()
if args.serve:
print("To visualize the graph, run:")
print("langgraph dev")
else:
asyncio.run(run_agent("List the first 2 catalogs available"))
ステップ5:LangGraph プロジェクトを設定
CLI がワークフローグラフと環境設定を認識できるように LangGraph プロジェクトを設定します。LangGraph Studio での使用またはローカル可視化実行中にグラフを登録する設定ファイルを作成します。
設定ファイルを作成
プロジェクトディレクトリに langgraph.json という新しいファイルを作成します。
以下の設定を追加
langgraph.json ファイルに以下の内容を使用します:
{
"dependencies": ["."],
"graphs": {
"agent": "./test.py:graph"
},
"env": ".env"
}
ステップ6:LangGraph で Cvent をプロンプト(Connect AI 経由)
LangGraph 開発サーバーを実行して、LangGraph Studio でワークフローを表示し対話します。これにより、エージェントがプロンプトを処理し、ツールを呼び出し、MCP サーバーを通じてCvent のデータを取得する様子を直接可視化できます。
LangGraph 開発サーバーを起動
プロジェクトディレクトリでターミナルを開き、以下を実行します:
langgraph dev
Studio インターフェースにアクセス
サーバーが起動すると、LangGraph はローカル API を起動し、Studio UI へのリンクを提供します:
https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024
通常、コマンド実行時にリンクは自動的に開きます。開かない場合は、ブラウザでこのリンクを開いて LangGraph Studio ダッシュボードをロードしてください。
エージェントと対話
Studio インターフェースで、以下のような自然言語プロンプトを入力します:
カタログで利用可能なすべての Cvent テーブルを表示
LangGraph はエージェントの推論フローをリアルタイムで可視化し、プロンプトの解釈、適切な MCP ツールの呼び出し、Cvent からのリアルタイムデータの取得の様子を表示します。
CData Connect AI を入手
数百種類の SaaS、ビッグデータ、NoSQL ソースへのリアルタイムデータアクセスをクラウドアプリケーションから直接取得するには、CData Connect AI を今すぐお試しください!