Планировщик HTN автоматически генерирует подробные планы с использованием архитектуры GPT OpenAI и иерархической сети задач (HTN). Система генерирует задачи для достижения цели с использованием LLM, а затем итеративно разлагает ее на подзадачи, которые могут быть выполнены.
Для достижения наилучших результатов используйте GPT-4, хотя другие LLMS OpenSource могут достаточно модификаций API
Компоненты :
- Разложение - берет задачу и разлагает ее на подзадачи, пока максимальная глубина не будет достигнута или план не потерпел неудачу. Система отслеживает декомпозиции кандидатов и попытки выбрать лучший вариант. Может выйти рано, если результаты хороши.
- Повторное планирование-когда планирование не удалось или часть плана не удается, происходит повторное планирование
- Выполнение задачи - идентифицирует задачу как исполняемая единица
- В настоящее время задачи фактически не выполняются в терминале
- Отслеживание состояний - LLM отслеживает и обновляет состояние по мере выполнения
- Подбор текста - анализации и извлекает информацию из ответов естественного языка, произведенных LLM
- Перевод задачи - Попытки перевести задачу низкого уровня в команду или кусок кода, который может быть выполнен.
- Frontend - простой фронт, чтобы отобразить иерархию, представляющую план
- Приглашение Evolver - приложение, предназначенное для автоматического генерации подсказок с использованием эволюционных алгоритмов
- Выбор выполняется с использованием
roulette wheel selection - Мутация выполняется LLM
- Рекомбинация выполняется LLM с использованием результатов выбора
- Фитнес определяется LLM и нормализуется с использованием Z-показателя, так что результаты можно сравнить с использованием стандартных отклонений
- Топология среды - это 2D тороидальная сетка, которая динамически приспосабливается к локальной или глобальной оптимизации
- Журналы - Большое разнообразие журналов генерируется в папках «журналы», и в «Функциональной папке» можно найти в "function_trace.log"
- function_trace.log - отслеживает все вызовы функции, аннотированные с помощью "@trace_function_calls"
- Журналы в папке «Журналы» Каждый отслеживает определенную подсистему, используя функцию «log_response»
- parsing_errors - отслеживает любые проблемы с анализом вывода из LLM, чтобы обновления можно было сделать для анализатора, чтобы решить проблему
- State_changes - отслеживает переходы состояния с течением времени, генерируемые LLM на основе информации, которую он имеет
Тодо :
- Хранить кусочки успешных планов в векторном DB для последующего использования и снижения затрат на генерацию
- Продолжайте улучшать анализ текста, чтобы справиться с большим количеством краев.
- Больше постобработки
- Переоценить предварительные условия в качестве требования для выполнения задачи
Установка :
Бэкэнд
- Установите переменную среды
OPENAI_KEY на свой ключ API OpenAI - Установить зависимости
- Запустить
pip install -r requirements.txt
- Запустить приложение планирования
-
python src/main.py - Введите начальное состояние
- Это любая информация, которую вы хотите, чтобы система знала, прежде чем она начнет планировать
- Вы можете поместить
None или ничего в этот вход
- Опишите свою цель
- Введите цель, которую система планирует достичь
- Пример:
eat a ham sandwich
- Возможности по умолчанию
- Это инструменты, которые планировщик может рассмотреть при создании плана
- Этот по умолчанию в
Linux terminal, internet access , вы можете просто нажать Enter, чтобы использовать их
- Выберите планировщик
- Варианты создания планов с использованием различных типов алгоритмов планирования. Такие варианты, как HTN Planner и A* Search Planner.
- Это по умолчанию использование планировщика HTN
- Запустить приложение Evolver Evolver
-
python src/prompt_evolver.py - Войдите в цель или проблему, которую вы хотели бы, чтобы подсказка разработала вокруг.
Внешний интерфейс:
- Зайдите в каталог Frontend
- Начните фронт
Кредиты :
Ссылки :
- Htn
- Документы
- https://arxiv.org/pdf/1106.4869.pdf
- https://arxiv.org/pdf/1403.7426.pdf
- https://www.cs.umd.edu/~nau/papers/nau2021gtpyhop.pdf
- Книги
- Автоматическое планирование, теория и практика (2008) Малик Галлаб, Дана Нау, Паоло Траверсо (глава 11)
- Реализации и документация
- https://www.cs.umd.edu/projects/shop/description.html
- https://github.com/ptrefall/fluid-hierarchical-task-network
- https://github.com/maksmaisak/htn
- https://maksmaisak.github.io/htn/front.html
- https://github.com/dananau/gtpyhop
- Видео
- https://www.youtube.com/watch?v=7l3tcofmr7w
- https://www.youtube.com/watch?v=MYPF9_5WVLM
- https://www.youtube.com/watch?v=7rhi4fwljw4
- https://www.youtube.com/watch?v=KXM467TFTCY
- https://www.youtube.com/watch?v=xxusfbvquuly