iT邦幫忙

2024 iThome 鐵人賽

DAY 26
1
生成式 AI

T 大使 AI 之旅系列 第 26

【Day 26】程式小白的福音:用 FlowiseAI 探索生成式 AI

  • 分享至 

  • xImage
  •  

前情提要

上一篇文章我們實作了 Agent 結合了之前的 RAG 和 Memory 功能,也使用了 LangChain 結合的第三方的 Tools。使用了幾個比較常被用到的生成式 AI 工具和技術,如果不會寫程式要使用這些技術是很難使用,那對於會寫程式的人也需要注意套件版本與相容性的問題,所以有了今天要介紹的主角 - FlowiseAI。
https://ithelp.ithome.com.tw/upload/images/20240830/20168336ouTnx3JZeL.png

簡介 FlowiseAI

FlowiseAI 是一個開源的且不需要寫程式的生成式 AI 工具,用來構建自定義的 LLM 編排流程和 AI 代理。FlowiseAI 強調快速,搭配簡單拖拉的方式,將所有的 Block 根據步驟 Chain 起來。不管是 LangChain 還是 LlamaIndex 這兩個當前最主要的開發 LLM 框架,FlowiseAI 皆有支援,最棒的是只管使用就好~不要自己維護套件版本和相容性的問題!

部署 FlowiseAI

FlowiseAI 的安裝方式有很多種,可以選擇安裝在本機、Docker、PNPM,那我這邊選擇的方式是安裝在本機,要使用另外兩種方式的話可以參考 FlowiseAI 官網。如果要安裝在本機的話,他使用的是 Node.js,可以到 Node.js 官網 下載安裝。

來自 FlowiseAI 官網的版本要求

Pre-requisite: ensure NodeJS is installed on machine. Node v18.15.0 or v20 and above is supported.

查看 Node 版本

node --version
# v20.16.0

安裝 FlowiseAI

npm install -g flowise

啟動 FlowiseAI

npx flowise start

開啟 UI 介面

Open:http://localhost:3000

其餘指令

更新 FlowiseAI

npm update -g flowise

移除 FlowiseAI

npm uninstall -g flowise

Flowise 介面介紹

Chatflows

這個介面是一個 Dashboard 的樣子,如果有儲存的模板都會在這個頁面上顯示。若要建立新的可以透過右上角建立,就可以進入到設計 LLM 模板的介面,最左邊的工具可以看到就是實作常用到的各種 LangChain 函數。
https://ithelp.ithome.com.tw/upload/images/20240830/20168336EwyWkSze17.png
https://ithelp.ithome.com.tw/upload/images/20240830/20168336JwLpxIJBng.png

Agentflows

這個服務是與團隊中的不同 Agent 建立 AI 團隊,同時共同努力實現目標。舉例來說,會有一個 Supervisor 來監督這個任務,然後譬如團隊會有兩個 Worker,一個是產品經理負責制定一些產品規格和開發流程;另一個 Worker 軟體工程師,負責開發和寫 Code。透過這樣建立不同的角色來完成一致的任務目標。
https://ithelp.ithome.com.tw/upload/images/20240830/2016833622SUfcpqiQ.png

Marketplaces

這個介面是各種已經建立好的模板,只要輸入自己東西即可使用,也省去自己想要怎麼連接。譬如說我選了一個 RAG 的模板,可以看到從切割文本 -> Embeddings -> 語言模型 -> 向量資料庫 -> 檢索生成都串接好了,相當的方便和省時!
https://ithelp.ithome.com.tw/upload/images/20240830/20168336be1SJGeJ5e.png
https://ithelp.ithome.com.tw/upload/images/20240830/20168336Dco9tkM6j0.png

Tools

這個就是建立 Agent 的 Tools 的地方,可以設計客製化的 Tools。
https://ithelp.ithome.com.tw/upload/images/20240830/20168336FtsNIZUu0G.png

Assistants

這個就是將 API KEY 輸入,可以直接跟 OpenAI 互動的地方。
https://ithelp.ithome.com.tw/upload/images/20240830/20168336bFnX5DlJD7.png

Credentials

這個是儲存 API Keys 的地方,很多模型或向量資料庫都有整合。
https://ithelp.ithome.com.tw/upload/images/20240830/20168336YqFgHpJgqh.png
https://ithelp.ithome.com.tw/upload/images/20240830/20168336WiIpCJ3Elp.png

Variables

這個我還沒用過,先跳過~

API Keys

