首页 > 其他分享 >通义灵码使用技巧分享:如何用好注释以及跨文件索引

通义灵码使用技巧分享:如何用好注释以及跨文件索引

时间:2024-12-31 18:42:55浏览次数:1  
标签:文件 通义 代码 生成 索引 灵码 模型

通义灵码是JetBrains、VSCode、Visual Studio等集成开发环境(IDE)中嵌入的一款智能开发助手工具,旨在通过人工智能技术简化软件开发过程,提升开发效率。

欢迎关注通义灵码公众号,获取第一手资讯!

代码注释的运用

通过注释引导补全生成

在缺乏额外注释引导的情况下,模型只能基于当前代码的上下文,以及项目中引用和找到的相似代码来推测接下来可能要编写的内容。当模型的推测不准确时,可以通过增加代码的方式来引导模型实现所需的代码。

  1. 例如,在以下这段代码中,模型首先推测了一个 CHAT_CONTEXT 字段,然而并不是我们所期望的内容。

  1. 接下来,我们添加一行注释,以指示模型下一个字段为历史记录。随后,模型生成了符合预期的字段及其相应的数据填充代码。

使用描述生成方法

  1. 通过“编辑区的代码注释引导补全”或“使用通义灵码问答面板”,均可实现基于注释生成整个方法的目标。由于通义灵码的智能问答场景所使用的模型参数量通常大于代码补全模型的参数量,因此,对于这类场景,通常建议在问答面板中直接提出所需生成的问题描述。

  1. 如果对期望生成的语言或方法签名(包括方法名、参数类型、返回值类型)有特殊要求,请在提问时详细描述该方法签名。

跨文件索引的运用

及时保存文件并更新索引

  1. 通义灵码的跨文件索引是抑制代码幻觉的重要机制。通过自动识别当前上下文中所涉及的类型和方法定义,模型能够感知项目中其他文件的类型所包含的成员以及方法所具有的参数。

  2. 在首次打开新项目时,通义灵码将自动创建项目的文件索引。此后,每次保存文件时,将触发单个文件的增量索引更新。然而,由于集成开发环境(IDE)中的文件通常存在内存缓存,在刚刚编写完一个文件后切换到另一个文件时,可能因本地索引尚未更新而无法识别新增加或修改过的内容,仍然按照原有的类型结构进行推理。例如在某代码项目中,我们为 Pet 对象新增了一个 saleable 属性。

  1. 随后切换至另一个文件,尝试让大模型进行补全,但模型推理出的逻辑使用的是另一个不太相关的字段。

  1. 若要消除这种信息差异,建议在编辑完前一个文件后,主动按下文件保存键快捷键Ctrl+S,然后再继续编辑其他文件。这样生成的内容将能够正确引用到修改过的对象结构。

针对MyBatis场景的优化方案

除了 Java、Python、JavaScript 等主流编程语言项目的跨文件引用功能,通义灵码还支持在编写 MyBatis 的 XML 文件时自动识别 Mapper 对象所引用的表结构类型。例如,在编写如下的 insert 语句时,插件会利用当前项目中的 TexiOrder 类型信息,确保生成的每个字段都为正确的。

提示词的使用技巧

在提问中引用所选代码

在提问时,如果同时在代码编辑区选择了文本或代码段,所选择的内容将自动以 Markdown 引用格式附加到提问内容的末尾。因此,若在提示词中提及所选择的代码,应使用“如下代码”或“以下内容”,例如。

  • 正确的说法:请检查以下代码是否存在下标越界风险。
  • 错误的说法:请检查选中的代码是否存在下标越界风险。(模型并不知道选中的代码是什么)

在使用命令时,请附加相关信息。

通过在命令后追加更多的辅助信息,可以为问答提供更为丰富的上下文,从而获得更符合预期的回复。

通过多轮对话生成有效代码

在与大语言模型进行对话时,提供的上下文越丰富,生成的结果越能符合用户的预期。因此,用户可以在上一轮对话的基础上继续进行问答,从而增加后续提问的上下文信息,这样生成的结果能够更好地反映整个历史上下文。然而,上一轮的历史信息有时可能会造成干扰,此时用户需要适时清空上下文。

在上一轮的基础上,进一步进行深入追问。

为模型提供参考示例

当需要模型按照指定格式输出或遵循特定前置规则时,提供一个参考实例往往能取得更好的效果,而非仅用文字描述。例如,某一程序的运行结果文件可以使通义灵码整理成特定的 JSON 结构文档。首先,打开文件并全选问题内容,然后在问答区域进行提问。对比下述两种提示词,后者能够更稳定地输出预期的数据格式。

  • 提示词1:将测试报告整理为JSON格式,每个测试结果为一个JSON结构。用例名称应放置于name字段,成功与否应记录于success字段,运行耗时需在duration字段中体现(单位为毫秒),测试覆盖率则应放置在coverage字段。detail字段的值为一个JSON,包含每次用例的输入和输出,分别存放于input和output字段中。
  • 提示词2:将测试报告整理为JSON格式,具体格式参照输入报告。
