当一个字段为 object 类型时,System.Text.Json 自动设置 JsonElement 类型,而不是对应的类型,因此在很多情况下会出现奇怪的问题。 因此这里只要有两个地方加上代码,缓解这一情况。 第一步,实现转换器,当一个类型是 object 时,如果 json 是简单类型,则直接使用实际类型,而不是 JsonElement。 但是当字段是字典、数组,如 object[],T[] 但是 T 中有 object 字段 等情况时,这里是无效的。 public class ObjectJsonSerial…

2024年7月10日 0条评论 236点热度 0人点赞 痴者工良 阅读全文

.NET 中的日志使用技巧 Serilog Serilog 是 .NET 社区中使用最广泛的日志框架,所以笔者使用一个小节单独讲解使用方法。 示例项目在 Demo2.Console 中。 创建一个控制台程序,引入两个包: Serilog.Sinks.Console Serilog.Sinks.File 除此之外,还有 Serilog.Sinks.Elasticsearch、Serilog.Sinks.RabbitMQ 等。Serilog 提供了用于将日志事件以各种格式写入存储的接收器。下面列出的许多接收器都是由更广…

2024年6月18日 0条评论 418点热度 1人点赞 痴者工良 阅读全文

文档说明 作者:痴者工良 文档地址:https://mmq.whuanle.cn 仓库地址:https://github.com/whuanle/Maomi.MQ 作者博客: https://www.whuanle.cn https://www.cnblogs.com/whuanle 导读 Maomi.MQ 是一个消息通讯模型项目,目前只支持了 RabbitMQ。 Maomi.MQ.RabbitMQ 是一个用于专为 RabbitMQ 设计的发布者和消费者通讯模型,大大简化了发布和消息的代码,并提供一系列简便和实用的…

2024年6月13日 0条评论 1128点热度 0人点赞 痴者工良 阅读全文

关于从零设计 .NET 开发框架 作者:痴者工良 教程说明: 仓库地址:https://github.com/whuanle/maomi 文档地址:https://maomi.whuanle.cn 作者博客: https://www.whuanle.cn https://www.cnblogs.com/whuanle 故障排查和日志 .NET 程序进行故障排查的方式有很多,笔者个人总结常用的有以下方式: IDE 调试、Visual Studio 中的诊断工具、性能探测器 一般来说,使用 IDE 进行断点调试和诊断只…

2024年6月5日 0条评论 638点热度 0人点赞 痴者工良 阅读全文

关于从零设计 .NET 开发框架 作者:痴者工良 教程说明: 仓库地址:https://github.com/whuanle/maomi 文档地址:https://maomi.whuanle.cn 作者博客: https://www.whuanle.cn https://www.cnblogs.com/whuanle 模块化和自动服务注册 基于 ASP.NET Core 开发的 Web 框架中,最著名的是 ABP,ABP 主要特点之一开发不同项目(程序集)时,在每个项目中创建一个模块类,程序加载每个程序集中,扫描出…

2024年6月3日 0条评论 560点热度 1人点赞 痴者工良 阅读全文

t4 模板文件 第一步,在项目中设置 t4 模板文件。 不知道 T4 模板的,可以自行查阅资料或查看 https://learn.microsoft.com/zh-cn/visualstudio/modeling/code-generation-and-t4-text-templates?view=vs-2022 可以使用工具生成两个模板文件。 安装模板工具: dotnet new install Microsoft.EntityFrameworkCore.Templates 然后到项目下面执行命令创建模板文件: …

2024年5月7日 0条评论 892点热度 2人点赞 痴者工良 阅读全文

string.Format 的功能非常有限,因此需要使用 SmartFormat.NET 框架来完成丰富的字符串插值功能。它可以使用类似于字符串的最小化、直观的语法将各种数据源格式化为字符串。格式。所有格式化都在运行时进行。SmartFormat 使用扩展来提供命名占位符、本地化、多元化、性别结合以及列表和时间格式。可以嵌套格式化扩展插件。 框架地址: https://github.com/axuno/SmartFormat https://github.com/axuno/SmartFormat/wiki 基础使…

