Поделиться через


Создание пользовательских средств агента ИИ с помощью функций каталога Unity

Важный

Эта функция доступна в общедоступной предварительной версии.

Узнайте, как создавать средства агента ИИ с помощью функций каталога Unity для выполнения пользовательского кода Python для операций, относящихся к задачам.

Что такое UCFunctionToolkit

Databricks рекомендует использовать UCFunctionToolkit для создания и использования средств агента, определенных с помощью функций каталога Unity.

UCFunctionToolkit является ключевым компонентом библиотеки AI Core каталога Unity, которая упрощает процесс создания и использования функций каталога Unity в качестве инструментов в платформах ИИ, таких как LangChain. Он служит мостом между функциями каталога Unity и агентами ИИ.

После настройки можно создать функции каталога Unity, упаковать их в UCFunctionToolkitи использовать их в качестве инструментов в агентах ИИ. Эта абстракция позволяет согласованно создавать средства в библиотеках разработки и обеспечивает такие функции, как автоматическая трассировка функций извлекателя, что упрощает просмотр извлеченных документов и связанных данных.

См. краткое руководство по библиотеке AI Core каталога Unity для получения дополнительной информации и примеров.

Определение функции каталога Unity

Чтобы использовать UCFunctionToolkit, необходимо установить библиотеку AI Core каталога Unity и все необходимые пакеты интеграции.

## 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.

Создайте функцию каталога Unity, содержащую логику средства.

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,
)

Использование функции в качестве инструмента

После создания функции вы можете сделать ее доступной для библиотек разработки ИИ, упаковав ее в набор средств. В следующем примере используется 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 .

Встроенное средство исполнителя Python

Azure Databricks также предоставляет встроенную функцию каталога Unity, которая позволяет агентам ИИ динамически выполнять код Python в запросах.

system.ai.python_exec доступен по умолчанию и может использоваться как любое другое средство на основе функций каталога Unity.

В следующем примере показано, как использовать функцию python_exec в SQL-запросе:

SELECT python_exec("""
import random
numbers = [random.random() for _ in range(10)]
print(numbers)
""")