V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
anc95
V2EX  ›  程序员

搞了一个 ChatGPT CodeReview 的 Github 小机器人

  •  
  •   anc95 ·
    anc95 · 2023-02-14 14:59:53 +08:00 · 3657 次点击
    这是一个创建于 677 天前的主题,其中的信息可能已经有所发展或是发生改变。

    基于 ChatGPT 做了一个 Code Review 的小公举

    机器人地址: https://github.com/apps/cr-bot

    github 地址: https://github.com/anc95/ChatGPT-CodeReview

    需要配置自己的 OPENAI_API_KEY,详细方式见 GITHUB readme

    触发方式

    • 新建一个 PR 的时候 会自动触发 code review ,并将结果发送在评论区
    • 评论 /cr-gpt 手动出发 code review
    image

    机器人目前是部署在 vercel 上,用了 edge middleware 过滤了一些无用的事件,所以 hobby 版本也算够用。

    其实效果不是很好,感觉很多时候 review 的结果总是一些废话,V 友们可以帮提供些思路,如何调教 ChatGPT ,让 review 效果好一些

    第 1 条附言  ·  2023-02-14 15:38:22 +08:00
    正文里机器人链接贴错了: https://github.com/apps/cr-gpt
    第 2 条附言  ·  2023-02-15 18:27:45 +08:00

    感谢 V 友们帮忙指出 GPT 不能联网的问题,我连夜更新了下

    1. Review 对象修改:不会对整个 pull request diff 做 code review,而是对单独文件 diff 做 code review,这样能在大多数情况下保证 ChatGPT 可以正常工作
    2. Review 内容直接回复在每个文件上
    3. open pull request 触发所有文件的 review,当提交新的 commits,会对修改的文件 review

    demo:

    demo

    第 3 条附言  ·  2023-02-16 13:22:12 +08:00
    又又又更新了

    新增对 github actions 的支持

    配置:
    ```yml
    name: Code Review

    permissions:
    contents: read
    pull-requests: write

    on:
    pull_request:
    types: [opened, reopened]

    jobs:
    test:
    runs-on: ubuntu-latest
    steps:
    - uses: anc95/ChatGPT-CodeReview@v1
    env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
    ```
    11 条回复    2023-02-15 18:21:16 +08:00
    leonme
        1
    leonme  
       2023-02-14 15:17:02 +08:00 via iPhone
    如何调教,让效果更好?
    ——————
    先投入几十万买芯片 /付电费,然后训练🐶
    kongkongye
        2
    kongkongye  
       2023-02-14 15:29:10 +08:00
    我比较好奇是怎么调用的,gpt-3 模型不是 max_token 是 4000 吗?是把多少量的内容传给 ai 呢?
    anc95
        3
    anc95  
    OP
       2023-02-14 15:29:54 +08:00
    @leonme 我觉得可以
    anc95
        4
    anc95  
    OP
       2023-02-14 15:30:47 +08:00   ❤️ 1
    @kongkongye 传的链接,大致是

    “我这里有一个 github diff 链接:xxxx ,帮我 review 也下”
    yangheng4922
        5
    yangheng4922  
       2023-02-14 18:05:18 +08:00
    gpt-3 可以联网么
    retanoj
        6
    retanoj  
       2023-02-14 18:41:25 +08:00
    我尝试用类似的 prompt 模板让它读一段新闻,它给出了完全错误的新闻标题和内容

    github 是不是和 openai 有什么合作?
    learningman
        7
    learningman  
       2023-02-14 19:22:29 +08:00
    @anc95 #4 它不能联网的吧,盲猜只是无限说好。
    anc95
        8
    anc95  
    OP
       2023-02-14 22:33:20 +08:00
    @learningman 尴尬,确实是的,之前手动测试是因为在对话框里,上下文里提供了 diff 的 content ,后面又用了 diff 的 url ,我就以为他能读 url 内容了,这就尴尬了 😅
    shellus
        9
    shellus  
       2023-02-15 10:24:06 +08:00   ❤️ 1
    @anc95 没关系,有时候出错是很正常的事情。重要的是要及时发现错误并努力修正它们。在编写代码时,我们需要认真仔细地检查所有的细节,以确保代码能够正确地运行。如果出现错误,我们需要仔细地分析问题并确定最佳的解决方案。同时,记得要及时向他人寻求帮助,这有助于提高我们的效率和解决问题的能力。
    Sum0l
        10
    Sum0l  
       2023-02-15 16:06:48 +08:00
    @shellus chatGpt 无疑了 哈哈
    anc95
        11
    anc95  
    OP
       2023-02-15 18:21:16 +08:00
    @Sum0l 你这么一说还真有点像
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2734 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:36 · PVG 19:36 · LAX 03:36 · JFK 06:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.