首页 > 教程攻略 > ai资讯 >AutoCodeGenTestFix 是一个基于大模型的自动代码生成、测试和修复工具

AutoCodeGenTestFix 是一个基于大模型的自动代码生成、测试和修复工具

来源:互联网 时间:2026-08-13 14:08:10
可以说,当下几乎所有程序员都在用GPT写代码。但有个问题很普遍,也让人头疼:GPT生成的代码,不一定能用。它可能漏掉某个分支逻辑,导致代码根本跑不通,或者运行结果和预期不符。这样一来,用完之后还得自己人肉检查一遍质量,而这个环节恰恰非常耗时。 怎么解决?想了个挺直接的办法——让GPT自己验证自己生成的代码。如果发现错误,就让GPT自己动手修复。一个闭环,彻底把人工审查的环节给解放出来。用魔法打败魔法,不是很典吗? 整个实现的核心代码在: https://github.com/brhoollynodeStudy/AutoCodeGenTestFix/blob/main/main.py 我们把这个项目叫作 `AutoCodeGenTestFix`。 ## 项目介绍 `AutoCodeGenTestFix` 是一个基于大语言模型的自动代码生成、测试和修复工具。它的核心目标只有一个:通过自动化流程,帮开发者快速生成代码、自动写好测试用例、执行测试,再根据测试结果自动修复代码。整个项目基于 `langchain` 构建,简化了大量工程化操作,让思路本身更清晰地暴露出来。 ## 解决的问题 前面说了,就是让AI自我校验:生成代码 → 自动写测试 → 跑测试 → 分析结果 → 修代码。保证代码质量这件事,不再靠人工死磕,而是变成一个自动化循环。 ## 项目架构 整个系统由五个主要的Agent组成,各司其职: - **CodeGenerationAgent**:根据需求生成初始代码。 - **TestGenerationAgent**:为生成的代码自动编写单元测试。 - **TestExecutionAgent**:执行测试用例,拿到测试结果。 - **TestResultAgent**:分析测试结果,判断代码是否存在问题。 - **CodeFixAgent**:一旦发现问题,就根据测试结果进行修复。 架构图如下: ``` +----------------------+ +----------------------+ +----------------------+ +----------------------+ +----------------------+ | | | | | | | | | | | CodeGenerationAgent | ---> | TestGenerationAgent | ---> | TestExecutionAgent | ---> | TestResultAgent | ---> | CodeFixAgent | | | | | | | | | | | +----------------------+ +----------------------+ +----------------------+ +----------------------+ +----------------------+ ``` 这里面最核心的是 `TestResultAgent`。它的职责是判断代码质量,一旦发现错误,就触发 `CodeFixAgent` 进行修复。整条链路闭环运转,保证了最终输出的代码是可靠的。 ### 核心部分 实现“左右互搏”的关键逻辑在Prompt定义里。这里直接看代码:两个Agent的Prompt都很干净,一个负责生成代码,一个负责生成对应的测试用例。 ```python # 定义 CodeGenerationAgent,用于生成初始代码 code_generation_template = PromptTemplate( input_variables=["requirement"], template="根据以下需求生成 Python 代码,只返回代码部分,不包含任何说明或解释:nn需求:{requirement}nn代码:" ) code_generation_chain = code_generation_template | llm # 定义 TestGenerationAgent,用于生成测试用例 test_generation_template = PromptTemplate( input_variables=["code"], template="根据以下代码生成 Python 的单元测试用例,只返回测试代码,不包含任何说明或解释:nn{code}nn测试代码:" ) test_generation_chain = test_generation_template | llm ``` 通过这两个核心Prompt,整个“代码生成→测试→修复”的循环得以打通。 ## 使用方式 ### 1. 安装必要的库 确保环境中安装了必要的依赖: ``` pip install langchain langchain_openai pytest ``` ### 2. 设置 OpenAI API 密钥 将你的 OpenAI API 密钥配置为环境变量,或者在代码中直接设置: ```python import openai openai.api_key = 'your-openai-api-key' # 替换为你的 OpenAI API 密钥 ``` ### 4. 示例 用一个LeetCode经典题来演示:求最长公共子串的长度。执行下面这一条命令即可: ``` python main.py "实现一个函数,输入两个字符串 s1 和 s2,返回它们的最长公共子串的长度。" ``` ## 展望 这个项目目前还远未成熟,后续会持续迭代,补充更多功能。当前写一个具体的功能函数已经可以胜任,但如果是前端组件呢?自动化测试变得非常棘手。这是一个很大的挑战,也是接下来要啃的硬骨头。 一些值得探索的方向: - **更多大模型支持**:接入更多模型,给用户更多选择。 - **前端组件生成**:打通前端代码生成和自动测试的链路,让AI不仅能写后端逻辑,也能生成带UI的组件,并自己完成测试验证。