使用说明

项目简介

Llama Stack Server 是一个为大型语言模型(LLM)应用设计的后端服务,它遵循 Model Context Protocol (MCP) 的理念,旨在为 LLM 客户端提供标准化的上下文信息和功能支持。通过 Llama Stack Server,开发者可以更便捷地构建功能丰富的 LLM 应用,例如具备工具调用、检索增强生成(RAG)等能力的应用。

主要功能点

  • 模型服务: 托管和提供语言模型服务,示例中集成了 Ollama,支持 Llama 3 等模型。
  • 工具注册与执行: 允许 LLM 调用外部功能,仓库示例展示了天气查询工具的集成。
  • 检索增强生成 (RAG): 内置 RAG 功能,支持从外部文档中检索信息,增强 LLM 的知识库。
  • 客户端库: 提供 Python 客户端库 'llama-stack-client',方便开发者与服务器交互。
  • API 接口: 通过 HTTP API 提供服务,可以使用 'curl' 或客户端库进行调用。

安装步骤

  1. 安装 Ollama: 根据仓库 'README.md' 提示,首先需要安装并运行 Ollama 服务器。

    ollama serve

    在另一个终端运行模型 (例如 Llama 3):

    ollama run llama3.2:3b-instruct-fp16 --keepalive 60m
  2. 安装 Docker: 确保你的系统已安装 Docker,并已启动 Docker 服务。

  3. 拉取并运行 Llama Stack Server Docker 镜像: 设置环境变量并运行 Docker 命令启动 Llama Stack Server。

    export LLAMA_STACK_MODEL="meta-llama/Llama-3.2-3B-Instruct"
    export INFERENCE_MODEL="meta-llama/Llama-3.2-3B-Instruct"
    export LLAMA_STACK_PORT=8321
    export LLAMA_STACK_SERVER=http://localhost:$LLAMA_STACK_PORT
    
    docker run -it \
      -p $LLAMA_STACK_PORT:$LLAMA_STACK_PORT \
      -v ~/.llama:/root/.llama \
      llamastack/distribution-ollama \
      --port $LLAMA_STACK_PORT \
      --env INFERENCE_MODEL=$LLAMA_STACK_MODEL \
      --env OLLAMA_URL=http://host.docker.internal:11434
  4. 安装 Python 客户端库: 在 Python 虚拟环境中安装 'llama-stack-client'。

    python3.11 -m venv venv
    source venv/bin/activate
    pip install --upgrade pip
    pip install llama-stack-client

服务器配置

以下 JSON 配置信息描述了如何启动 Llama Stack Server。MCP 客户端需要这些信息来连接服务器。

{
  "server name": "Llama Stack Server",
  "command": "docker run",
  "args": [
    "-it",
    "-p", "8321:8321",                             // 映射宿主机端口 8321 到容器端口 8321
    "-v", "~/.llama:/root/.llama",                // 挂载本地 ~/.llama 目录到容器的 /root/.llama,用于持久化数据
    "llamastack/distribution-ollama",             // 使用的 Docker 镜像名称
    "--port", "8321",                             // 容器内 Llama Stack Server 监听的端口
    "--env", "INFERENCE_MODEL=meta-llama/Llama-3.2-3B-Instruct", // 设置容器内环境变量 INFERENCE_MODEL
    "--env", "OLLAMA_URL=http://host.docker.internal:11434" // 设置容器内环境变量 OLLAMA_URL,指向 Ollama 服务器地址
  ]
}

配置参数说明:

  • 'server name': 服务器名称,可以自定义。
  • 'command': 启动服务器的命令,这里使用 'docker run'。
  • 'args': 'docker run' 命令的参数列表,包括:
    • '-p 8321:8321': 端口映射,将宿主机的 8321 端口映射到容器的 8321 端口。
    • '-v ~/.llama:/root/.llama': 数据卷挂载,将本地 '~/.llama' 目录挂载到容器内的 '/root/.llama' 目录,用于持久化数据,例如模型缓存等。
    • 'llamastack/distribution-ollama': 使用的 Docker 镜像名称,包含了 Llama Stack Server 和 Ollama 的集成环境。
    • '--port 8321': 指定 Llama Stack Server 在容器内监听的端口为 8321。
    • '--env INFERENCE_MODEL=meta-llama/Llama-3.2-3B-Instruct': 设置环境变量 'INFERENCE_MODEL',指定用于推理的 LLM 模型。
    • '--env OLLAMA_URL=http://host.docker.internal:11434': 设置环境变量 'OLLAMA_URL',指定 Ollama 服务器的地址。'http://host.docker.internal:11434' 是在 Docker 容器内访问宿主机 Ollama 服务的特殊地址。

基本使用方法

  1. 配置客户端: 使用 'llama-stack-client configure' 命令配置客户端连接到 Llama Stack Server。

    llama-stack-client configure --endpoint http://localhost:8321
  2. 列出可用模型: 使用 'llama-stack-client models list' 查看服务器提供的模型列表。

    llama-stack-client models list
  3. 进行对话: 使用 'llama-stack-client inference chat-completion' 进行简单的聊天交互。

    llama-stack-client inference chat-completion --message "你好,你是谁?"
  4. 运行 Python 示例: 仓库中提供了多个 Python 示例 ('0-test.py', '1-models.py', '2-chat-completions.py', '4-tools-weather.py', '5-basic-rag.py' 等),可以参考这些示例代码,了解如何使用 Python 客户端库进行更复杂的操作,例如结构化输出、工具调用和 RAG。

信息

分类

AI与计算