メインコンテンツまでスキップ

Unity Catalog 関数でカスタム AI エージェントツールを作成

関数を使用してAIエージェントツールを作成し、カスタムロジックを実行し、特定のタスクを実行する方法を学びます。

ライブラリ UCFunctionToolkit

Databricks では、 UCFunctionToolkit を使用して、Unity Catalog 関数で定義されたエージェント ツールを作成および使用することをお勧めします。

UCFunctionToolkit は、Unity CatalogのAIコアライブラリの主要なコンポーネントであり、Unity Catalog AI関数をツールとして使用してLangChain のような フレームワークのプロセスを簡素化します。これは、Unity Catalog 機能と AI エージェントの間の架け橋として機能します。

セットアップが完了したら、Unity Catalog 関数を作成し、それらを UCFunctionToolkitでラップして、AI エージェントのツールとして使用できます。 この抽象化により、オーサリングライブラリ間で一貫したツールの作成が可能になり、取得者関数の自動トレースなどの機能が有効になり、取得したドキュメントや関連データを簡単に表示できます。

詳細については Unity Catalogの AI Core ライブラリのクイックスタート を参照してください。

Unity Catalog 関数を定義する

UCFunctionToolkitを使用するには、 Unity Catalog AI Core ライブラリと必要な統合パッケージをインストールする必要があります。

Python
## Install UCToolkit for LangChain with the Databricks extra
# Install the core package for databricks
%pip install unitycatalog-ai[databricks]

# Install the LangChain integration
%pip install unitycatalog-langchain[databricks]
注記

この例では LangChain を使用しているため、エージェント ライブラリの正しいパッケージをインストールする必要があります。 たとえば、OpenAI エージェントは %pip install unitycatalog-openai[databricks]を使用する必要があります。 「Unity Catalog AI の統合」を参照してください。

ツールのロジックを含む Unity Catalog 関数を作成します。

Python
from unitycatalog.ai.core.databricks import DatabricksFunctionClient

client = DatabricksFunctionClient()

CATALOG = "my_catalog"
SCHEMA = "my_schema"

def add_numbers(number_1: float, number_2: float) -> float:
"""
A function that accepts two floating point numbers adds them,
and returns the resulting sum as a float.

Args:
number_1 (float): The first of the two numbers to add.
number_2 (float): The second of the two numbers to add.

Returns:
float: The sum of the two input numbers.
"""
return number_1 + number_2

function_info = client.create_python_function(
func=add_numbers,
catalog=CATALOG,
schema=SCHEMA,
)

機能をツールとして使用する

関数を作成したら、ツールキットにラップすることで、AI オーサリングライブラリからアクセス可能にすることができます。 次の例では LangChain を使用していますが、同様のアプローチを他のフレームワークにも適用できます。

Python
from unitycatalog.ai.langchain.toolkit import UCFunctionToolkit

# Define the UC function to be used as a tool
func_name = f"{CATALOG}.{SCHEMA}.add_numbers"

# Create a toolkit with the UC function
toolkit = UCFunctionToolkit(function_names=[func_name], client=client)

tools = toolkit.tools

UCFunctionToolKitの詳細については、 Unity Catalog のドキュメントを参照してください。