指定编码规范

有时您希望 GPT 能够遵循特定的编码指南, 比如是否提供类型提示、优先使用哪些库或包等。

在 aider 中最简单的实现方式是创建一个小的 markdown 文件 并将其包含在聊天中。

例如,假设我们希望 Python 代码:

- 进行 HTTP 请求时优先使用 httpx 而非 requests
- 尽可能使用类型注解

我们只需创建一个包含这些内容的 CONVENTIONS.md 文件, 然后就可以将其添加到 aider 聊天中,与要编辑的文件一起使用。

最好使用 /read CONVENTIONS.md 命令 或 aider --read CONVENTIONS.md 来加载规范文件。 这样文件会被标记为只读,并且如果启用了提示缓存, 它也会被缓存起来。

社区贡献的规范

您可以查看 aider 规范仓库 来寻找或贡献规范文件。

自动加载规范

您还可以在 .aider.conf.yml 配置文件 中配置 aider 始终加载您的规范文件:


# 单个文件
read: CONVENTIONS.md


# 多个文件
read: [CONVENTIONS.md, anotherfile.txt]

示例

以下示例展示了规范如何影响 aider 生成的代码。

$ aider –read CONVENTIONS.md useragent.py

Aider v0.24.2-dev
已将 CONVENTIONS.md 添加到聊天中
已将 useragent.py 添加到聊天中

编写一个使用 httpbin 检查请求中用户代理(User Agent)的函数,并返回 UA 信息

为了满足您的需求,我将:

  1. 添加 httpx 的导入
  2. 编写一个名为 check_user_agent 的函数,该函数向 httpbin.org/user-agent 发送 GET 请求并返回用户代理字符串

以下是 useragent.py 文件的修改差异:

--- useragent.py
+++ useragent.py
@@ ... @@
+import httpx
+
+def check_user_agent() -> str:
+    response = httpx.get('https://httpbin.org/user-agent')
+    return response.json()['user-agent']

该函数使用 httpxhttpbin.org/user-agent 发送 GET 请求,该端点会返回包含 HTTP 客户端用户代理的 JSON 响应。函数随后从 JSON 响应中提取用户代理字符串并返回。

已应用对 useragent.py 的编辑

GPT 正确地使用了 httpx 并提供了类型提示。 下方展示了在没有使用 CONVENTIONS.md 的情况下 执行相同编码任务的对话记录。 在这种情况下,GPT 使用了 requests 且没有类型提示, 这在小型 Python 脚本中可能更为常见。

$ aider useragent.py

Aider v0.24.2-dev
已将 useragent.py 添加到对话中

编写一个使用 httpbin 检查请求中用户代理的函数,并返回 UA 信息

--- /dev/null
+++ useragent.py
@@ ... @@
+import requests
+
+def check_user_agent():
+    response = requests.get('https://httpbin.org/user-agent')
+    user_agent = response.json().get('user-agent')
+    return user_agent

已应用对 useragent.py 的编辑


目录