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