硬核教程!手把手教你開發(fā)自己的 ChatGPT
對不起,我又標(biāo)題黨了,終于成功引起了你的注意,不過這篇肯定是干貨。讓沒有 Plus 會員的小伙伴也能用上低配版 代碼解釋器(Code )功能,秘訣就是自己造輪子,話不多少,先看效果,然后我會講解具體實現(xiàn),最后送上源碼。
效果演示執(zhí)行代碼
按照需求寫代碼并自動進(jìn)行代碼功能測試驗證,比如寫一個限流算法
執(zhí)行代碼演示
數(shù)據(jù)分析
獲取國家統(tǒng)計局下載各省年度 GDP 數(shù)據(jù),直接上傳文件比較四個直轄市 GDP 數(shù)據(jù)
數(shù)據(jù)分析演示
實現(xiàn)原理
代碼解釋器(Code )實際上就是一個 REPL(讀取-評估-打印循環(huán)),例如給它一個文件(例如 CSV 文件),然后可以要求它轉(zhuǎn)換文件或從文件中提取一些信息,甚至使用該文件作為計算的輸入。既然已經(jīng)有 API(GPT-4 和 GPT-3.5) 可用于訪問代碼解釋器的底層模型,再疊加 工程,是存在構(gòu)建自己本地版本的可能的,即 REPL + LLM ,一個通過執(zhí)行代碼來完成日常任務(wù)的個性化工具,下面就是應(yīng)用架構(gòu)
應(yīng)用架構(gòu)圖
解釋 內(nèi)核與具體語言無關(guān)它提供了一個計算內(nèi)核,相當(dāng)于一個可以執(zhí)行代碼的環(huán)境這個內(nèi)核通過一種協(xié)議與外界交互,這種協(xié)議將用戶的標(biāo)準(zhǔn)輸入()連接到內(nèi)核的 REPL(Read Loop,讀取評估打印循環(huán))內(nèi)核執(zhí)行代碼后,將執(zhí)行結(jié)果、標(biāo)準(zhǔn)輸出()和標(biāo)準(zhǔn)錯誤()反饋回來,顯示給用戶通過這種協(xié)議, 內(nèi)核可以執(zhí)行任何語言的代碼,并將執(zhí)行結(jié)果返回給用戶
內(nèi)核協(xié)議主要定義了
在這一協(xié)議基礎(chǔ)上,可以用任意通信機制來實現(xiàn)內(nèi)核和客戶端之間的交互,這里采用了 ( 實現(xiàn)的消息隊列庫),理論上也可以用 HTTP 請求、用 等實現(xiàn)。
整體執(zhí)行流程用戶在頁面輸入指令,發(fā)送到 應(yīng)用后端后臺結(jié)合設(shè)計好的 將用戶的指令轉(zhuǎn)換后發(fā)送到 LLM獲得 LLM 的響應(yīng)(代碼內(nèi)容)后, 通過 將代碼內(nèi)容發(fā)送到 內(nèi)核 執(zhí)行后,將結(jié)果通過 接口返回到( 流的方式)前端頁面展示結(jié)果 包制作
最后將使用 構(gòu)建的 SPA 打包到 包中,再把這個 包發(fā)布到 PyPI。這個思路借鑒了 ,但是技術(shù)細(xì)節(jié)上不同, 原先用的是 來配置 應(yīng)用,這里使用更先進(jìn)的 Vite 來打包 SPA。簡單來說,就是將前端代碼打包到后端 包中,以實現(xiàn)前后端集成部署。
名詞解釋
支持的功能列表源碼獲取
源版本的實現(xiàn)是不支持中文的,傳送地址
中文支持
效果演示中可以正常解析中文內(nèi)容,是因為我做了二次開發(fā),支持了中文內(nèi)容的理解以及中文字體的支持,可以后臺回復(fù)代碼助手獲取源碼。
聲明:本站所有文章資源內(nèi)容,如無特殊說明或標(biāo)注,均為采集網(wǎng)絡(luò)資源。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系本站刪除。