使用容器進行 RAG 開發

先決條件

完成 將 RAG 應用程式容器化

概觀

在本節中,您將學習如何設定開發環境以存取您的生成式 RAG 應用程式所需的所有服務。這包括

  • 新增本地資料庫
  • 新增本地或遠端 LLM 服務

**注意**

您可以在 GenAI 堆疊 範例應用程式中看到更多容器化 GenAI 應用程式的範例。

新增本地資料庫

您可以使用容器來設定本地服務,例如資料庫。在本節中,您將瀏覽 `docker-compose.yaml` 檔案中的資料庫服務。

要執行資料庫服務,請執行以下步驟:

  1. 在複製的儲存庫目錄中,使用 IDE 或文字編輯器開啟 `docker-compose.yaml` 檔案。

  2. 在 `docker-compose.yaml` 檔案中,您將看到以下內容:

    services:
      qdrant:
        image: qdrant/qdrant
        container_name: qdrant
        ports:
          - "6333:6333"
        volumes:
          - qdrant_data:/qdrant/storage

    **注意**

    要深入瞭解 Qdrant,請參閱 Qdrant 官方 Docker 映像檔

  3. 啟動應用程式。在 `winy` 目錄中,於終端機中執行以下指令。

    $ docker compose up --build
    
  4. 存取應用程式。開啟瀏覽器並在 http://localhost:8501 檢視應用程式。您應該會看到一個簡單的 Streamlit 應用程式。

  5. 停止應用程式。在終端機中,按下 `ctrl`+`c` 以停止應用程式。

新增本地或遠端 LLM 服務

此範例應用程式支援 Ollama。本指南提供以下情境的說明

  • 在容器中運行 Ollama
  • 在容器外運行 Ollama

雖然所有平台都可以使用上述任何一種情境,但效能和 GPU 支援可能有所不同。您可以使用以下準則來幫助您選擇合適的選項

  • 如果您使用的是 Linux 並且使用 Docker Engine 的原生安裝,或是使用 Windows 10/11 並且使用 Docker Desktop,且您擁有 CUDA 支援的 GPU,並且您的系統至少有 8 GB 的 RAM,則在容器中運行 Ollama。
  • 如果在 Linux 機器上運行 Docker Desktop,則在容器外運行 Ollama。

為您的 LLM 服務選擇以下其中一個選項。


在容器中運行 Ollama 時,您應該擁有 CUDA 支援的 GPU。雖然您可以在沒有支援 GPU 的情況下在容器中運行 Ollama,但效能可能無法接受。只有 Linux 和 Windows 11 支援容器的 GPU 存取。

要在容器中運行 Ollama 並提供 GPU 存取

  1. 安裝必備項目。

  2. docker-compose.yaml 檔案已包含必要的說明。在您自己的應用程式中,您需要在 docker-compose.yaml 中新增 Ollama 服務。以下是更新後的 docker-compose.yaml

    ollama:
      image: ollama/ollama
      container_name: ollama
      ports:
        - "8000:8000"
      deploy:
        resources:
          reservations:
            devices:
              - driver: nvidia
                count: 1
                capabilities: [gpu]

    **注意**

    有關 Compose 說明的更多詳細資訊,請參閱 使用 Docker Compose 開啟 GPU 存取

  3. Ollama 容器啟動並運行後,可以使用 `tools` 資料夾中的 `download_model.sh` 執行以下命令

    . ./download_model.sh <model-name>
    

提取 Ollama 模型可能需要幾分鐘時間。

要在容器外運行 Ollama

  1. 安裝 並在您的主機上運行 Ollama。

  2. 使用以下命令將模型提取到 Ollama。

    $ ollama pull llama2
    
  3. 從 `docker-compose.yaml` 中移除 `ollama` 服務,並在 `winy` 服務中正確更新連線變數

    - OLLAMA=http://ollama:11434
    + OLLAMA=<your-url>
    

執行您的 RAG 應用程式

此時,您的 Compose 檔案中有以下服務

  • 主要 RAG 應用程式的伺服器服務
  • 用於在 Qdrant 資料庫中儲存向量的資料庫服務
  • (可選)用於運行 LLM 服務的 Ollama 服務

應用程式運行後,請開啟瀏覽器並在 http://localhost:8501摘要

在本節中,您學習了如何設定開發環境以提供您的 GenAI 應用程式所需的所有服務。

相關資訊