明志唯新

Semantic Kernel dotnet 1.0 RC2 发布

发表于

你没看错 Semantic Kernel dotnet 1.0 RC1 发布一天后,1.0 RC2 又发布了。

  • 由于在聊天历史记录中包含函数调用中间消息,通常业务上会需要删除一些末尾元素。所以为 ChatHistory 增加了 RemoveRange 方法
  • 从 markdown/yaml 创建函数的方法上删除 pluginName 参数
  • 将一些 KernelException 异常改为 ArgumentExceptionArgumentOutOfRangeException
  • 如果尝试使用 CreateFunctionFromPromptYamlResource 则会引发错误,因为它在 Functions.Yaml 程序集(而不是开发人员当前项目)中查找资源. 所以移除了 CreateFunctionFromPromptXXXResource 方法
  • 修复了 KernelFunction.InvokeStreamingAsync 让它相关的一些处理能够像非流式一样
  • 通过指标跟踪其流式传输持续时间
  • 使其日志记录类似于非流式处理的日志记录
  • 将 OCE 转换为 KernelFunctionCanceledExceptions,就像使用非流式处理一样
  • 使字符串输入参数可为 null,如果在某些重载中传递了 null,则停止抛出。
  • input_parameters 变为 input_variables 以匹配提示序列化
  • output_variable 允许开发人员指定描述和输出类型(就像本机函数一样)
  • 由于 ModelId 是一个公共属性,因此将 ModelId 移到 ContentBase 类中,使其成为相关派生类中的一等公民
  • 根据 OpenTelemetry 团队的建议使用 LoggerMessage 属性来生成更优化的代码,以提高内核的可观测性。
  • KernelFunction 增加了一些新的扩展,其中包含用于执行优化日志记录的方法等。
  • PlannerInstrumentation 中的记录调用转换为对源生成的日志代码的调用
  • 将来,Kernel 的其他部分也会采用 LoggerMessage。
  • default_value 更名为 default,以匹配 prompt 的 YAML 模式

  • Kernel 上删除 InvokeAsync 方法的 string? input 重载,并为 KernelArgument 添加带 string? input 的构造函数

  • 相关测试做了一些更新

提示

参考源: