通义灵码使用最佳实践全攻略

622 阅读21分钟

一、通义灵码简介

通义灵码是阿里云与通义实验室联合打造的智能编码辅助工具,具有多种强大功能,如行级 / 函数级实时续写、自然语言生成代码等,兼容多种主流编程工具,提升开发效率和代码质量。

通义灵码以阿里云通义大模型为基础,提供了丰富的功能,包括但不限于以下方面:

  1. 行级 / 函数级实时续写:根据当前语法和跨文件的代码上下文,实时生成行、函数建议代码。用户在编码过程中,通义灵码会自动预测和生成建议代码,只需单击 Tab 键即可采纳,极大地提高了编码效率。
  1. 自然语言生成代码:用户可以通过自然语言描述所需功能,通义灵码会根据描述和上下文,直接在编辑器区生成相关代码和注释,实现编码的连续流畅。例如,用户输入 “生成一个 Java 类”,通义灵码将基于理解提供的自然语言描述生成相应的代码,大大减少了手动编写代码的时间。
  1. 单元测试生成:支持根据 JUnit、Mockito、Spring Test、unit test、pytest 等框架生成单元测试。单元测试对于提高代码质量、确保代码在修改或重构后仍然能够正常运行至关重要。通义灵码能够快速生成单元测试用例,为开发者节省了大量时间。
  1. 代码注释生成:一键生成方法注释及行间注释,节省写代码注释的时间,并能够有效提升代码可读性。良好的代码注释有助于其他开发者理解代码的功能和逻辑,提高团队协作效率。
  1. 代码解释:支持超过 30 种语言的识别。选中代码后,通义灵码能自动识别编程语言并生成代码解释。无论语言如何不同,都能让用户快速理解代码逻辑和功能设计。
  1. 研发智能问答:基于海量研发文档、产品文档、通用研发知识、阿里云的云服务文档和 SDK/OpenAPI 文档等进行问答训练,为用户答疑解惑,助其轻松解决研发问题。遇到编码疑问、技术难题时,一键唤起通义灵码,无需离开 IDE 客户端,即可快速获得答案和解决思路。
  1. 异常报错智能排查(Java) :当运行出现异常报错时,一键启动报错排查的智能答疑,可结合运行代码、异常堆栈等报错上下文,快速给出排查思路或修复建议代码。

通义灵码兼容 Visual Studio Code、JetBrains IDEs 等主流编程工具,支持 Java、Python、Go、C/C++、JavaScript、TypeScript、PHP、Ruby、Rust、Scala 等主流编程语言。目前,通义灵码插件下载量已超 470 万,每日辅助开发者生成代码超 3000 万次,已有超亿行代码被开发者采纳。一汽集团、中华财险以及哈啰集团等企业都在使用通义灵码,研发提效 10% 以上,AI 代码生成占比近 30%。

