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

怎么样进行网站建设wordpress 主题 排名

怎么样进行网站建设,wordpress 主题 排名,知名网站建设官网,本地搭建php网站智能助手服务 以下案例将讲解如何实现天气插件 当前文档对应src/assistant/Chat.SemanticServer项目 首先我们介绍一下Chat.SemanticServer的技术架构 SemanticKernel 是什么#xff1f; Semantic Kernel是一个SDK#xff0c;它将OpenAI、Azure OpenAI和Hugging Face等大…智能助手服务 以下案例将讲解如何实现天气插件 当前文档对应src/assistant/Chat.SemanticServer项目 首先我们介绍一下Chat.SemanticServer的技术架构 SemanticKernel 是什么 Semantic Kernel是一个SDK它将OpenAI、Azure OpenAI和Hugging Face等大型语言模型LLMs与传统的编程语言如C、Python和Java集成在一起。Semantic Kernel通过允许您定义可以在几行代码中链接在一起的插件来实现这一目标。 如何集成使用SemanticKernel 以下是添加IKernel,OpenAIOptions.Model和OpenAIOptions.Key在一开始使用了builder.Configuration.GetSection(OpenAI).GetOpenAIOptions();绑定。对应配置文件,OpenAIChatCompletion则是用于直接请求OpenAI。 OpenAI: {Key: ,Endpoint: ,Model: gpt-3.5-turbo}builder.Services.AddTransientIKernel((services) {var httpClientFactory services.GetRequiredServiceIHttpClientFactory();return Kernel.Builder.WithOpenAIChatCompletionService(OpenAIOptions.Model,OpenAIOptions.Key,httpClient: httpClientFactory.CreateClient(ChatGPT)).Build(); }).AddSingletonOpenAIChatCompletion((services) {var httpClientFactory services.GetRequiredServiceIHttpClientFactory();return new OpenAIChatCompletion(OpenAIOptions.Model, OpenAIOptions.Key,httpClient: httpClientFactory.CreateClient(ChatGPT)); });在项目中存在plugins文件夹这是提供的插件目录在BasePlugin目录下存在一个识别意图的插件。 config.json对应当前插件的一些参数配置 {schema: 1,type: completion,description: 获取用户的意图。,completion: {max_tokens: 500,temperature: 0.0,top_p: 0.0,presence_penalty: 0.0,frequency_penalty: 0.0},input: {parameters: [{name: input,description: 用户的请求。,defaultValue: },{name: history,description: 对话的历史。,defaultValue: },{name: options,description: 可供选择的选项。,defaultValue: }]} }skprompt.txt则是当前插件使用的prompt 加载插件 在这里我们注入了IKernel private readonly IKernel _kernel;private readonly IHttpClientFactory _httpClientFactory;private readonly RedisClient _redisClient;private readonly ILoggerIntelligentAssistantHandle _logger;private readonly OpenAIChatCompletion _chatCompletion;public IntelligentAssistantHandle(IKernel kernel, RedisClient redisClient,ILoggerIntelligentAssistantHandle logger, IHttpClientFactory httpClientFactory,OpenAIChatCompletion chatCompletion){_kernel kernel;_redisClient redisClient;_logger logger;_httpClientFactory httpClientFactory;_chatCompletion chatCompletion;_redisClient.Subscribe(nameof(IntelligentAssistantEto),((s, o) { HandleAsync(JsonSerializer.DeserializeIntelligentAssistantEto(o as string)); }));}然后准备加载插件。 //对话摘要 SK.Skills.Core 核心技能 _kernel.ImportSkill(new ConversationSummarySkill(_kernel), ConversationSummarySkill);// 插件根目录 var pluginsDirectory Path.Combine(Directory.GetCurrentDirectory(), plugins);// 这个是添加BasePlugin目录下面的所有插件会自动扫描 var intentPlugin _kernel.ImportSemanticSkillFromDirectory(pluginsDirectory, BasePlugin);// 这个是添加Travel目录下面的所有插件会自动扫描 var travelPlugin _kernel.ImportSemanticSkillFromDirectory(pluginsDirectory, Travel);// 这个是添加ChatPlugin目录下面的所有插件会自动扫描 var chatPlugin _kernel.ImportSemanticSkillFromDirectory(pluginsDirectory, ChatPlugin);// 这个是添加WeatherPlugin类插件并且给定插件命名WeatherPlugin var getWeather _kernel.ImportSkill(new WeatherPlugin(_httpClientFactory), WeatherPlugin); 使用插件首先我们创建了一个ContextVariablesinput则是GetIntent插件中的的{{$input}}options则对应{{$options}}getIntentVariables则将替换对应的prompt中响应的参数。 var getIntentVariables new ContextVariables{[input] value,[options] Weather,Attractions,Delicacy,Traffic //给GPT的意图通过Prompt限定选用这些里面的}; string intent (await _kernel.RunAsync(getIntentVariables, intentPlugin[GetIntent])).Result.Trim();plugins/BasePlugin/GetIntent/skprompt.txt内容 {{ConversationSummarySkill.SummarizeConversation $history}} 用户: {{$input}}--------------------------------------------- 提供用户的意图。其意图应为以下内容之一: {{$options}}意图: 意图识别完成以后当执行完成GetIntentintent相应会根据options中提供的参数返回与之匹配的参数 然后下面的代码将根据返回的意图进行实际上的操作或加载相应的插件比如当intent返回Weather则首先从chatPlugin中使用Weather插件并且传递当前用户输入内容在这里将提取用户需要获取天气的城市。 完成返回以后将在使用MathFunction _kernel.Skills.GetFunction(WeatherPlugin, GetWeather)的方式获取WeatherPlugin插件的GetWeather方法并且将得到的参数传递到_kernel.RunAsync执行的时候则会掉用GetWeather方法这个时候会由插件返回的json在组合成定义的模板消息进行返回就完成了调用。 ISKFunction MathFunction null;SKContext? result null;//获取意图后动态调用Funif (intent is Attractions or Delicacy or Traffic){MathFunction _kernel.Skills.GetFunction(Travel, intent);result await _kernel.RunAsync(value, MathFunction);}else if (intent is Weather){var newValue (await _kernel.RunAsync(new ContextVariables{[input] value}, chatPlugin[Weather])).Result;MathFunction _kernel.Skills.GetFunction(WeatherPlugin, GetWeather);result await _kernel.RunAsync(newValue, MathFunction);if (!result.Result.IsNullOrWhiteSpace()){if (result.Result.IsNullOrEmpty()){await SendMessage(获取天气失败了, item.RevertId, item.Id);return;}var weather JsonSerializer.DeserializeGetWeatherModule(result.Result);var live weather?.lives.FirstOrDefault();await SendMessage(WeatherTemplate.Replace({province}, live!.city).Replace({weather}, live?.weather).Replace({temperature_float}, live?.temperature_float).Replace({winddirection}, live?.winddirection).Replace({humidity}, live.humidity), item.RevertId, item.Id);return;}}else{var chatHistory _chatCompletion.CreateNewChat();chatHistory.AddUserMessage(value);var reply await _chatCompletion.GenerateMessageAsync(chatHistory);return;} Weather的prompt 我会给你一句话你需要找到需要获取天气的城市如果存在时间也提供给我 {{$input}}仅返回结果除此之外不要有多余内容按照如下格式 {city:,time: }WeatherPlugin获取天气插件 /// summary /// 获取天气插件 /// /summary public class WeatherPlugin {private static ListAdCode? _codes;static WeatherPlugin(){var path Path.Combine(AppContext.BaseDirectory, adcode.json);if (File.Exists(path)){var str File.ReadAllText(path);_codes JsonSerializer.DeserializeListAdCode(str);}_codes ?? new ListAdCode();}private readonly IHttpClientFactory _httpClientFactory;public WeatherPlugin(IHttpClientFactory httpClientFactory){_httpClientFactory httpClientFactory;}[SKFunction, Description(获取天气)][SKParameter(input, 入参)]public async Taskstring GetWeather(SKContext context){var weatherInput JsonSerializer.DeserializeWeatherInput(context.Result);var value _codes.FirstOrDefault(x x.name.StartsWith(weatherInput.city));if (value null){return 请先描述指定城市;}var http _httpClientFactory.CreateClient(nameof(WeatherPlugin));var result await http.GetAsync(https://restapi.amap.com/v3/weather/weatherInfo?key{高德天气api的key}extensionsbaseoutputJSONcity value.adcode);if (result.IsSuccessStatusCode){return await result.Content.ReadAsStringAsync();}return string.Empty;} }public class WeatherInput {public string city { get; set; }public string time { get; set; } }public class AdCode {public string name { get; set; }public string adcode { get; set; }public string citycode { get; set; } }效果图 以上代码可从仓库获取 项目开源地址 体验地址https://chat.tokengo.top/ (可以使用Gitee快捷登录) Github https://github.com/239573049/chat Gitee https://gitee.com/hejiale010426/chat
http://www.pierceye.com/news/521730/

