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