二、下载与安装

  1. 官方安装地址:访问通义灵码官网,可获取详细的安装步骤。通义灵码提供了便捷的安装指南,让开发者能够轻松上手使用。
  1. IDE 支持列表:通义灵码支持多种主流的集成开发环境(IDE),包括 Visual Studio Code、JetBrains IDEs 等。这些 IDE 在不同的开发场景下都有着广泛的应用,通义灵码的兼容性为开发者提供了更多的选择。
    • Visual Studio Code:是一款广泛使用的轻量级代码编辑器,通义灵码在 Visual Studio Code 中的安装非常简单。可以通过唤起 Visual Studio Code 插件市场直接安装,安装后请重启 IDE,即可开启智能编码之旅。手动安装步骤如下:
      • 步骤 1:已安装 Visual Studio Code 的情况下,在侧边导航上点击扩展。
      • 步骤 2:如果没有安装,在 vscode 中搜索通义灵码(TONGYI Lingma),找到通义灵码后点击安装。
      • 步骤 3:重启 Visual Studio Code,重启成功后登录阿里云账号,即刻开启智能编码之旅。可以直接点击该链接「通义灵码・体验 AI 编码,开 AI 盲盒」。
      • 步骤 4:我们来验证一下是否好用,根据语法和跨文件的上下文,实时生成建议代码。
    • JetBrains IDEs:通义灵码与 JetBrains IDEs 系列也兼容良好,包括 IntelliJ IDEA(旗舰版、社区版、教育版)、Android Studio、CLion、GoLand、PhpStorm、PyCharm(专业版、社区版、教育版)、Rider、RubyMine、RustRover、WebStorm 等。安装步骤如下:
      • 步骤一:准备工作。通义灵码需要登录阿里云后方可使用,如果你尚未拥有一个阿里云账号,可前往注册阿里云账号;下载并安装兼容的 JetBrains IDEs 2020.3 及以上版本。
      • 步骤二:在 JetBrains IDEs 安装通义灵码。以在 IntelliJ IDEA 中安装通义灵码为例,可以从插件市场安装,打开 IntelliJ IDEA 设置窗口,在搜索 TONGYI Lingma,找到通义灵码后点击安装。也可以下载安装包安装,单击下方链接,下载 JetBrains IDEs 的 zip 安装包,下载完安装包后,打开 IntelliJ IDEA 后,打开设置,在插件管理的设置下拉菜单中单击从本地安装插件,选择下载的 zip 文件后安装。安装完成后,请重启 IntelliJ IDEA。
      • 步骤三:登录阿里云账号开启智能编码之旅。重启 IntelliJ IDEA 后,单击侧边导航的通义灵码,在通义灵码助手的窗口单击登录按钮。单击登录后,将前往阿里云官网登录,完成阿里云登录后,即可前往 IDE 客户端开始使用。
  1. 不同 IDE 安装流程示例,如 Visual Studio Code 的安装步骤。上文已经详细介绍了 Visual Studio Code 的安装步骤,这里再次强调一下关键步骤。首先,在 Visual Studio Code 中可以通过插件市场搜索通义灵码进行安装,安装后重启 IDE,并登录阿里云账号。这样就可以开始享受通义灵码带来的智能编码体验了。通义灵码在 Visual Studio Code 中的安装简单快捷,为开发者提供了高效的编码辅助工具。

