首页 文章 精选 留言 我的

精选列表

搜索[服务器],共10000篇文章
优秀的个人博客,低调大师

GFast 开发 MCP 服务器之 mark3labs/mcp-go 库接入(二)

接下来我们正式把mark3labs/mcp-go接入到GFast框架,并实现自动注册,后续我们只需要添加对应的tool、resource、prompt方法即可 一、首先要了解tool、resource、prompt是什么,有什么作用。 在Model Context Protocol (MCP)框架中,Tool、Resource、Prompt是三个核心组件,分别承担不同的角色,共同协作以优化模型对上下文的理解和处理能力。以下是它们的详细解释和作用: 1. Tool(工具) 定义: Tool是模型可调用的外部功能模块或接口,用于扩展模型的基础能力(如计算、搜索、代码执行等)。 在 MCP 中,Tools 通常以标准化协议(如 OpenAI 的 Function Calling)集成,允许模型动态选择并执行工具。 作用: 增强模型功能:弥补纯语言模型的局限性(如实时数据获取、数学运算)。示例:调用搜索引擎 API 获取最新新闻,或使用 Python 解释器运行代码。 自动化任务:将复杂任务分解为工具链(如先检索知识库,再生成摘要)。 上下文动态更新:通过工具返回的结果,实时更新模型的上下文。 典型场景: 查询天气、股票等实时信息。 执行数据库操作或数据分析。 2. Resource(资源) 定义: Resource是模型可访问的静态或动态数据源,包括知识库、数据库、文档集合等。 在 MCP 中,Resources 通过索引或向量化技术(如 RAG)被高效检索和加载到上下文中。 作用: 扩展知识边界:为模型提供训练数据之外的领域知识(如企业私有文档)。 支持长上下文:通过按需加载资源片段,避免一次性输入全部内容。示例:仅加载与用户问题相关的文档段落,而非整个 PDF。 多模态支持:资源可以是文本、表格、图像(需编码为模型可理解的格式)。 典型场景: 法律顾问模型引用法典条款。 医疗诊断模型参考最新医学论文。 3. Prompt(提示) 定义: Prompt是用户或系统提供给模型的指令或上下文输入,用于引导模型行为。 在 MCP 中,Prompt 可能被结构化设计(如包含角色设定、任务步骤、示例等)。 作用: 控制模型输出:通过精心设计的 Prompt 约束生成内容(如格式、风格)。示例: “你是一名资深翻译官,将以下中文翻译成英文,要求使用学术用语:{text}” 动态上下文管理:Prompt 可包含对 Tool 或 Resource 的引用。示例: “根据从{数据库工具}检索到的2023年财报,总结公司的营收趋势。” 多轮对话维护:在对话系统中,Prompt 可能隐式包含历史对话的压缩摘要。 典型场景: 复杂任务分解(如分步骤生成报告)。 个性化交互(如设定模型角色为“幽默的助手”)。 三者的协同关系 用户输入 Prompt→ 模型解析后,发现需要调用Tool(如搜索)→ Tool 返回结果作为Resource→ 模型整合资源生成最终回复。 Prompt 中嵌入 Resource 引用→ 模型通过检索工具加载相关资源 → 结合资源内容生成答案。 示例流程: 用户 Prompt: "特斯拉2023年Q3的营收是多少?" → 模型调用 "财经数据查询 Tool" → Tool 访问财务报表 Resource(如数据库) → 返回数据后,模型生成回答: "特斯拉2023年Q3营收为234亿美元。" 总结对比 组件 核心作用 关键特点 Tool 扩展模型能力,执行外部操作 动态性、API 驱动 Resource 提供数据支持,补充知识 静态/动态存储、按需检索 Prompt 引导模型行为,传递任务意图 结构化设计、可嵌套工具/资源 通过 MCP 对这三者的统一管理,模型能够更高效、精准地处理复杂任务,同时降低冗余计算和上下文噪声。 明白这些方法各自作用后,就更方便我们后续接入相关功能。 二、挂载MCP服务 在cmd.go文件中可以看到自动挂载服务的方法调用如下图: 然后在app目录下添加mcp模块,创建hook挂载mcp资源相关服务: 添加后后续的tool、resource、prompt就可以实现自动注册和绑定到服务中来。 添加自动注册的相关方法: 1. 添加tools工具函数 在mcp目录下创建tools目录,该目录用来存放mcp服务所需的工具函数,例如添加一个hello_world工具: 创建一个tool.go用于存放实现自动注册的结构体: 添加hello_world.go添加工具方法: 此时,运行mcp客户端,连接上服务后,可以看到tool工具列表中就有hello_world工具: 输入一个名字“张三”运行,可以看到mcp服务响应了:“Hello, 张三!”。 这时如果我们要再建一个工具就会变得非常方便,只需要再添加一个文件,或在当前文件继续添加方法都是可以的,为了直观展示,我们就再添加一个文件的方式来添加工具: 比如再添加一个工具用于获取指定目录下有哪些文件,添加完后立马就能在mcp客户端使用,而不需要修改其他任何代码。 然后我们通过vscode使用roo插件工具调用大模型来使用mcp提供的工具: 配置好mcp服务后可以看到对应工具 到此,添加工具的集成就完成。 2. 添加prompt和resource是相同的操作,只需要在对应目录添加对应方法即可

