上一篇文章我們實作了 Agent 結合了之前的 RAG 和 Memory 功能,也使用了 LangChain 結合的第三方的 Tools。使用了幾個比較常被用到的生成式 AI 工具和技術,如果不會寫程式要使用這些技術是很難使用,那對於會寫程式的人也需要注意套件版本與相容性的問題,所以有了今天要介紹的主角 - FlowiseAI。
FlowiseAI 是一個開源的且不需要寫程式的生成式 AI 工具,用來構建自定義的 LLM 編排流程和 AI 代理。FlowiseAI 強調快速,搭配簡單拖拉的方式,將所有的 Block 根據步驟 Chain 起來。不管是 LangChain 還是 LlamaIndex 這兩個當前最主要的開發 LLM 框架,FlowiseAI 皆有支援,最棒的是只管使用就好~不要自己維護套件版本和相容性的問題!
FlowiseAI 的安裝方式有很多種,可以選擇安裝在本機、Docker、PNPM,那我這邊選擇的方式是安裝在本機,要使用另外兩種方式的話可以參考 FlowiseAI 官網。如果要安裝在本機的話,他使用的是 Node.js,可以到 Node.js 官網 下載安裝。
來自 FlowiseAI 官網的版本要求
Pre-requisite: ensure NodeJS is installed on machine. Node
v18.15.0
orv20
and above is supported.
node --version
# v20.16.0
npm install -g flowise
npx flowise start
npm update -g flowise
npm uninstall -g flowise
這個介面是一個 Dashboard 的樣子,如果有儲存的模板都會在這個頁面上顯示。若要建立新的可以透過右上角建立,就可以進入到設計 LLM 模板的介面,最左邊的工具可以看到就是實作常用到的各種 LangChain 函數。
這個服務是與團隊中的不同 Agent 建立 AI 團隊,同時共同努力實現目標。舉例來說,會有一個 Supervisor 來監督這個任務,然後譬如團隊會有兩個 Worker,一個是產品經理負責制定一些產品規格和開發流程;另一個 Worker 軟體工程師,負責開發和寫 Code。透過這樣建立不同的角色來完成一致的任務目標。
這個介面是各種已經建立好的模板,只要輸入自己東西即可使用,也省去自己想要怎麼連接。譬如說我選了一個 RAG 的模板,可以看到從切割文本 -> Embeddings -> 語言模型 -> 向量資料庫 -> 檢索生成都串接好了,相當的方便和省時!
這個就是建立 Agent 的 Tools 的地方,可以設計客製化的 Tools。
這個就是將 API KEY 輸入,可以直接跟 OpenAI 互動的地方。
這個是儲存 API Keys 的地方,很多模型或向量資料庫都有整合。
這個我還沒用過,先跳過~
這個是可以讓你將建構好的模板,FlowiseAI 會建構成一個 Web API,接著可以透過這個 API Keys 來使用程式呼叫,方法當然是 POST,因為需要 API 驗證。
可以上傳並儲存檔案的地方,支援多種格式,基本常見的 PDF、CSV、JSON 都有~
都了解 FlowiseAI 的使用者介面之後,來試著創建一個 Chain,將 Prompt 和 LLM 用模塊串接起來。然後也試著使用 API 來呼叫在 FlowiseAI 建立的 Chatflow。
依數字探討 🧐:
Credential
的部分可以存放我們的 Key,並且依照模型或者需求取名,這樣下次要使用就不用重新輸入,直接選用即可,然後 Credential
的部分也不需要怕 Key 外洩,因為畢竟 FlowiseAI 是安裝在本地。那如果要設定 top_k, top_p 那些參數,選擇 Additional Parameters
即可進入修改。{}
包起來,變數名稱自訂。然後選擇 Format Prompt Values
,將變數對應的值選擇成 question
。這樣 Prompt 就會根據使用者的輸入來改變內容。
結果探討 🧐:
點擊右上角的這個圖示,有 Python, JavaScript, CURL 的版本,然後可以選擇需不需要 FlowiseAI API 驗證,那因為我當然是選 Python。
程式碼與結果探討 🧐:
今天介紹了 FlowiseAI 這個開源不需要寫程式就可以開發 AI 的平台,我們安裝到熟悉他的 UI 介面的功能服務到最後建立一個簡單的 Chatflow,還使用 API 從 Python 使用。我自己是覺得很方便很好用,不用寫程式就能實作一模一樣的事情,真的是一個很強大的平台。
感覺 Node.js 超萬用,可以前端也可以後端還可以寫 APP,當兵結束第一件事就是去把 Node 學起來😆