这是一个使用 Rust 语言编写的代码示例,用于与 Claude 进行交互并对代码进行判断。主要步骤如下:
- 初始化项目:通过
cargo new code-judge
创建项目,然后进入项目目录并使用编辑器打开。 - 添加依赖:在
Cargo.toml
中添加ureq
、serde_json
、serde
和anyhow
等依赖,以实现发送 HTTP 请求、序列化和反序列化 JSON 以及处理错误等功能。 - 编写与 Claude 交互的代码:在
src/main.rs
中定义了get_claude_response
函数,用于向 Claude 发送请求并获取响应。还定义了judge_code
函数,用于将代码和断言传递给 Claude 进行判断,并返回判断结果。 - 创建提示文件:创建
prompts/judge.md
文件,定义了 Claude 作为代码判断者的任务和响应结构,以及评分标准等。 - 编写主函数:在
src/main.rs
的主函数中,读取代码文件和断言列表,调用judge_code
函数进行判断,并输出判断结果和评分。 - 运行和测试:设置
ANTHROPIC_API_KEY
环境变量,运行cargo run
命令进行测试,根据不同的断言列表,Claude 会给出相应的判断结果和评分。 - 思考和启示:作者在使用过程中发现 LLM 作为代码判断者非常可靠,能够准确地判断代码是否满足特定的约束条件,并且比大多数集成测试更可靠。这让作者重新思考了 LLM 在数据、代码和文本处理方面的作用,认为可能不需要再用代码来表达这些问题,而是可以直接用自然语言来描述。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。