DevChat:开发者专属的基于IDE插件化编程协助工具

news2024/10/7 12:27:48

DevChat:开发者专属的基于IDE插件化编程协助工具

  • 一、DevChat 的介绍
    • 1.1 DevChat 简介
    • 1.2 DevChat 优势
  • 二、DevChat 在 VSCode 上的使用
    • 2.1 安装 DevChat
    • 2.2 注册 DevChat
    • 2.3 使用 DevChat
  • 三、DevChat 的实战
  • 四、总结

一、DevChat 的介绍

在AI浪潮的席卷下,开发者的编程领域也在经历着一场前所未有的变革。在这个过程中,AI智能编程工具的出现为开发者们提供了一种全新的编程方式。除了ChatGPT以外,国内也有一批互联网大厂出品的大模型,如百度的文心一言、阿里的通义千问、科大讯飞的讯飞星火等,也衍生出各种协助型工具,如DevChat。

1.1 DevChat 简介

DevChat 是由国内领先的研发效能分析平台思码逸精心打造,它为开发者提供了一种全新的编程体验。基于 IDE 开发的 DevChat 插件,集成了多种主流大模型的AI编程工具,帮助提升程序员的编程效率,获得编程灵感,支持自然语言编程、代码编写、代码生成、代码补全等功能。

DevChat 还提供了项目智能分析,通过对代码的语义分析、情感分析、聚类等技术,为项目提供实时的健康度评估,帮助开发者提前发现问题,全面提高项目质量。

此外,DevChat还提供了智能化协同工作流,开发者可以在群组中完成快速沟通、任务分发、代码评审等工作,大幅提高团队协作效率。

DevChat官网:www.devchat.ai/zh

在这里插入图片描述

1.2 DevChat 优势

  • 国内用户也能免短信注册无障碍使用

  • 一站式服务,集成多种主流大模型,多种模板快速响应,并且可以根据需求随心切换

  • 基于IDE的插件化使用体验更好,减少复制粘贴网页内容的操作,一键插入生成的代码

  • 对上下文的精确控制,同类型的工具往往会过度猜测用户需要在提示中输入什么内容

  • 简单可扩展的提示词目录,开放提示词扩展,满足团队和个人自定义需求,轻松将您自己的提示模板集成到 DevChat 中,避免大量的工程工作。

在这里插入图片描述

二、DevChat 在 VSCode 上的使用

2.1 安装 DevChat

打开宇宙最强IDE VSCode 软件,在扩展里搜索devchat,点击安装,等待插件及其依赖安装完成,据我测试安装东西比较多,安装时间不是很短,这个时候我们就可以先去注册一下DevChat账户,以便获得Access Key在DevChat中使用其功能。

在这里插入图片描述

2.2 注册 DevChat

可以在官网的右上角的登录选项进入注册/登录界面,或者直接访问此地址:web.devchat.ai,点击Sign up进行注册,输入用户名邮箱地址,此邮箱地址用于接收Access Key和后续的登录验证码。完成注册后会接收到一封注册成功的邮件,包含Access Key和使用指南信息。

在这里插入图片描述

点击Sign in进行登录,登录成功后显示如下界面,包含剩余Tokens和付费信息

在这里插入图片描述

2.3 使用 DevChat

和ChatGPT类似,使用 Devchat 也需要 AccessKey,由于国内环境问题,我们无法使用ChatGPT,即使拥有OpenAI Key,也无法使用的。但通过Devchat,我们就可以使用ChatGPT的大模型了,选择Set DevChat Key

在这里插入图片描述

复制注册邮件中的Your Access Key,粘贴到输入栏,回车即可。

在这里插入图片描述

完成安装后,我们可以看到右下角的状态栏显示✅DevChat,鼠标悬浮显示ready to chat,即表明依赖安装完成。我们可以看到 DevChat 支持超多大模型,如GPT-3.5、GPT-4、CLAUDE-2、XINGHUO-2,当然使用不同模型消耗的Tokens是不一样的,复杂任务非 GPT-4 莫属,简单任务交给低成本模型,组合使用效能最佳。

在这里插入图片描述

三、DevChat 的实战

Q:请写一个贪吃蛇小游戏

A:下面是一个简单版的贪吃蛇JS程序:

<!DOCTYPE html>
<html>
<head>
    <style>
        #game-board {
            position: relative;
            height: 300px;
            width: 300px;
            border: 1px solid black;
        }
        .dot {
            position: absolute;
            height: 20px;
            width: 20px;
            background-color: #000;
        }
        #snake-head {
            background-color: #0f0;
        }
    </style>
