当前位置: 首页 > wzjs >正文

怎么给网站做缓存wordpress字体样式

怎么给网站做缓存,wordpress字体样式,cn网站怎么做,网站建设是哪个专业文章目录 Semantic Kernel 快速入门一、什么是 Semantic Kernel?1.1 核心特性 二、安装和配置2.1 安装 .NET SDK2.2 创建新的 .NET 项目2.3 安装 Semantic Kernel 三、快速入门3.1 导入依赖包3.2 添加 AI 服务3.3 添加企业服务3.4 生成内核并检索服务3.5 添加插件创…

文章目录

  • Semantic Kernel 快速入门
    • 一、什么是 Semantic Kernel?
      • 1.1 核心特性
    • 二、安装和配置
      • 2.1 安装 .NET SDK
      • 2.2 创建新的 .NET 项目
      • 2.3 安装 Semantic Kernel
    • 三、快速入门
      • 3.1 导入依赖包
      • 3.2 添加 AI 服务
      • 3.3 添加企业服务
      • 3.4 生成内核并检索服务
      • 3.5 添加插件
        • 创建本机插件
      • 3.6 将插件添加到内核
      • 3.7 规划
      • 3.8 调用
      • 3.9 完整代码如下
    • 四、运行示例
    • 五、总结

Semantic Kernel 快速入门

Semantic Kernel 是微软推出的一款强大的 AI 开发工具,旨在简化人工智能在应用中的集成和管理。本技术博客将基于微软官方文档,为你详细解读如何使用 Semantic Kernel,并通过 C# 语言进行快速入门。

一、什么是 Semantic Kernel?

Semantic Kernel 是一款开放源代码工具,允许开发人员在应用程序中无缝集成和管理人工智能。它提供了一种统一的方式来处理各种 AI 模型,无论是大型语言模型、图像生成器还是其他类型的人工智能。

1.1 核心特性

  • 多模型支持:Semantic Kernel 支持多种 AI 模型,包括大型语言模型(LLM)、图像生成器等。
  • 统一接口:提供统一的 API 接口,简化了不同模型的调用和管理。
  • 上下文管理:支持上下文的持久化和共享,使得 AI 模型能够更好地理解和处理用户请求。
  • 扩展性:允许开发人员自定义和扩展功能,以满足特定需求。

二、安装和配置

在开始使用 Semantic Kernel 之前,需要确保已经安装了必要的依赖项并正确配置了开发环境。

2.1 安装 .NET SDK

Semantic Kernel 是基于 .NET 构建的,因此需要先安装 .NET SDK。你可以从 .NET 官方网站 下载并安装最新版本的 .NET SDK。

2.2 创建新的 .NET 项目

使用以下命令创建一个新的 .NET 控制台应用程序:

dotnet new console -o semantic-kernel-demo
cd semantic-kernel-demo

2.3 安装 Semantic Kernel

在项目目录中,使用以下命令安装 Semantic Kernel 和 OpenAI 库:

dotnet add package Microsoft.SemanticKernel
dotnet add package OpenAI

三、快速入门

以下是一个简单的示例,展示了如何使用 Semantic Kernel 调用 智谱AI 的 glm4-flash(可免费调用) 模型来回答问题。我们将通过演练步骤 1、2、3、4、6、9 和 10 来演示快速入门示例。 构建由 AI 服务提供支持且可以运行代码的简单代理所需的一切。

  • 导入依赖包
  • 添加 AI 服务
  • 企业组件
  • 生成内核
  • 添加内存(本次演示跳过)
  • 添加插件
  • 创建内核参数(本次演示跳过)
  • 创建提示(本次演示跳过)
  • 规划
  • Invoke
    在这里插入图片描述

3.1 导入依赖包

对于此示例,我们首先导入以下包:

using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.ChatCompletion;
using Microsoft.SemanticKernel.Connectors.OpenAI;

3.2 添加 AI 服务

向内核生成器添加了 OpenAI 聊天完成服务。

var modelId = "glm-4-flash";
var endpoint = "https://open.bigmodel.cn/api/paas/v4";
var apiKey = "YOUR_API_KEY";
// 注:https://bigmodel.cn/dev/howuse/glm-4 访问智谱官网进行apikey创建
// 创建一个OpenAI聊天完成的内核
var builder = Kernel.CreateBuilder().AddOpenAIChatCompletion(modelId, new Uri(endpoint),apiKey);

