通义灵码使用介绍

1:简介:

通义灵码,是阿里云出品的一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云的云服务使用场景调优,助力开发者高效、流畅的编码。

核心场景

代码智能生成
经过海量优秀开源代码数据训练,可根据当前代码文件及跨文件的上下文,为你生成行级/函数级代码、单元测试、代码优化建议等。沉浸式编码心流,秒级生成速度,让你更专注在技术设计,高质高效地完成编码工作。

研发智能问答

基于海量研发文档、产品文档、通用研发知识、阿里云的云服务文档和 SDK/OpenAPI 文档等进行问答训练,为你答疑解惑,助你轻松解决研发问题。

产品优势

跨文件感知让代码生成更贴合业务场景: 客户端和模型层同步优化针对代码跨文件上下文感知能力,生成代码更加贴合当前代码库的业务场景。
阿里云服务使用场景友好: 专门针对阿里云的云服务使用、SDK/OpenAPI 的使用等场景调优,编码时能够更加便捷地使用阿里云服务;在对阿里云使用有疑问时,智能编码助手的回答也将更加有效。
适配多 IDE 的原生设计,符合开发者使用习惯: 适配 IDE 原生主题、交互模式,让开发者感受到 IDE 原生的视觉和交互体验,更符合开发者使用习惯。
研发问答、文档/代码搜索能力,打造沉浸式编码: 无需切换工具,IDE 客户端内即可满足开发者编码场景中的技术资料检索、技术难题解答的诉求,打造开发者沉浸式编码体验。
双模引擎,自由切换: 支持极速本地模型、云端大模型两种代码补全模型,支持一键切换,满足不同网络环境、不同补全强度的场景诉求。

2:安装

以IDEA为例

方法 1:从插件市场安装

1.打开 IntelliJ IDEA 设置窗口,在插件市场中搜索 TONGYI Lingma,找到通义灵码后单击安装。
2.安装完成后,请重启 IntelliJ IDEA。


image.png

image.png

方法 2:下载安装包安装

单击下方链接,下载 JetBrains IDEs 的 zip 安装包;⇩ TONGYI Lingma - JetBrains
下载完安装包后,打开 IntelliJ IDEA 后,打开设置,在插件管理的设置下拉菜单中单击从本地安装插件,选择下载的 zip 文件后安装。

3:登录阿里云账号

1.重启 IntelliJ IDEA 后,单击侧边导航的通义灵码,在通义灵码助手的窗口单击登录按钮。

image.png

2.单击登录后,将前往阿里云官网登录,完成阿里云登录后,即可前往 IDE 客户端开始使用。

image.png

看到这个效果,就可以返回idea了


image.png

3.返回IDEA 提示登录成功

image.png

4:功能介绍

行级/函数级实时续写

根据当前语法和跨文件的代码上下文,实时生成行、函数建议代码。


image.png

代码注释生成

image.png
image.png

单元测试生成

支持根据 JUnit、Spring Test、unit test 等框架生成单元测试。


image.png

生成效果


image.png
package com.example.demo.test.ai;

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;

public class DemoTest {

    @Test
    public void testSortEmptyArray() {
        int[] arr = {};
        int[] expected = {};
        Demo.sort(arr);
        assertArrayEquals(expected, arr);
    }

    @Test
    public void testSortSingleElementArray() {
        int[] arr = {5};
        int[] expected = {5};
        Demo.sort(arr);
        assertArrayEquals(expected, arr);
    }

    @Test
    public void testSortAscendingArray() {
        int[] arr = {1, 2, 3, 4, 5};
        int[] expected = {1, 2, 3, 4, 5};
        Demo.sort(arr);
        assertArrayEquals(expected, arr);
    }

    @Test
    public void testSortDescendingArray() {
        int[] arr = {5, 4, 3, 2, 1};
        int[] expected = {1, 2, 3, 4, 5};
        Demo.sort(arr);
        assertArrayEquals(expected, arr);
    }

    @Test
    public void testSortAlreadySortedArray() {
        int[] arr = {1, 2, 3, 4, 5};
        int[] expected = {1, 2, 3, 4, 5};
        Demo.sort(arr);
        assertArrayEquals(expected, arr);
    }

    @Test
    public void testSortReverseSortedArray() {
        int[] arr = {5, 4, 3, 2, 1};
        int[] expected = {1, 2, 3, 4, 5};
        Demo.sort(arr);
        assertArrayEquals(expected, arr);
    }

    @Test
    public void testSortArrayWithDuplicates() {
        int[] arr = {3, 1, 4, 1, 5};
        int[] expected = {1, 1, 3, 4, 5};
        Demo.sort(arr);
        assertArrayEquals(expected, arr);
    }

}

优化代码:

使用简单的例子 --获取字符串的数字个数


image.png

image.png

结果如下


image.png

image.png

研发领域自由问答

遇到编码疑问、技术难题时,一键唤起通义灵码,无需离开 IDE 客户端,即可快速获得答案和解决思路。聚焦研发领域知识的问答,帮助开发者快速解决问题。


image.png
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;

public class DownloadFileFromOSS {
    public static void main(String[] args) {
        String endpoint = "<Your endpoint>";
        String accessKeyId = "<Your AccessKeyId>";
        String accessKeySecret = "<Your AccessKeySecret>";
        String bucketName = "<Your bucket name>";
        String objectName = "<Your object key>";
        String localFilePath = "<Local file path to save the downloaded file>";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        try {
            // 下载OSS中的文件到本地文件。
            ossClient.getObject(new GetObjectRequest(bucketName, objectName), new File(localFilePath));
            System.out.println("Downloaded file from OSS successfully.");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 关闭OSSClient。
            ossClient.shutdown();
        }
    }
}

image.png
image.png

异常报错智能排查(Java)

最常见的空指针异常

image.png

点击上图的lingma->

image.png

最后 ,常见的快捷键送给大家,希望每个同事在使用的过程中都能提高效率。

操作 Windows
接受行间代码建议 esc
废弃行间代码建议 esc
查看上一个行间推荐结果 Alt [
查看下一个行间推荐结果 Alt ]
手动触发行间代码建议 Alt P
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容