</head>
<body>
    <div id="game-board"></div>
    <script>
        var direction = 'right';
        var snake = [{ top: 0, left: 0 }];
        var apple = null;

        function collisionWithSelf() {
            var head = snake[0]; 
            for (var i=1; i<snake.length; i++) {
                if (head.top === snake[i].top && head.left === snake[i].left){
                    return true;
                }
            }
        }

        function generateApple() {
            var left = Math.floor( Math.random() * 15 ) * 20;
            var top = Math.floor( Math.random() * 15 ) * 20;
            apple = { left: left, top: top };
        }

        function gameLoop() {
            var head = Object.assign({}, snake[0]); 
            switch(direction) {
                case 'left': head.left -= 20; break;
                case 'up': head.top -= 20; break;
                case 'right': head.left += 20; break;
                case 'down': head.top += 20; break;
            }
            
            snake.unshift(head); 

            if (apple && apple.top === head.top && apple.left === head.left) {
                apple = null;
            } 
            else {
                snake.pop(); 
            }   
            if (collisionWithSelf()) {
                return alert('Game over');
            }
            draw();
            setTimeout(gameLoop, 1000);
        }

        function draw() {
            var gameBoard = document.getElementById('game-board');
            gameBoard.innerHTML = "";
            snake.forEach(function(dot, index) {
                var dotElement = document.createElement('div');
                dotElement.className = 'dot';
                dotElement.id = (index === 0) ? 'snake-head' : '';
                dotElement.style.left = `${dot.left}px`;
                dotElement.style.top = `${dot.top}px`;
                gameBoard.appendChild(dotElement);
            });
            if (apple == null) {
                generateApple();
            }
            var appleElement = document.createElement('div');
                appleElement.className = 'dot';
                appleElement.style.left = `${apple.left}px`;
                appleElement.style.top = `${apple.top}px`;
            gameBoard.appendChild(appleElement);
        }
        window.addEventListener('keydown', function(e) {
            switch(e.key) {
                case 'ArrowUp': direction = 'up'; break;
                case 'ArrowDown': direction = 'down'; break;
                case 'ArrowLeft': direction = 'left'; break;
                case 'ArrowRight': direction = 'right'; break;
            }
        });
        gameLoop();
    </script>
</body>
</html>

该代码包含了页面和JavaScript代码。用户使用ArrowUp,ArrowDown,ArrowRight, ArrowLeft 箭头键控制贪吃蛇。如果贪吃蛇碰到自己,游戏结束,并弹出游戏结束的提示框。


将生成的代码插入到新建的snake.html中,使用浏览器打开即可成功运行,效果见下图,绿色块表示,黑色块表示豆子,使用键盘上的方向键即可操作前进的方向。当然这只是一个简易版的贪吃蛇模型,还有很多可优化的功能点,如连续按同一方向还不能加快速度,碰撞墙壁游戏未结束甚至还能再次回来。
在这里插入图片描述
这里使用的是GPT-4,代码思考时间很短,代码输出很快,体验很多,至少可以一次性正常运行起来。

四、总结

仅当人工智能真正增加价值时才使用它。我们对人工智能现实能力的误解甚至比法学硕士的幻觉更严重。我们需要的是一种能够提高生产力的工具,而不仅仅是一个实验。DevChat 是一个开源平台,使开发人员能够更有效地将 AI 集成到代码生成和文档中。DevChat 的目标不仅仅是简单的代码自动完成和对代码片段的有限操作。DevChat 为开发人员提供了一种非常实用且有效的方式来与大型语言模型 (LLM) 进行交互和协作。作为集成人工智能技术的智能编程工具,为开发者提供快速、高效、智能化的编程环境,让开发者能够更加专注于创新,而非繁琐的编码过程。

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

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

相关文章

不同优化器的应用

简单用用&#xff0c;优化器具体参考 深度学习中的优化器原理(SGD,SGDMomentum,Adagrad,RMSProp,Adam)_哔哩哔哩_bilibili 收藏版&#xff5c;史上最全机器学习优化器Optimizer汇总 - 知乎 (zhihu.com) import numpy as np import matplotlib.pyplot as plt import torch # …

北邮22级信通院数电:Verilog-FPGA(9)第九周实验(2)实现下降沿触发的JK触发器(带异步复位和置位功能)

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章&#xff0c;请访问专栏&#xff1a; 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 JK.v module JK (input clk,input J,input K,input…

在虚拟环境下安装python包

PyCharm可以自己给项目创建虚拟环境&#xff0c;示例如下&#xff1a; 首先通过File—>Setting—>Project&#xff1a;【项目名称】—>Project Interpreter—>设置—>add—>Virtuallenv Environment配置虚拟环境即可 添加解释器&#xff1a; 当创建虚拟环…

MATLAB Simulink和SMART PLC水箱液位高度PID控制(联合仿真)

