MCP越来越火了,各大模型公司也在陆陆续续支持MCP了,OpenAI在前不久声明对MCP的支持,同时社区的SDK也来了,今天就用ModelContextProtocol来创建服务端和客户端,并且找通他们。与此同时,也不能落下SK,看看SK怎么使用MCP。先看Server端:项目文件如下:<Project Sdk="Microsoft.NET.Sdk.Web"> <Pro
https://techcommunity.microsoft.com/blog/educatordeveloperblog/building-ai-agents-on-edge-devices-using-ollama--phi-4-mini-function-calling/4391029。本篇文章想更详细地梳理一下,结合SK来给出一个完整的例子。 首先安装olloma,然后安装phi4-m
现在有一个业务场景,有一个雇员类,里面有一个管理者的属性,也是雇员类这种类型,普通雇员的管理者是经理,经理的管理者是CEO,CEO的管理要么是空,要么是自己管理自己,空是正常的,但如果CEO的管理者是自己,用.NET9实现,如下:using System.Text.Json; var ceo = new Employee { NO = 1, Name = "CEO" }; ceo.Manag
生成式AI早期有一个测试题,就是让AI回答0.9和0.11那个大,早先的版本的AI回答0.11大,还引来大家对AI“智力”的讨论。今天,咱们说一下在不同的场景下,0.11还真比0.9大。 看这样一个实例:foreach (string version in new[] { "v0.0.0.1", "v0.0.0.2", "v0.0.0.11" }.Order()) { Console.W
在 .NET 的异步编程中,System.Threading.Channels 提供了一种强大的方式来处理生产者-消费者模式,尤其是当我们要在不同的任务或服务之间传递数据时。这篇文章我们就来聊聊 UnboundedChannelOptions 和 BoundedChannelOptions 这两个类,以及它们的使用场景和区别。代码背景介绍 我
今天在.NET项目中,使用基于策略角色的鉴权时,遇到一个401的问题,场景如下: Program.cs代码如下:using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; using Microsoft.Iden
选项模式在 ASP.NET Core 中使用类来提供对相关配置设置的强类型访问。通过将配置设置隔离到单独的类,应用程序遵循封装和关注点分离的原则。封装确保依赖于配置的类仅依赖于其使用的设置;关注点分离则确保应用的不同部分的设置互不依赖或耦合。此外,选项模式还提供了验证配置数据的机制。三种IOptions:下面是代码文件:Program.csusing Microsoft.Extensions.
UnitsNet 是一个功能强大的 .NET 库,专为简化物理单位的处理而设计。它提供了丰富的单位类型及其转换功能,使开发人员能够在代码中方便地进行物理单位间的转换、计算和显示。UnitsNet 支持多种领域的物理单位,例如长度、质量、体积、温度、速度、面积等,极大地提高了开发效率和代码的可读性。无论是科学计算、工程项目,还是需要精确单位转换的应用程序开发,UnitsNet
下面是几个在.NET9中WinForm的新功能!主题 Windows Forms 已初步支持暗模式,目标是在 .NET 10 中实现完整支持。应用程序的颜色模式可以设置为以下几种值:SystemColorMode.Classic—(默认)浅色模式,与之前版本的 Windows Forms 相同。SystemColorMode.System—遵循 Windows 设置的浅色或深色模式。Syst
SemanticKernel系列Semantic Kernel(SK)是微软开发的开源框架,旨在帮助开发者将大型语言模型(LLM)集成到应用程序中。它提供了丰富的工具和功能,支持多种编程语言,简化了LLM的调用和管理过程。通过SK,开发者可以更高效地构建智能应用,实现自然语言处理、对话生成等功能。此外,SK还支持与本地或国产模型的集成,提供了灵活的模型选择方案。1、Semantic Kernel概
Results.Problem 是 ASP.NET Core 提供的一种标准化错误响应生成方法,用于创建符合 RFC 7807 标准的错误响应(Problem Details)。它可用于 Web API 中返回结构化的错误信息,包含 type、title、status 和 detail 等字段,帮助客户端理解并处理错误。通过参数定制,Results.Problem 能清晰地描述错误类型、状态码
最近有个需求,就是把我用中文录制的视频转成日语。基本思路是: 中文视频->采集中文字幕->优化->转成日语->转成日语语音->合成到视频中。 当前很多软件具有这个功能,一是收费,二是正好实现一下,把代码保留在自己手中,方便集成。 下面是直接看代码吧!smartfill.srt1 00:00:02,912 --> 00:00:05,905 こんにちは、今
在开始,先说说这个小工具的来由。我计划在11月16号在东京举办一次《AI应用开发之旅》的社区活动(https://www.just-agi.com/event.html),活动华人为主,所以用中文,朋友说要带日本人过来,问有没有日语字幕,看了一下我的Teams,只有实时字幕,并没有翻译,于是就开始自己造轮子了。 这个小工具是用WinForm开发,只保留源语言文字和翻译后文字显示,其他部分作透
虽然本节与SK无关,但都是基于AI,所以暂且放在这个系统中 Azure AI 视觉的多模式嵌入 API 可以将图像和文本转换为向量,也就是一种数字化的表示方式。这种技术可以让我们实现基于向量的图片搜索功能。通过结合这个 API 和 pgvector(PostgreSQL 中的向量库),我们可以让图片变得可搜索,甚至支持用文字来找图片。使用PostgreSQL作为向量化库桂素伟,公众号:桂迹S
插件是Semantic Kernel的核心组件。通过插件,你可以将现有的API封装成一个集合,供AI调用,从而赋予AI原本无法执行的操作能力。 在背后,Semantic Kernel利用了最新大型语言模型(LLM)中的原生功能——Function Calling,来帮助LLM进行规划并调用API。通过函数调用,LLM可以请求特定函数的执行。Semantic Kernel会将这个请求传递给代码
Semantic Kernel中的Functions被设计为可被动态调用的“插件”,用于处理某些特定的操作。例如,一个Function可以是用于获取天气信息的API请求,或者是用于计算复杂数学表达式的函数。 在SK中,Functions通常分为以下两种类型:本地函数和语义函数。Native Functions(本地函数): 这些是直接用编程语言(如Python、C#等)编写的代码函数,可以
在生成式AI中,代理通常指的是能够自主生成或操作数据的系统或模型。这些代理可以在多种场景中发挥作用,包括文本生成、图像和视频制作、音乐创作,以及数据分析和模拟。以下是一些代理在生成式AI中的具体作用和好处:增强创造性: 代理可以生成新颖的创意,如艺术作品、音乐或文学文本,帮助艺术家和创作者超越传统思维限制。自动化内容生产: 在媒体和娱乐行业,代理能够自动生成新闻报道、社交媒体帖子或其他类型
GraphRAG 是一种结构化的、层次化的检索增强生成(RAG)方法,区别于简单的文本片段语义搜索。GraphRAG 过程包括从原始文本中提取知识图谱,构建社区层级,为这些社区生成摘要,然后在执行 RAG 任务时利用这些结构。 详见:https://microsoft.github.io/graphrag/ GraphRAG安装非常简单,首先安装最新的Python,要求是Pyton3.10
最近有个需求,要求把日志加密,因为系统一直用的是NLog,所以也只能在这个基础上加密了。本文的用法NLog很早就有了,记录下来,以作后用。 NLog加密相对好处理,只需要定义一个TargetWithLayout的子类,重写它的Write方法即可,至于加密算法,可以自己行决定,这样就可以把灵活放成最大化,有途径,不干涉。下面代码中的EncryptedFileTarget就是自定义的Target
目前SK已支持OpenAI,Azure OpenAI,Gemini,HuggingFace,MistralAI等LLM,相信之后会越来越丰富。 首先要引入所对应的LLM包,具体项目文件如下:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputTy
asp.net core 9中,引入了HyBridCache,本质上他并不是全新的一种缓存,而以与原来的缓存复合使用。<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net9.0</TargetFramework> <Nulla
随着Semantic Kernel功能的使用,和版本功能的稳定,是时候梳理一下SK的功能了。本系列文章会以C#作为主要的案例分享语言,尽量做到“概念解释简明易懂,示例代码清晰简洁”。 为了简单说明,之后Semantic Kernel都简写为SK。 SK是一个软件开发工具包(SDK),它将大型语言模型(LLMs)如OpenAI、Azure OpenAI和Hugging Face与传统编程语言
前一篇简单说了一下怎么在项目中引入新的OpenAPI,本篇再进一步,看看怎么引入UI界面。 主要做法是通过添加/scalar/openapidemo这个静态页面实现,在页面中,引入了scalar的js,关于scalar,请详看https://scalar.com。其他信息与上一篇介绍的差不多。代码如下:using Microsoft.AspNetCore.Http.HttpResults;
在.NET9的第4个预览版里,微软带来了OpenAPI,需要引用Microsoft.AspNetCore.OpenApi,如果想生成本地的API描述文件,需要引用Microsoft.Extensions.ApiDescription.Server。 下面是项目文件:<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup
首先说一下我的观察和体会啊,这只是我个人的观察:生成式AI没有之前那么粗暴性的火爆了?而是变得更细化,更精准的推陈出新或版本迭代了?与此同时,常用的一些工具中,AI的影子多了起来。是的,AI并不是以排山倒海一样来的,而是以润物细无声和方式融入我们的应用或工作中的。 其实新旧技术从来不是以切换的方式进行的,就比较面向桌面的编程技术,当遇到互联网时,也受到冲击和质疑,但结果是两者互相储存,不是你
最近,开发了一个基于生成式AI的小工具,这款小工具的作用是:无侵入性地提升用户输入效率。主要使用场景是重复性输入的表单,原始信息内容与将要输入的表单内容对不齐,这时,SmartFill就会分析这些内容,然后自动填写到页面表单上。源内容可以是文本,语音,图片等多媒体信息。 我给他起了个名字叫SmartFill,它的无侵性主要是通过加载Chrom插件来实现的。下面简单说一下使用过程。 第一步:
之前的篇章都是用SemanticKernel来连接OpenAI的API,当然是需要费用,另外还有使用限制,本篇来说明在SK中使用开源模型LLama3。 首先引入Nuget包,这里使用的是LLamaSharp这个三方包,因为没有显卡,只能跑在CPU上,所以也需要引入对应的Cpu包,最后引入SK的LLama版的包。<ItemGroup> <PackageReference
监控,为服务保驾护航,也为业务量化提供有力支持,当然在SemanticKernel中的监控也不例外,同时还能为真金白银的Token提供量化监控。 下面是项目中使用的Nuget包:<ItemGroup> <PackageReference Include="Microsoft.SemanticKernel" Version="1.7.1" /> <Pack
Plugins在SK中是一个神奇的功能。我们说大语言模型具有不确定性,我们的代码是确定性的,而Plugins有把这种不确定性转成确定性能功能。 下面的例子是一个通过自然语言实现购买的案例,客户可以通过文字或语音来输入自然语言,<ItemGroup> <PackageReference Include="Microsoft.SemanticKernel" Version=
LLM下的Agent代表着一个“智能体”角色,或是大领域全才,或是细分领导专才。成为一个代理后的最大好处是可以让Agent作为代表,与其他的Agent进行交互,直到达到想要的结果。 下面是一个高级程序员和架构师两个架构作为代理的案例,高级程序员写完程序后,架构师来Review,针对性地提出修改意见。如果结果满意,则放行通过。 引入nuget包:<ItemGroup> &
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号