批量代码注释生成工具:让ChatGPT自动为你的代码添加注释

背景需求

作为开发者,我们经常会遇到以下痛点:

  1. 接手遗留项目时,面对大量无注释的代码头疼不已
  2. 开发任务紧,没时间仔细阅读理解代码
  3. 代码可读性差,缺少必要注释
  4. 对复杂代码理解能力有限
  5. 不想花钱购买ChatGPT会员,但又想利用AI来生成代码注释

手动复制粘贴代码到ChatGPT来生成注释的方式效率太低,因此开发了这个批量代码注释生成工具。

工具截图

在这里插入图片描述

坐标作用说明

	屏幕坐标定位工具链接:https://zhangweixi.cc/static/windows-xy.html 感谢开源大佬支持

这些坐标是用于模拟用户在ChatGPT网页界面上的操作,每个坐标对应页面上的特定元素:

  1. GPT输入框位置 (977, 982)

    • 作用:定位ChatGPT的文本输入框
    • 用途:自动点击输入框并粘贴代码
    • 位置:通常在页面最底部中间位置
  2. 重新生成按钮位置 (1088, 900)

    • 作用:当生成结果不理想时,点击重新生成
    • 用途:自动重试生成注释
    • 位置:通常在对话框下方偏右位置
  3. 关闭提示按钮位置 (1495, 862)

    • 作用:关闭可能出现的提示框
    • 用途:处理各种弹出提示,保证自动化流程
    • 位置:通常在提示框右上角
  4. 滚动区域位置 (1725, 780)

    • 作用:用于滚动页面查看完整内容
    • 用途:确保能看到所有生成的代码
    • 位置:页面右侧滚动条区域
  5. 备用复制按钮位置 (1522, 837)

    • 作用:当主要复制按钮无法使用时的备选位置
    • 用途:确保能够复制生成的代码
    • 位置:代码块右上角的复制按钮

坐标配置示意图

+----------------------------------------------------------------------------------------+
|                                    ChatGPT界面                                           |
|                                                                                         |
|    +----------------+                                                                   |
|    |   对话内容     |                                                                   |
|    |                |                              备用复制按钮 (1522, 837)             |
|    |                |                                    ●                              |
|    |                |                                                                   |
|    |                |                          关闭提示按钮 (1495, 862)                 |
|    |                |                                    ●                              |
|    |                |                                                                   |
|    |                |                                                    滚动区域        |
|    |                |                                                    (1725, 780)    |
|    |                |                                                         ●         |
|    |                |                                                                   |
|    +----------------+                                                                   |
|                                                                                         |
|                          重新生成按钮 (1088, 900)                                       |
|                                 ●                                                       |
|                                                                                         |
|                          GPT输入框 (977, 982)                                          |
|                                 ●                                                       |
+----------------------------------------------------------------------------------------+

注意事项

  1. 屏幕分辨率
    ○ 坐标值与屏幕分辨率相关
    ○ 默认配置基于1920x1080分辨率
    ○ 不同分辨率需要重新配置
  2. 浏览器缩放
    ○ 保持浏览器缩放比例为100%
    ○ 缩放会影响坐标准确性

实现方案

该工具主要通过以下步骤实现自动化注释生成:

  1. 文件处理

    • 扫描指定目录下的代码文件
    • 自动读取文件内容并复制到剪贴板
  2. 自动化操作

    • 模拟用户操作,将代码发送给ChatGPT
    • 通过图像识别监测页面状态变化
    • 自动复制ChatGPT生成的带注释代码
  3. 结果处理

    • 将带注释的代码写回原文件
    • 保存处理进度,支持断点续传
  4. 安全验证

    • 对比处理前后的代码,确保代码逻辑未被破坏
    • 发现问题自动回滚到原始文件

核心代码演示

下面展示几个关键功能的实现:

  1. 文件处理核心代码
def process_file(file_path, folder_path):
    try:
        # 读取文件内容
        with open(file_path, 'r', encoding='utf-8') as file:
            file_content = file.read()
            
        # 复制到剪贴板
        send_content = COMMENT_PROMPT + file_content
        pyperclip.copy(send_content)
        
        # 模拟用户操作发送到ChatGPT
        input_pos = get_screen_position(*SCREEN_COORDINATES['input_box'])
        pyautogui.click(input_pos[0], input_pos[1])
        pyautogui.hotkey('ctrl', 'v')
        pyautogui.press('enter')
        
        # 等待处理完成
        wait_for_completion()
        
        # 获取处理结果并写回文件
        new_content = pyperclip.paste()
        write_content_to_file(file_path, new_content)
        
    except Exception as e:
        log_error(f"处理文件时发生错误: {e}")
  1. 图像识别监测代码
def wait_for_completion():
    while True:
        try:
            # 检测是否还在执行
            executing = pyautogui.locateOnScreen(
                recognizeLocation_executing, 
                confidence=0.95
            )
            if not executing:
                break
            time.sleep(1)
        except Exception:
            break
  1. 代码验证核心代码
def verify_file(original_file, modified_file):
    # 移除注释后对比代码
    original_content = remove_comments(read_file(original_file))
    modified_content = remove_comments(read_file(modified_file))
    
    # 计算相似度
    similarity = calculate_similarity(original_content, modified_content)
    
    # 相似度过低则还原
    if similarity < 0.95:
        restore_original_file(original_file, modified_file)
        return False
    return True

使用方法

  1. 安装依赖:
pip install -r requirements.txt
  1. 启动程序:
python comment_generator_gui.py
  1. 在GUI界面中:
    • 选择要处理的代码文件夹
    • 设置文件类型(如.java,.py等)
    • 配置提示文本
    • 点击"开始运行"

扩展建议

  1. 支持更多语言

    • 可以添加更多编程语言的注释规则
    • 支持不同语言的特定注释风格
  2. 智能化提升

    • 添加代码分析功能,生成更精准的注释
    • 支持多种AI模型,不局限于ChatGPT
  3. 批处理优化

    • 添加多线程支持,提高处理效率
    • 实现任务队列,支持更大规模的代码处理
  4. 界面优化

    • 添加处理进度显示
    • 支持更多自定义配置
    • 添加处理结果预览

总结

这个工具很好地解决了批量生成代码注释的需求,通过自动化操作大大提高了效率。虽然目前还有一些限制,但通过持续改进和扩展,相信能够帮助更多开发者提高代码可读性。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