主頁 > 企業開發 > 我做了一個 VSCode 插件版的 ChatGPT

我做了一個 VSCode 插件版的 ChatGPT

2023-05-12 09:20:39 企業開發

大家好,我是風箏

其實很早之前就想學學 VSCode 插件開發了,但是又不知道做什么,加上我這半吊子前端水平,遲遲沒有動手,

最近 ChatGPT 火的一塌糊涂,我也一直在用,真的非常好用,有些問題之前需要 Google 搜索,現在用 ChatGPT 基本上都能直接解決,效率提升了不少,

但是吧,瀏覽器和 IDE 來回切換又很麻煩,所以我靈機一動,那就開發個 ChatGPT 插件吧,即可以學習學習 VSCode 插件開發,又可以做一個方便的效率工具,豈不是一舉兩得,美哉美哉,

于是我就動手寫了下面這個插件,叫做 mini ChatGPT,現在已經發布到 VSCode 插件市場了,

有條件的同學可以安裝一下,試試效果如何,

插件功能特點

  • 界面簡潔,沒有多余的干擾;
  • 像 ChatGPT 官網輸出效果一致,打字效果實時輸出;
  • 支持兩輪背景關系(太多了浪費 tokens),大致等于支持背景關系;
  • 代碼美化+格式化,并且可以一鍵復制,直接粘貼到 vscode 中;

插件安裝

當然了,這是需要正確的上網姿勢,

你可以直接在 VSCode 的商店直接搜索 mini ChatGPT安裝,

也可以到應用市場上安裝,

插件地址:https://marketplace.visualstudio.com/items?itemName=fengzheng.code-chatgpt-assistant

插件使用

  1. 點擊查看->命令面板,或者使用快捷鍵(MacOS: Shift + Command + P,Windows:Shift + Control + P
  2. 輸入 Chat 并回車,
  3. 如果是首次使用,會彈出提示輸入框,在此輸入 ChatGPT 的 API,使用的就是原滋原味的 ChatGPT API 介面,官網上都寫的很清楚,所以需要使用插件的小伙伴提供自己賬號的 API key,下面有介紹如何獲取ChatGPT API key,
  4. 之后就可以使用啦
  5. 如果之后想更換 ChatGPT 的 API key,在命令面板中輸入 ChatGPT API 即可,

使用建議

此插件只有一個 webview 實作,打開之后獨占一個 tab,可以設定向左或向右拆分,然后在左側使用此插件向 ChatGPT 提問,右側是代碼檔案,這樣就不用來回切換了,而且可以將代碼片段一鍵復制,然后直接運行,

獲取 ChatGPT API key

  1. 先準備好正確的上網工具,不要用亞洲節點,

  2. 之后到 OpenAI 官網注冊賬號,

  3. 到個人中心 創建一個 API key,

開發歷程

作為一個后端開發,我的前端水平是非常一般的,所以代碼中有瑕疵的地方還請見諒,對了,代碼已經放到 GitHub 上了,

倉庫地址:https://github.com/huzhicheng/vscode-ChatGPT

VSCode 插件開發,官方建議是用 TypeScript 開發,所以專案完全采用了 TS 開發,由于功能比較簡單,沒有那么多復雜的設定,由于邊學邊做,太復雜的也沒考慮,整個插件的核心其實就是一個 webview,在webview中實作界面布局和樣式,難點就在于webview與插件本身來回的資料傳遞,但也都是常規用法,

整個寫代碼的程序其實也就幾個小時,當然程序中的遇到的一些問題我都是跟 ChatGPT 提問的,包括樣式都是直接描述需求,ChatGPT 給我一個大致的框架,我再微調一下就可以了,

所以這樣看下來,其實是我和 ChatGPT 合作開發的,

后來發布到應用商店,寫 readme 介紹和使用說明花了一些時間,

問題和建議

目前的版本功能比較簡單,沒有 ChatGPT 官方的聊天記錄串列功能,如果真的有人用的話,后期考慮加上,

由于ChatGPT 官方并未提供背景關系的 API 支持,所以只能采用其他方式模仿背景關系能力,目前的做法是記錄前兩輪提問和回答,然后在下次提問的時候,將前兩輪的提問和回答告訴 ChatGPT ,并且明確告訴 ChatGPT,例如下面這樣,

第一輪問題:你好,

第一輪回答:你好,請問有什么要幫忙的嗎?

第二論問題:請幫我寫一段 Python 爬蟲抓取知憾訓答的 demo,

第二輪回答:好的,下面是一段抓取知憾訓答的 Python 示例,....省略多行代碼,

第三輪問題:幫我改成 Java 的,

這時候,我會將實際的 prompt 改成下面這樣的,

下面中括號部分是前兩輪的問題和回答,只用作參考,[my question is:"你好",your anwser is:"你好,請問有什么要幫忙的嗎?".my question is:"請幫我寫一段 Python 爬蟲抓取知憾訓答的 demo,",your anwser is:"好的,下面是一段抓取知憾訓答的 Python 示例,....省略多行代碼,".]

下面引號包含的這部分是真正的問題:"幫我改成 Java 的,"

采用這種方式,幾乎可以模擬背景關系的操作,但是偶爾會出現錯亂,這塊兒還有優化空間,還會繼續優化,

如果各位小伙伴使用程序中發現什么問題,或者有什么更好的建議,都可以加我好友直接跟我說,

歡迎捧場,趕緊用一用吧,覺得好用的話,可以推薦給身邊的小伙伴也用一下,

人生沒有回頭路,珍惜當下,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/552248.html

標籤:JavaScript

上一篇:js 樹形結構根據id獲取父級節點元素

下一篇:返回列表

標籤雲
其他(158885) Python(38128) JavaScript(25415) Java(18033) C(15226) 區塊鏈(8265) C#(7972) AI(7469) 爪哇(7425) MySQL(7177) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5338) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4570) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2432) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1972) 功能(1967) Web開發(1951) HtmlCss(1936) python-3.x(1918) C++(1915) 弹簧靴(1913) xml(1889) PostgreSQL(1875) .NETCore(1860) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • IEEE1588PTP在數字化變電站時鐘同步方面的應用

    IEEE1588ptp在數字化變電站時鐘同步方面的應用 京準電子科技官微——ahjzsz 一、電力系統時間同步基本概況 隨著對IEC 61850標準研究的不斷深入,國內外學者提出基于IEC61850通信標準體系建設數字化變電站的發展思路。數字化變電站與常規變電站的顯著區別在于程序層傳統的電流/電壓互 ......

    uj5u.com 2020-09-10 03:51:52 more
  • HTTP request smuggling CL.TE

    CL.TE 簡介 前端通過Content-Length處理請求,通過反向代理或者負載均衡將請求轉發到后端,后端Transfer-Encoding優先級較高,以TE處理請求造成安全問題。 檢測 發送如下資料包 POST / HTTP/1.1 Host: ac391f7e1e9af821806e890 ......

    uj5u.com 2020-09-10 03:52:11 more
  • 網路滲透資料大全單——漏洞庫篇

    網路滲透資料大全單——漏洞庫篇漏洞庫 NVD ——美國國家漏洞庫 →http://nvd.nist.gov/。 CERT ——美國國家應急回應中心 →https://www.us-cert.gov/ OSVDB ——開源漏洞庫 →http://osvdb.org Bugtraq ——賽門鐵克 →ht ......

    uj5u.com 2020-09-10 03:52:15 more
  • 京準講述NTP時鐘服務器應用及原理

    京準講述NTP時鐘服務器應用及原理京準講述NTP時鐘服務器應用及原理 安徽京準電子科技官微——ahjzsz 北斗授時原理 授時是指接識訓通過某種方式獲得本地時間與北斗標準時間的鐘差,然后調整本地時鐘使時差控制在一定的精度范圍內。 衛星導航系統通常由三部分組成:導航授時衛星、地面檢測校正維護系統和用戶 ......

    uj5u.com 2020-09-10 03:52:25 more
  • 利用北斗衛星系統設計NTP網路時間服務器

    利用北斗衛星系統設計NTP網路時間服務器 利用北斗衛星系統設計NTP網路時間服務器 安徽京準電子科技官微——ahjzsz 概述 NTP網路時間服務器是一款支持NTP和SNTP網路時間同步協議,高精度、大容量、高品質的高科技時鐘產品。 NTP網路時間服務器設備采用冗余架構設計,高精度時鐘直接來源于北斗 ......

    uj5u.com 2020-09-10 03:52:35 more
  • 詳細解讀電力系統各種對時方式

    詳細解讀電力系統各種對時方式 詳細解讀電力系統各種對時方式 安徽京準電子科技官微——ahjzsz,更多資料請添加VX 衛星同步時鐘是我京準公司開發研制的應用衛星授時時技術的標準時間顯示和發送的裝置,該裝置以M國全球定位系統(GLOBAL POSITIONING SYSTEM,縮寫為GPS)或者我國北 ......

    uj5u.com 2020-09-10 03:52:45 more
  • 如何保證外包團隊接入企業內網安全

    不管企業規模的大小,只要企業想省錢,那么企業的某些服務就一定會采用外包的形式,然而看似美好又經濟的策略,其實也有不好的一面。下面我通過安全的角度來聊聊使用外包團的安全隱患問題。 先看看什么服務會使用外包的,最常見的就是話務/客服這種需要大量重復性、無技術性的服務,或者是一些銷售外包、特殊的職能外包等 ......

    uj5u.com 2020-09-10 03:52:57 more
  • PHP漏洞之【整型數字型SQL注入】

    0x01 什么是SQL注入 SQL是一種注入攻擊,通過前端帶入后端資料庫進行惡意的SQL陳述句查詢。 0x02 SQL整型注入原理 SQL注入一般發生在動態網站URL地址里,當然也會發生在其它地發,如登錄框等等也會存在注入,只要是和資料庫打交道的地方都有可能存在。 如這里http://192.168. ......

    uj5u.com 2020-09-10 03:55:40 more
  • [GXYCTF2019]禁止套娃

    git泄露獲取原始碼 使用GET傳參,引數為exp 經過三層過濾執行 第一層過濾偽協議,第二層過濾帶引數的函式,第三層過濾一些函式 preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'] (?R)參考當前正則運算式,相當于匹配函式里的引數 因此傳遞 ......

    uj5u.com 2020-09-10 03:56:07 more
  • 等保2.0實施流程

    流程 結論 ......

    uj5u.com 2020-09-10 03:56:16 more
最新发布
  • 我做了一個 VSCode 插件版的 ChatGPT

    大家好,我是風箏 其實很早之前就想學學 VSCode 插件開發了,但是又不知道做什么,加上我這半吊子前端水平,遲遲沒有動手。 最近 ChatGPT 火的一塌糊涂,我也一直在用,真的非常好用,有些問題之前需要 Google 搜索,現在用 ChatGPT 基本上都能直接解決,效率提升了不少。 但是吧,瀏 ......

    uj5u.com 2023-05-12 09:20:39 more
  • js 樹形結構根據id獲取父級節點元素

    封裝函式 // 傳入 id、樹形結構資料 export function getParentTree(id, tree) { let arr = [] //要回傳的陣列 for (let i = 0; i < tree.length; i++) { let item = tree[i] arr = ......

    uj5u.com 2023-05-12 09:20:14 more
  • Layui+dtree實作左邊分類串列,右邊資料串列

    效果如下 代碼實作 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>帖子類別</title> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Comp ......

    uj5u.com 2023-05-12 09:14:44 more
  • 手機號一鍵授權登錄頁面

    原始碼地址:https://ext.dcloud.net.cn/plugin?id=12272 ......

    uj5u.com 2023-05-11 08:25:06 more
  • Nuxt3.0中使用EChart可視化圖表📊

    😊在Nuxt3.0專案中用到了可視化圖表📊,于是我用了EChart可視化圖表庫。但是在官網我沒有找到針對在Nuxt3.0中使用EChart的方法,于是在這里記錄我的引入EChart并簡單使用的步驟。需要宣告的是,本文只針對在Nuxt3.0專案中使用EChart.js庫的可視化圖表進行講解,不針對 ......

    uj5u.com 2023-05-11 08:25:00 more
  • 記錄--ThreeJs手搓一個羅盤特效

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 先上效果 前言 最近在學Three.js.,對著檔案看了一周多,正好趕上碼上掘金的活動,就順便寫了一個小demo,手搓一個羅盤特效。 太極 先來看一下太極的實作方式,這里我們使用CircleGeometry,將其分解開來可以看出是由圓形和 ......

    uj5u.com 2023-05-11 08:24:49 more
  • 配置式表單渲染器的實作

    我們是袋鼠云數堆疊 UED 團隊,致力于打造優秀的一站式資料中臺產品。我們始終保持工匠精神,探索前端道路,為社區積累并傳播經驗價值。。 本文作者:奇銘(掘金) 需求背景 前段時間,離線計算產品接到改造資料同步表單的需求。 一方面,資料同步模塊的代碼可讀性和可維護性比較差,相對應的,在資料同步模塊開發新 ......

    uj5u.com 2023-05-11 08:23:24 more
  • SAP 開發環境搭建入門

    自2006年畢業之后一直從事企業管理軟體的開發與維護作業,期間經歷了Windows Forms, ASP.NET Web Forms, WPF, ASP.NET MVC, AngularJS TypeScript等技術階段。作業幾年后有幸運進入一家規范化的ERP軟體開發公司,接觸并深入了解ERP這個 ......

    uj5u.com 2023-05-11 08:21:21 more
  • ArcGIS Pro 3.0.1破解版安裝步驟

    記錄ArcGIS Pro 3.0.1破解版安裝步驟。 1、先安裝windowsdesktop組件:windowsdesktop-runtime-6.0.5-win-x64.exe 2、安裝ArcGIS Pro3.0軟體:ArcGISPro_30_182209.exe 等待安裝完成: 安裝完成后先不運 ......

    uj5u.com 2023-05-11 08:21:02 more
  • arcmap如何使用PyScripter進行編輯 以及使用程序中遇到的無法解

    一、環境配置 1.安裝PyScripter 安裝檔案連接: 鏈接:https://pan.baidu.com/s/1HauyVCs6UoXLFam0nkRtxA 提取碼:a6c3 2.arcmap內配置環境 選單欄,地理處理 地理處理選項 將腳本工具編輯器和除錯程式均設定為 安裝PyScripter ......

    uj5u.com 2023-05-11 08:20:50 more