当前位置: 首页 > wzjs >正文

做外贸的几个网站客服外包

做外贸的几个网站,客服外包,做网站刷点击,东莞疫情最新消息今天文章目录 将MCP(ModelContextProtocol)与Semantic Kernel集成(调用github)一、模型上下文协议(MCP)简介1.1 简介1.2 示例 二、集成步骤2.1 安装环境依赖2.2 构建语义内核(Kernel)2.3…

文章目录

  • 将MCP(ModelContextProtocol)与Semantic Kernel集成(调用github)
    • 一、模型上下文协议(MCP)简介
      • 1.1 简介
      • 1.2 示例
    • 二、集成步骤
      • 2.1 安装环境依赖
      • 2.2 构建语义内核(Kernel)
      • 2.3 创建MCP客户端
      • 2.4 获取MCP工具
      • 2.5 将MCP工具转换为Kernel函数
      • 2.6 通过函数调用MCP工具
    • 三、完整代码示例
    • 四、总结

将MCP(ModelContextProtocol)与Semantic Kernel集成(调用github)

在当今快速发展的技术领域,人工智能(AI)的应用正在不断拓展和深化。为了更好地将AI模型与各种数据源和工具连接起来,模型上下文协议(Model Context Protocol, MCP) 应运而生。MCP是一种开放协议,旨在标准化应用程序向大型语言模型(LLM)提供上下文的方式。本文将详细介绍如何将MCP工具与 语义内核(Semantic Kernel) 集成,以实现更强大的AI功能。

一、模型上下文协议(MCP)简介

1.1 简介

模型上下文协议(MCP)是一种开放协议,它标准化了应用程序如何向大型语言模型(LLM)提供上下文信息。MCP通过定义统一的接口,使得不同的数据源和工具能够与AI模型进行无缝连接。这种标准化的连接方式不仅提高了系统的互操作性,还增强了AI模型对上下文的理解能力,从而为用户提供更加精准和智能的服务。

MCP的潜在应用场景包括数据集成、知识管理等,对于开发先进的AI解决方案具有重要意义。
本文介绍了如何将 Model Context Protocol 工具与 Semantic Kernel 结合使用。模型上下文协议 (MCP) 是一种开放协议,用于标准化应用程序如何为 LLM 提供上下文。MCP 标准化了 AI 模型与各种数据源和工具之间的连接。

模型上下文协议非常重要,因为它增强了 AI 模型与数据和工具的交互方式,促进了互作性、灵活性并改进了上下文理解。它的潜在应用涵盖各个领域,包括数据集成和知识管理,使其成为开发高级 AI 解决方案的重要组成部分。

1.2 示例

本文中描述的示例侧重于通过函数调用将 AI 模型连接到 MCP 工具。

有关模型上下文协议 (MCP) 的更多信息,请参阅文档。

下面描述的此示例使用官方 ModelContextProtocol 包,受这些示例的影响。

该示例显示:

  1. 如何使用 ModelContextProtocol 连接到 MCP 服务器
  2. 检索 MCP 服务器提供的工具列表
  3. 将 MCP 工具转换为 Semantic Kernel 函数,以便将它们添加到 Kernel 实例中
  4. 从 Semantic Kernel 调用 MCP 工具以响应 LLM 函数调用请求

二、集成步骤

2.1 安装环境依赖

dotnet add package ModelContextProtocol --prerelease
dotnet add package SemanticKernel

2.2 构建语义内核(Kernel)

在开始集成之前,我们需要构建一个语义内核(Kernel)实例。Kernel是语义内核的核心组件,负责管理和执行各种AI功能。在本示例中,我们将使用OpenAI的Chat Completion模型,因此需要提供有效的API密钥。

