快轉到主要內容

即時預覽AI生成程式碼的輸出,Open WebUI的Artifacts功能介紹

· 民國114年乙巳年
·
切換繁體/簡體
分類   開源AI應用 大型語言模型
標籤   Text to Speech Ollama Voice Cloning
目錄
Open WebUI與Ollama教學 - 點選展開系列文
8: 現在位置

我們知道語言模型能夠用來生成程式碼。Open WebUI回答問題的時候一律是以Markdown排版,如果遇到Mermaid語法還會自動渲染為圖表。

那麼可否預覽程式語言「輸出」的結果呢?

Open WebUI有一個類似ChatGPT Canvas的功能,叫做Artifact,能在網頁裡面即時預覽程式輸出或者渲染的結果。

目前支援的程式語言包含HTML、CSS、JavaScript、SVG、Python。未來可能還會支援更多程式語言。

下面Ivon帶大家來看看,如何使用這個功能。

1. 選用專為寫程式特化的模型
#

Ollama Library提供的模型,很多都有*-coder的變種,代表它們有針對程式碼生成做微調。

Ivon這裡使用qwen2.5-coder 7B模型做示範。

如果打算生成很長的程式碼,並反覆與AI檢討做修正的話,那麼建議將語言模型的上下文長度(context length)設定為4096以上。

2. 生成程式碼並解釋用途
#

這是最基本的功能,叫AI生成程式碼,程式碼的部份會出現突出顏色顯示的區塊。

用滑鼠選取內容,能夠叫AI更細緻的解釋這一段程式在做什麼。

Open WebUI的聊天欄還有一個快捷按鈕,勾選「程式碼解釋器」之後貼上程式碼,AI便會解釋程式的用法,並嘗試模擬執行,告訴你會出現什麼結果。目前僅支援Python,透過Pyodide環境執行,下文會進一步討論。

3. 使用Artifacts預覽網頁渲染結果
#

Open WebUI的Artifacts功能,支援HTML、CSS、JavaScript渲染,也可以引入外部的JavaScript函式庫。亦能透過文字描述,要求語言模型生成SVG並預覽之。

適合測試網頁原型,或是開發單頁的應用程式。

一偵測到網頁程式碼,Open WebUI網頁的右邊會出現渲染面板。

要語言模型生成網頁,可能需要在語言模型的提示詞加入「生成完整HTML」的提示,不然會變成分段操作。

提示詞範例:生成一個完整的HTML網頁,規劃個人履歷表的原型。使用Tailwind CSS裝飾藍色風格,網頁正上方使用SVG的圓形圖案當頭像,並加入「聯絡我」的按鈕。

生成的程式碼允許在之後與AI的對話中詳細修改。

4. 執行Python程式碼
#

Open WebUI是透過Pyodide在瀏覽器執行Python程式。使用WebAssembly計算,所以是在客戶端的瀏覽器執行的,速度比一般Python還要慢,且會增加瀏覽器的RAM佔用。

建議使用Firefox或Chrome瀏覽器,Safari可能無法使用。我在iOS的Safari一執行就會逾時,可能是RAM吃太兇了。

根據Open WebUI官方文件,Pyodide環境僅提供以下套件:micropip、packaging、requests、beautifulsoup4、numpy、pandas、matplotlib、scikit-learn、scipy、regex

起碼有matplotlib就可以用來繪製函數圖表了啦!

使用提示詞的時候建議提示語言模型,是要在Pyodide的環境執行,免得語言模型生成需要額外安裝pip套件才能使用的功能。

提示詞範例:在Pyodide的環境,使用matplotlib繪製常態分布圖表。

生成Python程式碼之後,可以即時在網頁裡面修改,重新執行,測試不同程式的輸出結果。

Pyodide透過MEMFS來建立虛擬的檔案系統,因此瀏覽器裡面可以用Python程式寫入檔案。不過那是暫時的,網頁重新整理後檔案就會消失。

能不能將檔案保存下來呢?使用支援File System API的瀏覽器(如Chrome)就能夠申請寫入到本機路徑。具體程式碼寫法參見Dealing with the file system - Pyodide Documentation

5. VS Code使用Ollama生成程式碼
#

Open WebUI的介面大概滿足不了專業用戶,終究要回到程式碼編輯器的。

因為Open WebUI相容OpenAI的端點格式,我們可以透過Open WebUI產生一組API權杖,讓其他軟體連線,間接存取Ollama模型進行計算。

不過我覺得這樣有點畫蛇添足的感覺,乾脆直接連線到Ollama吧。

請看這篇:VSCode + Continue + Ollama設定教學

參考資料
#

Open WebUI與Ollama教學 - 點選展開系列文
8: 現在位置

相關文章

賦予AI聲音,Open WebUI設定文字轉語音引擎 (TTS)
分類   開源AI應用 大型語言模型
標籤   Text to Speech Ollama Voice Cloning
Open WebUI影像辨識,和Ollama語言模型語音視訊聊天
分類   開源AI應用 大型語言模型
標籤   Ollama Multimodal Text to Speech Speech to Text
Ollama + Open WebUI設定RAG,建立知識庫強化語言模型能力,讀取PDF文件生成回應
分類   開源AI應用 大型語言模型
標籤   RAG Ollama LLM

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。