一文带你深度体验DevChat

news2024/12/23 17:18:53

目录

🚀DevChat基本介绍

🕍 概述

🕍 优势

🕍 功能概述

🚀DevChat的安装

🕍 安装依赖软件

🕍 VS Code安装插件

🕍 获取和设置Access Key 

🕍 版本不兼容处理【BUG】

🚀具体使用体验

🕍 文本问答交互

🕍 前端代码生成

🕍 算法代码解答

🕍 代码补全使用

🕍 具体指令编写

🕍 文本总结测试

🚀总结


🚀DevChat基本介绍

🕍 概述

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

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

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

 

🕍 优势

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

  • 对提示中嵌入的上下文进行精确的手动控制。对上下文的精确控制是有效使用 AI 的关键。我们发现,大多数其他“智能”或“自动”工具往往会过度猜测用户需要在提示中输入什么内容。这通常会引入比 LLM 可以有效管理的更多的噪声。
  • 一个简单、可扩展的提示目录。带上你自己的提示,并建立一个对你和你的团队有用的库。轻松将您自己的提示模板集成到 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了

邮箱中除了验证码以外,还有一个回执邮件,从中获得 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以后,程序员想要掌握编程,更重要的是掌握技术的一些核心知识点,运行逻辑等,只有这样才能更好地向DevChat发问,才能将它的回答化为己有。DevChat不会取代程序员,反而会加快程序员的开发深度,但也会彻底改变程序员学习技术、编程程序的方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1205809.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux系统中如何开启和配置OpenGauss数据库的远程连接(1)

文章目录 前言1. Linux 安装 openGauss2. Linux 安装cpolar3. 创建openGauss主节点端口号公网地址4. 远程连接openGauss5. 固定连接TCP公网地址6. 固定地址连接测试 前言 openGauss是一款开源关系型数据库管理系统&#xff0c;采用木兰宽松许可证v2发行。openGauss内核深度融合…

【python自动化】Playwright基础教程(六)事件操作③单击双击计数过滤截图JS注入

【python自动化】Playwright基础教程(六)事件操作③单击&双击&计数&过滤&截图&JS注入 本文目录 文章目录 【python自动化】Playwright基础教程(六)事件操作③单击&双击&计数&过滤&截图&JS注入playwright系列回顾前文代码点击 - click…

Git忽略文件.gitignore的使用

1.为什么使用? 当你使用git add .的时候有没有遇到把你不想提交的文件也添加到了缓存中去&#xff1f;比如项目的本地配置信息&#xff0c;如果你上传到Git中去其他人pull下来的时候就会和他本地的配置有冲突&#xff0c;所以这样的个性化配置文件我们一般不把它推送到git服务…

arcgis--消除坐标系信息的两种方法

方法一&#xff1a;在【目录】中右击待修改数据&#xff0c;选择【属性】&#xff0c;选择【XY坐标】选项卡&#xff0c;点击清楚按钮。 方法二&#xff1a;在【数据管理工具】-【投影与变换】-【定义投影】中清楚坐标系信息。如下&#xff1a;

每日一题:逆波兰表达式求值(后缀表达式)

这个题比较难理解的就是逆波兰表达式是什么东西&#xff0c;上面我贴了定义&#xff0c;这个题本身不难&#xff0c;只需要运用迭代器逐个访问&#xff0c;当为数字是存入栈中&#xff0c;是算符时就要取数出来进行运算&#xff0c;先取出的是右操作数&#xff0c;取出来以后用…

【done】剑指offer46_new:解密数字

题目&#xff1a;力扣165&#xff0c;https://leetcode.cn/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan-lcof/description/ 现有一串神秘的密文 ciphertext&#xff0c;经调查&#xff0c;密文的特点和规则如下&#xff1a; 密文由非负整数组成 数字 0-25 分别对应字母 a-z 请…

Arthas(阿尔萨斯)--(二)

目录 一、Arthas学习 1、JVM相关命令一 1、dashboard 2、thread 3、jvm 4、sysprop 一、Arthas学习 Arthas(阿尔萨斯)--(一) Arthas代码开源地址 1、JVM相关命令一 1、dashboard dashboard:显示当前系统的实时数据面板&#xff0c;按q或ctrlc退出 ID: Java 级别的线…

自定义Graph Component:1.2-其它Tokenizer具体实现

本文主要介绍了Rasa中相关Tokenizer的具体实现&#xff0c;包括默认Tokenizer和第三方Tokenizer。前者包括JiebaTokenizer、MitieTokenizer、SpacyTokenizer和WhitespaceTokenizer&#xff0c;后者包括BertTokenizer和AnotherWhitespaceTokenizer。 一.JiebaTokenizer   Ji…

