首页 > 其他分享 >dotnet SemanticKernel 入门 注入日志

dotnet SemanticKernel 入门 注入日志

时间:2023-09-02 11:12:27浏览次数:45  
标签:origin git 代码 gitee dotnet 日志 SemanticKernel

使用 SemanticKernel 框架在对接 AI 时,由于使用到了大量的魔法,需要有日志的帮助才好更方便定位问题,本文将告诉大家如何在 SemanticKernel 注入日志

本文属于 SemanticKernel 入门系列博客,更多博客内容请参阅我的 博客导航

在 KernelBuilder 创建器里面可以通过 WithLogger 注入 ILogger 类型的日志对象。咱既可以自己定义一个类型继承 ILogger 类型,也可以使用官方的日志库

本文将使用官方的日志库作为例子,告诉大家如何在 SemanticKernel 注入日志

按照 dotnet 的习俗,使用官方的日志库的第一步就是通过 NuGet 安装库,可以编辑 csproj 项目文件如下代码用来快速安装 Microsoft.Extensions.Logging.Console 库

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net7.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="7.0.0" />
    <PackageReference Include="Microsoft.SemanticKernel" Version="0.20.230821.4-preview" />
  </ItemGroup>

</Project>

这里必须说明的是 Microsoft.Extensions.Logging.Console 是一个通用的日志库,而不是一个专门给 ASP.NET Core 专用的库,上回我就遇到一位新手开发者误解了这个问题。官方的日志库是不单设计给到 ASP.NET Core 使用的,也可以在控制台或 WPF 应用或 WinForms 应用上使用的。另外值得一提的是以上我提到的三个框架也是非常方便的进行相互之间引用的,也就是说可以在一个项目里面同时使用上这三个框架

按照官方的日志库的通用做法,先是创建出 LoggerFactory 日志工厂,接着在工厂里面调用 AddConsole 加上控制台日志,最后调用 KernelBuilder 的注入,如以下代码

var loggerFactory = LoggerFactory.Create(builder =>
{
    builder.AddConsole();
    builder.SetMinimumLevel(LogLevel.Debug);
});
var logger = loggerFactory.CreateLogger("SemanticKernel");

IKernel kernel = new KernelBuilder().WithLogger(logger).Build();

通过以上代码即可完成将日志模块注入到 SemanticKernel 里,更多日志配置,请参阅 官方文档

本文的代码放在githubgitee 欢迎访问

可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码

git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin 84c1e073be77bee177607596b5e03cabb0c0a719

以上使用的是 gitee 的源,如果 gitee 不能访问,请替换为 github 的源。请在命令行继续输入以下代码

git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
git pull origin 84c1e073be77bee177607596b5e03cabb0c0a719

获取代码之后,进入 SemanticKernelSamples\Example03_Variables 文件夹

标签:origin,git,代码,gitee,dotnet,日志,SemanticKernel
From: https://www.cnblogs.com/lindexi/p/17673346.html

相关文章

  • dotnet SemanticKernel 入门 自定义变量和技能
    本文将告诉大家如何在SemanticKernel框架内定义自定义的变量和如何开发自定义的技能本文属于SemanticKernel入门系列博客,更多博客内容请参阅我的博客导航自定义变量是一个非常有用的技能,自定义变量可以让炼丹师和程序员进行并行工作。由炼丹师对AI模型进行训练,从而找到对......
  • 日志logback.xml配置文件的模板与导入的依赖
    2023-09-02依赖的jar包<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.20</version></dependency><dependency><groupId>ch.qos.logback</g......
  • MySQL binlog日志总结
    概念描述binlog日志:binlog日志用于记录所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句。语句以“事件”的形式保存,它描述数据更改。binlog可用于实时备份,主从复制master->slave的数据同步。知识总结binlog相关参数:log_bin:#开启binlog参数,可以指定......
  • Git使用教程-安装、配置、建立本地仓库、本地仓库的基本操作(查看工作区的文件状态,添加
    Git介绍一、为什么要学习Git?在开发一个软件时,这份工作通常需要一个team来完成。我们把这个软件划分为不同的模块,每个人负责一个模块的开发和维护。在这个过程中,如何保持team中成员软件开发的同步,保存开发周期中各个历史版本,解决team中成员间开发的版本冲突?Git是对这个问题......
  • Shell自动化日志维护脚本
    简介:系统日志对于了解操作系统的运行状况、故障排除和性能分析至关重要。然而,长期积累的日志文件可能变得庞大,影响系统性能。在这篇文章中,我们将介绍一个自动化的解决方案,使用Bash脚本来监控和维护系统日志文件,以确保它们的大小合理,避免磁盘爆满,并保持内容的整洁和高效。问题......
  • .NET 日志系统-3 结构化日志和集中日志服务
    .NET日志系统-3结构化日志和集中日志服务系列文章认识.NET日志系统https://www.cnblogs.com/ZYPLJ/p/17663487.html.NET认识日志系统-2https://www.cnblogs.com/ZYPLJ/p/17667970.html结构化日志结构化日志比普通文本更利于日志的分析,结构化日志的格式为json格......
  • 手写raft(三) 实现日志压缩
    手写raft(三)实现日志压缩在上一篇博客中MyRaft实现了日志复制功能,按照计划接下来需要实现日志压缩。手写raft(一)实现leader选举手写raft(二)实现日志复制1.什么是raft日志压缩?我们知道raft协议是基于日志复制的协议,日志数据是raft的核心。但随着raft集群的持续工作,ra......
  • Skywalking 9.5 +Net6 SkyDotNet的简单使用
    官方下载地址 Downloads|ApacheSkyWalkingjdk12.2解压找到bin/startup目录启动,不连接数据库,采用内存记录webapp\application.yml可以更改web程序启动端口config\application.yml更改配置,具体百度上面这两个可以默认设置,不更改启动后界面 然后Net6......
  • Oracle EBS查看请求日志报404 not found错误,FNDWRR.exe资源访问不存在
    问题描述如上图中,查看请求时,点击“查看日志”按钮后,正常浏览器会打开一个页面,可以看到这个请求的日志,但出现问题后,浏览器会报404错误,如下图解决方法cd$EBS_ORACLE_HOME/common/scripts实际目录:(/oracle/PROD/fs1/FMW_Home/Oracle_EBS-app1/common/scripts)请根据自己的目......
  • 阿里云sls日志服务使用
    使用开启sls服务,需要充值创建project创建logstore给sls服务创建一个RAM账号,并分配权限给账号创建accessKeySecret秘钥对logstore下日志的字段创建索引(创建索引的字段才能搜索)通过阿里提供的sdk向logstore发送日志<dependency><groupId>com.aliyun.openservices</gr......