容器化生成式 AI 應用程式
先決條件
注意
GenAI 應用程式通常可以從 GPU 加速中受益。目前 Docker Desktop 僅在 使用 WSL2 後端的 Windows 上支援 GPU 加速。Linux 使用者也可以使用 Docker Engine 的原生安裝訪問 GPU 加速。Docker Engine.
- 您已安裝最新版本的 Docker Desktop,或者如果您是 Linux 使用者並且計劃使用 GPU 加速,則安裝了 Docker Engine。Docker 定期新增新功能,本指南的某些部分可能僅適用於最新版本的 Docker Desktop。
- 您有一個 git 客戶端。本節中的示例使用基於命令列的 git 客戶端,但您可以使用任何客戶端。
概述
本節將引導您使用 Docker Desktop 容器化生成式 AI (GenAI) 應用程式。
注意
您可以在 GenAI Stack 演示應用程式中看到更多容器化 GenAI 應用程式的示例。
獲取示例應用程式
本指南中使用的示例應用程式是 GenAI Stack 演示應用程式的修改版本。該應用程式是一個完整的 Python 應用程式,它允許您詢問有關 PDF 檔案的問題。
該應用程式使用 LangChain 進行編排,使用 Streamlit 用於 UI,使用 Ollama 執行 LLM,以及使用 Neo4j 儲存向量。
克隆示例應用程式。開啟一個終端,更改目錄到您想要工作的目錄,並執行以下命令克隆儲存庫
$ git clone https://github.com/craig-osterhout/docker-genai-sample
您現在應該在 docker-genai-sample
目錄中擁有以下檔案。
├── docker-genai-sample/
│ ├── .gitignore
│ ├── app.py
│ ├── chains.py
│ ├── env.example
│ ├── requirements.txt
│ ├── util.py
│ ├── LICENSE
│ └── README.md
初始化 Docker 資源
現在您已經有了應用程式,您可以使用 docker init
建立必要的 Docker 資源來容器化您的應用程式。在 docker-genai-sample
目錄中,執行 docker init
命令。docker init
提供一些預設配置,但您需要回答一些關於您的應用程式的問題。例如,此應用程式使用 Streamlit 執行。參考以下 docker init
示例並對您的提示使用相同的答案。
$ docker init
Welcome to the Docker Init CLI!
This utility will walk you through creating the following files with sensible defaults for your project:
- .dockerignore
- Dockerfile
- compose.yaml
- README.Docker.md
Let's get started!
? What application platform does your project use? Python
? What version of Python do you want to use? 3.11.4
? What port do you want your app to listen on? 8000
? What is the command to run your app? streamlit run app.py --server.address=0.0.0.0 --server.port=8000
您現在應該在 docker-genai-sample
目錄中擁有以下內容。
├── docker-genai-sample/
│ ├── .dockerignore
│ ├── .gitignore
│ ├── app.py
│ ├── chains.py
│ ├── compose.yaml
│ ├── env.example
│ ├── requirements.txt
│ ├── util.py
│ ├── Dockerfile
│ ├── LICENSE
│ ├── README.Docker.md
│ └── README.md
要了解有關 docker init
新增的檔案的更多資訊,請參閱以下內容
執行應用程式
在 docker-genai-sample
目錄中,在終端中執行以下命令。
$ docker compose up --build
Docker 構建並執行您的應用程式。根據您的網路連線,下載所有依賴項可能需要幾分鐘。當應用程式執行時,您將在終端中看到如下訊息。
server-1 | You can now view your Streamlit app in your browser.
server-1 |
server-1 | URL: http://0.0.0.0:8000
server-1 |
開啟瀏覽器,並在 https://:8000 檢視應用程式。您應該看到一個簡單的 Streamlit 應用程式。該應用程式可能需要幾分鐘才能下載嵌入模型。在下載過程中,右上角將顯示“正在執行”。
該應用程式需要 Neo4j 資料庫服務和 LLM 服務才能正常執行。如果您有權訪問在 Docker 外部執行的服務,請指定連線資訊並嘗試使用它。如果您沒有執行這些服務,請繼續閱讀本指南,瞭解如何使用 Docker 執行部分或所有這些服務。
在終端中,按 ctrl
+c
停止應用程式。
總結
在本節中,您學習瞭如何使用 Docker 容器化和執行您的 GenAI 應用程式。
相關資訊
下一步
在下一節中,您將學習如何使用 Docker 在本地執行您的應用程式、資料庫和 LLM 服務。