iT邦幫忙

2024 iThome 鐵人賽

DAY 23
1

▋Poetry (Python套件管理器)


完成資料庫部屬後,跟著說明文件來到了下一步-伺服器部屬。這裡指的伺服器指的是後端服務,Dify使用後端API即服務的方式,讓前端可以方便的取得所需資料。Dify後端程式是以Python撰寫,並且使用Poetry這個套件管理工具。所以我們要先在開發環境中安裝Python的套件,以便後續順利執行python程式碼。

可能遇到的困難

首先,留意Dify指定要使用Python3.10版本。但跟著文件的步驟走,筆者在步驟四發生預期外的錯誤:
https://ithelp.ithome.com.tw/upload/images/20241007/20169058CDtYzt276A.png
錯誤訊息跟某個github issue中提到的一模一樣,雖然提問者是在步驟五發生的,但看起來是遇到類似的情況:
https://ithelp.ithome.com.tw/upload/images/20241007/20169058wUNCLV7j46.png

由於筆者本身習慣使用venv+pip的方始做python專案的套件管理,剛開始嘗試了各種作法都沒能順利解決。最後決定回歸本質,先來了解Poetry的運作原理。

Poetry簡介

首先,強力推薦這篇教學文章給初次使用Poetry的各位-Python 套件管理器——Poetry 完全入門指南。因為筆者看完這篇分享再回過頭來做前述的Poetry套件安裝,就成功排除原先的問題了!
回到Poetry的介紹,由於每個專案都會有各自需要的套件(package),為了確保各專案的環境整潔,通常會使用虛擬環境將不同專案所安裝的套件獨立開來。而安裝套件和虛擬環境的功能,常見的方式之一分別是使用pip+vnev來達成。Poetry結合了這兩者的功能,並且優化pip容易在移除套件時發生錯誤的套件相依問題,因此漸漸有不少開發者轉而使用Poetry。
說了很多Poetry的好,但其實要直接轉用Poetry也是有不小的學習曲線,所以推薦大家還是可以先到前述提到的教學文章中,了解Poetry的概念(因為字數不少,可以先概讀,有個概念後需要的話再回頭詳讀),然後再來看明天筆者分享自己使用Poetry的步驟,大家一起做中學。

▋下回預告


明天會從Poetry的步驟開始分享,一起來完成伺服器部屬!

▋參考資料


Dify(github)
https://github.com/langgenius/dify/tree/main
Dify(官方文件)
https://docs.dify.ai/getting-started/install-self-hosted/local-source-code
github issue
https://github.com/langgenius/dify/issues/6001
Python 套件管理器——Poetry 完全入門指南
https://blog.kyomind.tw/python-poetry/

▋後記,


滿好奇有沒有人是直接按照官方說明文件執行成功的,筆者猜測自己執行時發生錯誤有兩個可能,1. Poetry安裝/設定不完全,或者是2.版本過舊導致無法使用新版功能。所以如果有人也沒能順利執行,建議更新版本再試一次,或者直接移除既有Poetry並刪除相關設定/檔案,明天我們一起來實作。


上一篇
Part2: 地端實作聊天機器人-用docker compose部屬資料庫(profile概念)
下一篇
Part2: 地端實作聊天機器人-部屬伺服器(Server Deployment)
系列文
從Azure雲端服務架構入門,在本地端結合RAG&LLM打造專屬的聊天機器人。30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言