這個是可以讓你將建構好的模板,FlowiseAI 會建構成一個 Web API,接著可以透過這個 API Keys 來使用程式呼叫,方法當然是 POST,因為需要 API 驗證。
https://ithelp.ithome.com.tw/upload/images/20240830/20168336qgHQxgAKY9.png

Document Stores

可以上傳並儲存檔案的地方,支援多種格式,基本常見的 PDF、CSV、JSON 都有~
https://ithelp.ithome.com.tw/upload/images/20240830/20168336lv939HVqAO.png
https://ithelp.ithome.com.tw/upload/images/20240830/20168336cHqQu4MWjJ.png

實戰🔥

都了解 FlowiseAI 的使用者介面之後,來試著創建一個 Chain,將 Prompt 和 LLM 用模塊串接起來。然後也試著使用 API 來呼叫在 FlowiseAI 建立的 Chatflow。

Chatflow

https://ithelp.ithome.com.tw/upload/images/20240830/20168336A1efbOEn9z.png
依數字探討 🧐:

  1. 第一個地方可以看到是語言模型的部分,我使用的是 LangChain -> Chat Models -> ChatOpenAI,就跟在使用 Python 匯入套件一樣是 ChatOpenAI。然後 Credential 的部分可以存放我們的 Key,並且依照模型或者需求取名,這樣下次要使用就不用重新輸入,直接選用即可,然後 Credential 的部分也不需要怕 Key 外洩,因為畢竟 FlowiseAI 是安裝在本地。那如果要設定 top_k, top_p 那些參數,選擇 Additional Parameters 即可進入修改。
    https://ithelp.ithome.com.tw/upload/images/20240830/20168336cAMo2etkO0.png
  2. 第二個部分是 Prompt 的部分,我使用的是 LangChain -> Prompts -> PromptTemplate,這個也是跟 Python 匯入套件一樣的名稱。那輸入固定的 Prompt 很容易,那要如何讓 Prompt 變成根據使用者輸入來調整呢?首先要將變數的地方用 {} 包起來,變數名稱自訂。然後選擇 Format Prompt Values,將變數對應的值選擇成 question。這樣 Prompt 就會根據使用者的輸入來改變內容。
    https://ithelp.ithome.com.tw/upload/images/20240830/201683365ZOmhzOJK4.jpg
  3. 最後一個就是串接 Prompt 和 LLM 的模塊啦~我使用的是 LangChain -> Chains -> LLM Chains,這個也是跟 Python 匯入套件一樣的名稱,但我記得這個名稱的函式快要被 Deprecated 了。那這邊最主要就是將 Prompt 和 LLM 拉箭頭到這個模塊對應的位置,就可以點擊右上角開始與語言模型互動啦!

Chat

https://ithelp.ithome.com.tw/upload/images/20240830/20168336YVB5rRCc0k.png
結果探討 🧐:

  • 可以看到我只要輸入團名,就會回覆對應的團體介紹,Prompt 和我們設定的變數還有 LLM 都有順利串接起來。

Python

https://ithelp.ithome.com.tw/upload/images/20240830/20168336LFo3mgSjK0.png
點擊右上角的這個圖示,有 Python, JavaScript, CURL 的版本,然後可以選擇需不需要 FlowiseAI API 驗證,那因為我當然是選 Python。
https://ithelp.ithome.com.tw/upload/images/20240830/20168336nf31g3Vx06.png
程式碼與結果探討 🧐:

  • 我自己使用是不管有沒有輸入 Key 其實都是可以產出結果,但如果網址部署到不是本機的地方的話,就很需要 API Keys 的驗證了。
  • 使用 Python 呼叫固然是很方便的方法,但其實速度是蠻慢的,大約都要 20 秒上下,所以還是以 UI 介面進行操作會比較方便。

結論

今天介紹了 FlowiseAI 這個開源不需要寫程式就可以開發 AI 的平台,我們安裝到熟悉他的 UI 介面的功能服務到最後建立一個簡單的 Chatflow,還使用 API 從 Python 使用。我自己是覺得很方便很好用,不用寫程式就能實作一模一樣的事情,真的是一個很強大的平台。

題外話🤣

感覺 Node.js 超萬用,可以前端也可以後端還可以寫 APP,當兵結束第一件事就是去把 Node 學起來😆

下一篇文章:讓 FlowiseAI 進化為超級大腦


上一篇
【Day 25】RAG + Memory = 超級 Agent?Agent 的進化之路
下一篇
【Day 27】讓 FlowiseAI 進化為超級大腦
系列文
T 大使 AI 之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言