2024年4月10日 0条评论 1076点热度 0人点赞 痴者工良 阅读全文

整体逻辑 ASP.NET Core gRPC 的使用很简单,服务注册和中间件只有两行代码。 var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddGrpc(); var app = builder.Build(); // Configure the HTTP request pipeline. app.MapGrpcService<Gr[......]继续阅…

2024年4月3日 0条评论 1222点热度 0人点赞 痴者工良 阅读全文

AI is becoming increasingly popular, so I am writing a simple introductory tutorial for readers in the hope that they will enjoy it. Many people want to learn AI but don't know how to get started. I was the same way at the beginning; first, I learned Python, t…

2024年3月25日 0条评论 2377点热度 1人点赞 痴者工良 阅读全文

为什么要写这个教程 在毕业之后,读者写过了大量的文章和开源项目,正是坚持一边学习一边输出,所以笔者最终从一个生菜鸡进化为一个熟菜鸡。 在程序员的成长中,我们会在思路,如何学习、如何进步,比如要成长为一个架构师,需要具备什么样的能力。比如说技术能力,技术能力是最核心的基础,那么我们技术上要达到哪种程度?可以手撸框架?脚踢汇编、拳打微服务架构? 常常会有技术社区朋友和读者进行交流,很多读者不知道怎么学习。笔者也是,我也不知道怎么学,各类东西都在学、都在搞,还没有确定要专门做什么,比如最近在学 AI。年轻人,总是很迷茫,…

2024年3月21日 2条评论 2386点热度 5人点赞 痴者工良 阅读全文

