从关于 ai 编程,分享一些碎碎念,主要是 c3.7 和 aider继续讨论:
站内已经有一个共建文档了,这贴做点补充说明。
连接 LLM
大部分的提供商和模型 id 都有默认配置,开箱即用,但这里的佬基本都是五花八门的转接,下面给出一些简要说明。
aider 是通过前缀拼接模型 id 的方式来连接 LLM。具体来说,通过前缀来判断渠道和 api 格式。比如这个配置: openai/claude-3.7-sonnet-think
。它的意思就是使用 oai 的格式,请求 id 为 claude-3.7-sonnet-think
的模型。
所以最好的方案是你自己用 newapi 把各种渠道转为 oai 接口,一份配置通用。
模型选择
aider 是把不同的任务交给不同模型,总共有三种模型。
- 主模型:/code /ask /help 都是走这个主模型
- editor-model: /architect 模式中,规划走主模型,编辑就走这个模型,这个模型不要用推理模型,非推理模型听话并且幻觉低
- weak-model: /commit 时走这个模型,用来生成 commit message ,一般用便宜的小模型就可以了
编辑模式
有 diff 和 whole模式,diff 就是git diff所用的格式,whole是重新输出整个要编辑的文件。
一般diff省token,只是有些模型用diff容易出错,具体说明看这里
配置示例
# .aider.conf.yml 放在家目录
openai-api-base: https://example.com/v1 #自建的newap地址
editor: vi #编辑的时候可以用 /editor 指令调出你常用的编辑器
cache-prompts: true #用cache可以省钱,好像只能claude官key
model: openai/claude-3.7-sonnet-think #主模型
architect: true #默认开启 architect 模式,可以不开
editor-model: openai/claude-3.5-sonnet #编辑器模型
weak-model: openai/deepseek-chat
edit-format: diff #/code 模式时所用的编辑格式
editor-edit-format: editor-diff # /architect 模式时,用的编辑格式
read: #默认读取的 rules 文件
- .rules/
#.env 文件放在家目录,主要存放 api key
OPENROUTER_API_KEY=sk-or-v1-xxxxx
OPENAI_API_KEY=sk-xxxxx
说明
配置完了之后直接在工程目录下 aider 就行了,有时候写脚本就直接 aider /path/to/your/file