使用说明
项目简介
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' 或客户端库进行调用。
安装步骤
-
安装 Ollama: 根据仓库 'README.md' 提示,首先需要安装并运行 Ollama 服务器。
ollama serve在另一个终端运行模型 (例如 Llama 3):
ollama run llama3.2:3b-instruct-fp16 --keepalive 60m -
安装 Docker: 确保你的系统已安装 Docker,并已启动 Docker 服务。
-
拉取并运行 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 -
安装 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 服务的特殊地址。
基本使用方法
-
配置客户端: 使用 'llama-stack-client configure' 命令配置客户端连接到 Llama Stack Server。
llama-stack-client configure --endpoint http://localhost:8321 -
列出可用模型: 使用 'llama-stack-client models list' 查看服务器提供的模型列表。
llama-stack-client models list -
进行对话: 使用 'llama-stack-client inference chat-completion' 进行简单的聊天交互。
llama-stack-client inference chat-completion --message "你好,你是谁?" -
运行 Python 示例: 仓库中提供了多个 Python 示例 ('0-test.py', '1-models.py', '2-chat-completions.py', '4-tools-weather.py', '5-basic-rag.py' 等),可以参考这些示例代码,了解如何使用 Python 客户端库进行更复杂的操作,例如结构化输出、工具调用和 RAG。
信息
分类
AI与计算