相关文章:

  • 做网站的集团用什么自己做网站
  • 买网站空间网站模块图片
  • 上海建设网站公在微信上怎么开店
  • 哪家网站雅虎全球购做的好做一婚恋网站多少钱
  • 苏州企业网站公司都有哪些php开源企业网站系统
  • wordpress收录很慢自己的网站如何优化
  • 个人介绍网站源码1v1网站建设
  • 大宇网络做网站怎么样app制作器下载软件
  • 四川建行网站做网站公司职务
  • 广州定制网站设计图标设计免费 logo
  • 十大网站有哪些网站建设 模板
  • 网站流量一直下降中国十大品牌网
  • 同学录网站开发的背景域名注册网站免费
  • 旅游电子商务网站建设规划书温州网站建设策划方案
  • 国家住房建设部网站域名查询官方网站
  • app开发 网站开发统称宁波seo推广咨询
  • 专门做书单的网站网络营销策划方案的设计
  • 网站建设推广合同自己建设网站需要花多少钱
  • 深圳网站建设电话哈尔滨建设网站官网
  • 上海网站建设网页制作培训做网站做论坛赚钱吗
  • 为网站做电影花絮哈尔滨互联网公司
  • 哈尔滨微网站建设公司做网站被骗该咋样做
  • 做翻译 英文网站dede网站版权信息
  • 梅江区住房和城乡建设局官方网站品牌设计帮
  • 单页网站cms建设通会员多少一年
  • app营销型网站的特点公司建设网站怎么作账
  • 有免费做海报的网站吗制作表情包
  • 网站建设的平台做微课的网站
  • 有没有专门做美食海报的网站郑州网站建设搜q.479185700
  • 公司网站宣传做网站时版权怎么写