优秀的个人博客,低调大师

玩转服务器之环境篇:PHP和Python环境部署指南 | 京东云技术团队

前几篇文章中讲解了如何搭建docker和Java Web环境的方法,本篇文章来教大家搭建一个好的PHP和Python环境,可以帮助开发和运行PHP和Python应用程序,使其更加高效和稳定。 一、 PHP环境介绍 好的开发环境无疑会大大提升编码效率,近日钻研了一下Python环境安装的问题,稍加总结分享一下。本文以轻量云主机(CenTOS 7.6系统)为例,介绍如何搭建PHP环境。 1.1、前置准备 正式开始部署前,您需完成如下的准备工作: 开通京东云账户,若您还未注册京东云账号,可在京东云官网进行注册; 账户开通后,需要进行实名认证; 购买一台或多台云主机或者轻量云主机产品; 登录轻量云主机,复制下面步骤中的命令进行执行操作; 1.2、搭建PHP环境 本次安装的是PHP7,有些linux版本的yum默认是安装的5,需要做如下更改 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm 安装PHP yum -y install php72w 安装PHP扩展 yum -y install php72w-common php72w-fpm php72w-opcache php72w-gd php72w-mysqlnd php72w-mbstring php72w-pecl-redis php72w-pecl-memcached php72w-devel 1.3、安装Apache 安装Apache yum install -y httpd systemctl start httpd 1.4、测试验证 新建info.php文件 cd /var/www/html vi info.php 在文件中输入 下面内容,并保存文件 <?php phpinfo(); ?> 在浏览器中输入 http://ip/info.php查看效果 二、 Python环境介绍 Python是一种面向对象的解释型语言,可应用于各种领域,包括但不限于网站、游戏开发、机器人,人工智能,大数据等。 CentOS系统本身默认安装有python2.x,版本x根据不同系统版本有所不同,可通过 python --V 或 python --version 查看系统自带的python版本。 本文以轻量云主机(CenTOS 7.6系统)为例,介绍如何部署python3.6环境。 2.1、前置准备 正式开始部署前,您需完成如下的准备工作: 开通京东云账户,若您还未注册京东云账号,可在京东云官网进行注册; 账户开通后,需要进行实名认证; 购买一台或多台云主机或者轻量云主机产品; 登录轻量云主机,复制下面步骤中的命令进行执行操作; 2.2、搭建Python3.6环境 查看可以安装的python3版本 yum -y list python3* 安装python3.6 yum -y install python36 验证phthon3.6 是否安装成功 python3 -V 2.3、安装PIP3 安装pip3 yum install python3-pip 更新pip3 pip3 install -U pip -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host http://pypi.tuna.tsinghua.edu.cn 修改pip3软件源 sudo pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 2.4、测试验证 测试pip3使用 pip3 install lxml 创建一个hello.py文件 vi hello.py 在文件中输入 print("hello world") , 并保存文件 执行python脚本,输出hello world python3 ./hello.py

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册