跟我做一个可以聊天的 Visual Studio Code 插件

你每天有在用 Visual Studio Code 吗? 根据面向程序开发人员的时间跟踪工具 WakeTime 统计 , 在 2020 年全球开发者使用 Visual Studio Code 的时间合共 1800 万小时 。这是一个非常惊人的数字 。 你有想过开发一个 Visual Studio Code 插件吗 ?

Visual Studio Code 插件介绍

 Visual Studio Code 是一个免费 , 开源的编辑器 ,通过结合不同的插件 ,你可以完成不同应用场景的开发。 在 Visual Studio Code 中有超过 3万个插件,涉及编程语言,调试/测试,数据科学,云计算等。 通过 Visual Studio Code 提供的 API 你可以构建不同类型的插件。 Visual Studio Code 插件 AP包括了编程语言扩展 API (了解更多可以访问 Language Extensions Overview | Visual Studio Code ExtensionAPI )和 应用场景扩展 API (了解更多可以访问 Extension Guides | Visual Studio Code ExtensionAPI )。

如何开发一个 Visual Studio Code 插件

  1. 环境安装

    Visual Studio Code 开发需要 Node.js , 并通过 npm 安装好 Yeoman 和 Visual Studio Code 创建模版 。以下是相关语句

    npm install -g yo generator-code

    一个小建议: Visual Studio Code 插件支持用 TypeScript 和 JavaScript 开发 , 我推荐使用 TypeScript 去进行开发 。所以小伙伴也把 TypeScript 的环境安装好。
     
  2. 通过 Yoeman 创建一个简单的 Code 插件 ,执行以下命令创建一个 Visual Studio Code 项目

    yo code
     

    通过命令行的反馈你可以快速创建一个项目

    通过 Visual Studio Code 打开项目文件夹 

     

    点击 Run and Debug 运行这个项目,可以看到 Visual Studio Code 会新开一个窗口, 通过按 Ctrl+Shift+P ( Windows / Linux) 或 CMD+ Shift + P ( macOS ) 输入 Hello World , 可以看到右下角的显示

Visual Studio Code 插件项目主要文件

         1. package.json

         这是基本配置文件, 包含了开发该插件支持的 Visual Studio Code 版本,以及相关命令绑定等。

         2. src/extension.ts

        这是插件最主要的逻辑文件,你可以通过它对输入命令进行响应, 包括了 Language Server 的调用以及配置设定等 API 的调用。

以下是我画的基于这两个文件的一些要点和关联,希望可以帮助大家更好理解

 

聊天Visual Studio 插件的思考和架构

技术不断发展,开发人员会接触很多新的技术,新的应用场景。这个时候可能很多的开发者会选择在互联网上查找相关的信息 , 但我在想如果有一个插件放在 Visual Studio Code 是否更方便开发人员去查找和了解信息。我们之前了解了 Visual Studio Code 插件的构建方式 ,接下来我们想想如何做聊天部分 ? 在 Microsoft Azure 就有非常的 Bot Service ,通过 Bot Service 结合 Language Studio 中的文本分析,问答设定,实体关联等就可以构建我们的聊天工具,然后利用 Web 的方式嵌入到 Visual Studio Code 插件中就可以了。

 

搭建一个简单的问答机器人

  1. 去 Azure Portal 创建一个文本分析服务,记得选择自定义问题解答

     

  2. 创建成功后, 打开 Language Studio ( Loading ... ), 登陆绑定刚才创建的服务,就可以使用

  3.  关于问答语料 ,Language Studio 可以在自定义问题解答服务里面把非结构文件,变成问答的预料,在这里我用一个 MSDN 公众号上关于 Daper 1.7 更新的文档保存为 docx 文件作为语料 (分布式应用运行时 Dapr 1.7 发布 )

  4. 在 Language Studio 中, 创建一个自定义问题解答服务

     创建一个新项目,并上传上面生成的 docx 文件 ,生成关于 Dapr 问答的中文语料         

 

         5. 选择“编辑知识库” 在选择“测试”,可以看看效果

 

             注意: 你可以对相关问题的答案进行鉴别和调整

             6. 如果你确认无误后,就可以选择部署知识库,发布你的自定义问题解答

              7. 部署成功后,你就可以点击“创建机器人”生成基于 Dapr 知识点的问答机器人了

 

                创建会跳转到 Azure Portal 你只需要按照提示把问答机器人的名字,关联的区域以及 App Service 就创建成功了

               8. 选择刚创建好的问答机器人应用 ,选择在“Web 中测试聊天” 检查一下语料和机器人是否绑定成功

 


把问答机器人加到 Visual Studio Code 插件中



