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


Создание агента ИИ

Внимание

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

В этой статье показано, как создать агент искусственного интеллекта, вызывающий инструмент, с помощью Платформы агента ИИ Мозаики.

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

Требования

Создание средств агента ИИ

Первым шагом является создание средства для предоставления агенту. Агенты используют средства для выполнения действий, кроме создания языка, например для получения структурированных или неструктурированных данных, выполнения кода или взаимодействия с удаленными службами (например, отправка сообщения электронной почты или slack).

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

Дополнительные сведения о создании собственных средств агента см. в статье Создание средств агента ИИ.

Прототип агентов по вызову инструментов на игровой площадке ИИ

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

Примечание.

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

Создание прототипа конечной точки вызова средства.

  1. На игровой площадке выберите модель с меткой с включенными средствами.

    Выбор средства вызова LLM

  2. Выберите "Сервис" и укажите имена функций каталога Unity в раскрывающемся списке:

    Выбор инструмента

  3. Чат, чтобы протестировать текущую комбинацию LLM, инструментов и системного запроса, а также попробовать варианты.

    Прототип LLM

Экспорт и развертывание агентов игровой площадки ИИ

После создания прототипа и уточнения агента ИИ на площадке искусственного интеллекта вы можете экспортировать его в записные книжки Python для дальнейшего разработки или развернуть его непосредственно в качестве конечной точки обслуживания модели

  1. Нажмите кнопку "Экспорт" , чтобы создать записные книжки Python, которые помогут вам разработать и развернуть агент ИИ.

    После экспорта кода агента вы увидите три файла, сохраненные в рабочей области:

    • agent записная книжка: содержит код Python, определяющий агент с помощью LangChain.
    • driver записная книжка: содержит код Python для журналов, трассировки, регистрации и развертывания агента ИИ с помощью Платформы агента ИИ Для Мозаики.
    • config.yml: содержит сведения о конфигурации агента, включая определения инструментов.
  2. agent Откройте записную книжку, чтобы увидеть код LangChain, определяющий агент, используйте эту записную книжку для тестирования и итерации агента программным способом, например определение дополнительных средств или настройку параметров агента.

    Примечание.

    Экспортируемый код может отличаться от сеанса игровой площадки ИИ. Databricks рекомендует запускать экспортированные записные книжки для дальнейшего итерации и отладки, оценивать качество агента, а затем развертывать агент для совместного использования с другими пользователями.

  3. После того как вы удовлетворены выходными данными агента, вы можете запустить записную книжку driver для регистрации и развертывания агента в конечной точке обслуживания модели.

Определение агента в коде

Помимо создания кода агента на платформе ИИ, вы также можете самостоятельно определить агент в коде, используя платформы, такие как LangChain или код Python. Чтобы развернуть агент с помощью Agent Framework, входные данные должны соответствовать одному из поддерживаемых форматов входных и выходных данных.

Использование параметров для настройки агента

В агентной платформе можно использовать параметры для управления выполнением агентов. Это позволяет быстро выполнять итерацию по различным характеристикам агента, не изменяя код. Параметры — это пары "ключ-значение", которые определяются в словаре Python или .yaml файле.

Чтобы настроить код, создайте ModelConfigнабор параметров key-value. ModelConfig — это словарь Python или .yaml файл. Например, можно использовать словарь во время разработки, а затем преобразовать его в .yaml файл для рабочего развертывания и CI/CD. Дополнительные сведения см. в ModelConfigдокументации по MLflow.

Ниже показан пример ModelConfig .

llm_parameters:
  max_tokens: 500
  temperature: 0.01
model_serving_endpoint: databricks-dbrx-instruct
vector_search_index: ml.docs.databricks_docs_index
prompt_template: 'You are a hello world bot. Respond with a reply to the user''s
  question that indicates your prompt template came from a YAML file. Your response
  must use the word "YAML" somewhere. User''s question: {question}'
prompt_template_input_vars:
- question

Чтобы вызвать конфигурацию из кода, используйте одно из следующих действий:

# Example for loading from a .yml file
config_file = "configs/hello_world_config.yml"
model_config = mlflow.models.ModelConfig(development_config=config_file)

# Example of using a dictionary
config_dict = {
    "prompt_template": "You are a hello world bot. Respond with a reply to the user's question that is fun and interesting to the user. User's question: {question}",
    "prompt_template_input_vars": ["question"],
    "model_serving_endpoint": "databricks-dbrx-instruct",
    "llm_parameters": {"temperature": 0.01, "max_tokens": 500},
}

model_config = mlflow.models.ModelConfig(development_config=config_dict)

# Use model_config.get() to retrieve a parameter value
value = model_config.get('sample_param')

Установка схемы извлекателя

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

Чтобы обеспечить правильную трассировку извлекателей, вызовите mlflow.models.set_retriever_schema при определении агента в коде. Используйте set_retriever_schema для сопоставления имен столбцов в возвращаемой таблице ожидаемым полям MLflow, таким как primary_key, text_columnи doc_uri.

# Define the retriever's schema by providing your column names
# These strings should be read from a config dictionary
mlflow.models.set_retriever_schema(
    name="vector_search",
    primary_key="chunk_id",
    text_column="text_column",
    doc_uri="doc_uri"
    # other_columns=["column1", "column2"],
)

Примечание.

Столбец doc_uri особенно важен при оценке производительности извлекателя. doc_uri — это основной идентификатор документов, возвращаемых извлекателем, что позволяет сравнивать их с наборами оценки истины на земле. См. раздел "Оценка наборов"

Можно также указать дополнительные столбцы в схеме извлекателя, указав список имен столбцов с полем other_columns .

Если у вас несколько извлекателей, можно определить несколько схем с помощью уникальных имен для каждой схемы извлекателя.

Поддерживаемые форматы входных и выходных данных

Agent Framework использует сигнатуры модели MLflow для определения входных и выходных схем для агентов. Для взаимодействия с такими функциями, как приложение проверки и игровой площадки ИИ, требуется минимальный набор полей ввода и вывода. Дополнительные сведения см. в разделе "Определение входной и выходной схемы агента".

Примеры записных книжек

Эти записные книжки создают простую цепочку Hello, world, чтобы проиллюстрировать создание приложения цепочки в Databricks. Первый пример создает простую цепочку. Во втором примере записной книжки показано, как использовать параметры для минимизации изменений кода во время разработки.

Простая записная книжка цепочки

Получить записную книжку

Простая записная книжка драйвера цепочки

Получить записную книжку

Параметризованная записная книжка цепочки

Получить записную книжку

Параметризованная записная книжка драйвера цепочки

Получить записную книжку

Следующие шаги