一文带你深度体验DevChat

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 一文带你深度体验DevChat

🚀DevChat基本介绍

🕍 概述

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

  • 传统的以代码为中心的范式正在不断发展。利用 DevChat 保持领先地位。
  • 编写提示以创建代码。将提示转换为软件工程中的所有工件。

🕍 优势

虽然有许多可用的 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】,如下图:

点击安装即可。

🕍 获取和设置Access Key

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

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

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

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

🕍 版本不兼容处理【BUG】

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

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

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

修改成你的VScode的版本

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

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

🚀具体使用体验

以下是具体使用的界面

🕍 文本问答交互

问:你好

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

问:很高兴使用你

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

问:帮我解释下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圣诞树代码

答:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Christmas Tree</title>
    <style>
        .tree {
            text-align: center;
        }
        .tree span {
            color: green;
        }
    </style>
</head>
<body>
    <div class="tree">
        <span>★</span><br>
        <span>★★</span><br>
        <span>★★★</span><br>
        <span>★★★★</span><br>
        <span>★★★★★</span><br>
        <span>★★★★★★</span><br>
        <span>★★★★★★★</span><br>
        <span>★★★★★★</span><br>
        <span>★★★★★</span><br>
    </div>
</body>
</html>

效果图:

🕍 算法代码解答

问:

给你一个整数 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环境。

🕍 文本总结测试

问:精简下面的文字

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

🚀总结

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


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
编解码
Sora的技术思路与其他产品有何不同?
【2月更文挑战第9天】Sora的技术思路与其他产品有何不同?
55 1
Sora的技术思路与其他产品有何不同?
|
25天前
|
人工智能 运维 大数据
体验记录——触手可及,函数计算玩转 AI 大模型
阿里云推出的“触手可及,函数计算玩转 AI 大模型”解决方案,通过按量付费、卓越弹性和快速交付能力,为企业提供了便捷的AI大模型部署途径。评测报告详细分析了该方案的实践原理、部署过程及优势,展示了其在高并发场景下的高效性和成本优势,并提出了改进建议。
32 0
|
29天前
|
人工智能 弹性计算 自然语言处理
《触手可及,函数计算玩转 AI 大模型》解决方案体验与部署评测
在AI技术快速发展的背景下,大模型正推动各行业的智能化转型。企业为抓住机遇,纷纷寻求部署AI大模型以满足特定业务需求。阿里云函数计算凭借按量付费、卓越弹性和快速交付等优势,为企业提供了高效、安全的AI大模型部署方案。本文将详细介绍阿里云函数计算的技术解决方案及其在文生文、图像生成和语音生成等领域的应用实例,展示其在降低成本、提高效率和增强灵活性方面的显著优势。
|
2月前
|
人工智能 弹性计算 Serverless
体验《触手可及,函数计算玩转 AI 大模型》解决方案
体验《触手可及,函数计算玩转 AI 大模型》解决方案
40 1
|
3月前
|
图形学 机器学习/深度学习 人工智能
颠覆传统游戏开发,解锁未来娱乐新纪元:深度解析如何运用Unity引擎结合机器学习技术,打造具备自我进化能力的智能游戏角色,彻底改变你的游戏体验——从基础设置到高级应用全面指南
【8月更文挑战第31天】本文探讨了如何在Unity中利用机器学习增强游戏智能。作为领先的游戏开发引擎,Unity通过ML-Agents Toolkit等工具支持AI代理的强化学习训练,使游戏角色能自主学习完成任务。文章提供了一个迷宫游戏示例及其C#脚本,展示了环境观察、动作响应及奖励机制的设计,并介绍了如何设置训练流程。此外,还提到了Unity与其他机器学习框架(如TensorFlow和PyTorch)的集成,以实现更复杂的游戏玩法。通过这些技术,游戏的智能化程度得以显著提升,为玩家带来更丰富的体验。
62 1
|
4月前
|
数据采集 人工智能 自然语言处理
阿里云百炼平台深度体验:智能问答与模型训练的创新之旅
在人工智能的浪潮中,阿里云百炼平台以其强大的大模型开发能力,为企业和个人开发者提供了一站式的解决方案。本文将从知识检索应用搭建、模型训练调优以及流程管理功能三个角度,全面评测阿里云百炼平台的实际使用体验。
303 3
|
5月前
|
JSON 人工智能 自然语言处理
|
6月前
|
人工智能 自然语言处理 搜索推荐
如何利用AI技术改善学生的学习体验?
【5月更文挑战第19天】如何利用AI技术改善学生的学习体验?
147 1
|
6月前
|
Kubernetes 云计算 虚拟化
云计算开发与部署:技术与实践的深度融合
云计算开发与部署:技术与实践的深度融合
166 2
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
第9章:深度探讨知识问答系统评测:智能背后的挑战与技术方案
第9章:深度探讨知识问答系统评测:智能背后的挑战与技术方案