使用容器進行 RAG 開發

先決條件

完成 容器化 RAG 應用程式

概述

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

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

您可以在 GenAI Stack 演示應用程式中檢視更多容器化 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. 訪問應用程式。開啟瀏覽器並在 https://: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 資料庫中的資料庫服務
  • (可選) Ollama 服務以執行 LLM 服務

應用程式執行後,開啟瀏覽器並訪問 https://:8501

根據你的系統和所選的 LLM 服務,可能需要幾分鐘才能得到答案。

摘要

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

相關資訊

後續步驟

GenAI Stack 演示應用程式 中檢視更多 GenAI 應用程式的示例。