1. はじめに
こんにちは、DataRobot Japan副社長の小川です。元々はDataRobotで金融業界のお客様を担当していたデータサイエンスで、ゲーム理論やオペレーションリサーチの分野を専門としていました。前回の記事では、GitHubで公開されている「データと会話する」AIエージェント(以下、TTMDAIエージェント)の基本的な使い方についてご紹介しました。TTMDAIエージェントは、LLM(大規模言語モデル)を活用して、自然言語でデータ分析や可視化を行える画期的なツールです。
今回は、そのTTMDAIエージェントをさらにパワーアップさせる方法をご紹介します。具体的には、tools.pyファイルを使って、事前に定義した関数やDataRobotの予測AIをAIエージェントに利用させる方法について深掘りしていきます。これにより、AIAIエージェントはデータ分析の指示だけでなく、特定のビジネスロジックや高度な予測機能を活用して、より複雑なタスクをこなせるようになります。
2. TTMDAIエージェントのtools.pyとは?
TTMDAIエージェントは、ユーザーの質問に対してPythonコードを生成し、それを実行することで応答を返します。この際、AIエージェントが利用できる「道具」として機能するのがtools.pyです。このファイルに関数を定義することで、AIエージェントはその関数を自身の分析プロセスの中で呼び出すことが可能になります。
例えば、データの前処理で頻繁に使う定型的な処理や、外部システムとの連携が必要な場合など、あらかじめ関数としてtools.pyに定義しておくことで、AIエージェントはこれらを自動的に利用し、より効率的かつ正確な分析を実行できるようになります。
3. DataRobot予測AIを組み込む手順
TTMDAIエージェントにDataRobotの予測AIを組み込むのは非常に簡単です。以下の手順で設定を進めます。
3.1. utils/tools.pyに関数を追加
まず、TTMDAIエージェントのディレクトリにあるutils/tools.pyファイルを開きます。ここに、DataRobotのデプロイメントを呼び出す関数を記述します。サンプルコードは以下の通りです。
import datarobot as dr
import pandas as pd
from datarobot_predict.deployment import predict
def call_datarobot_deployment(df: pd.DataFrame) -> pd.DataFrame:
"""
Call the DataRobot deployment to get the probability that the transaction is a SAR.
Args:
df (pd.DataFrame): Input DataFrame with features for prediction.
Returns:
pd.DataFrame: DataFrame containing the predictions from DataRobot. The prediction column is named 'predictions'.
"""
# ここにDataRobotのデプロイIDを指定
deployment = dr.Deployment.get(deployment_id='<指定したいdeployID>') # type: ignore[attr-defined]
prediction_response: pd.DataFrame = predict(
deployment=deployment, data_frame=df
).dataframe
prediction_response.columns = [
c.replace("_PREDICTION", "")
for c in prediction_response.columns # type: ignore[assignment]
]
if deployment.model is not None:
target_column = deployment.model.get("target_name")
if target_column:
prediction_response["predictions"] = prediction_response[target_column]
return prediction_response[['predictions']]
上記のコードの<指定したいdeployID>の部分を、実際に使用したいDataRobotデプロイメントのIDに置き換えてください。
独自関数をセットする際の注意点
データアナリストのPythonエージェントがデータ分析タスクを遂行するのを支援するため、utils/tools.pyに関数を定義してください。これらの関数は、AIエージェントのコード実行環境内で利用可能になります。特に、**関数名、docstring、およびシグネチャ(引数と戻り値の型ヒント)**は、プロンプト内でAIエージェントに提供されるため、AIエージェントが適切に関数を理解し、利用するために非常に重要です。明確で分かりやすい記述を心がけましょう。
3.2. 必要なライブラリの有効化
tools.pyの冒頭にコメントアウトされている以下の行のコメントを外します。これにより、DataRobotの予測AIを利用するために必要なライブラリがインポートされます。
import datarobot as dr
import pandas as pd
from datarobot_predict.deployment import predict
3.3. requirements.txtへの追記
DataRobotの予測AIを利用するためには、必要なライブラリをインストールしておく必要があります。TTMDAIエージェントの実行環境に応じて、以下のいずれかのrequirements.txtファイルにdatarobot-predictライブラリを追加します。
- フロントエンドがReact版の場合: app_backend/requirements.txt
- フロントエンドがStreamlit版の場合: frontend/requirements.txt
ファイルに以下の行を追加してください。
datarobot-predict>=1.9.2,<1.10
加えて、TTMDAIエージェントのディレクトリ直下にあるrequirements.txtにも同様のライブラリ(例: datarobot-predict>=1.9.2,<1.10)を追加してください。
これらの設定が完了したら、あとはAIエージェントを起動するだけです。
4. tools.pyの活用と注意点
TTMDAIエージェントは、utils/api.py内の以下の部分でtools.pyに定義された関数を読み込み、メッセージに含めます。
tools_list = get_tools()
if len(tools_list) > 0:
messages.append(
ChatCompletionUserMessageParam(
role="user",
content="If it helps the analysis, you can optionally use following functions:\n"
+ "\n".join([str(t) for t in tools_list]),
)
)
デフォルトでは「分析の役に立つなら、以下の関数を任意で使っていいよ」というニュアンスでプロンプトに組み込まれます。もし、AIエージェントにもっと積極的にこれらのツールを使わせたい場合は、content部分のメッセージを書き換えることで、 AIエージェントの振る舞いを調整できます。例えば、「分析には以下の関数を積極的に利用してください」といった指示に変更することが考えられます。
疑わしい取引である確率を予測して欲しいと言うプロンプトに対して
call_datarobot_deploymentという関数が呼び出されている
注意点として、TTMDAIエージェントのtools.pyは、_generate_run_analysis_python_codeという関数内で呼び出されます。これは、ローカルファイルへのPythonコードの書き出し部分でのみ利用されることを意味します。そのため、tools.pyから直接、特別なビジュアライゼーションなどをTTMDAIエージェントのフロントエンドに設定することはできません。
より自由にツールを使いこなし、エージェントベースで多様なアプリケーションを開発したい場合は、datarobot-agent-templatesプロジェクトの利用を検討することをおすすめします。こちらは、より高度なカスタマイズが可能なAIエージェント開発のためのフレームワークを提供しています。
5. 「データと会話する」AIエージェントをさらに賢く!DataRobot予測AIを組み込む方法のまとめ
本記事では、「データと会話する」AIエージェントにDataRobotの予測AIを組み込む方法について解説しました。tools.pyを活用することで、AIエージェントはただデータ分析を行うだけでなく、特定のビジネスロジックや既存の機械学習モデルを呼び出し、より高度で実用的なタスクをこなすことが可能になります。
これにより、例えば「この顧客は離反する可能性が高いですか?」と質問すると、TTMDAIエージェントが自動的にDataRobotの離反予測モデルを呼び出し、その結果に基づいて応答を返すといった応用が考えられます。
ぜひこの機能を活用して、あなたのTTMDAIエージェントに予測AIを組み込み、をさらに賢く、そしてあなたのビジネスに役立つ存在に進化させてみてください!何かご不明な点がありましたら、お気軽にお尋ねください。