初始化 KernelMemory 启动时,会检查配置,即使当前代码没有使用到相关功能。 var hasQueueFactory = (this._memoryServiceCollection.HasService<QueueClientFactory>()); var hasContentStorage = (this._memoryServiceCollection.HasService<IContentStorage>()); var hasMimeDetector = (this._…

2024年3月13日 0条评论 1524点热度 1人点赞 痴者工良 阅读全文

万字长文学会对接 AI 模型:Semantic Kernel 和 Kernel Memory,工良出品,超简单的教程 目录: 配置环境 部署 one-api 配置项目环境 模型划分和应用场景 聊天 提示词 引导 AI 回复 指定 AI 回复特定格式 模板化提示 聊天记录 函数和插件 直接调用插件函数 提示模板文件 根据 AI 自动调用插件函数 聊天中明确调用函数 实现总结 配置提示词 提示模板语法 变量 函数调用 文本生成 Semantic Kernel 插件 文档插件 planners Kernel Memory…

2024年2月29日 0条评论 1710点热度 1人点赞 痴者工良 阅读全文

在对话中添加参数 使用 CreateFunctionFromPrompt() 为通过提示模板指定的提示创建 KernelFunction 实例。 KernelFunction 表示可以作为语义内核工作负载的一部分调用的函数。Semantic Kernel 中对 LLM 的调用就叫 KernelFunction。KernelFunction 分为 Semantic Function 、Native Function(本地函数)两种。 private readonly IKernelBuilder _kernelBui…

2024年2月24日 0条评论 1178点热度 1人点赞 痴者工良 阅读全文

EF Core 在执行插入操作时,不会直接将数据插入数据库,而是先将数据缓存在内存中。只有在以下情况下,EF Core才会将数据插入数据库: 显式调用 SaveChanges() 方法 上下文对象被销毁 达到上下文配置的批量插入数量 EF Core 将数据缓存在内存中的好处包括: 提高性能,批量插入数据可以提高数据库的性能。 减少错误,在将数据插入数据库之前,EF Core 可以对数据进行验证,以确保数据的有效性。 EF Core 将数据缓存在内存中的缺点包括: 增加内存使用量:如果缓存的数据量过大,可能会导致内存…

2024年2月19日 0条评论 1300点热度 1人点赞 痴者工良 阅读全文

编写界面控件,元素由 Grid 和一些控件组成,其中使用了 Expander 以便可以扩展面板内容。 <Grid> <Grid MinWidth="100" Height="50" VerticalAlignment="Top" HorizontalAlignment="Left" Background="Transparent" Margin="0,0,0,0" PreviewMouseDown="Button_MouseDown"[......]继续阅读

2024年2月6日 0条评论 1593点热度 3人点赞 痴者工良 阅读全文

随着 AI 的广泛影响,越来越多的企业在考虑是否可以接入 AI ,结合内部业务需求,实现一些落地场景。目前市面上有着很多的 AI 应用和形形色色、各种各样的开源 AI 系统,对于不了解 AI 的技术、非技术人员来说,怎么去学习了解、搭建 demo 是很困难的。因此,本文旨在以简单的方式帮助读者快速搭建两个 AI 系统,读者可以在使用两个系统后,更加深入了解 WebUI、大模型等相关的概念,以及可以知道目前的大语言模型可以做什么,怎么进行二次开发。 one-api one-api 是用于集合各种模型,然后统一转换为 …

2024年2月1日 0条评论 1775点热度 0人点赞 痴者工良 阅读全文

踩了不少坑,因为网上的资料实在太陈旧了。。。 安装 vue 后,首先检查 package.json 中的命令,是否为 vite。 然后根据需求,定义多个环境及其名称。 "dev": "vite", "build":"vite build", "build:test": "vite build --mode test", "build:uat": "vite build --mode uat", "build:pro": "vite build --mode pro", 默认什么都不加,即 npm run build…

2024年1月3日 4条评论 1902点热度 6人点赞 痴者工良 阅读全文

当 pdf 中包含 STSONG-light 字体时,会导致 pdf 转图片时,文字丢失。这是因为 GHostscript 默认配置的问题。在 Docker 中往往会出现这个问题。 查看 Ghostscript 配置文件: cat /etc/ghostscript/cidfmap.d/90gs-cjk-resource-gb1.conf 部分内容如下: /Song-Medium /GBZenKai-Medium ; /STSong-Light /BousungEG-Light-GB ; /STFangsong-Li…

2023年12月25日 0条评论 1578点热度 0人点赞 痴者工良 阅读全文

背景:最近使用 Debezium 做数据库数据监听工具,然后使用 C# 开发管理工具对接 kafka 获取增量同步的数据,这个 C# 管理工具需要支持自定义下游数据库映射,因此再新增加映射关系时需要批量将上游数据全量同步到下游,然后才能从 Kafka 中开始使用增量数据同步,以便保持上下游的数据一致。 刚开始,笔者使用 mysqldump 工具导出表数据,然后使用 C# 读取 SQL 文件,再导入到下游表。可是这样做的性能比较差、速度比较慢,而且不能修改表名称。因为上游表名称是 A , 下游表名称是 v_A ,内部…

2023年12月21日 0条评论 2174点热度 0人点赞 痴者工良 阅读全文

Ultralytics YOLOv8 是备受好评的实时目标检测和图像分割模型,主要功能是物体识别、分割图片物体、分类、姿态识别和跟踪等。Ultralytics 支持使用 CPU、GPU 进行训练,支持 x64、arm64 等 CPU 架构,支持苹果的 M1/M2 芯片,支持在边缘设备中训练和使用。 Ultralytics 对于个人免费,使用 【AGPL-3.0 许可】 开源协议,对于企业则需要付费。 Ultralytics 是框架的名称,YOLOv8 是该框架默认携带的模型的版本号,框架默认会自带多种用途模型,我们…

2023年12月13日 3条评论 2849点热度 0人点赞 痴者工良 阅读全文
1234526