#language-model #parser #pddl #planning #domain #input #generated

pddl-ish-parser

这是一个Rust库,用于解析规划领域定义语言(PDDL)的简化版本,旨在处理由ChatGPT等自回归语言模型生成的类似PDDL的输入。

2个版本

0.0.4 2023年11月18日
0.0.3 2023年11月18日

#7 in #pddl

Download history 39/week @ 2024-03-13 75/week @ 2024-03-20 59/week @ 2024-03-27 117/week @ 2024-04-03 77/week @ 2024-04-10 100/week @ 2024-04-17 60/week @ 2024-04-24 65/week @ 2024-05-01 26/week @ 2024-05-08 23/week @ 2024-05-15 2/week @ 2024-05-22 54/week @ 2024-05-29 43/week @ 2024-06-05 53/week @ 2024-06-12 34/week @ 2024-06-19 21/week @ 2024-06-26

每月下载 182

MIT 协议

21KB
436

PDDL-ish解析器

PDDL-ish解析器是一个Rust库,用于解析规划领域定义语言(PDDL)的简化版本。该解析器特别适合处理可能由ChatGPT等自回归语言模型生成的类似PDDL的输入。

特性

  • 灵活地解析非标准的PDDL文件。
  • 从类似PDDL的结构化文本中提取领域、对象和动作。
  • 错误处理,为解析失败提供上下文。
  • 对常见的PDDL构造支持,对语法宽容。

安装

要安装PDDL-ish解析器,可以使用cargo add命令

cargo add pddl-ish-parser

或者将以下内容添加到您的Cargo.toml文件中

pddl-ish-parser = "0.0.3"

您可以在crates.io上查看最新版本。

使用

以下是使用PDDL-ish解析器的基本示例

use pddl_ish_parser::parser::problem_parser::parse_problem;

fn main() {
    let input = r#"(define (problem your-problem)
        ...
    )"#;

    match parse_problem(input) {
        Ok((_, problem)) => println!("{:?}", problem),
        Err(e) => eprintln!("Error parsing problem: {:?}", e),
    }

    let domain_input = r#"(define (domain your-domain)
        ...
    )"#;

    match parse_domain_types(domain_input) {
        Ok((_, domain_types)) => println!("Parsed domain types: {:?}", domain_types),
        Err(e) => eprintln!("Error parsing domain types: {:?}", e),
    }
}

测试

库中包含测试,您可以运行这些测试以确保解析器按预期工作

cargo test

贡献

欢迎贡献!请在GitHub上打开一个问题或拉取请求。

许可

本项目遵循MIT许可证 - 有关详细信息,请参阅LICENSE文件。

依赖项

~3–4MB
~73K SLoC