一文带你深度体验DevChat

目录

DevChat基本介绍

 概述

 优势

 功能概述

DevChat的安装

 安装依赖软件

 VS Code安装插件

 获取和设置Access Key 

 版本不兼容处理【BUG】

具体使用体验

 文本问答交互

 前端代码生成

 算法代码解答

 代码补全使用

 具体指令编写

 文本总结测试

总结


DevChat基本介绍

 概述

DevChat 是一个开源平台,使开发人员能够更有效地将 AI 集成到代码生成和文档中。DevChat 旨在超越简单的代码自动完成和对代码片段的有限操作。DevChat 为开发人员提供了一种非常实用有效的方式来与大型语言模型 (LLM) 进行交互和协作。

  • 传统的以代码为中心的范式正在不断发展。利用 DevChat 保持领先地位。

  • 编写提示以创建代码。将提示转换为软件工程中的所有工件。

 一文带你深度体验DevChat_第1张图片

 优势

虽然有许多可用的 AI 编码工具,但我们根据生成数万行代码的实用见解开发了 DevChat。DevChat 做出以下独特的设计选择:

  • 对提示中嵌入的上下文进行精确的手动控制。对上下文的精确控制是有效使用 AI 的关键。我们发现,大多数其他“智能”或“自动”工具往往会过度猜测用户需要在提示中输入什么内容。这通常会引入比 LLM 可以有效管理的更多的噪声。
  • 一个简单、可扩展的提示目录。带上你自己的提示,并建立一个对你和你的团队有用的库。轻松将您自己的提示模板集成到 DevChat 中,避免了大量的工程工作或陡峭的学习曲线。你不需要一个复杂的框架来让人工智能为你工作。它所需要的只是一个在文件系统上运行的标准编辑器。

DevChat主要价值在于提高开发效率、减少重复性劳动和降低错误率。借助DevChat,开发者可以更专注于思考和创新,而非纠结于繁琐的代码编写。它也有望成为团队协作和知识共享的工具,帮助团队成员共享经验和最佳实践。 

 功能概述

情境构建:出色的输出需要出色的输入。为了最大限度地发挥 AI 的力量,DevChat 可无缝地帮助您为 AI 提供正确的上下文。

添加到上下文:可以使用 DevChat 将任何命令的输出(例如 )合并到提示符中。例如,可以将 的输出添加到 DevChat,然后 DevChat 可以为你生成提交消息。tree ./srcgit diff --cached

生成提交消息:程序分析可以帮助建立必要的上下文。假设你希望 DevChat 向你解释一些代码。如果 DevChat 知道代码正在调用的依赖函数,则可以执行更好的性能。在此方案中,可以使用 DevChat 选择目标代码来解释“符号定义”并将其添加到上下文中(通过单击加号按钮)。然后,DevChat 将生成一个提示,解释目标代码,同时考虑依赖函数。

提示扩展:DevChat 利用目录来管理预定义的提示模板。您可以使用文本编辑器轻松添加自己的或修改现有的。 默认情况下,该目录已命名并位于主目录的文件夹中。您可以在终端中运行以查看里面的内容。

DevChat的安装

DevChat跟Chatgpt不一样采用网页交互,它使用的是VS Code 插件,这样子可以直接在编程环境下与之对话,使用起来更加方便。

 安装依赖软件

Git 命令行:请参考 Git - Installing Git 操作。完成安装后,在命令行终端运行 git --version 返回版本号表明成功。