三、功能详解

  1. 代码智能补全
    • 行级 / 函数级实时补全,包括快捷键操作及自动云端生成模式。在 IDE 编辑器区进行代码编写时,开启自动云端生成模式,通义灵码会根据当前代码文件及相关代码文件的上下文,自动为你生成行级 / 函数级的代码建议。例如在 Windows 系统中,可以使用快捷键 Alt+P 手动触发生成代码建议,按下 Tab 键接受行间代码建议,Esc 键废弃行间代码建议,Alt + 上箭头 / 下箭头键查看上一个 / 下一个行间推荐结果。
    • 自然语言生成代码,可直接描述需求生成代码。在编辑器中,可以直接通过自然语言的方式描述需要实现的需求,通义灵码可以在编辑器中生成代码建议,单击 Tab 可直接采纳。比如输入 “生成一个 Java 类”,通义灵码将基于理解提供的自然语言描述生成相应的代码。
  1. 研发智能问答
    • 输入问题的技巧,如选中代码、精准表达问题、互动反馈等。在输入问题时,尽量选中代码,精准描述问题并给出详细上下文(如选中的代码、日志、报错信息等),以便通义灵码更好地理解和回答。
    • 多种问答类型,包括研发自由问答、代码问答、@workspace 本地工程问答、@terminal 问答、#team docs 知识库问答等。
      • 研发自由问答:当编码遇到问题,缺乏具体解决思路时,可单击 IDE 侧边工具导航或使用快捷键唤起通义灵码智能问答助手,无需离开 IDE 客户端,即可快速获得答案和解决思路。
      • 代码问答:对某段代码有疑问或期望针对代码进行一些问题解决时,选中代码后,在智能问答窗口的输入框中输入问题,通义灵码将围绕选中代码开展对话。
      • @workspace 本地工程问答:需要快速了解一个工程、查找工程内的实现逻辑,或有新的诉求需要进行代码变更时,可以在智能问答窗口中通过可唤起 @workspace,选中后输入问题或诉求,通义灵码可快速结合当前仓库进行工程理解、代码查询、代码问答等,同时可以通过自然语言描述需求,结合当前工程生成简单需求或缺陷的整体修改建议和相关建议代码。
      • @terminal 问答:遇到执行指令不知道如何写,或者不清楚某个指令的意思时,可以在智能问答窗口中通过可唤起 @terminal,选择后使用自然语言描述需要指令诉求,通义灵码将可以生成需要的命令。生成指令后,可以一键插入到 terminal 中进行执行或让通义灵码继续解释。也可以在选择 @terminal 后,输入指令让通义灵码生成指令解释。
      • #team docs 知识库问答(企业版):需要结合企业内私域知识信息让通义灵码进行回答时,可以在智能问答窗口中通过 #唤起 #team docs,并输入问题,通义灵码将结合企业知识库(当前用户有权限的知识库)对问题进行回答,在回复中也可以单击查看引用的企业知识库内容。
    • 清空会话上下文历史记忆和新建会话功能。在智能问答输入框中输入 / 即可看到 /clear context 指令,选择后即可清空当前会话的上下文历史记忆。在智能问答窗口中,单击右上角的新建按钮即可新建会话窗口,单击后会话窗口将回到默认状态。
    • 查看会话历史,方便对比和选择建议。历史会话功能帮助检索和回顾与通义灵码的交流记录,方便针对多次的建议进行对比和选择。不管在哪个 IDE 客户端上、哪个工程中,均可以查看或搜索和通义灵码的历史会话。
  1. 智能生成指令
    • 指令触发方式,包括编辑器右键、智能问答及快捷指令。当选中代码后,有 3 种触发方式:在编辑器中,单击右键找到通义灵码功能操作入口,单击对应功能操作;在智能问答中,直接单击对应功能操作;在智能问答中,使用 / 查看快捷指令,单击对应功能操作。当需要针对一个方法实现生成单元测试、代码注释、代码解释、代码优化时,无需选中代码,可直接单击函数上方的快捷入口触发相关功能操作。
    • 解释代码、生成单元测试、生成注释、代码优化等指令功能。
      • 解释代码:覆盖各种编程语言,选中代码后可自动识别编程语言并生成代码解释。跨越语言的边界,让阅读代码更高效。可以通过在编辑器中单击右键找到通义灵码功能操作入口并单击、在智能问答中直接单击对应功能操作、在智能问答中使用 / 查看快捷指令并单击 “解释代码” 指令来触发。之后支持重试、更详细、更简单、中文 / 英文解释等追问操作。
      • 生成单元测试:支持根据 JUnit、Mockito、Spring Test、unit test、pytest 等框架生成单元测试。选择 /generate unit test 后,可以继续输入对单元测试生成的要求,比如使用 JUnit 5 生成。生成单元测试后,支持一键插入、复制、或者新建代码文件,可快速采纳生成的单元测试代码建议;更换单元测试框架:提供基于 JUnit、Mockito、Spring Test、unit test、pytest 等框架生成单元测试代码建议,在回答完成后,可以根据需要切换框架重新生成;新建文件:支持一键保存单元测试代码为新文件,方便进行查看和修改。
      • 生成注释:一键生成方法注释及行间注释,节省写代码注释的时间,并能够有效提升代码可读性。选择 /generate comment 后,继续输入生成注释的要求,比如开头标明日期,并用英文注释。可以通过在编辑器中单击右键找到通义灵码功能操作入口并单击、在智能问答中直接单击对应功能操作、在智能问答中使用 / 查看快捷指令并单击 “生成代码注释” 指令来触发。采纳注释建议可通过一键插入或复制实现,还可单击 “查看 diff” 按钮唤起 IDE 的 diff 查看窗口,了解建议和源代码的变更。
      • 代码优化:深度分析代码及其上下文,迅速识别潜在的编码问题,从简单的语法错误到复杂的性能瓶颈,均能够指出问题所在,并提供具体的优化建议代码。
    • 生成回答后的快捷操作,如新建文件保存单元测试代码。生成单元测试后,可以一键保存单元测试代码为新文件,方便进行查看和修改。

四、使用技巧

1. 快捷键的运用

通义灵码拥有许多实用的快捷键,让开发者在编码过程中更加高效便捷。

