通义灵码 AI 程序员,具备多文件代码修改(Multi-file Edit)和使用工具(Tool-use)的能力,可以帮助开发者端到端地完成一个编码任务,如需求实现、问题解决、单元测试用例生成、批量代码修改等。
AI 程序员可以帮助开发者快速完成一个需求任务的代码编写工作,在与 AI 程序员对话过程中,可以遵循以下几点建议:
- 清晰的需求描述:首先需要澄清我们需要 AI 程序员帮我们做什么,建议包含一个明确的目标,并通过步骤式的结构化描述,详细地描述你期望完成的开发任务要求;
- 指定需要的上下文:选择代码文件、图片、codebase、codeChanges 等上下文,可以帮助 AI 程序员获取需求相关的语境。同时,结合详细执行步骤和要求,AI 程序员更精准地了解你的意图,生成最佳的方案和建议代码;
- 明确生成要求:告诉 AI 程序员在生成代码修改建议时,你期望它遵循的要求,比如语言、规范、格式、变更目标等,如“生成变更时,同时为每个方法生成英文注释”;
- 善用快照功能:当 AI 生成内容不符合预期,或你的需求有变化时,可以通过快照功能回退到之前的对话轮次和代码变更,继续重新提问;
- 审查和修改变更:AI 程序员完成多个文件的代码变更后,开发者可以通过变更对比查看视图(Diff View)进行审查,以及对局部代码片段进行接受、拒绝、修改,保证最后得到符合预期的代码变更。
唤起 AI 程序员
当开发者期望和 AI 程序员一起完成一个研发任务时,可以通过 IDE 扩展导航打开通义灵码插件的窗口,并切换到 AI 程序员模块,或使用快捷键 ⌘ ⇧ I 唤起 AI 程序员,即可开始使用。
与 AI 程序员一起编程
AI 程序员与开发者一起围绕开发任务进行编码工作时,开发者需要输入清晰的需求描述和要求,AI 程序员可以为开发者在工程内进行多个文件的修改,开发者审查并接受相关代码变更即可。
同时,通义灵码提供了相关的交互界面帮助开发者与 AI 程序员进行对话和交互,整体交互界面区域如下:
- 新建会话:如果和 AI 程序员正在对话并有文件变更,单击后将出现二次确认,确认后会终止或取消当前文件变更,同时创建一个新的会话;
- AI 程序员对话区域:展示开发者(问题)和 AI 程序员(回答)对话的过程,如果涉及到文件变更、计划确认等,也将在会话流的回答卡片中进行状态展示或操作;
- 工作区:承载代码变更文件的展示,以及针对当前会话流中的多次对话产生的多次变更文件进行快照管理,同时提供查看、拒绝、接受代码变更的相关操作入口;
- 需求描述输入区域:开发者进行需求描述输入的区域,提供了选择上下文、自然语言输入、自然语言和上下文组装的能力;
- 变更对比查看和操作区域:当前快照下文件与其对应本地文件的变更差异查看视图,并提供针对代码变更片段进行修改、拒绝或接受的操作,以及文件级别的变更接受或拒绝操作。
需求描述输入(User Input)
打开 AI 程序员后,即可看到需求输入区域,在输入框内单击 ➕ 或者输入#即可选择需要的相关上下文。输入完成后发送即可,AI 程序员将根据需求描述自动进行需求理解、相关信息检索、任务拆解、编码实现等。
多文件代码修改(Multi-file Edit)
变更文件生成过程
当 AI 程序员对工程内多个代码文件进行修改时,每一个文件的修改将至少经历生成、应用的过程,生成代码变更的过程中,可在 AI 程序员的回答卡片中和工作区中看到相关的变更文件,以及相应的状态:
- 生成中(Generating):根据任务拆解的修改计划生成对各个文件的代码片段修改建议的过程;
- 应用中(Applying):某文件的代码片段修改建议生成完成后,将自动结合原文件内容和代码片段修改建议,生成相关代码变更文件(非原文件);
- 应用完成(Applied): 代码变更文件生成完成。
回答卡片中的文件或工作区的文件在生成中、应用中的状态时,单击对应文件,即可看到对应文件的代码修改建议生成过程、代码变更文件与原文件变更对比(Diff)生成过程。
AI 程序员完成的代码变更文件将聚合在工作区,方便开发者进行查看和操作。
审查、接受、拒绝代码变更
单击工作区的查看变更按钮或单击文件列表中的某文件,即可看到对应文件的变更对比查看视图(Diff View),开发者在此视图中可以进行如下操作:
- 单击上下键进行切换查看当前文件的多个变更点;
- 单击某变更点上的拒绝、采纳按钮进行决策操作;
- 单击文件级操作区的前后键进行多个变更文件的查看;
- 单击文件级操作区的拒绝、采纳按钮进行决策操作;
- 局部修改当前变更文件。
JetBrains IDEs 的视图和操作位置,示意如下:
VS Code 的视图和操作位置,示意如下:
说明:
- 开发者基于当前快照的代码变更文件产生的修改,将统一进入当前快照的最新内容中,进行拒绝或接受操作时,将统一被拒绝或接受;
- 当单击接受某片段、某文件的代码变更时,变更内容将被合并到原文件代码内容中。
当所有代码变更文件均被操作过拒绝或接受变更后,当前快照会变为已接受、部分接受、已拒绝状态,各个状态的相关释义如下:
- 已接受:某文件有代码变更接受,视为该文件为已接受状态;所有文件为已接受状态,当前快照为已接受状态;
- 部分接受:某文件有代码变更接受,视为该文件为已接受状态;有部分文件为已接受状态,当前快照为部分接受状态;
- 已拒绝:某文件在无代码变更被接受,视为该文件为已拒绝状态;所有文件为已拒绝状态,当前快照为已拒绝状态。
多轮对话及变更快照(Multi-turns & Snapshot)
进行多轮次需求对话
当进行了一轮对话并生成代码变更文件后,如需继续补充需求或者修改需求,可在当前任务的会话流中继续提问,AI 程序员将结合前序轮次生成的代码变更分析补充的需求,并生成新的代码修改建议,产生一个或多个新的代码变更文件。
快照查看和变更回退
当需要查看或回退到前序轮次的修改时,可单击下拉箭头查看当前会话任务中产生的多次代码变更快照,选择后,可以看到相关信息变化或进行切换操作:
- 会话流中自动定位到产生该快照代码变更文件的回答卡片;
- 快照下方文件列表自动切换到所选快照下的代码变更文件,单击后可查看代码变更内容;
- 单击“切换”按钮,将当前代码变更回退到所选快照的代码变更状态。
查看会话历史
如果需要回顾历史的会话任务,可单击会话历史按钮。你与 AI 程序员的会话均有 @AI Developer 标签,单击后即可查看相关对话过程。
标签:文件,快照,AI,代码,程序员,灵码,变更 From: https://blog.csdn.net/segwy/article/details/145007713