O planejador HTN gera automaticamente planos detalhados, utilizando a arquitetura GPT da OpenAI e a arquitetura da rede de tarefas hierárquicas (HTN). O sistema gera tarefas para atingir uma meta usando o LLM e depois a decompõe iterativamente em subtarefas que podem ser executadas.
Para obter melhores resultados, use o GPT-4, embora outros OpenSource LLMs possam ser suficientes com modificações na API
Componentes :
- Decomposição - pega uma tarefa e a decompõe em subtarefa até que a profundidade máxima seja atingida ou o plano falhasse. O sistema acompanha as decomposições do candidato e as tentativas de escolher a melhor opção. Pode sair mais cedo se os resultados forem bons.
- Re-planejamento-Quando o planejamento falha ou parte de um plano falha, o re-planejamento ocorre
- Execução de tarefas - identifica uma tarefa como uma unidade executável
- Atualmente, as tarefas não são realmente executadas em um terminal
- Rastreamento de estado - o LLM rastreia e atualiza o estado à medida que a execução ocorre
- Parsing de texto - Paresas e extrai informações das respostas da linguagem natural produzidas pelo LLM
- Tradução de tarefas - tenta traduzir uma tarefa de baixo nível em um comando ou pedaço de código que pode ser executado.
- Frontend - um Frontend React simples para exibir uma hierarquia representando o plano
- Prompt Evolver - Um aplicativo projetado para gerar automaticamente prompts usando algoritmos evolutivos
- A seleção é realizada usando
roulette wheel selection - A mutação é realizada pelo LLM
- A recombinação é realizada pelo LLM usando os resultados da seleção
- A aptidão é determinada pelo LLM e normalizada usando um escore z para que os resultados possam ser comparados usando desvios padrão
- A topologia ambiental é uma grade toroidal 2D que se ajusta à otimização local ou global dinamicamente
- Logs - Uma grande variedade de toras é gerada na pasta "logs" e traços de funções podem ser encontrados em "function_trace.log"
- function_trace.log - rastreia todas as chamadas de função anotadas com "@trace_function_calls"
- Os logs na pasta "logs" cada rastrear um subsistema específico usando a função "LOG_RESPONSE"
- Parsing_errors - rastreia qualquer problema de analisar a saída do LLM para que as atualizações possam ser feitas ao analisador para corrigir o problema
- State_Changes - rastreia as transições do estado ao longo do tempo geradas pelo LLM com base nas informações que possui
Pendência :
- Armazene os planos bem -sucedidos em um db de vetor para uso posterior e reduza os custos de geração
- Continue a melhorar a análise de texto para lidar com mais casos de borda
- Mais pós-processamento
- Reavaliar as pré-condições como um requisito para a execução de tarefas
Instalação :
Back -end
- Defina a variável de ambiente
OPENAI_KEY para sua chave de API OpenAI - Instalar dependências
- Execute
pip install -r requirements.txt
- Execute o aplicativo de planejamento
-
python src/main.py - Digite o estado inicial
- Esta é qualquer informação que você deseja que o sistema saiba antes de começar a planejar
- Você pode colocar
None ou nada nesta entrada
- Descreva seu objetivo
- Insira a meta que o sistema está planejando alcançar
- Ex:
eat a ham sandwich
- Recursos padrão
- Essas são as ferramentas que o planejador pode considerar usar ao criar o plano
- Isso padrão para o
Linux terminal, internet access , você pode apenas pressionar Enter para usá -los
- Escolha o planejador
- Opções para criar planos usando diferentes tipos de algoritmos de planejamento. Opções como o Planejador HTN e um* Planner de Pesquisa.
- Isso padrão é usar o planejador HTN
- Execute o aplicativo PROMPRO Evolver
-
python src/prompt_evolver.py - Entre na meta ou problema que você gostaria de prompts projetados.
Front-end:
- Vá para o diretório de front -end
- Comece o front -end
Créditos :
Referências :
- Htn
- Papéis
- https://arxiv.org/pdf/1106.4869.pdf
- https://arxiv.org/pdf/1403.7426.pdf
- https://www.cs.umd.edu/~nau/papers/nau2021gtpyhop.pdf
- Livros
- Planejamento, teoria e prática automatizados (2008) por Malik Ghallab, Dana Nau, Paolo Traverso (Capítulo 11)
- Implementações e documentação
- https://www.cs.umd.edu/projects/shop/description.html
- https://github.com/ptrefall/fluid-hierchical-task-network
- https://github.com/maksmaisak/htn
- https://maksmaaisk.github.io/htn/front.html
- https://github.com/dananau/gtpyhop
- Vídeos
- 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=xxusfbvQuly