The AI Coding Assistant
https://github.com/AbanteAI/mentat
python 3.10
准备一个 openai gpt4 key,新建 .env文件,输入:
OPENAI_API_KEY=sk-rju8J2X
自己的项目文件夹路径,如 /workspaces/mentat 执行:
python3 -m venv .venv
source .venv/bin/activat
git clone https://github.com/AbanteAI/mentat.git
cd mentat
pip install -e .
mentat path/to/directory --exclude exclude_me.py dir1/dir2 **/*.ts
mentat /workspaces/mentat/setup.py
完了之后就会把自己的代码post到openai,用户命令行输入命令,调用openai执行相应的修改代码命令。
输入命令 mentat /workspaces/mentat/setup.py
会执行如下命令:
mentat=mentat.app:run_cli
# 带参数运行
run(
expand_paths(paths),
expand_paths(exclude_paths),
no_code_map,
diff,
pr_diff,
)
第一个参数为文件路径,或者文件夹。后面参数为排除路径等。
setup_api_key()
loop(paths, exclude_paths, cost_tracker, no_code_map, diff, pr_diff)
先设置 key,然后循环:
while True:
if need_user_request:
user_response = user_input_manager.collect_user_input()
conv.add_user_message(user_response)
file_edits = conv.get_model_response(parser, config)
file_edits = [
file_edit
for file_edit in file_edits
if file_edit.is_valid(code_file_manager, config)
]
if file_edits:
need_user_request = get_user_feedback_on_edits(
config,
conv,
code_context,
user_input_manager,
code_file_manager,
file_edits,
)
else:
need_user_request = True
这里循环等待用户输入,将用户输入 conv.add_user_message(user_response)
加入conv对象。那么继续深入这个 Conversation 类,这个是调用 openai 接口。
提取词:
和其他项目类似,这个项目也设置了自己的提取词:目录在 mentat/prompts ,通过这些提取词,实现自定义的命令。