3.3 添加企业服务

使用语义内核的主要优点之一是它支持企业级服务。 在此示例中,我们已将日志记录服务添加到内核,以帮助调试 AI 代理。

builder.Services.AddLogging(services => services.AddConsole().SetMinimumLevel(LogLevel.Trace));

3.4 生成内核并检索服务

添加服务后,我们生成内核并检索聊天完成服务供以后使用。

Kernel kernel = builder.Build();// 创建检索聊天完成服务
var chatCompletionService = kernel.Services.GetRequiredService<IChatCompletionService>();

3.5 添加插件

添加服务后,我们生成内核并检索聊天完成服务供以后使用。借助插件,AI 代理可以运行代码,从外部源检索信息或执行操作。 在示例中,我们添加了一个插件,允许 AI 代理与灯泡交互。 下面,我们将演示如何创建此插件。

创建本机插件

下面可以看到,创建本机插件与创建新类一样简单。

在此示例中,我们创建了一个可以操作灯泡的插件。 虽然这是一个简单的示例,但此插件快速演示了如何支持这两者…

  • 通过向 AI 代理提供灯泡的状态来检索扩充生成(RAG)
  • 通过 允许 AI 代理打开或关闭灯泡,任务自动化 。
    在自己的代码中,可以创建与任何外部服务或 API 交互的插件,以实现类似的结果。
using System.ComponentModel;
using System.Text.Json.Serialization;
using Microsoft.SemanticKernel;public class LightsPlugin
{// Mock data for the lightsprivate readonly List<LightModel> lights = new(){new LightModel { Id = 1, Name = "Table Lamp", IsOn = false },new LightModel { Id = 2, Name = "Porch light", IsOn = false },new LightModel { Id = 3, Name = "Chandelier", IsOn = true }};[KernelFunction("get_lights")][Description("Gets a list of lights and their current state")]public async Task<List<LightModel>> GetLightsAsync(){return lights;}[KernelFunction("change_state")][Description("Changes the state of the light")]public async Task<LightModel?> ChangeStateAsync(int id, bool isOn){var light = lights.FirstOrDefault(light => light.Id == id);if (light == null){return null;}// Update the light with the new statelight.IsOn = isOn;return light;}
}public class LightModel
{[JsonPropertyName("id")]public int Id { get; set; }[JsonPropertyName("name")]public string Name { get; set; }[JsonPropertyName("is_on")]public bool? IsOn { get; set; }
}

3.6 将插件添加到内核

创建插件后,可以将其添加到内核,以便 AI 代理可以访问它。 在本示例中,我们已将 LightsPlugin 类添加到内核。

// 将插件添加到内核
kernel.Plugins.AddFromType<LightsPlugin>("Lights");

3.7 规划

语义内核利用 函数调用(大多数 LLM能力)来提供 规划。 使用函数调用,LLM 可以请求(或调用)特定函数以满足用户的请求。 然后,语义内核将请求封送至代码库中的相应函数,并将结果返回给 LLM,以便 AI 代理可以生成最终响应。

若要启用自动函数调用,首先需要创建适当的执行设置,以便语义内核知道在 AI 代理请求函数时自动调用内核中的函数。

OpenAIPromptExecutionSettings openAIPromptExecutionSettings = new()
{FunctionChoiceBehavior = FunctionChoiceBehavior.Auto()
};

3.8 调用

最后,通过使用插件调用 AI 代理。 示例代码演示如何生成非流式处理响应,但也可以使用该方法生成流式处理响应GetStreamingChatMessageContentAsync。

3.9 完整代码如下