IDEA 2022创建Spring Boot项目

首先点击New Project 接下来&#xff1a; (1). 我们点击Spring Initializr来创建。 (2). 填写项目名称 (3). 选择路径 (4). 选择JDK------这里笔者选用jdk17。 (5). java选择对应版本即可。 (6). 其余选项如无特殊需求保持默认即可。 然后点击Next。 稍等一会&#xff0c…

RK3568平台开发系列讲解(Linux系统篇)Linux内核定时器详解

🚀返回专栏总目录 文章目录 一、系统节拍率二、内核定时器简介三、内核定时器API四、延时函数沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 Linux 内核中有大量的函数需要时间管理,比如周期性的调度程序、延时程序、对于我们驱动编写者来说最常用的定时器。硬件定…

敏感数据是什么?包含哪些?如何保障安全?

最近看到不少小伙伴在问&#xff0c;敏感数据是什么&#xff1f;包含哪些&#xff1f;如何保障安全&#xff1f;这里我们小编就给大家一一解答一下&#xff0c;仅供参考哦&#xff01; 敏感数据是什么&#xff1f; 敏感数据&#xff0c;是指泄漏后可能会给社会或个人带来严重危…

2023亚太杯数学建模ABC题思路汇总分析

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料5 最后 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 2023年第十三…

新能源汽车三电系统上的VDA接口在操作空间有限时如何快速密封与连接

针对新能源汽车三电系统上的VDA接口的快速密封与连接&#xff0c;格雷希尔GripSeal快速接头有其对应的G90系列&#xff0c;但随着现在有些新能源汽车体型越来越小&#xff0c;其三电系统的体积也越来越小&#xff0c;相对应的它们各个接口之间的距离也就越来越近&#xff0c;其…

Find My冲浪板|苹果Find My技术与冲浪板结合,智能防丢,全球定位

冲浪板就是冲浪运动中必不可少的器材之一。冲浪板是一块能够承受波浪抛掷的器材&#xff0c;通常由泡沫材质制成&#xff0c;也有一些采用其他材质制成的高档板。冲浪板不仅能够帮助人们在波浪中快速滑行&#xff0c;还能提供重心支撑和掌控波浪的稳定性。电动冲浪板是一种新型…

Linux---(六)自动化构建工具 make/Makefile

文章目录 一、make/Makefile二、快速查看&#xff08;1&#xff09;建立Makefile文件&#xff08;2&#xff09;编辑Makefile文件&#xff08;3&#xff09;解释&#xff08;4&#xff09;效果展示 三、背后的基本知识、原理&#xff08;1&#xff09;如何清理对应的临时文件呢…

SpringbootSecurity登陆验证(前后端分离)

一、什么是jwt JWT全称是JSON Web Token&#xff0c;如果从字面上理解感觉是基于JSON格式用于网络传输的令牌。实际上&#xff0c;JWT是一种紧凑的Claims声明格式&#xff0c;旨在用于空间受限的环境进行传输&#xff0c;常见的场景如HTTP授权请求头参数和URI查询参数。JWT会把…

基于若依的ruoyi-nbcio流程管理系统增加流程设计器支持自定义表单的选择与处理

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 因为之前不支持在流程设计器进行自定义业务表单的关联选择&#xff0c;所以这部分实现这个。 1、前端 对…

使用jedis连接虚拟机redis报错 Failed to connect to any host resolved for DNS name

问题描述&#xff1a; 导致该问题发生的原因可能是虚拟机没有开放6379端口。 解决方案&#xff1a; 首先检查redis.conf的bing配置是否被注释了&#xff0c;如果没有将其注释 第二步&#xff0c;将保护模式设置为no 第三步&#xff0c;接下来可以使用命令查看6379端口是否…

聚观早报 |京东11.11公布成绩单;2023数字科技生态大会

【聚观365】11月13日消息 京东11.11公布成绩单 2023数字科技生态大会 TikTok深受英国中小企业青睐 周鸿祎称大模型2年内可“进”智能汽车 双11全国快递业务量达 6.39 亿件 京东11.11公布成绩单 京东11.11公布成绩单&#xff1a;截至11月11日晚23:59&#xff0c;2023年京东…

ASD光谱仪使用

ASD光谱仪使用 光谱仪机器和电脑用来实时查看光谱曲线&#xff0c;以及控制光谱仪采集的时间、条数等各项参数。 在采集时&#xff0c;需要面向太阳&#xff0c;将待测的对象完全暴露于阳光下&#xff08;下图站位是错误的挡住光线了&#xff09;。探头放置于对象正上方50cm处…