iT邦幫忙

2024 iThome 鐵人賽

DAY 24
1

▋部屬伺服器 (Server Deployment)


今天的內容會對應說明文件中的部屬伺服器,目標是啟動後端API服務,但由於前一篇提到的錯誤情形,會提供另外的執行流程讓大家參考。

1. 確認開發環境中有Python3.10.X版本

進入到api資料夾中,確認當前python版本:

cd api
python3 --version

https://ithelp.ithome.com.tw/upload/images/20241008/20169058goUUtbqxMp.png

2. 安裝Poetry

使用official installer安裝Poetry:

curl -sSL https://install.python-poetry.org | python3 -

https://ithelp.ithome.com.tw/upload/images/20241008/201690588x6UHTgrRb.png
設定PATH環境變數,讓作業系統知道poetry指令的執行檔位置:

export PATH=$PATH:$HOME/.local/bin

https://ithelp.ithome.com.tw/upload/images/20241008/20169058KgtYUDKnQR.png

檢查Poetry安裝版本,並試著執行Poetry:

poetry --version
poetry

https://ithelp.ithome.com.tw/upload/images/20241008/201690583IBWnJqBsC.png

這邊要注意,Poetry新舊版本會有功能差異,建議至少是1.2.0以上,避免版本過舊導致無法使用新版功能,筆者一開始使用Poetry1.1.12,遇到版本不相容的情形,後來改用Poetry1.8.3就沒有再發生執行錯誤了,所以如果發現版本太舊,記得更新,或者也可以把相關資料移除後重新安裝。

3. 使用Poetry建立虛擬環境並安裝套件

建立虛擬環境:

# 設定虛擬環境創建的路徑在專案中(建議使用,但非必須,可依照個人習慣)
poetry config virtualenvs.in-project true

# 建立python3.10的指定版本虛擬環境(依照Dify的需求,指定python版本)
poetry env use python3.10

https://ithelp.ithome.com.tw/upload/images/20241008/201690586sSxoXSlvV.png
前一步有執行poetry config virtualenvs.in-project true就會看到虛擬環境出現在api資料夾下:

https://ithelp.ithome.com.tw/upload/images/20241008/20169058MgbmUJgLUy.png

啟動虛擬環境,並建立環境變數設定檔:

# 啟動虛擬環境。執行後若看到命令列前開始有括號註記虛擬環境名稱表示成功切換,例如此處的(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

https://ithelp.ithome.com.tw/upload/images/20241008/20169058CeMJK3tkHb.png

依poetry.lock記載的套件版本安裝到虛擬環境中:

poetry install

https://ithelp.ithome.com.tw/upload/images/20241008/20169058QfMB7YLuhs.png

4. 執行資料庫遷移到最新版本

flask db upgrade

https://ithelp.ithome.com.tw/upload/images/20241008/20169058Ag1K8VacpQ.png

5. 執行flask run啟動API伺服器

flask run --host 0.0.0.0 --port=5001 --debug

https://ithelp.ithome.com.tw/upload/images/20241008/20169058McFj9umrjB.png

執行到這裡,若中途都沒有發生錯誤訊息,恭喜各位已經成功部屬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/

▋後記


因為今天的內容是藉由閱讀多個文件消化後完成的,所以放了比較多的步驟與對應截圖,希望能提供大家一些參考畫面。筆者當下執行成功的心情是非常興奮的,畢竟過程中卡關了一下,又希望能在下班時間做出點東西和大家分享,幸好最後執行成功,但由於安裝與部屬的過程中,可能每個人遇到的情況不同,也歡迎大家分享自己的情境。


上一篇
Part2: 地端實作聊天機器人-Poetry (Python套件管理器)
下一篇
Part2: 地端實作聊天機器人-部屬前端網頁 (Deploy the Frontend Page)
系列文
從Azure雲端服務架構入門,在本地端結合RAG&LLM打造專屬的聊天機器人。30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言