
C#
文章平均质量分 80
mingupup
热爱C#
展开
-
C#连接小智服务器并将音频解码播放过程记录
最近小智很火,本文记录C#连接小智服务器并将音频解码播放的过程,希望能帮助到对此感兴趣的开发者。如果没有ESP-32也想体验小智AI,那么这两个项目很适合你。如果你有自定义服务端的需求,可以关注这个项目:如果没有硬件的话,对接小智服务端主要就是看通讯协议。原创 2025-04-02 10:04:29 · 388 阅读 · 0 评论 -
为Avalonia应用添加图标
为了让自己开发的应用更加好看,开发者往往需要增加一些图标。本文分享在开发Avalonia应用时如何为应用增加图标,希望可以帮助到正在学习使用Avalonia并有此需求的开发者。原创 2025-04-02 10:00:40 · 407 阅读 · 0 评论 -
使用Avalonia/C#构建一个简易的跨平台MCP客户端
前几天介绍了在C#中构建一个MCP客户端。最近正在学习Avalonia,所以就想用Avalonia实现一个简易的跨平台MCP客户端。接入别人写的或者自己写的MCP服务器就可以利用AI做很多有意思的事情。接下来我有时间也会和大家继续分享一些好玩的MCP服务器。原创 2025-03-18 19:08:17 · 554 阅读 · 0 评论 -
一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
使用C#构建了一个简单的MCP客户端,以下为运行这个简单客户端的截图,同样可以在Cline等其它的一些MCP客户端中玩耍。本文使用的控制台程序代码在:https://github.com/Ming-jiayou/mcp_demo。–directory后写这个脚本所在的文件夹,–db-path后写数据库所在的路径。由于模型智能程度的原因,可能也会出现一些错误,比如我需要沟通很多次才真的修改了。以上就使用AI对数据库表进行增删改查的效果了。请注意不要随便用于生产环境,先简单玩一玩就好。感兴趣快来玩玩玩吧!原创 2025-03-18 19:06:57 · 449 阅读 · 0 评论 -
使用C#创建一个MCP客户端
网上使用Python创建一个MCP客户端的教程已经有很多了,而使用C#创建一个MCP客户端的教程还很少。为什么要创建一个MCP客户端呢?创建了一个MCP客户端之后,你就可以使用别人写好的一些MCP服务了。对C#使用MCP感兴趣的朋友可以关注这个项目:https://github.com/PederHP/mcpdotnet。有问题欢迎一起交流学习。原创 2025-03-14 18:03:34 · 739 阅读 · 0 评论 -
C# AIModelRouter:使用不同的AI模型完成不同的任务
AI模型路由,模型的能力有大小之分,有些简单任务,能力小一点的模型也能很好地完成,而有些比较难的或者希望模型做得更好的,则可以选择能力强的模型。可以降低AI模型的使用成本,毕竟能力强的模型会更贵一点,省着用挺好的。当你的提问中包含一个ServiceId的时候,就会选择那个服务ID对应的模型进行回复,如果不包含就选择第一个服务ID对应的模型进行回复。实际上这样使用,很容易让AI迷惑,因为我们总是要带上一个ServiceId,如果让AI根据用户的提问,自己决定用哪个模型是更好的。原创 2025-01-06 11:49:14 · 444 阅读 · 0 评论 -
PaperAssistant:使用Microsoft.Extensions.AI实现
上篇文章介绍了使用Semantic Kernel Chat Completion Agent实现的版本。使用C#构建一个论文总结AI Agent今天来介绍一下使用Microsoft.Extensions.AI的版本。Microsoft.Extensions.AI 是微软为 .NET 生态系统推出的一组核心库,旨在为开发者提供统一的 C# 抽象层,简化与 AI 服务的集成。原创 2025-01-04 15:26:11 · 841 阅读 · 0 评论 -
C# 属性
在 C# 中,属性(Property)是一种特殊的成员,它允许对象以类似于公共数据成员的方式访问私有字段。属性提供了对类的私有字段的读取或写入访问,同时保持封装性。属性可以有 getter 和 setter 方法,分别用于读取和修改字段的值。要创建一个只读属性,你只需包含 getter 方法,而不包含 setter 方法。这将允许其他代码读取属性的值,但不允许修改它。在这个示例中,Age属性是只读的,不允许外部代码修改其值。但是,你仍然可以在类的内部(如构造函数中)修改_age字段的值。原创 2025-01-02 16:56:58 · 251 阅读 · 0 评论 -
使用C#构建一个论文总结AI Agent
我觉得将日常生活中一些简单重复的任务交给AI Agent,是学习构建AI Agent应用一个很不错的开始。本次分享我以日常生活中一个总结论文的简单任务出发进行说明,希望对大家了解AI Agent有所帮助。任务可以是多种多样的,真的帮助自己提升了效率,那就是一个很不错的开始了!!我的这个简单任务是这样的,有一篇文献,如下所示:我想要对该文献进行总结,然后将md格式笔记保存。原创 2025-01-02 16:56:06 · 1050 阅读 · 0 评论 -
C# 中的 sealed 关键字
关键字用于阻止一个类被继承,或者阻止一个成员(如方法、属性、索引器或事件)被重写。当一个类被声明为sealed时,它不能有子类,也就是说,不能有其他类从它继承。当一个成员(如方法、属性、索引器或事件)被声明为sealed时,它不能在派生类中被重写。这对于阻止派生类修改特定成员的行为非常有用。关键字一起使用,不能单独用于方法、属性、索引器或事件。不能在任何派生类中被重写。原创 2024-12-27 19:58:13 · 434 阅读 · 0 评论 -
C#使用Tesseract C++ API过程记录
此外,vcpkg还具有版本控制功能,能够方便地切换库的不同版本。Tesseract提供了丰富的 API 接口,支持 C++、Python、Java、Node.js 等多种编程语言,没有C#的,实际上已经有大佬做了C#的封装了,并提供了一个示例项目,需要只是简单使用一下,用这个大佬的就很方便了。之前跟大家分享的TesseractOCR-GUI需要在电脑上安装Tesseract才能用,因为只是简单的对Tesseract的命令行使用做了封装,现在通过这种方法,不需要安装Tesseract也能使用了。原创 2024-12-27 19:56:23 · 1168 阅读 · 0 评论 -
C#调用C++代码,以OpenCV为例
使用C#调用C++代码是一个很常见的需求,因此本文以知名的C++机器视觉库OpenCV为例,说明在C#中如何通过使用P/Invoke(平台调用)来调用C++代码。只是以OpenCV为例,实际上在C#中使用OpenCV可以使用OpenCVSharp这个项目,这是一个很优秀的项目,GitHub地址:https://github.com/shimat/opencvsharp。但是也有时候确实有需要调用C++代码的情况,因此大概知道应该怎么实现也是很有必要的,其他的C++库也是类似的方法。原创 2024-12-27 19:55:12 · 680 阅读 · 0 评论 -
C#继承、多态与封装
在C#中,继承、多态和封装是面向对象编程(Object-Oriented Programming,OOP)的三个核心特性。这三个概念是面向对象编程的基石,它们共同帮助开发者构建出更灵活、可扩展和易于维护的代码。原创 2024-12-17 12:56:11 · 440 阅读 · 0 评论 -
C#调用Python代码的方式(二):使用pythonnet
前面介绍了在C#中使用Progress类调用Python脚本的方法,但是这种方法在需要频繁调用并且需要进行数据交互的场景效果并不好,因此今天分享的是C#调用Python代码的方式(二):使用pythonnet调用Python代码。Python.NET 是一个包,为 Python 程序员提供了与 .NET 公共语言运行时 (CLR) 几乎无缝的集成,并为 .NET 开发者提供了一个强大的应用程序脚本工具。它允许 Python 代码与 CLR 交互,也可以用于将 Python 嵌入到 .NET 应用程序中。原创 2024-12-17 12:55:28 · 1422 阅读 · 0 评论 -
WPF Prism ViewInjection
ViewInjection是Prism框架提供的一种机制,用于将视图动态地注入到指定的容器(Region)中。这种注入方式允许你在运行时动态地添加、移除或替换视图,从而实现更灵活的用户界面设计。原创 2024-12-13 19:56:08 · 617 阅读 · 0 评论 -
C#调用Python脚本的方式(一),以PaddleOCR-GUI为例
每种语言都有每种语言的优势,Python由于其强大的生态,很多任务通过调用包就可以实现,那么学会从C#项目中调用Python脚本完成任务就很重要。C#调用Python代码有多种方式,如果Python那边内容比较多,可以考虑起一个Web Api进行调用,如果只是一个简单的脚本而且不需要频繁调用,那么可以考虑使用Process类创建一个进程来调用,如果有几个方法,并且需要进行数据交互,并可能会频繁调用,那么可以考虑使用pythonnet。原创 2024-12-13 19:54:30 · 1203 阅读 · 0 评论 -
C# 中的静态构造函数和实例构造函数的区别
在C#中,静态构造函数和实例构造函数在类的初始化过程中扮演着不同的角色。原创 2024-12-09 12:03:38 · 379 阅读 · 0 评论 -
VLM-OCR-Demo:一个使用VLM用于OCR任务的示例
上一篇文章TesseractOCR-GUI:基于WPF/C#构建TesseractOCR简单易用的用户界面中我们构建了一个方便使用TesseractOCR的用户界面,今天构建一个类似的界面,使用Semantic Kernel接入视觉模型,测试一下用视觉模型做OCR任务的效果。在之前的文章使用Tesseract进行图片文字识别的总结中说了使用VLM做这个任务的缺点,经过测试之后,发现确实存在。原创 2024-12-09 12:02:59 · 559 阅读 · 0 评论 -
WPF Prism ViewDiscovery
在 WPF Prism 应用程序中,View Discovery 是一个用于发现和注册视图(View)的机制。它允许您将视图与特定的区域(Region)相关联,并在运行时自动将视图添加到该区域中。区域(Region):区域是 UI 中的一个逻辑部分,用于容纳视图。例如,主窗口的左侧面板可以是一个区域,右侧面板可以是另一个区域。视图(View):视图是用户界面的一个部分,通常实现为一个 UserControl 或一个自定义控件。视图发现(View Discovery)原创 2024-12-07 14:48:53 · 1294 阅读 · 0 评论 -
TesseractOCR-GUI:基于WPF/C#构建TesseractOCR简单易用的用户界面
前篇文章使用Tesseract进行图片文字识别介绍了如何安装TesseractOCR与TesseractOCR的命令行使用。但在日常使用过程中,命令行使用还是不太方便的,因此今天介绍一下如何使用WPF/C#构建TesseractOCR简单易用的用户界面。本项目可以帮助人们更简单方便地使用TesseractOCR,对WPF/C#新手程序员,也可以当作一个简单的练手小项目。如果对你有所帮助,点颗star,就是最大的支持!!原创 2024-12-07 14:47:27 · 625 阅读 · 0 评论 -
WPF Prism 01-BootstrapperShell
Prism 是一个用于在 WPF、.NET MAUI、Uno 平台和 Xamarin Forms 中构建松耦合、可维护和可测试的 XAML 应用程序的框架。每个平台都有单独的发布版本,并且这些版本将在独立的开发时间线上进行开发。Prism 提供了一组设计模式的实现,这些模式有助于编写结构良好且可维护的 XAML 应用程序,包括 MVVM、依赖注入、命令、EventAggregator 等。原创 2024-12-06 11:32:48 · 994 阅读 · 0 评论 -
C# 中的 sealed 关键字
关键字用于阻止一个类被继承,或者阻止一个成员(如方法、属性、索引器或事件)被重写。当一个类被声明为sealed时,它不能有子类,也就是说,不能有其他类从它继承。当一个成员(如方法、属性、索引器或事件)被声明为sealed时,它不能在派生类中被重写。这对于阻止派生类修改特定成员的行为非常有用。关键字一起使用,不能单独用于方法、属性、索引器或事件。不能在任何派生类中被重写。原创 2024-12-04 08:57:07 · 635 阅读 · 0 评论 -
C# 委托与事件
委托的定义类似于方法签名,它包含了返回类型和参数列表,但没有方法体。委托在C#中提供了一种灵活的方法引用机制,它允许你将方法作为参数传递,实现方法的延迟调用,以及支持多播和异步调用,是C#中一个非常强大的特性。首先,定义一个委托类型,它将作为事件的类型。原创 2024-11-20 10:57:29 · 1252 阅读 · 0 评论 -
Microsoft.Extensions.AI 初探
在今年的.NET Conf上Steve Sanderson带来了题为“AI Building Blocks - A new, unified AI layer”的演讲。该演讲的主要内容如下:“大多数.NET应用程序可以通过AI功能变得更加强大和高效,例如语义搜索、自动分类、摘要生成、翻译、数据提取,甚至是基于聊天的助手。但直到现在,.NET本身还没有统一的AI概念表示标准,因此开发者需要组合使用许多不相关的API。原创 2024-11-20 10:55:03 · 1063 阅读 · 0 评论 -
C++/C#/Java 设计模式之抽象工厂模式
/ 抽象产品Apublic:// 抽象产品Bpublic:// 具体产品A1public:// 具体产品A2public:// 具体产品B1public:// 具体产品B2public:// 抽象工厂public:// 具体工厂1public:// 具体工厂2public:// 客户端代码return 0;运行结果如下所示:在这个例子中,我们定义了两个抽象产品类和,以及两个具体产品类。原创 2024-10-14 13:06:21 · 500 阅读 · 1 评论 -
AvaloniaTCP-v1.0.0:学习使用Avalonia/C#进行TCP通讯的一个简单Demo
TCP(传输控制协议,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它确保数据包按顺序传输,并在必要时进行重传,以保证数据的完整性和准确性。TCP通过三次握手建立连接,通过四次挥手释放连接,确保通信双方在传输数据前已准备好,并在传输结束后正确关闭连接。TCP广泛应用于需要高可靠性的网络应用,如网页浏览、文件传输和电子邮件等。原创 2024-10-14 13:04:12 · 498 阅读 · 0 评论 -
SimpleRAG-v1.0.3:增加文件对话功能
我上传这个文档之后,提问文档中的内容,如下所示:那么我们自己该如何实现这个功能呢?我们之前接触过RAG,那可以用来应对文档内容超出模型上下文的情况,但是很多时候,我们只是上传一份简单的文档,文档内容并不多,而且也不需要进行存储,那么这时候,就可以直接读文件内容,不用RAG。以下是自己实现的效果:也实现了同样的效果。原创 2024-10-09 12:01:00 · 361 阅读 · 0 评论 -
如何自己动手实现一个图片解答小助手
之前使用PaddleOCR的时候,我已经在电脑上安装了一个虚拟环境,因为需求比较简单,就是将图片进行文字识别之后返回文本就行了,因此今天玩个不一样的,不用.NET绑定,直接调用Python脚本就好了。这样可以用于拍照向AI提问的场景,我自己也有这方面的需求,因此动手实践了一下。现在就需要与大语言模型结合起来了,就是将识别出来的文字,丢给大语言模型。那么再拆解一下任务,我们需要在命令行中传入一个参数,该如何实现呢?获取到了Python脚本输出的值。现在图片文字识别的部分已经搞定了。原创 2024-10-09 11:59:29 · 1240 阅读 · 0 评论 -
SimpleAIAgent:使用免费的glm-4-flash即可开始构建简单的AI Agent应用
SimpleAIAgent是基于C# Semantic Kernel 与 WPF构建的一款AI Agent探索应用。主要用于使用国产大语言模型或开源大语言模型构建AI Agent应用的探索学习,希望能够帮助到感兴趣的朋友。接下来我想分享一下我的AI Agent应用实践。原创 2024-09-25 12:43:07 · 882 阅读 · 1 评论 -
SimpleAISearch:C# + DuckDuckGo 实现简单的AI搜索
最近AI搜索很火爆,有Perplexity、秘塔AI、MindSearch、Perplexica、memfree、khoj等等。在使用大语言模型的过程中,或许你也遇到了这种局限,就是无法获取网上最新的信息,导致回答的内容不是基于最新的信息,为了解决这个问题,可以通过LLM+搜索引擎的方式实现。以我之前开源的一个简单项目为例,如果直接问一般的大语言模型是不知道的,如下所示:对比可以联网的回答:PerplexitykhojKimi那么我们如何自己实现类似的效果呢?原创 2024-09-20 12:06:00 · 592 阅读 · 0 评论 -
SimpleTranslationAIAgent借助SiliconCloud API 构建自己的专属翻译助手
SimpleTranslationAIAgent是一款基于C#与LLM通过简单对话即可实现文件到文件的翻译任务的简单应用,基于WPF与Semantic Kernel构建。该软件是MIT协议完全开源免费的,但是调用LLM的API可能需要费用,但是没关系,赛博菩萨硅基流动有免费的模型可调了。这个Translation AI Agent只是一个简单的AI Agent示例应用,可能很多人都不需要它。原创 2024-08-31 14:01:41 · 1014 阅读 · 0 评论 -
SimpleTranslationAIAgent:基于C#与LLM的翻译AI Agent
当应用比较简单时,可能免费的模型就可以了,但是当应用比较复杂时,可能需要更强的模型才行了。开源出来主要是为了感兴趣的同学可以在看源码之后,也可以使用C#+LLM构建出更有意思更能提高自己工作效率的自己专属的AI Agent应用!该软件是MIT协议完全开源免费的,但是调用LLM的API可能需要费用,但是没关系,赛博菩萨硅基流动与智谱AI等都有免费的模型可调了。如果一个模型返回出错,可以重试,重试不行就可以换个模型试试了,越强的模型,成功的几率越高。原创 2024-08-31 14:00:53 · 1072 阅读 · 0 评论 -
在SimpleRAG中使用SiliconCloud快速测试Function Calling
函数调用允许您将模型如gpt-4o与外部工具和系统连接起来。这对于许多事情都很有用,比如为AI助手赋能,或者在你的应用程序与模型之间建立深度集成。如果您了解或者使用过Semantic Kernel可能会发现除了OpenAI支持Function Calling的模型之外,自动函数调用好像并不好用,国产大模型几乎都不能使用,由于想解决这个问题,在GitHub上找到了一个大佬的方法。原创 2024-08-29 08:04:05 · 1992 阅读 · 0 评论 -
Semantic Kernel/C#:一种通用的Function Calling方法,文末附经测试可用的大模型
函数调用允许您将模型如gpt-4o与外部工具和系统连接起来。这对于许多事情都很有用,比如为AI助手赋能,或者在你的应用程序与模型之间建立深度集成。如果您了解或者使用过Semantic Kernel可能会发现除了OpenAI支持Function Calling的模型之外,自动函数调用好像并不好用,国产大模型几乎都不能使用,由于想解决这个问题,在GitHub上找到了一个大佬的方法。原创 2024-08-29 08:03:07 · 1517 阅读 · 0 评论 -
使用Ollama本地离线体验SimpleRAG(手把手教程)
Ollama是一个开源项目,专注于开发和部署大语言模型,特别是像LLaMA这样的模型,用于生成高质量的文本和进行复杂的自然语言处理任务。Ollama的目标是让大语言模型的运行和使用变得更加容易和普及,而无需复杂的基础设施或深度的机器学习知识。GitHub地址:https://github.com/ollama/ollamaSimpleRAG是基于WPF与Semantic Kernel实现的一个简单的RAG应用,可用于学习与理解如何使用Semantic Kernel构建一个简单的RAG应用。原创 2024-08-22 15:15:26 · 1356 阅读 · 0 评论 -
使用SiliconCloud快速体验SimpleRAG(手把手教程)
基于优秀的开源基础模型,提供高性价比的 GenAI 服务。不同于多数大模型云服务平台只提供自家大模型 API,上架了包括 Qwen、DeepSeek、GLM、Yi、Mistral、LLaMA 3、SDXL、InstantID 在内的多种开源大语言模型及图片生成模型,用户可自由切换适合不同应用场景的模型。更重要的是,SiliconCloud 提供开箱即用的大模型推理加速服务,为您的 GenAI 应用带来更高效的用户体验。对开发者来说,通过 SiliconCloud 即可一键接入顶级开源大模型。原创 2024-08-22 15:10:34 · 1432 阅读 · 0 评论 -
AvaloniaChat-v0.0.2:兼容智谱AI 快速使用指南
北京智谱华章科技有限公司(简称“智谱AI”)致力于打造新一代认知智能大模型,专注于做大模型的中国创新。公司合作研发了中英双语千亿级超大规模预训练模型GLM-130B,并基于此推出对话模型ChatGLM,开源单卡版模型ChatGLM-6B。同时,团队还打造了AIGC模型及产品矩阵,包括AI提效助手智谱清言(chatglm.cn)、高效率代码模型CodeGeeX、多模态理解模型CogVLM和文生图模型CogView等。原创 2024-08-21 09:49:34 · 640 阅读 · 0 评论 -
Semantic Kernel/C#:接入智谱AI的两种方式
OpenAIHttpClientHandler可以在此处查看:https://github.com/Ming-jiayou/AvaloniaChat/blob/main/src/AvaloniaChat/Model/OpenAIHttpClientHandler.cs。创建Kernel的两种方式可以在此处查看:https://github.com/Ming-jiayou/AvaloniaChat/blob/main/src/AvaloniaChat/ViewModels/MainViewModel.cs。原创 2024-08-21 09:48:28 · 571 阅读 · 0 评论 -
SimpleRAG:基于WPF与Semantic Kernel实现的一个简单的RAG应用
SimpleRAG是基于WPF与Semantic Kernel实现的一个简单的RAG应用,可用于学习与理解如何使用Semantic Kernel构建RAG应用。GitHub地址:https://github.com/Ming-jiayou/SimpleRAG如果对您有所帮助,点个star✨,就是最大的支持😊。原创 2024-08-19 17:27:15 · 516 阅读 · 0 评论 -
AvaloniaChat—从源码构建指南
在看英文文献的过程中,比较喜欢对照着翻译看,因此希望一边是英文一边是中文,虽然某些软件已经自带了翻译功能,但还是喜欢大语言模型的翻译,但每次都要将英文复制粘贴过去还要自己手动添加prompt,还无法对照着看,因此自己基于Avalonia与Semantic Kernel开发了这款解决自己这个需求的软件,开源出来每个人都可以免费使用,希望能帮助到有同样需求的人。GitHub地址:https://github.com/Ming-jiayou/AvaloniaChat。即可从源码成功构建并运行。原创 2024-08-18 14:40:36 · 404 阅读 · 0 评论