HTN计划者将使用OpenAI的GPT和分层任务网络(HTN)体系结构自动生成详细的计划。该系统生成任务以使用LLM实现目标,然后迭代将其分解为可以执行的子任务。
为了获得最佳结果,使用GPT-4,尽管其他OpenSource LLM可能足以对API进行修改
成分:
- 分解 - 执行任务并将其分解为子任务,直到达到最大深度或计划失败为止。该系统跟踪候选分解,并尝试选择最佳选择。如果结果良好,则可能会尽早退出。
- 重新计划 - 计划失败或计划的一部分失败时,会重新计划
- 任务执行 - 将任务标识为可执行单元
- 状态跟踪-LLM跟踪并在执行时更新状态
- 文本解析 - 解析和从LLM产生的自然语言响应中提取信息
- 任务翻译 - 尝试将低级任务转换为可以执行的命令或代码。
- 前端 - 简单的反应前端显示代表计划的层次结构
- 提示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生成的状态过渡
托多:
- 将成功计划的部分存储在矢量数据库中,以供以后使用并降低发电成本
- 继续改善文本解析以应对更多优势案例
- 更多后处理
- 重新评估前提条件作为任务执行的要求
安装:
后端
- 将环境变量
OPENAI_KEY设置为OpenAI API密钥 - 安装依赖项
- 运行
pip install -r requirements.txt
- 运行计划申请
python src/main.py- 输入初始状态
- 这是您希望系统开始计划之前知道的任何信息
- 您可能不会在此输入中放
None东西
- 描述您的目标
- 输入系统计划达到的目标
- 例如:
eat a ham sandwich
- 默认功能
- 这些是计划者在创建计划时可能会考虑使用的工具
- 这将默认为
Linux terminal, internet access ,您只需按Enter即可使用这些
- 选择计划者
- 使用不同类型的计划算法创建计划的选项。诸如HTN计划者和*搜索计划者之类的选项。
- 这默认用于使用HTN计划者
- 运行提示Evolver应用程序
python src/prompt_evolver.py- 输入您想要设计的提示的目标或问题。
前端:
学分:
参考:
- 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年)Malik Ghallab,Dana Nau,Paolo Traverso(第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=xxusfbvquly