var builder = Kernel.CreateBuilder();
builder.Services.AddLogging(c => c.AddDebug().SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace));
builder.Services.AddOpenAIChatCompletion(modelId: "glm-4-flash",// 这里使用了智谱的免费模型,可按需替换其他模型endpoint: new Uri("https://open.bigmodel.cn/api/paas/v4"),apiKey: "YOUR KEY");
Kernel kernel = builder.Build();

2.3 创建MCP客户端

MCP采用客户端-服务器架构,客户端通过MCP协议与服务器建立一对一连接。在本示例中,我们将创建一个MCP客户端,连接到本地运行的GitHub服务器。

  • MCP 主机:希望通过 MCP 访问数据的 IDE 或 AI 工具等程序
  • MCP 客户端:与服务器保持 1:1 连接的协议客户端
  • MCP 服务器:轻量级程序,每个程序都通过标准化的 Model Context Protocol 公开特定功能
    在这里插入图片描述

什么是 npx?
npx 是 Node.js 附带的命令行工具(从版本 5.2.0 开始),是 npm(Node Package Manager)生态系统的一部分。它用于直接从命令行执行Node.js包,而无需在系统上全局安装它们。

// 创建一个MCPClient GitHub的服务器
await using IMcpClient mcpClient = await McpClientFactory.CreateAsync(new StdioClientTransport(new()
{Name = "GitHub",Command = "npx",Arguments = ["-y", "@modelcontextprotocol/server-github"],
}));

2.4 获取MCP工具

MCP服务器可以将可执行功能作为工具暴露给客户端。这些工具可以被LLM调用,从而实现与外部系统的交互。通过以下代码,我们可以获取GitHub服务器提供的工具列表,并打印每个工具的名称和描述。

// 获取GitHub服务器上可用的工具列表
var tools = await mcpClient.ListToolsAsync().ConfigureAwait(false);
foreach (var tool in tools.Tools)
{Console.WriteLine($"{tool.Name}: {tool.Description}");
}

GitHub MCP服务器提供了多种工具,例如创建或更新文件、搜索仓库、创建问题等。

2.5 将MCP工具转换为Kernel函数

为了在语义内核中使用MCP工具,我们需要将它们转换为Kernel函数。Kernel函数是语义内核中表示工具的抽象。通过以下代码,我们可以将MCP工具转换为Kernel函数,并将其添加到Kernel实例中。

kernel.Plugins.AddFromFunctions("GitHub", tools.Select(aiFunction => aiFunction.AsKernelFunction()));

2.6 通过函数调用MCP工具

将MCP工具转换为Kernel函数后,我们就可以在Kernel中使用它们了。以下是一个示例,展示如何通过函数调用获取GitHub仓库的最近四次提交。

OpenAIPromptExecutionSettings executionSettings = new()
{Temperature = 0,FunctionChoiceBehavior = FunctionChoiceBehavior.Auto(options: new() { RetainArgumentTypes = true })
};var prompt = "总结最后四次提交到microsoft/semantic-kernel存储库的情况?";
var result = await kernel.InvokePromptAsync(prompt, new(executionSettings)).ConfigureAwait(false);
Console.WriteLine($"\n\n{prompt}\n{result}");

注:获取github提交信息失败,实际上已经调用了mcp了,前面测试还可以,写博客时一直失败,后续会再排查原因
在这里插入图片描述

三、完整代码示例

// 创建一个MCPClient GitHub的服务器await using var mcpClient = await McpClientFactory.CreateAsync(new StdioClientTransport(new(){Name = "MCPServer",Command = "npx",Arguments = ["-y", "@modelcontextprotocol/server-github"],}));// 获取GitHub服务器上可用的工具列表var tools = await mcpClient.ListToolsAsync().ConfigureAwait(false);foreach (var tool in tools){Console.WriteLine($"{tool.Name}: {tool.Description}");}// 构建内核与MCP工具内核函数var builder = Kernel.CreateBuilder();builder.Services.AddLogging(c => c.AddDebug().SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace)).AddOpenAIChatCompletion(modelId: "glm-4-flash",endpoint: new Uri("https://open.bigmodel.cn/api/paas/v4"),apiKey: "YOUR KEY");Kernel kernel = builder.Build();
#pragma warning disable SKEXP0001 // 类型仅用于评估,在将来的更新中可能会被更改或删除。取消此诊断以继续。kernel.Plugins.AddFromFunctions("GitHub", tools.Select(aiFunction => aiFunction.AsKernelFunction()));
#pragma warning restore SKEXP0001 // 类型仅用于评估,在将来的更新中可能会被更改或删除。取消此诊断以继续。// 开启函数自动调用
#pragma warning disable SKEXP0001 // 类型仅用于评估,在将来的更新中可能会被更改或删除。取消此诊断以继续。OpenAIPromptExecutionSettings executionSettings = new(){Temperature = 0,FunctionChoiceBehavior = FunctionChoiceBehavior.Auto(options: new() { RetainArgumentTypes = true })};
#pragma warning restore SKEXP0001 // 类型仅用于评估,在将来的更新中可能会被更改或删除。取消此诊断以继续。// 测试使用GitHub工具//var prompt = "Summarize the last four commits to the microsoft/semantic-kernel repository?";var prompt = "总结最后四次提交到microsoft/semantic-kernel存储库的情况?";var result = await kernel.InvokePromptAsync(prompt, new(executionSettings)).ConfigureAwait(false);Console.WriteLine($"\n\n{prompt}\n{result}");

四、总结

通过将MCP工具与语义内核集成,能够实现对GitHub数据的高效访问和操作。这种集成不仅提高了系统的灵活性和互操作性,还为开发者提供了更加便捷的方式来构建智能应用程序。

注:如果遇到下面报错,说明电脑上没装Node.js,需要进行安装。
在这里插入图片描述

http://www.dtcms.com/wzjs/27457.html

相关文章:

  • 成都市武侯区建设局门户网站营销号
  • 武汉做医院网站公司电话推广一次多少钱
  • 滕州住房城乡建设局网站成都网站建设系统
  • 论坛网站免费建设模板短视频代运营合作方案
  • 揭阳 网站建设收录网站排名
  • 搜索引擎找不到的网站新闻发稿公司
  • 张家港早晨网站建设国内优秀网站案例
  • 做网站有必要吗推广计划方案模板
  • 长春火车站出站要求百度合伙人答题兼职赚钱
  • 网站方案书点金推广优化公司
  • 网站开发一般用什么服务器注册网址在哪里注册
  • 医疗微网站建设计划书网站优化排名易下拉软件
  • wordpress新建页面位置广州seo顾问服务
  • 用c 做毕业设计的音乐网站专业技能培训机构
  • 关于政府网站建设的情况说明百度广告推广平台
  • 手机站电影大连网站建设费用
  • 创意设计网站百度平台app下载
  • 网站建设方案意见对网络营销的理解
  • 024 网站推广兴安盟新百度县seo快速排名
  • 重庆网站建设-首选云慧通关键词优化设计
  • 企业自助建站策划方案站长之家查询网
  • 高明网站设计报价静态网页制作
  • 南京建设局网站谷歌手机版下载安装
  • 网站营销公司免费做网站怎么做网站链接
  • 设计公司vi百度搜索关键词排名优化推广
  • 外包做网站的会给你什么qq引流推广平台
  • 工作服厂家无锡 帛裳服饰专业seo关键词挖掘
  • 从化在哪里建设网站的seo建站网络公司
  • 嘉兴建设中学网站线上商城推广软文
  • 宝安网站建设多少钱快手刷粉网站推广