update_file_use_ai 是一个基于AI技术的文件处理工具,专门用于批量处理和更新代码文件。它利用AI模型来分析、修改和生成代码,适用于代码审查、bug修复、测试用例生成和文档编写等多种场景。该系统提供了灵活的配置选项、详细的日志记录和直观的进度跟踪功能,使得大规模代码处理任务变得更加高效和可控。
本项目全程由AI辅助编程工具Cursor开发完成。Cursor是一款强大的AI编程助手,能够帮助开发者更高效地编写代码、解决问题和学习新技术。
-
AI辅助代码处理:
- 利用AI模型智能分析和修改代码
- 支持多种编程语言(如Java、Python、JavaScript、C++等)
- 提供多种处理模式:测试用例生成、代码审查、bug修复、文档生成
-
批量文件处理:
- 递归处理指定目录及其子目录中的所有匹配文件
- 支持按文件类型筛选处理对象
-
灵活的配置系统:
- 通过命令行参数和配置文件自定义处理为
- 支持设置AI模型参数、API密钥等重要信息
-
详细的日志记录:
- 配置和初始化日志系统
- 支持自定义日志级别、格式和输出位置
- 便于跟踪应用程序的运行状态和调试
-
可视化进度跟踪:
- 生成实时更新的进度条
- 显示处理进度和预估完成时间
-
错误处理和重试机制:
- 实现最大重试次数和超时设置
- 确保在网络不稳定等情况下的稳定运行
本项目依赖以下Python库:
logging:Python内置日志库tqdm:用于创建进度条argparse:用于解析命令行参数
-
克隆项目仓库:
git clone https://github.com/zons-zhaozhy/update_file_use_ai.git cd update_file_use_ai -
安装依赖:
pip install -r requirements.txt
使用setup_logging函数来配置日志系统:
from utils import setup_logging
log_config = {
'level': 'INFO',
'format': '%(asctime)s - %(name)s - %(levelname)s - %(message)s',
'filename': 'app.log'
}
logger = setup_logging(log_config)使用create_progress_bar函数来创建进度条:
from utils import create_progress_bar
total_items = 100
progress_bar = create_progress_bar(total_items)
for item in items:
# 处理项目
progress_bar.update(1)使用以下命令运行主程序:
python main.py /path/to/input/directory --file-type java --mode <processing_mode> --instruction "<instruction>"
参数说明:
/path/to/input/directory:输入文件目录。程序会递归处理该目录及其所有子目录中的文件。--file-type:要处理的文件类型(如 java、py 等)--mode:处理模式,可选值包括:test_case: 生成单元测试用例code_review: 进行代码审查bug_fix: 修复代码中的bugdocumentation: 生成代码文档
--instruction:处理指令,用于指导AI模型的行为
示例:
-
生成Java单元测试:
python main.py ./src --file-type java --mode test_case --instruction "Generate unit tests for this Java class" -
进行代码审查:
python main.py ./src --file-type python --mode code_review --instruction "Review this Python code for best practices and potential improvements" -
修复代码中的bug:
python main.py ./src --file-type javascript --mode bug_fix --instruction "Identify and fix any bugs in this JavaScript code" -
生成代码文档:
python main.py ./src --file-type cpp --mode documentation --instruction "Generate comprehensive documentation for this C++ code"
注意:程序会自动遍历指定目录及其所有子目录,处理所有匹配指定文件类型的文件。
本项目使用Python的unittest模块进行单元测试。测试文件为test_update_file_use_ai.py。
要运行测试,请在项目根目录执行以下命令:
python
可以通过修改config.py文件来自定义程序的行为:
MAX_RETRIES:最大重试次数TIMEOUT:请求超时时间BATCH_SIZE:批处理大小
我们热烈欢迎其他开源开发者为本项目做出贡献!无论是提出新的想法、报告问题还是提交代码,您的参与都将帮助我们不断改进这个AI辅助编程系统。如果您有兴趣参与,请遵循以下步骤:
- Fork 本仓库
- 创建您的特性分支 (git checkout -b feature/AmazingFeature)
- 提交您的更改 (git commit -m 'Add some AmazingFeature')
- 将您的更改推送到分支 (git push origin feature/AmazingFeature)
- 开启一个Pull Request
我们期待看到您的创意和贡献!
项目包含以下主要文件:
main.py: 主程序入口utils.py: 通用工具函数result_processors.py: 结果处理器api_client.py: API客户端config.yaml: 配置文件file_handlers.py: 文件处理器
请参考 config.yaml 文件进行配置。您可以在此文件中设置AI模型参数、API密钥等重要信息。
我们欢迎各种形式的贡献,包括但不限于报告问题、提交改进建议和代码贡献。请参考贡献指南部分了解详细流程。
本项目采用 MIT 许可证。详情请查阅 LICENSE 文件。
如有任何问题或建议,请通过以下方式联系我们:
- 项目维护者:zons-zhaozhy
- 电子邮件:[email protected]
- 项目 GitHub 主页:https://github.com/zons-zhaozhy/update_file_use_ai
感谢所有为这个项目做出贡献的开发者和用户。您的支持是我们不断改进的动力。
为了获得最佳的AI处理结果,针对不同的大模型平台,我们建议使用以下prompt提示词策略:
- 明确指令: 在指令开始时使用明确的动作词,如"生成"、"分析"、"总结"等。
- 上下文提供: 简要说明任务背景和期望输出。
- 格式指定: 明确指定所需的输出格式。
- 示例提供: 如果可能,提供一个期望输出的示例。
- 限制说明: 明确指出任何限制或约束条件。
示例:
生成一个Python函数,用于计算给定列表中的最大值和最小值。
上下文:这个函数将用于数据分析项目中。
输出格式:请提供完整的函数定义,包括函数名、参数和返回值。
限制:不要使用内置的max()和min()函数。
示例输出:
def find_max_min(numbers):
# 函数实现
return max_value, min_value
- 角色设定: 为AI设定一个特定的角色,如"你是一位经验丰富的Python开发者"。
- 任务描述: 清晰描述需要完成的任务。
- 步骤引导: 如果任务复杂,可以将其分解为多个步骤。
- 输出规范: 指定期望的输出格式和风格。
- 知识深度: 指明所需的专业程度或技术深度。
示例:
角色:你是一位精通代码优化的高级Python开发者。
任务:请审查并优化以下Python代码片段,提高其性能和可读性。
步骤:
1. 分析代码的时间复杂度
2. 识别可能的性能瓶颈
3. 提供优化建议
4. 重写优化后的代码
输出:请提供详细的分析报告,包括原始代码的问题、优化建议和重写后的代码。
专业度:请使用高级Python概念和最佳实践。
[在此插入需要优化的代码]
- 明确目标: 清晰陈述您想要达成的目标。
- 背景信息: 提供必要的背景信息或上下文。
- 输出结构: 指定期望的输出结构或格式。
- 交互性: 鼓励AI提出澄清性问题或请求额外信息。
- 评估标准: 如果适用,提供评估输出质量的标准。
示例:
目标:创建一个简洁的技术文档,解释RESTful API的核心概念。
背景:这份文档将用于培训初级开发人员。
输出结构:
1. 简介
2. RESTful API的关键原则(列表形式)
3. HTTP方法及其用途(表格形式)
4. 示例API端点及其解释
5. 最佳实践总结
请在需要时提出任何澄清性问题。文档应该易于理解,同时保持技术准确性。
评估标准:清晰度、准确性和对初学者的适用性。
通过遵循这些指南并根据具体任务和目标平台进行调整,您可以显著提高AI生成内容的质量和相关性。