1.1 默认快捷键介绍及使用场景

  • Windows 系统下,在任意位置触发补全可使用快捷键Alt + P,MacOS 则是Option + P。这个快捷键可以在编码过程中,手动触发生成代码建议。当有代码建议时,采纳全部生成的代码使用Tab键,逐行采纳生成的代码可按Ctrl + ↓(Windows)或Cmd + ↓(MacOS)。关闭 / 打开对话面板的快捷键为Ctrl + Shift + L(Windows)和Cmd + Shift + L(MacOS)。另外,在通义灵码的问答面板里,使用Cmd+Enter(MacOS/Linux)或Ctrl+Enter(Windows)可在输入问题时换行,直接按下Enter回车键会直接将当前提问内容发送给模型。
  • 备注说明:更换生成结果快捷键会提高生成的多样性参数(temperature),有时能生成更长或更发散的内容。

1.2 自定义快捷键的设置方法

  • JetBrains IDE:打开菜单栏的Settings(设置)页面,左侧点击Keymap(快捷键),然后找到Plugins -> TONGYI Lingma子项,展开即可查看和编辑快捷键。
  • VSCode:点击 IDE 左下角的设置图标,点击键盘快捷方式菜单,在页面中搜索TONGYI Lingma即可查看和编辑所有快捷键。
  • 备注说明:为了便于识别,VSCode 的大部分通义灵码快捷键都是以TONGYI Lingma命名的,但触发内联建议、显示上一个 / 下一个内联建议快捷键复用了已经存在系统级功能项,因此命名风格上稍有差异。

2. 配置的运用

通义灵码的配置功能丰富,可以根据不同的需求进行个性化设置。

2.1 进入配置面板的方法

  • JetBrains IDE 的配置面板在设置页面的顶级菜单TONGYI Lingma板块,可以通过点击状态栏的通义灵码小图标,选择 “高级设置” 项快速打开。
  • VSCode 的配置面板同样可以从状态栏右下角的通义灵码图标点击 “高级设置” 进入。

2.2 常用配置项

  • 按文件类型禁用自动补全:若某些类型文件的自动补全结果较为打扰,可将该文件后缀类型添加到列表中,多种尾缀之间使用英文逗号分隔,例如:txt,md。
    • JetBrains IDE 配置区域:[具体配置位置说明]
    • VSCode 配置区域:[具体配置位置说明]
    • 备注说明:禁用特定文件类型的补全功能主要是禁用自动补全触发,若在文件内使用快捷键手工触发补全(默认快捷键为Alt+P),依然能够使用大模型的内容自动续写生成的功能。
  • 下拉提示时保留补全结果:默认情况下,当 IDE 有基于语法的下拉补全提示时,通义灵码会自动停止展示大模型补全内容,避免视觉上的冲突。若希望通义灵码总是生成大模型补全,可以勾选该配置项,此时按下Tab键将会采纳大模型的生成结果。
    • JetBrains IDE 配置区域:[具体配置位置说明]
    • VSCode 配置区域:[具体配置位置说明]
  • 生成长度控制:通义灵码支持将自动触发和手工触发的代码续写能力分别设置生成长度参数。通常建议将手工触发(默认快捷键Alt+P)设置得比自动触发稍长。
    • JetBrains IDE 配置区域:[具体配置位置说明]
    • VSCode 配置区域:[具体配置位置说明]
    • 备注说明:这个配置项只是设置模型允许生成的最大长度,若模型某次补全生成的内容长度原本就较短,通过修改此配置并不能让模型生成的内容变长。

3. 代码注释的运用

代码注释在编程中起着重要的作用,通义灵码可以通过注释引导补全生成代码和使用描述生成方法。

3.1 通过注释引导补全生成:在没有额外注释引导的情况下,模型只能根据当前代码的上下文,以及项目内引用和查找到的相似代码来猜测接下来可能要编写的内容。当模型的猜测不准确时,可以尝试通过增加代码的方式来引导模型接下来应当实现什么代码。例如在这段代码里,模型首先猜测了一个CHAT_CONTEXT字段,但这并非我们期望的内容。接下来,我们增加一行注释,告诉模型下一个字段是历史记录,再次换行模型生成了符合预期的字段和相应的数据填充代码。