/// <summary>/// 快速入门/// </summary>public class QuickStart{/// <summary>// 执行完成服务/// </summary>public async Task Start(){var modelConfig = Global.CurModelContext("glm-4-flash");// 1. 填充OpenAI格式LLM调用参数值var modelId = modelConfig.Model;var endpoint = modelConfig.EndpointKey;var apiKey = modelConfig.ApiKey;// 2. 创建一个OpenAI聊天完成的内核var builder = Kernel.CreateBuilder().AddOpenAIChatCompletion(modelId, new Uri(endpoint),apiKey);// 3.添加企业组件builder.Services.AddLogging(services => services.AddConsole().SetMinimumLevel(LogLevel.Trace));// 4.构建内核Kernel kernel = builder.Build();var chatCompletionService = kernel.GetRequiredService<IChatCompletionService>();// 5.添加一个插件(LightsPlugin类定义如下)kernel.Plugins.AddFromType<LightsPlugin>("Lights");// 6.开启规划OpenAIPromptExecutionSettings openAIPromptExecutionSettings = new(){FunctionChoiceBehavior = FunctionChoiceBehavior.Auto()};// 7.创建一个历史记录存储对话var history = new ChatHistory();// 8.发起一次多轮对话聊天服务string? userInput;do{// 9.收集用户输入Console.Write("User > ");userInput = Console.ReadLine();// 10.添加用户输入history.AddUserMessage(userInput);// 11.获得AI的响应var result = await chatCompletionService.GetChatMessageContentAsync(history,executionSettings: openAIPromptExecutionSettings,kernel: kernel);// 12.输出结果Console.WriteLine("Assistant > " + result);// 13.将消息添加到聊天记录history.AddMessage(result.Role, result.Content ?? string.Empty);} while (userInput is not null);}}/// <summary>/// 定义灯泡插件/// </summary>public class LightsPlugin{// Mock data for the lightsprivate readonly List<LightModel> lights = new()
{new LightModel { Id = 1, Name = "Table Lamp", IsOn = false },new LightModel { Id = 2, Name = "Porch light", IsOn = false },new LightModel { Id = 3, Name = "Chandelier", IsOn = true }
};[KernelFunction("get_lights")][Description("Gets a list of lights and their current state")]public async Task<List<LightModel>> GetLightsAsync(){return lights;}[KernelFunction("change_state")][Description("Changes the state of the light")]public async Task<LightModel?> ChangeStateAsync(int id, bool isOn){var light = lights.FirstOrDefault(light => light.Id == id);if (light == null){return null;}// Update the light with the new statelight.IsOn = isOn;return light;}}/// <summary>/// 定义灯泡模型/// </summary>public class LightModel{[JsonPropertyName("id")]public int Id { get; set; }[JsonPropertyName("name")]public string Name { get; set; }[JsonPropertyName("is_on")]public bool? IsOn { get; set; }}

四、运行示例

  1. YOUR_API_KEY 替换为你实际的 API 密钥。
  2. 在项目目录中运行以下命令:
QuickStart quickStart = new QuickStart();
await quickStart.Start();

如下:可使用原生模型能力和调用对应灯泡插件
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

五、总结

Semantic Kernel 是一款强大的工具,它简化了 AI 在应用中的集成和管理。通过本指南,你已经了解了如何安装和配置 Semantic Kernel,以及如何使用它来调用 AI 模型。希望这些内容对你有所帮助!

http://www.dtcms.com/wzjs/557429.html

相关文章:

  • 闸北网站推广公司详细的营销推广方案
  • 网站开发就业2345网址导航是什么浏览器
  • 重庆建站模板展示12380网站建设情况汇报
  • 华为商城网站设计分析网站建设及使用
  • 凡科建站网页版青海网站设计企业
  • 室外建筑网站php网站运行很慢
  • 制作网页的的网站怎么做网页截图
  • 成都隆昌网站建设网络营销是什么来实现营销目标的一种市场营销方式
  • 搭一个网站网站程可以自己做吗
  • 无锡网站网站建设网站界面布局
  • 网站优化就是搜索引擎优化好网站你知道的
  • 一份完整的网站策划书烟台h5网站制作公司
  • 山东建设银行招聘网站红酒商城网站建设方案书
  • 深圳企业网站哪家强网站开发规范有哪些
  • 上海装修公司做网站素材网免费
  • 企顺网网站建设外贸网站建站赚钱
  • 怎么将自己做的网站发到网上去撮合交易网站建设方案
  • asp 个人网站国外10条新闻简短
  • 设备免费做网站推广怎么开一家网站开发公司
  • 怎么用php自己做网站吗网络推广理实一体化软件
  • 沧州网站seo公司丽水网站建设明恩玉杰
  • 网页制作网站创建中小型网站建设公司
  • 微信官网网站网站内容检测
  • 专注电子商务网站建设嵌入式软件开发项目
  • 电子科技网站建设室内设计模拟app
  • 建一个购物网站需要什么条件wordpress 主题 水墨
  • 数据展示网站模板丽水城乡建设局网站
  • 粉末涂料 技术支持 东莞网站建设网站建设预付流程
  • 又做投资的网站吗用dw怎么做用户登录页面的网站
  • 建设电子商务网站策划书wordpress ajax失败