…报告内容略…

应输出的数据如下。请根据此示例生成测试报告。

[
  {
    “name”: “超出有效页码范围时,应返回空列表并提示无更多数据”,
  “duration”: 3434,
  “coverage”: 80,
  “detail”: [
    {
      “input”: “…”,
    “output”: “…”
    }
]
  }
]

为模型设定身份

与单纯的提问相比,预先向模型提供身份信息能够有效提升生成结果的稳定性和准确性。以生成测试用例为例,首先打开接口文档文件,全面选取文件内容,然后在问答区域进行提问。对比下述两种提示词,后者能够生成质量更高且覆盖率更好的用例。

  • 提示词1:请根据以下接口文档生成相应的测试用例。
  • 提示词2:您是一位经验丰富的测试工程师,具备对细节的高度敏感性,并能够高效识别潜在问题及边界情况。请根据以下接口文档生成详尽的测试用例,以确保所有预期功能行为均得到验证。

更多内容,可以点击此处查看通义灵码最佳实践指南!

标签:文件,通义,代码,生成,索引,灵码,模型
From: https://www.cnblogs.com/alisystemsoftware/p/18644639

相关文章

  • 通义灵码使用技巧分享:如何用好注释以及跨文件索引
    通义灵码是JetBrains、VSCode、VisualStudio等集成开发环境(IDE)中嵌入的一款智能开发助手工具,旨在通过人工智能技术简化软件开发过程,提升开发效率。欢迎关注通义灵码公众号,获取第一手资讯!代码注释的运用通过注释引导补全生成在缺乏额外注释引导的情况下,模型只能基于当前代码......
  • 通义灵码使用技巧分享:如何用好注释以及跨文件索引
    通义灵码是JetBrains、VSCode、VisualStudio等集成开发环境(IDE)中嵌入的一款智能开发助手工具,旨在通过人工智能技术简化软件开发过程,提升开发效率。欢迎关注通义灵码公众号,获取第一手资讯!代码注释的运用通过注释引导补全生成在缺乏额外注释引导的情况下,模型只能基于当前代码......
  • 0 编程经验的我,竟然用通义灵码完成了小程序的开发
    通义灵码携手科技博主@玺哥超carry打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。本教程完全免费,在我们首次推出的前端页面制作视频发布后,我们感受到了大家的热情参与和积极互动!为了感谢大家......
  • 0 编程经验的我,竟然用通义灵码完成了小程序的开发
    通义灵码携手科技博主@玺哥超carry打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。本教程完全免费,在我们首次推出的前端页面制作视频发布后,我们感受到了大家的热情参与和积极互动!为了感谢大家......
  • 0 编程经验的我,竟然用通义灵码完成了小程序的开发
    通义灵码携手科技博主@玺哥超carry打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。本教程完全免费,在我们首次推出的前端页面制作视频发布后,我们感受到了大家的热情参与和积极互动!为了感谢大家......
  • 2000 多位开发者测评通义灵码后,我们发现了大家「去班味」的原因
    通义灵码的惊喜体验@皆允:我是一位H5前端开发学者,在学习教程的过程中使用通义灵码@workspace,快速省去了敲代码的重复的时间,对比之前没有灵码,现在提效了一倍有余。在设置css样式添加注释后,会自动根据上下文样式推荐一个非常匹配网页内容的样式:通义灵码会自动帮你结合项目里面......
  • 2000 多位开发者测评通义灵码后,我们发现了大家「去班味」的原因
    通义灵码的惊喜体验@皆允:我是一位H5前端开发学者,在学习教程的过程中使用通义灵码@workspace,快速省去了敲代码的重复的时间,对比之前没有灵码,现在提效了一倍有余。在设置css样式添加注释后,会自动根据上下文样式推荐一个非常匹配网页内容的样式:通义灵码会自动帮你结合项目里面......
  • JavaSpring AI与阿里云通义大模型的集成使用Java Data Science Library(JDSL)进行数据处
    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站学习总结1、掌握JAVA入门到进阶知识(持续写作中……)2、学会Oracle数据库入门到入土用法(创作中……)3、手把手教你开发炫酷的vbs脚本制作(完善中……)4、牛逼哄哄的IDEA......
  • MySQL数据库索引
    在MySQL中,索引是用于加速数据库查询操作的结构,它通过提供一个高效的查找路径来使得查询更加高效。数据库索引是基于某些字段或组合字段创建的数据结构,可以帮助MySQL更快地找到数据,减少扫描的行数。MySQL索引的类型主键索引(PrimaryKeyIndex)定义:主键索引是唯一的索引,每......
  • MySQL索引优化:提升查询性能的秘诀
    MySQL作为最流行的关系型数据库之一,索引是其性能优化的核心技术之一。合理地设计和使用索引,可以显著提高查询效率。然而,不当使用索引也可能带来性能问题。本文将介绍MySQL索引的基本概念、常见的索引类型及其应用场景,同时提供索引优化的最佳实践。......