SMART PLC 向导PID的详细介绍请查看下面文章链接: S7-200 SMART PLC PID向导详细介绍(如何实现P、PD、PID控制器)-CSDN博客文章浏览阅读1k次。这篇博客主要介绍SMART PLC PID向导的使用,PID控制相关的其它内容请查看专栏系列文章,常用链接如下:SMART PLC PID负压控制(过程…

python 使用pygame制作的打飞机小游戏

python基础使用pygame模块实现打飞机小游戏&#xff0c;有最高分记录&#xff0c;每次游戏的分数都会和最高分进行比较然后记录下来。 基础代码实现&#xff1a; class Bullet:def __init__(self):# 初始化成员变量&#xff0c;x&#xff0c;y&#xff0c;imageself.x 0self…

说说React服务端渲染怎么做?原理是什么?

一、是什么 在SSR中,我们了解到Server-Side Rendering ,简称SSR,意为服务端渲染 指由服务侧完成页面的 HTML 结构拼接的页面处理技术,发送到浏览器,然后为其绑定状态与事件,成为完全可交互页面的过程 其解决的问题主要有两个: SEO,由于搜索引擎爬

【Linux】你是否还在为安装虚拟机而烦恼?这篇博客将告诉你如何快速搭建Linux环境

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 如果文章对…

【04】Istio的pilot流量分发机制

4.1 Pilot配置分发机制 Pilot负责网格数据平面相关配置信息的获取&#xff0c;生成&#xff0c;和分发&#xff0c;它通过Service Registry获取网格配置信息并将其转换为XDS接口的标准数据格式&#xff0c;而后经gRPC分发至相关的Envoy; Service Registry&#xff1a;服务注册表…

No195.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

智能优化算法(一):伪随机数的产生

文章目录 1.伪随机数介绍1.1.伪随机产生的意义1.2.伪随机产生的过程 2.产生U(0,1)的乘除同余法2.1.原始的乘同余法2.2.改进的乘同余法 3.产生正态分布的伪随机数4.基于逆变法产生伪随机数 1.伪随机数介绍 1.1.伪随机产生的意义 1.随机数的产生是进行随机优化的第一步也是最重要…

js基础之对象

目录 一、对象定义 二、声明对象&#xff1a;object 三、对象的操作 四、遍历对象 五、渲染表格案例 六、Math内置对象 七、随机函数 八、日期对象 封装时间函数 封装倒计时函数 九、案例 随机⽣成颜⾊的案例 随机点名 一、对象定义 对象 &#xff1a; 对象…

轻量级 SSO 方略:基于 OIDC 规范(二)

上一篇文章介绍了 SSO 相关的基础数据&#xff0c;这样有了 ClientId 和密钥后&#xff0c;我们就要准备客户端这边的代码。客户端当前指的便是一个网站&#xff08;也就是 RP&#xff09;&#xff0c;这个网站要求有会员功能&#xff0c;典型地网站导航上通常会有“注册”或“…

解释tqdm模块显示进度条:

1. 在Python中&#xff0c;当你使用tqdm模块&#xff08;一个快速、可扩展的Python进度条库&#xff09;时&#xff0c;你可能会看到类似的输出&#xff1a;[6:20:38<6:34:14, 31.25s/it]。 这个输出提供了关于循环进度的详细信息&#xff1a; 6:20:38: 这是已经过去的时…

基于猫群算法优化概率神经网络PNN的分类预测 - 附代码

基于猫群算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于猫群算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于猫群优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络的光滑…

深度学习之基于Pytorch服装图像分类识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介系统组成1. 数据集准备2. 数据预处理3. 模型构建4. 模型训练5. 模型评估 PyTorch的优势 二、功能三、系统四. 总结 一项目简介 深度学习在计算机视觉领域的…

在 uniapp 中 一键转换单位 (px 转 rpx)

在 uniapp 中 一键转换单位 px 转 rpx Uni-app 官方转换位置利用【px2rpx】插件Ctrl S一键全部转换下载插件修改插件 Uni-app 官方转换位置 首先在App.vue中输入这个&#xff1a; uni.getSystemInfo({success(res) {console.log("屏幕宽度", res.screenWidth) //屏…

Obsidian同步技巧

Obsidian介绍 Obsidian支持Markdown语法&#xff0c;所见即所得。 软件支持多仓库功能&#xff0c;支持笔记文件夹和分层文件夹&#xff0c;等功能。 值得一提的是&#xff0c;软件的笔记同步功能需要付费。 同步技巧 官方同步方法 若资金充足&#xff0c;则可在Obsidian官网…

服务器常见问题排查(一)—cpu占用高、上下文频繁切换、频繁GC

一般而言cpu异常往往还是比较好定位的。原因包括业务逻辑问题(死循环)、频繁gc以及上下文切换过多。而最常见的往往是业务逻辑(或者框架逻辑)导致的&#xff0c;可以使用jstack来分析对应的堆栈情况。 使用jstack排查占用率问题 当使用jstack排查占用率问题时&#xff0c;可以…

5+干湿结合的佳作,可另外添加分析升级

今天给同学们分享一篇生信文章“PCTAIRE Protein Kinase 1 (PCTK1) Suppresses Proliferation, Stemness,and Chemoresistance in Colorectal Cancer through the BMPR1B-Smad1/5/8 Signaling Pathway”&#xff0c;这篇文章发表在Int J Mol Sci期刊上&#xff0c;影响因子为5.…

Hafnium之工程目录结构介绍

安全之安全(security)博客目录导读 Hafnium存储库包含Hafnium源代码以及与集成测试和单元测试相关的测试代码。为了帮助集成测试,存储库还包含一个用于分区的小型客户端库,以及构建和运行测试所需的预构建工具二进制文件。构建系统由gn支持。 每个平台都有一个单独的…