TCP上的MCP(模型上下文协议)
该项目演示了一个模型上下文协议(MCP)服务器和一个简单的TCP客户端,它们使用JSON消息进行通信,以发送来自本地运行的Llama AI模型的提示和流式响应。
MCP服务器和客户端概述
这个项目演示了一个简单的 模型上下文协议(MCP)服务器 它通过TCP套接字与客户端通信。\ 它与 llama-cli.exe 使用基于LLaMA的模型来处理提示。
______________________________________________________________________
MCP服务器
服务器负责:
- 在TCP端口上侦听传入的客户端连接。
- 接收JSON格式的消息(
MCPMessage)来自客户。 - 选择正确的型号处理器(例如LLaMA)。
- 通过以下方式将提示转发给模型
llama-cli.exe. - 将生成的响应流式传输回客户端。
主要特点
- 的默认配置 llama-cli.exe 和 模型路径.
- 用途
MessageProvider.GetMessage()读取客户端JSON请求。 - 优雅地处理无效消息。
- 通过以下方式支持不同模型的可扩展性
IPromptProcessor界面。
服务器工作流
- 开始监听端口 5000.
- 接受客户端连接。
- 等待a
MCPMessage包含:
- MessageId - Model - Prompt - 可选的 Context
- 如果模型是
"llama",服务器使用LlamaModelPromptProcessor. - 处理器启动
llama-cli.exe并将结果流式传输回客户端。
MCP Server Flow
默认配置
- 模型路径:\
C:\mcp-tutorial\llama.cpp\models\llama-2-7b.Q3_K_L.gguf
- 可执行路径(llama-cli):\
C:\mcp-tutorial\llama.cpp\build\bin\Release\llama-cli.exe
______________________________________________________________________
客户端请求示例
客户端通过TCP发送JSON编码的消息:
{
"MessageId": 1,
"Model": "llama",
"Prompt": "What is the capital of France?",
"Context": []
}Windows上llama.cpp的安装说明
按照以下步骤进行构建和测试 llama.cpp 在Windows上使用Visual Studio。
______________________________________________________________________
步骤1:安装先决条件
- Git
- 下载: - 使用默认选项安装。
- CMake
- 下载: - 在安装过程中,选择 “将CMake添加到系统PATH”.
- Visual Studio 2022
- 下载: https://visualstudio.microsoft.com/vs/ - 在安装过程中,确保包括 用C进行桌面开发++ 工作量。 - 这将安装MSVC编译器和所需的构建工具。
______________________________________________________________________
步骤2:克隆存储库
打开 PowerShell 或 命令提示符 并运行:
- 克隆https://github.com/ggerganov/llama.cpp
- cd llama.cpp
______________________________________________________________________
步骤3:构建 llama.cpp
里面 llama.cpp 目录,运行以下命令:
- mkdir构建
- cd构建
- cmake-G“Visual Studio 17 2022”-A x64-DLLAMA_CURL=关闭。.
- cmake——构建。--config发布
成功构建后,可执行文件将在以下位置生成:
build\\bin\\Release\\llama-cli.exe
步骤4:下载并测试模型
- 下载 骆驼2 7B Q3_K_L Hugging Face的模型:
https://huggingface.co/TheBloke/Llama-2-7B-GGUF
- 将下载的模型复制到
llama.cpp\models目录。
- 使用构建的可执行文件测试模型:
PS C:\myfiles\code\mcp-tutorial\llama.cpp\build\bin\Release> .\llama-cli.exe -m ../../../models/llama-2-7b.Q3_K_L.gguf -p "combination in math with simple example" -n 100