也需要需要 Python 3 环境(可参考https://realpython.com/installing-python安装)。

 VS Code安装插件

打开VS Code在扩展中搜索【DevChat】,如下图:

一文带你深度体验DevChat_第2张图片

点击安装即可。

 获取和设置Access Key 

登录官网,需要绑定邮箱并登录,绑定后发送验证码,开通后就可以获取Access key了,实现进入注册界面后,然后输入你的 用户名 以及你的 邮箱,验证后,点击 Sign Up 注册

一文带你深度体验DevChat_第3张图片

邮箱中除了验证码以外,还有一个回执邮件,从中获得 Access key

一文带你深度体验DevChat_第4张图片

点击左下角管理(“齿轮”图标)—命令面板(Command Palette),如下图:

一文带你深度体验DevChat_第5张图片

在弹出的命令面板中输入“devchat key”,输入key即可使用

一文带你深度体验DevChat_第6张图片

 版本不兼容处理【BUG】

如果你的VScode比较老可能会出现安装不兼容问题,具体处理方式如下:

一文带你深度体验DevChat_第7张图片

选择将下载的插件以压缩包的格式打开,如下图:

一文带你深度体验DevChat_第8张图片

进入extension文件夹修改package.json文件

一文带你深度体验DevChat_第9张图片

修改成你的VScode的版本

 一文带你深度体验DevChat_第10张图片

保持以后选择从VSIX安装即可。

一文带你深度体验DevChat_第11张图片

 当然也需要同理安装依赖的其他插件,这里不再赘述

一文带你深度体验DevChat_第12张图片

具体使用体验

 以下是具体使用的界面

一文带你深度体验DevChat_第13张图片

 文本问答交互

问:你好

答:你好!有什么我可以帮助你的吗?

问:很高兴使用你

答:非常感谢您的支持和反馈!我很高兴能帮助您。如果您有任何问题或需要进一步的帮助,请随时告诉我。我将尽力为您提供满意的答案和服务!

 问:帮我解释下java中的String类型

答:

在Java中,String是一个代表字符串的数据类型。String类是Java中内置的一个类,用来表示字符串对象。以下是一些关于Java中String类型的重要特点:

  1. 不可变性:在Java中,String对象一旦创建,就不能被修改。任何对String对象的操作都会返回一个新的String对象,原始的String对象保持不变。这意味着String对象是不可变的(immutable)。

  2. 字符串连接:Java中的String类型支持通过加号"+"进行字符串连接操作。例如:"Hello, " + "World"会产生一个新的String对象"Hello, World"。

  3. 字符串池:Java中的字符串常量池(String Pool)是一种特殊的内存区域,用于存储字符串字面量。当创建一个字符串常量时,JVM会首先检查字符串常量池。如果池中已经存在相同数值的字符串,将返回池中的实例引用,否则将在池中创建一个新的实例。

  4. 不可变性的优点:由于String对象是不可变的,所以它们可以被安全地共享。这使得字符串常量池的存在成为可能,节省了内存空间。

  5. 方法丰富:String类提供了丰富的方法,用于对字符串进行各种操作,比如长度、提取子串、转换大小写、替换、分割等等。

总的来说,String类型在Java中是非常重要的,它作为表示和操作字符串的标准方式,具有不可变性、字符串池和丰富的方法等特点。

 前端代码生成

问:帮我写一个HTML圣诞树代码

答:




    
    
    Christmas Tree
    


    

★★
★★★
★★★★
★★★★★
★★★★★★
★★★★★★★
★★★★★★
★★★★★

效果图:

一文带你深度体验DevChat_第14张图片

 算法代码解答

问:

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,121 是回文数,而 123 不是。 请帮我写一段Java 代码实现上述方法

 答:

public boolean isPalindrome(int x) {
    if (x < 0) { // 负数不是回文数
        return false;
    }
    int temp = x;
    int reverse = 0;
    while (temp != 0) {
        int digit = temp % 10;
        reverse = reverse * 10 + digit;
        temp /= 10;
    }
    return x == reverse;
}

该方法首先检查输入整数是否为负数,因为负数不是回文数。

​ 接下来,将输入整数的每个数字提取出来并反转它们。这可以通过取模运算和整数除法来完成。在每一次循环中,将提取的数字添加到一个反转的数字中。例如,如果输入整数为 123,首先将提取数字 3 并将其添加到反转数字中,变成 3。接下来,提取数字 2 并将其添加到反转数字中,变成 32。最后,提取数字 1 并将其添加到反转数字中,变成 321。 ​ 最后,比较原始整数和反转后的整数是否相等,如果相等,则返回 true,否则返回 false。

 代码补全使用

问:帮我补全下面代码

public static void insertSort(int[] array) {
        int temp = 0;
        for (int i = 0; i < array.length; i++) {
            //选择一个数作为被比较的数;
            temp = array[i];
            int j = i - 1;
            for (j = i - 1; j >= 0; j--) {
                //取被比较数之前的数与被比较数进行比较;
                if (array[j] > temp) {
                    //如果这个数大于被比较的数,往后挪一个位置;
                   
                } else {
                    break;
                }

答:当这个数小于或等于被比较的数时,将这个数后移一位

public static void insertSort(int[] array) {
    int temp = 0;
    for (int i = 0; i < array.length; i++) {
        // 选择一个数作为被比较的数;
        temp = array[i];
        int j = i - 1;
        while (j >= 0 && array[j] > temp) {
            // 将大于被比较数的数后移一位
            array[j + 1] = array[j];
            j--;
        }
        // 将被比较数插入合适的位置
        array[j + 1] = temp;
    }
}

可以发现是正确的

 具体指令编写

问:帮我写一个Docker命令,启动mysql数据库,配置数据库密码为123456

答:以下是一个启动MySQL数据库的Docker命令,并配置用户名为root,数据库密码为123456:

docker run -d --name mysql-db -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

这个命令将会在后台运行一个名为mysql-db的容器,并将宿主机的3306端口映射到容器的3306端口。-e选项用于设置环境变量,其中MYSQL_ROOT_PASSWORD是MySQL的root用户密码。

请注意,这只是一个简单的示例命令,实际使用时可能需要根据自己的需求进行更多的配置,比如持久化数据、指定数据存储目录等。同时,请确保已安装并正确配置Docker环境。

 文本总结测试

问:精简下面的文字

 一文带你深度体验DevChat_第15张图片

 答:曾有一位预言僧告知国王,城市将被洪水淹没,唯一预兆是市场上的石狮眼流血。商人偷涂羊血骗取财富,国王带百姓逃难。七天后,洪水如预言般来袭,商人和财富尽数湮没。

总结

在AI浪潮的席卷下,开发者的编程领域也在经历着一场前所未有的变革。在这个过程中,AI智能编程工具的出现为开发者们提供了一种全新的编程方式。DevChat不仅仅是一个聊天窗口。它不但可以识别开发人员键入的代码、显示的错误消息,并将其深度嵌入到IDE中,而且开发人员可以深入分析和解释代码块的用途,生成单元测试,甚至获得对错误的建议修复。有了DevChat以后,程序员想要掌握编程,更重要的是掌握技术的一些核心知识点,运行逻辑等,只有这样才能更好地向DevChat发问,才能将它的回答化为己有。DevChat不会取代程序员,反而会加快程序员的开发深度,但也会彻底改变程序员学习技术、编程程序的方式。

你可能感兴趣的:(比赛杂,java,服务器,数据库,开发语言,springboot,分布式)