您的位置:首页 > 教育 > 培训 > 网站的费用_中国菲律宾南海事件_品牌线上推广方式_介绍网络营销的短文

网站的费用_中国菲律宾南海事件_品牌线上推广方式_介绍网络营销的短文

2025/1/15 21:38:03 来源:https://blog.csdn.net/qq_40600379/article/details/143276629  浏览:    关键词:网站的费用_中国菲律宾南海事件_品牌线上推广方式_介绍网络营销的短文
网站的费用_中国菲律宾南海事件_品牌线上推广方式_介绍网络营销的短文

一、引言

在构建基于Semantic Kernel的AI应用时,聊天历史记录对象(Chat History)是维护对话上下文和连续性的关键。本文将一步步指导你如何创建和管理聊天历史记录对象,从而为你的AI代理提供一个强大的对话管理工具。
在这里插入图片描述

二、聊天历史记录对象的重要性

聊天历史记录对象用于存储聊天会话中的所有消息,包括来自用户、助理、工具或系统的消息。它不仅帮助AI模型理解对话的上下文,还能确保对话的连贯性,无论对话跨越多少轮次。

三、实战

3.1创建聊天历史记录对象

创建聊天历史记录对象是一个简单的过程。以下是在C#中创建聊天历史记录对象的步骤:

  1. 引入必要的命名空间
using Microsoft.SemanticKernel.ChatCompletion;
  1. 创建聊天历史记录对象
ChatHistory history = new ChatHistory();
  1. 添加消息到聊天历史记录
history.AddSystemMessage("你是一个乐于助人的技术助手");history.AddUserMessage("可以学到什么技术?");
history.AddAssistantMessage("关注我的博客,可以了解SemanticKernel、python、c#、docker等知识。您想要学点什么?");

在这个例子中,我们添加了系统消息、用户消息和助理消息,从而构建了一个简单的对话流程。

3.2 实战小例子

构建一个命令行聊天对话功能,具体代码如下,可以看到AI可以准确识别提到的每一项技术。
下面为完整代码,可以看前面几篇实战例子中的代码介绍。

        public static async Task RunAsync(){
#pragma warning disable SKEXP0001, SKEXP0010, SKEXP0050, SKEXP0020, ASP0000//如果使用依赖项注入,则可能需要将 AI 服务直接添加到服务提供商。//如果要创建 AI 服务的单一实例并在暂时性内核中重复使用它们,这非常有用。var builder = Host.CreateApplicationBuilder();// 创建语义内核Kernel kernel = Kernel.CreateBuilder().AddOpenAIChatCompletion(modelId: Global.Model,//你使用的模型endpoint: new Uri(Global.EndpointKey),//你使用的模型请求地址apiKey: Global.ApiKey)//你使用的key.Build();builder.Services.AddOpenAIChatCompletion(modelId: Global.Model,endpoint: new Uri(Global.EndpointKey),apiKey: Global.ApiKey);builder.Services.AddTransient((serviceProvider) => {return new Kernel(serviceProvider);});//将聊天完成服务添加到内核后,可以使用 get 服务方法检索它们。 下面是如何从内核检索聊天完成服务的示例。var chatCompletionService = kernel.GetRequiredService<IChatCompletionService>();Console.WriteLine("--------------问答--------------");string input;bool running = true;ChatHistory history = new ChatHistory();history.AddSystemMessage("你是一个乐于助人的技术助手");history.AddUserMessage("可以学到什么技术?");history.AddAssistantMessage("关注我的博客,可以了解SemanticKernel、python、c#、docker等知识。您想要学点什么?");while (running){Console.WriteLine("当前历史对话数:" + history.Count);Console.WriteLine("请输入您的问题(输入'exit'退出):");input = Console.ReadLine();if (input.ToLower() == "exit")running = false;else{//将用户的问题添加到历史记录中history.AddUserMessage(input);var response = await chatCompletionService.GetChatMessageContentAsync(history,kernel: kernel);Console.WriteLine("AI回复内容如下:");Console.WriteLine(response);//将AI回复添加到历史记录中history.Add(response);}Console.WriteLine("---------------下一次循环-------------");Console.WriteLine();}Console.WriteLine("程序退出。");}

如下图,AI可以根据历史记录,准确无误地找到上面提到的4种技术(SemanticKernel、python、c#、docker)。

当提问第5种时,也可正确识别历史记录中是没有第5中技术的,AI就根据自身学习的内容,推荐了JS
在这里插入图片描述

在这里插入图片描述

四、结论

通过使用聊天历史记录对象,Semantic Kernel为AI应用程序提供了一种强大的方式,以维护对话的上下文和连续性。这不仅提高了用户体验,还使得AI模型能够更自然地参与对话。


希望这篇文章能帮助你理解如何使用聊天历史记录功能来增强你的Semantic Kernel应用程序。如果你有任何问题或需要进一步的帮助,请随时提问。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com