面向MLU平台的Dify与MCP协同在业务领域的实现


前言

MCP:Model Context Protocol(模型上下文协议) 是一个开放协议,它规范了应用程序如何为LLMs提供上下文。可以将MCP想象为AI应用的USB-C端口。就像USB-C提供了一种标准方式,让你的设备连接到各种外设和配件,MCP也提供了一种标准方式,让你的AI模型连接到不同的数据源和工具。
Model Context Protocol(模型上下文协议)是 Anthropic 在推出的用于 LLM 应用和外部数据源(Resources)或工具(Tools)通信的标准协议,遵循 JSON-RPC 2.0 (https://www.jsonrpc.org/specification)的基础消息格式。
可以把 MCP 想象成 AI 应用程序的 USB-C 接口,规范了应用程序如何为 LLMs 提供上下文。
在这里插入图片描述
上图来自微信公众号:字节跳动开源


一、平台环境准备

镜像选择:pytorch:v24.10-torch2.4.0-torchmlu1.23.1-ubuntu22.04-py310
功能选择
在这里插入图片描述
在这里插入图片描述
在创建云端容器应用后,点击添加容器,镜像选择我们刚才的镜像,容器端口22ssh开放出来,然后在开放一些业务端口,下一步就选择直接映射端口即可。
【启动命令可以写一个while循环】
这一步容器的作用,是为了让我们的服务更好的暴露到公网,接入dify中调用
在这里插入图片描述
启动成功之后就是以下效果,可以直接ssh22映射的端口连接到机器上

二、测试数据准备

在这里我们让大模型模拟一组数据,该数据来扮演我们的数据库【一周金融的报表】
在这里插入图片描述
以下是模拟后的数据
在这里插入图片描述

三、容器环境准备和服务启动

1.vllm服务启动

这里我们用qwen2.5-72B模型进行基底模型

#vllm测试
source /torch/venv3/pytorch_infer/bin/activate #激活vllm环境
export LD_LIBRARY_PATH=/usr/local/neuware/lib64
vllm serve /srv/Qwen2.5-7B-Instruct --dtype="bfloat16" --trust-remote-code --served-model-name 72b --gpu-memory-utilization 0.98 --tensor-parallel-size 8 --port 23001 --max_model_len 2048 --block_size 32#

2.fastmcp环境准备

pip install fastmcp

四、代码准备

from pathlib import Path
from fastmcp import Context
from fastmcp import FastMCP,Client
import asyncio
import pandas as pd
import requests
from fastmcp.resources import *
from datetime import datetime
mcp = FastMCP("testmcp",host="0.0.0.0",port=23005)

导入库并配置mcp,port用刚才容器的端口

from pathlib import Path
from fastmcp import Context
from fastmcp import FastMCP,Client
import asyncio
import pandas as pd
import requests
from fastmcp.resources import *
from datetime import datetime
mcp = FastMCP("testmcp",host="0.0.0.0",port=23005)

@mcp.tool()
def jinrong(beginTime: str = "", endTime: str = "") ->str|None:
    """返回近一个月的金融情况(返回Markdown)
    输入:无
    输出:md_table(包含日期,开盘价,最高价,最低价,收盘价,成交量(万手),成交额(亿元),涨跌幅(%))
    """
    df = pd.read_csv("/workspace/volume/guojunceshi2/mcpserve/sa/jinrong.csv")
    md_table = df  # 不保留行索引
    return md_table


def main():
    mcp.run()

if __name__ == "__main__":
    mcp.run(transport='streamable-http')

直接python运行该文件即可

五、dify配置

1 .工具选择

在这里插入图片描述

2.完整工作流

在这里插入图片描述

3.详细细节配置

在这里插入图片描述

model 用我们刚才配置的vllm大模型可以直接接入,接口通用
mcp config的url改成平台映射出来的端口

六、效果展示

在这里插入图片描述
在这里插入图片描述

上述只是简单描述下能力和效果,数据都是虚构的,有更深层次的使用和用法,欢迎私信交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值