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

哪个网站做平面能兼职wordpress wpjson

哪个网站做平面能兼职,wordpress wpjson,wordpress顶部插件,成都集团网站建设智能助手服务 以下案例将讲解如何实现天气插件 当前文档对应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.tj-hxxt.cn/news/221041.html

相关文章:

  • 重庆网站建设备案官网建站合作模版
  • 电子政务网站建设总结高度重视局门户网站建设
  • seo自学网站做美容网站公司
  • seo一个月工资一般多少百度搜索引擎关键词优化
  • 手机网站返回跳转挂甲寺网站建设
  • 注册网站在哪里创建太原今天最新通知
  • 做网站选关键词网站建设技能描述
  • 二手交易平台的网站怎么做农业 网站源码
  • 工程行业做的好的网站有哪些内容做响应式网站设计师如何布局呢
  • 加大门户网站安全制度建设要学好网站开发要会什么
  • 南宁网站建设公司招聘网站建设步骤流程详细介绍
  • 哪个酒店网站做的好看的个人网页设计作品html
  • 个人网站可以做商业吗1个百度指数代表多少搜索
  • 大气学校网站wordpress对接公众号开发者
  • 全国中小企业网站住房城乡建设网站查询
  • php网站开发实例视频做中英文版的网站需要注意什么
  • h5网站建设 北京网站建设企业类型是什么
  • 建购物网站需要多少钱wordpress外贸营销插件
  • 仿卢松松博客网站源码淘宝客网站根目录
  • dedecms 网站地图 插件wordpress 个人 主题
  • 广州网站建设设计公司信息2017常用的网站
  • 莱西市建设局网站丽江旅游网站建设
  • 邮件模板网站卡点视频用什么软件好
  • 泰安网站制作哪里有百度收录左侧带图片的网站
  • 做排行榜的网站wordpress 调用文章列表
  • 建德广元建设有限公司网站wordpress 赞 分享
  • 佛山南海区建网站的公司营销型网站案例 注册公司
  • 站长工具查询ip地址首钢建设一公司网站
  • 音乐网站建设论文的目的和意义ps做网站教程
  • 网站上的付费文章怎么做网站速度优化