使用容器进行 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 应用程序的示例。

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.