通义灵码是由阿里云和通义实验室联合推出的一款基于通义大模型的智能编码辅助工具,它具备代码智能生成和研发智能问答等多项功能,旨在帮助开发者提高编码效率和代码质量。
我们非常高兴的宣布,通义灵码插件下载量突破470万啦!目前,通义灵码每天推荐代码超 3000 万次,被开发者采纳代码行数超亿行,在中国信通院可信 AI 代码大模型测评中,通义灵码获得首个最高级。
通义灵码支持 JetBrains IDEs、Visual Studio Code、Visual Studio,及远程开发场景(Remote SSH、Docker、WSL、Web IDE),安装后登录阿里云账号即可开始使用。
安装指南:https://tongyi.aliyun.com/lingma/download
- 及时清理上下文
1.1 适时清空上下文
在同一次会话里,前文中的对话内容会在每次向大模型提问时,自动作为上文提供给模型。当实际要提问的是一个与前文无关的问题时,这些额外的信息可能会对模型的回答带来干扰。
此时可以点击问答面板顶部的新建会话按钮,在新的会话里进行提问,或使用 /clear context 命令,对上下文进行清空,减少上文对接下来问答的干扰。
1.2 查看历史会话
创建新的会话后,如果需要寻找此前提问过的内容,可以使用历史记录功能回到之前的话题,并继续追问。
- 基于代码提问
2.1 通用问答
若需要基于特定代码段的内容进行提问,除了将代码内容直接贴入问答区,也可以先在代码编辑器里框选一段代码,然后在问答区针对这段代码进行提问,例如:
2.2 内置代码任务
通义灵码插件内置了解释代码、生成单元测试、生成代码注释、生成优化建议四个代码任务,通义灵码大语言模型对这些任务进行过专项训练。例如,在需要生成单元测试的时候,使用内置任务会比框选代码之后再输入生成单元测试效果更佳。
代码任务有三种使用方式,最常用的是在方法定义的开头,点击通义灵码小图标,在下拉选项中直接选择需要执行的任务。
JetbriansIDE 的下拉菜单在方法上方:
VSCode 的下拉菜单在 IDE 顶部:
第二种方式是选择代码后点击鼠标右键,选择通义灵码菜单。
第三种方式是选择代码后在问答面板输入斜线(/)激活内置任务菜单,然后选择相应任务。
- 提示词的技巧
3.1 在提问中引用选择的代码
在提问时,若同时在代码编辑区圈选了文本或代码段,则被选择的内容会自动以 Markdown 引用的格式被附加到提问内容的最后,因此若在提示词中提及选择的代码,应对使用“如下代码”或“以下内容”。例如:
- 正确的说法:请检查以下代码是否存在下标越界风险。
- 错误的说法:请检查选中的代码是否存在下标越界风险。 (模型并不知道选中的代码是什么)
3.2 在使用命令的时候,追加信息
通过在命令后,追加更多的辅助信息,为问答提供更多的上下文,以获得更符合期望的回复。
3.3 通过多轮对话生成有效代码
在与大语言模型的对话过程中,给到上下文越多,生成出来的结果越符合用户的预期。因此,用户可以基于上一轮的对话的基础上,再进行问答,这样,后续的提问的上下文会更多,因此生成的结果更符合整个历史上下文。当然,也会出现上一轮的历史信息干扰的现象,这个时候,用户需要适时地去清空上下文。
在上一轮的基础上,再继续追问。
3.4 为模型提供参考示例
当需要模型按照指定的格式输出,或遵循特定的前置规则时。与其用文字描述,不如提供一个参考实例,往往能达到更好的效果。例如有一份程序的运行结果文件,可以让通义灵码整理成所特定的 JSON 结构文档。首先打开文件,全选问题内容,然后在问答区域进行提问。对比下述两种提示词,后者能更稳定的输出预期的数据格式。
- 提示词1:将测试报告整理成JSON格式,每个测试结果是一个 JSON结构,用例名称放到name 字段,是否成功放到success 字段,运行耗时放到duration 字段(单位毫秒),测试覆盖率放到coverage 字段,detail字段的值是一个 JSON,将每次的用例输入和输出放到其中的input 和output 字段。
- 提示词2:将测试报告整理成JSON格式,如输入报告
应输出的数据为
请以此为例,生成测试的报告。
3.5 为模型设定身份
相比单纯的提问,预先给模型提供身份信息也能够有效提升模型生成结果的稳定性和准确性。
以生成测试用例为例,打开接口文档文件,全选文件内容,然后在问答区域进行提问。对比下述两种提示词,后者能给生成质量更高、覆盖率更好的用例。
- 提示词1:请根据以下接口文档生成测试用例。
- 提示词2:你是一位经验丰富的测试工程师,特点是对细节异常敏感,并且能够高效地识别潜在的问题和边界情况,请根据以下的接口文档生成详尽的测试用例,确保所有预期的功能行为都被验证。
备注说明:由于优质的提示词往往也需要输入较多内容,这部分技巧比较适合配合通义灵码即将推出的自定义提示词功能一起使用。当前阶段可以先手工输入或将提问模板复制粘贴到问题里再编辑。
版权归原作者 soso1968 所有, 如有侵权,请联系我们删除。