今天的內容會對應說明文件中的部屬伺服器,目標是啟動後端API服務,但由於前一篇提到的錯誤情形,會提供另外的執行流程讓大家參考。
進入到api資料夾中,確認當前python版本:
cd api
python3 --version
使用official installer安裝Poetry:
curl -sSL https://install.python-poetry.org | python3 -
設定PATH環境變數,讓作業系統知道poetry指令的執行檔位置:
export PATH=$PATH:$HOME/.local/bin
檢查Poetry安裝版本,並試著執行Poetry:
poetry --version
poetry
這邊要注意,Poetry新舊版本會有功能差異,建議至少是1.2.0以上,避免版本過舊導致無法使用新版功能,筆者一開始使用Poetry1.1.12,遇到版本不相容的情形,後來改用Poetry1.8.3就沒有再發生執行錯誤了,所以如果發現版本太舊,記得更新,或者也可以把相關資料移除後重新安裝。
建立虛擬環境:
# 設定虛擬環境創建的路徑在專案中(建議使用,但非必須,可依照個人習慣)
poetry config virtualenvs.in-project true
# 建立python3.10的指定版本虛擬環境(依照Dify的需求,指定python版本)
poetry env use python3.10
前一步有執行poetry config virtualenvs.in-project true
就會看到虛擬環境出現在api資料夾下:
啟動虛擬環境,並建立環境變數設定檔:
# 啟動虛擬環境。執行後若看到命令列前開始有括號註記虛擬環境名稱表示成功切換,例如此處的(dify-api-py3.10)
poetry shell
# 複製環境變數設定檔
cp .env.example .env
# 產生隨機密鑰並替換 .env 檔案中 SECRET_KEY 的值
awk -v key="$(openssl rand -base64 42)" '/^SECRET_KEY=/ {sub(/=.*/, "=" key)} 1' .env > temp_env && mv temp_env .env
依poetry.lock記載的套件版本安裝到虛擬環境中:
poetry install
flask db upgrade
flask run
啟動API伺服器flask run --host 0.0.0.0 --port=5001 --debug
執行到這裡,若中途都沒有發生錯誤訊息,恭喜各位已經成功部屬API伺服器在我們的地端環境中了。但因為這裡還只是半成品,我們還需要前端服務的搭配才比較能看到具體的成果,所以如果打開最後一步產出的http://127.0.0.1:5001/ 發現404Not Found的話先不用緊張,我們會繼續完成它。
完成伺服器部屬,明天就來準備操作介面,來部署前端頁面吧!
Dify(github)
https://github.com/langgenius/dify/tree/main
Dify(官方文件)
https://docs.dify.ai/getting-started/install-self-hosted/local-source-code
Python 套件管理器——Poetry 完全入門指南
https://blog.kyomind.tw/python-poetry/
因為今天的內容是藉由閱讀多個文件消化後完成的,所以放了比較多的步驟與對應截圖,希望能提供大家一些參考畫面。筆者當下執行成功的心情是非常興奮的,畢竟過程中卡關了一下,又希望能在下班時間做出點東西和大家分享,幸好最後執行成功,但由於安裝與部屬的過程中,可能每個人遇到的情況不同,也歡迎大家分享自己的情境。