3.2 使用描述生成方法:通过 “编辑区的代码注释引导补全” 或 “使用通义灵码问答面板” 都能实现基于注释生成整个方法的目的。由于通义灵码的智能问答场景,使用的模型参数会比代码补全模型的参数量更大,因此,对于这类场景,通常更推荐在问答面板里直接提出需要生成的问题描述。如果针对期望生成的语言或方法签名(方法名、参数类型、返回值类型)有特殊要求,可以在提问的时候将方法签名预先描述好。例如:[具体示例说明]。

4. 跨文件索引的运用

通义灵码的跨文件索引是抑制代码幻觉的重要机制。

在首次打开新项目时,通义灵码将自动创建项目的文件索引。此后,每次保存文件时,将触发单个文件的增量索引更新。然而由于 IDE 里的文件通常存在内存缓存,在刚刚编写完一个文件,切换到另一个文件时,可能因为本地索引尚未更新,导致无法感知新增加或修改过的内容,依然按照原本类型结构进行推理。

若要消除这种信息差异,可在编辑完前一个文件时,主动按下文件保存(快捷键Ctrl+S),再继续编辑其他文件,生成的内容就能正确引用到修改过的对象结构了。

五、最佳实践案例

  1. 客服系统的智能化升级,提升响应速度和服务质量。

我们公司平台采用了通义灵码对其客服系统进行了升级。通过接入通义灵码,该平台的客服机器人能够自动识别并解答大部分常见问题,减少了人工客服的工作量,同时也提升了响应速度和服务质量。据统计,客服满意度提升了 20%,处理效率提高了 30%。

  1. 智能写作辅助工具,节省时间提高文章质量。

我们公众号利用通义灵码开发了一款智能写作辅助工具。这款工具可以根据用户输入的关键字自动生成文章大纲,并提供写作建议。这对于编辑团队来说非常有用,不仅节省了大量时间,还提高了文章的质量和一致性。

  1. 教育领域应用,提供个性化学习建议和资源推荐。

在教育领域,通义灵码也被应用于在线课程辅导。通过分析学生的学习进度和反馈,通义灵码能够提供个性化的学习建议和资源推荐,帮助学生更好地掌握知识点。这一应用显著提高了学生的学习效率和成绩。例如传智教育与阿里云达成合作,将通义灵码引入教学体系中。在前期针对通义灵码引入教学教案的测试中发现,通义灵码的代码提示准确率非常高,达 90%,且能通过注释微调代码准确率接近 100%。学员在课下可以使用通义灵码梳理知识点、编程思路分析、知识点复盘、自我评测等,全方位提升驾驭智能工具的能力,目前学员对通义灵码的使用满意度达 95% 以上。传智教育对多个学科进行全面升级,推出新一代智能数字化人才培养体系课程,在 Java 学科率先试点,结合通义灵码,讲师授课效率提升了 35%,讲授的知识内容可提升 40%。

六、总结

通义灵码功能强大,为开发人员提供智能分析和建议,提高开发效率和代码质量,应积极探索其应用场景,不断提升开发水平。同时,要持续学习适应新技术,拥抱新的开发方式和思路。

通义灵码作为一款智能编码辅助工具,在开发过程中展现出了诸多优势。从代码智能补全到研发智能问答,再到智能生成指令等功能,都为开发者提供了极大的便利。

在实际应用中,通义灵码可以帮助客服系统实现智能化升级,提高响应速度和服务质量;可以作为智能写作辅助工具,节省时间提高文章质量;还可以在教育领域应用,提供个性化学习建议和资源推荐。

然而,我们也不能仅仅满足于现有的功能。随着技术的不断发展,通义灵码也需要不断地进行优化和升级。开发人员应该积极探索通义灵码的更多应用场景,充分发挥其优势,提高开发效率。

同时,我们也要持续学习适应新技术,不断提升自己的开发水平。通义灵码只是众多开发工具中的一种,我们应该拥抱新的开发方式和思路,不断探索和尝试新的技术,为软件开发行业的发展做出贡献。