В этом руководстве мы создадим оптимизатор маршрутов в производственном стиле для логистического диспетчерского центра, используя новейшие API-интерфейсы LangChain agent. Мы разработаем управляемый инструментами рабочий процесс, в котором агент надёжно вычисляет расстояния, расчётное время прибытия (ETA) и оптимальные маршруты, а не угадывает. Мы обеспечим структурированные выходные данные, чтобы результаты можно было напрямую использовать в последующих системах.
Настройка среды выполнения
Мы настроим среду выполнения и убедимся, что все необходимые библиотеки установлены и правильно импортированы. Мы безопасно загрузим ключ API OpenAI, чтобы агент мог взаимодействовать с языковой моделью без жёсткого кодирования учётных данных. Мы также подготовим основные зависимости, которые поддерживают инструменты, агенты и структурированные выходные данные.
Определение основных данных домена
Мы определим основные данные домена, представляющие буровые установки, дворы и депо вместе с их географическими координатами. Мы установим профили скорости и коэффициент трафика по умолчанию, чтобы отразить реалистичные условия вождения. Мы также реализуем функцию расстояния Гаверсина, которая служит математической основой для всех решений по маршрутизации.
Реализация вспомогательных функций
Мы создадим вспомогательные функции низкого уровня, которые проверяют имена сайтов и вычисляют расстояния и время в пути. Мы реализуем логику для расчёта показателей маршрута на этапе и общего маршрута. Это гарантирует, что каждое ETA и расстояние, возвращаемые агентом, основаны на явных вычислениях, а не на выводе.
Введение логики маршрутизации с несколькими остановками
Мы представим логику маршрутизации с несколькими остановками, генерируя пути-кандидаты с необязательными промежуточными пунктами. Мы оценим каждый маршрут-кандидат по чёткой цели оптимизации, такой как ETA или расстояние. Затем мы ранжируем маршруты и извлекаем лучший вариант вместе с набором надёжных альтернатив.
Экспозиция логики маршрутизации и обнаружения
Мы выставляем логику маршрутизации и обнаружения как вызываемые инструменты для агента. Мы позволяем агенту перечислять сайты, проверять сведения о сайтах, разрешать неоднозначные имена и вычислять как прямые, так и оптимизированные маршруты. Этот слой инструментов гарантирует, что агент всегда рассуждает, вызывая проверенные функции, а не генерируя результаты.
Инструменты
- `list_sites`: перечисляет все сайты или сайты указанного типа.
- `getsitedetails`: возвращает подробную информацию о указанном сайте.
- `suggest_site`: предлагает сайты, соответствующие запросу.
- `computedirectroute`: вычисляет прямой маршрут между двумя точками.
- `optimize_route`: оптимизирует маршрут с учётом промежуточных пунктов.
Схемы Pydantic
Мы определяем строгие схемы Pydantic для обеспечения структурированных, машиночитаемых выходных данных от агента.
Инициализация языковой модели
Мы инициализируем языковую модель и создаём агента с чётким системным запросом и форматом ответа.
Демонстрация использования агента
Мы демонстрируем, как вызвать агента и получить надёжные решения по маршрутизации, готовые для реальных логистических рабочих процессов.
В заключение мы реализовали надёжного и расширяемого агента по оптимизации маршрутов, который выбирает лучший путь между объектами, чётко объясняя свои предположения и альтернативы. Мы продемонстрировали, как сочетание детерминированной логики маршрутизации с вызывающей инструменты языковой моделью создаёт надёжные, поддающиеся проверке решения, подходящие для реальных логистических операций.
1. Какие основные компоненты включает в себя процесс проектирования агентского рабочего процесса для оптимизации маршрутов?
Ответ: процесс включает в себя настройку среды выполнения, определение основных данных домена, реализацию вспомогательных функций, введение логики маршрутизации с несколькими остановками и экспозицию логики маршрутизации и обнаружения как вызываемых инструментов для агента.
2. Какие инструменты используются для оптимизации маршрутов в данном руководстве?
Ответ: для оптимизации маршрутов используются следующие инструменты: `listsites`, `getsitedetails`, `suggestsite`, `computedirectroute` и `optimize_route`.
3. Какие данные необходимо определить для успешной работы агента по оптимизации маршрутов?
Ответ: для успешной работы агента необходимо определить основные данные домена, представляющие буровые установки, дворы и депо вместе с их географическими координатами, а также установить профили скорости и коэффициент трафика по умолчанию.
4. Какие вспомогательные функции были созданы для проверки имён сайтов и вычисления расстояний и времени в пути?
Ответ: были созданы вспомогательные функции низкого уровня, которые проверяют имена сайтов и вычисляют расстояния и время в пути. Они реализуют логику для расчёта показателей маршрута на этапе и общего маршрута.
5. Какие схемы используются для обеспечения структурированных, машиночитаемых выходных данных от агента?
Ответ: для обеспечения структурированных, машиночитаемых выходных данных от агента используются строгие схемы Pydantic.