通过Azure 创建的问答机器人有多种部署方式,最简单的方式是通过 Web 的方式部署, 所以插件是通过 WebView 的方式绑定刚才创建的问答机器人。

  1. 从 Azure Portal 选择刚才创建的问答机器人资源,并选择“渠道”选择“ Web Chat ” 再选择 Default Web 获取 Key 和 相关代码 

       2. 在之前创建好的 VSCode 项目中修改 src/extension.ts 文件中的代码 ,替换一下如下代码
 

 let disposable = vscode.commands.registerCommand('chatbotdemo.helloWorld', () => {const panel = vscode.window.createWebviewPanel("chatRoom", "VSCode Chat Room", vscode.ViewColumn.Two, {enableScripts: true,retainContextWhenHidden: true,});panel.webview.html = `<body style="margin:0px;padding:0px;overflow:hidden"><iframe src="替换通过azure上获取的链接和相关key" frameborder="0" style="overflow:hidden;overflow-x:hidden;overflow-y:hidden;height:100%;width:100%;position:absolute;top:0px;left:0px;right:0px;bottom:0px" height="100%" width="100%"></iframe></body>`;});context.subscriptions.push(disposable);

       3. 我们在运行一下我们的插件项目,就可以启动我们的聊天插件了

 

后记


构建一个 Visual Studio Code 的插件并不难,关键要有多方面的技术知识 ,希望小伙伴能发挥更多的创意创建更多好玩的插件 。 和大家透露一下, 我会完善这个基于技术知识问答机器人插件的开发 ,让更多的开发者遇到问题和学习技能的时候能通过该插件进行沟通 。

相关资源

  1. 申请免费的 Azure 资源,请访问该链接 Create Your Azure Free Account Today | Microsoft Azure
  2. 申请学生版本的免费 Azure 资源,请访问该链接 面向学生的 Azure - 免费帐户额度 | Microsoft Azure
  3. Visual Studio Code API 相关文档 ,请访问该链接 Extension API | Visual Studio Code ExtensionAPI
  4. 关于 Language Studio 的相关知识 ,请访问该链接 什么是 Language Studio - Azure Cognitive Services | Microsoft Docs
  5. 了解 Azure Bot Service 的相关知识 ,请访问该链接 Azure Bot Service documentation - Bot Service | Microsoft Docs

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vscode常用的9个插件,推荐给你们

1. Settings Sync 开发必备神器之一&#xff01;可以帮助你在不同的设备之间同步vscode所有的配置、插件&#xff01;&#xff01;! 虽然配置有好几个步骤&#xff0c;但是一旦配置好了之后使用非常的方便&#xff0c;只需要记住快速上传和快速下载的快捷键即可。甚至你可以选…

VS Code实用插件推荐

一、外观优化插件 1.1 Chinese 中文插件包&#xff0c;看起来清晰明了&#xff0c;安装完重启vs即可生效&#xff1b; 1.2 Better Comments 一款美化注释的插件&#xff0c;可以根据不同种类的注释&#xff0c;显示不同的颜色&#xff0c;一目了然。还可以通过扩展配置文件…

VSCode插件推荐

1. VSCode汉化包插件 &#xff1a;Chinese (Simplified) (简体中文) Language VSCode汉化包&#xff0c;原始默认是英文的所以我们需要下一个中文插件。 2. VSCode自动补全标签 &#xff1a;Auto Close Tag Auto Close Tag 对Html或Xml文件自动创建结束标签&#xff1b; 如在…

VScode神仙插件,程序员必备

前言 Visual Studio Code(VS Code)是微软2015年推出的一个轻量但功能强大的源代码编辑器&#xff0c;基于 Electron 开发&#xff0c;支持 Windows、Linux 和 macOS 操作系统。它内置了对JavaScript&#xff0c;TypeScript和Node.js的支持并且具有丰富的其它语言和扩展的支持&a…

VSCode提高代码开发效率插件:(一)差异对比插件

写代码经常会用到代码对比的功能&#xff0c;以前常用独立的软件Merge&#xff0c;Vscode中也有类似功能的插件。之前开发单片机一直用的Keil&#xff0c;但是用Keil编译去掉BroseInformation速度提上来了但是没法函数跳转了。 Vscode可以解决这个问题了。SourceInsight之类的代…

VScode 常用插件推荐,非常全面

文章目录 一、主题美化PeacockMaterial ThemeMaterial Theme IconsbackgroundPower ModeRainbow CSVIndent RainbowPolacode 二、检查格式化ESLintPrettier - Code formatterPrettier ESLintStylelint 三、编程美化Document ThisBetter CommentsRainbow Brackets 四、集成插件D…

android 新浪微博客户端的表情功能的实现

这是一篇好文章&#xff0c;我转来收藏&#xff0c;技术的最高境界是分享。 最近在搞android 新浪微博客户端&#xff0c;有一些心得分享弄android客户端表情功能可以用以下思路1.首页把新浪的表情下载到本地一文件夹种&#xff0c;表情图片的命名要用新浪微博表情原来的命名比…

夸克两年SVIP试水

那就这样喽 以后不用了就是&#x1f644; 然后还有另外一个目的就是 影视资源可以直接上传&#xff0c;然后就可能不会那么卡 可是现在很多资源网站都有视频直链加密&#xff0c;你点击了云收藏他有很大几率是不会收藏成功的&#xff08;e.g.这个m3u8链接只有你这个IP才能用&a…

mix2 android 8.0,小米MIX2终于用上安卓8.0,米粉欢呼:MIUI9完美了

