Unity Catalog 関数でカスタム AI エージェントツールを作成
プレビュー
この機能はパブリックプレビュー段階です。
Unity Catalog 関数を使用して AI エージェントツールを作成し、タスク固有の操作のためのカスタム Python コードを実行する方法を学びます。
UCFunctionToolkit
とは
Databricks では、 UCFunctionToolkit
を使用して、Unity Catalog 関数で定義されたエージェント ツールを作成および使用することをお勧めします。
UCFunctionToolkit
は、Unity CatalogAI Core ライブラリの主要なコンポーネントであり、Unity Catalog AI関数をツールとして使用してLangChain のような フレームワークのプロセスを簡素化します。これは、Unity Catalog 機能と AI エージェントの間の架け橋として機能します。
セットアップが完了したら、Unity Catalog 関数を作成し、それらを UCFunctionToolkit
でラップして、AI エージェントのツールとして使用できます。 この抽象化により、オーサリングライブラリ間で一貫したツールの作成が可能になり、取得者関数の自動トレースなどの機能が有効になり、取得したドキュメントや関連データを簡単に表示できます。
詳細については Unity Catalogの AI Core ライブラリのクイックスタート を参照してください。
Unity Catalog 関数を定義する
UCFunctionToolkit
を使用するには、 Unity Catalog AI Core ライブラリと必要な統合パッケージをインストールする必要があります。
## 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 関数を作成します。
from unitycatalog.ai.core.databricks import 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 を使用していますが、同様のアプローチを他のフレームワークにも適用できます。
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 のドキュメントを参照してください。
組み込み Python エグゼキューター ツール
Databricksには、 エージェントがクエリ内の コードを動的に実行できる組み込みUnity Catalog AIPython関数も用意されています。
system.ai.python_exec
はデフォルトで使用でき、他の Unity Catalog 関数ベースのツールと同様に使用できます。
次の例は、SQL クエリで python_exec
関数を使用する方法を示しています。
SELECT python_exec("""
import random
numbers = [random.random() for _ in range(10)]
print(numbers)
""")