Создание агента ИИ
Внимание
Эта функция предоставляется в режиме общедоступной предварительной версии.
В этой статье показано, как создать агент искусственного интеллекта, вызывающий инструмент, с помощью Платформы агента ИИ Мозаики.
Узнайте, как предоставить средства агента и начать беседу с ними для тестирования и прототипа агента. После завершения создания прототипа агента экспортируйте код Python, определяющий агент для итерации и развертывания агента ИИ.
Требования
- Ознакомьтесь с понятиями агентов и средств ИИ, как описано в разделе Что такое составные системы ИИ и агенты ИИ?
- Databricks рекомендует установить последнюю версию клиента Python MLflow при разработке агентов.
Создание средств агента ИИ
Первым шагом является создание средства для предоставления агенту. Агенты используют средства для выполнения действий, кроме создания языка, например для получения структурированных или неструктурированных данных, выполнения кода или взаимодействия с удаленными службами (например, отправка сообщения электронной почты или slack).
В этом руководстве можно использовать встроенную функцию каталога Unity, system.ai.python_exec
, чтобы предоставить агенту возможность выполнять произвольный код Python.
Дополнительные сведения о создании собственных средств агента см. в статье Создание средств агента ИИ.
Прототип агентов по вызову инструментов на игровой площадке ИИ
Теперь, когда у вас есть инструмент, используйте платформу ИИ, чтобы передать инструмент агенту и взаимодействовать с ним для проверки и тестирования поведения. Платформа искусственного интеллекта предоставляет песочницу для прототипов агентов вызова инструментов.
Примечание.
Каталог Unity и бессерверные вычислительные ресурсы, Платформа агента ИИ Мозаики, а также модели базы данных с оплатой за токены или внешние модели должны быть доступны в текущей рабочей области для прототипов агентов на игровой площадке искусственного интеллекта.
Создание прототипа конечной точки вызова средства.
На игровой площадке выберите модель с меткой с включенными средствами.
Выберите "Сервис" и укажите имена функций каталога Unity в раскрывающемся списке:
Чат, чтобы протестировать текущую комбинацию LLM, инструментов и системного запроса, а также попробовать варианты.
Экспорт и развертывание агентов игровой площадки ИИ
После создания прототипа и уточнения агента ИИ на площадке искусственного интеллекта вы можете экспортировать его в записные книжки Python для дальнейшего разработки или развернуть его непосредственно в качестве конечной точки обслуживания модели
Нажмите кнопку "Экспорт" , чтобы создать записные книжки Python, которые помогут вам разработать и развернуть агент ИИ.
После экспорта кода агента вы увидите три файла, сохраненные в рабочей области:
-
agent
записная книжка: содержит код Python, определяющий агент с помощью LangChain. -
driver
записная книжка: содержит код Python для журналов, трассировки, регистрации и развертывания агента ИИ с помощью Платформы агента ИИ Для Мозаики. -
config.yml
: содержит сведения о конфигурации агента, включая определения инструментов.
-
agent
Откройте записную книжку, чтобы увидеть код LangChain, определяющий агент, используйте эту записную книжку для тестирования и итерации агента программным способом, например определение дополнительных средств или настройку параметров агента.Примечание.
Экспортируемый код может отличаться от сеанса игровой площадки ИИ. Databricks рекомендует запускать экспортированные записные книжки для дальнейшего итерации и отладки, оценивать качество агента, а затем развертывать агент для совместного использования с другими пользователями.
После того как вы удовлетворены выходными данными агента, вы можете запустить записную книжку
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. Первый пример создает простую цепочку. Во втором примере записной книжки показано, как использовать параметры для минимизации изменений кода во время разработки.