原标题&#xff1a;小米MIX2终于用上安卓8.0&#xff0c;米粉欢呼&#xff1a;MIUI9完美了 安卓8.0的系统出来啦&#xff01;部分小米用户已经可以用上了基于安卓8.0系统的MIUI9 7.12.18体验版&#xff0c;据说速度“快到飞起”&#xff01; 安卓8.0版本重点是提升了电池续航能…

Android模仿新浪微博(主页微博,评论界面)

主页微博&#xff1a; 获取当前登录用户及其所关注&#xff08;授权&#xff09;用户的最新微博接口&#xff1a;http://open.weibo.com/wiki/2/statuses/friends_timeline 代码详解&#xff1a; 1.异步get请求数据&#xff0c;由于数据中带图片&#xff0c;故需要多线程管理…

音视频技术开发周刊 | 291

每周一期&#xff0c;纵览音视频技术领域的干货。 新闻投稿&#xff1a;contributelivevideostack.com。 谷歌将 AI 芯片团队并入云计算部门 追赶微软和亚马逊 OpenAI推出的ChatGPT获得一定成功&#xff0c;微软是OpenAI的重要投资者&#xff0c;它将ChatGPT植入必应搜索&#…

生成式AI年度观察 | 技术及产品快速迭代,生成内容质量及安全性仍需提升

原文链接&#xff1a; https://mp.weixin.qq.com/s/ED9mo5pxuDdyZmrFe-u7qw 一、2022年生成式AI发展观察 1.扩散模型和ChatGPT能力出众&#xff0c;多种生成模态涌现 扩散模型Diffusion&#xff08;以下简称“扩散模型”&#xff09;和神经网络模型CLIP结合&#xff0c;文生图实…

可信AI年度观察 | 生成式AI技术及产品快速迭代,生成内容质量及安全性仍需提升

自2021年起&#xff0c;生成式人工智能&#xff08;以下简称“生成式AI”&#xff09;连续两年入选Gartner《Hype Cycle for Artificial Intelligence》&#xff0c;被认为是未来重要的AI技术趋势。2022年以来&#xff0c;生成式AI产品不断涌现&#xff0c;生成内容模态多样&am…

孙燕姿谈“AI孙燕姿”:她的反应让人意外,深入体验揭示其背后的真相与潜力!

目录 前言AI歌手简介AI歌手的技术原理孙燕姿对“AI孙燕姿”的看法结论个人感受一、你听过AI歌手的音乐呈现吗&#xff1f;作为听众你的感受如何&#xff1f;二、你认为这种新型演艺模式能否获得广泛的市场认可&#xff1f;原因是什么&#xff1f;三、你认为AI歌手会取代流行歌手…

吞噬还是撬动?开发者如何应对大模型风暴?

责编 | 禾木木 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; ChatGPT 的出现几乎改变了 AI 的风向&#xff0c;各方大佬都丝毫不吝惜溢美之词&#xff0c;比尔盖茨说这种人工智能技术出现的重大意义&#xff0c;不亚于互联网和个人电脑的诞生&#xff1b;英伟达…

《花雕学AI》ChatGPT跟人类的思考方式有什么不同?

一、ChatGPT是一个基于GPT-3.5的对话语言模型&#xff0c;它可以根据用户的输入生成多轮对话&#xff0c;也可以生成文本、代码、音乐等内容。ChatGPT的思考方式是利用大量的数据和强大的算力来学习语言的联合概率分布&#xff0c;从而能够根据上下文和目标生成合理和有趣的回复…

跟着ChatGPT学PsychoPy编程1:绘制一个随按键而变化的进度条

让GPT帮忙绘制一个随按键而发生的进度条&#xff08;说的越详细越好&#xff09;&#xff1a; from psychopy import visual, event, core # 创建窗口 win visual.Window(size(800, 600), fullscrTrue) #True表示全屏 # 创建矩形框 rect visual.Rect(win, width0.1, height0.…

抖音服务器带宽有多大,才能供上亿人同时刷?

字节跳动有多少台服务器&#xff1f;字节跳动大型的数据中心出口带宽是多少&#xff1f; 最近看到一个有意思的提问&#xff1a;抖音服务器带宽有多大&#xff0c;为什么能够供那么多人同时刷&#xff1f;今天来给大家科普一下。 图片来自 Pexels 抖音&#xff0c;百度&#xf…

月报总结|Moonbeam 5月份大事一览

本月&#xff0c;Moonbeam迎来了Uniswap V3的部署&#xff0c;经过一年的社区讨论&#xff0c;UniSwap V3终于以5000万个同意票通过&#xff0c;将在未来一个月内部署于Moonbeam&#xff0c;为Web3用户提供更广泛公链生态的多链体验&#xff0c;加速应用之间跨链交互&#xff0…

月报总结|Moonbeam 4月份大事一览

本月&#xff0c;Moonbeam生态扶持进入下一里程碑&#xff01;探索更多优质的早期Web3项目&#xff0c;Moonbeam Accelerator Program已公布进入最终加速孵化阶段的10家初创公司&#xff0c;这些幸运项目将在未来3个月接受顶级孵化公司和专业投资机构的培训&#xff0c;于下半年…