地狱般的拉取请求描述:我为何不再追求完美的人工智能自动化

发布日期:2026-06-05 10:02:39   浏览量 :0
发布日期:2026-06-05 10:02:39  
0

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

我厌倦了撰写拉取请求的描述。每一个拉取请求都需要一份摘要,说明变更内容、变更原因以及如何测试。无论我多么努力地保持自律,我总是要么匆忙应付,要么遗漏细节。于是我想:“不如用人工智能来自动化这个过程吧。”

随后,我陷入了一系列涉及应用程序接口密钥、本地模型和错误尝试的复杂困境中。以下是我学到的经验。

梦想:一条 cURL 命令搞定一切

我设想有一个 Git 钩子,在我创建拉取请求后运行,将差异内容提供给大型语言模型,并自动生成描述。很简单,对吧?我从开放人工智能公司的应用程序接口开始入手,因为这是显而易见的选择。

import openai

def generate_pr_description(diff_text):
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[
            {"role": "system", "content": "你是一位资深开发人员。请将以下 git 差异总结为拉取请求描述。重点关注意图、变更和测试说明。"},
            {"role": "user", "content": diff_text}
        ]
    )
    return response.choices[0].message.content

它奏效了。生成的描述实际上相当不错。但一周后,我注意到几个问题:

  • 成本。即使使用 GPT-3.5,每个差异令牌的费用也会累积。对于一个个人项目来说,我每周要花费 5 到 10 美元。
  • 延迟。开放人工智能公司的应用程序接口调用需要 2 到 5 秒。对于少量请求来说还可以,但在迭代开发时就很烦人。
  • 隐私。我不喜欢将内部代码差异发送给第三方,尽管这可能没什么大问题。

于是我开始寻找替代方案。

本地化的迂回之路

我尝试使用奥拉马在本地运行一个较小的模型。想法是让所有数据都保留在我的机器上,每次请求零成本。

ollama run codellama:7b

我编写了一个包装器,读取差异内容并将其管道传输到本地模型:

import subprocess

def local_summarize(

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9