做收集信息的网站怎样做好网站
- 作者: 五速梦信息网
- 时间: 2026年04月18日 10:00
当前位置: 首页 > news >正文
做收集信息的网站,怎样做好网站,老狼请客高清免费观看mx,建设银行永泰支行网站MiddlewareService文件夹
在这个文件夹中#xff0c;我们需要添加以下文件#xff1a; 名人服务.cs 名人服务.cs 名人结果.cs ILandmarkService.cs 地标服务 .cs 地标结果 .cs
ICelebrityService.cs – 包装多个串行的认知服务来实现名人识别的中间服务层的接口定义我们需要添加以下文件 名人服务.cs 名人服务.cs 名人结果.cs ILandmarkService.cs 地标服务 .cs 地标结果 .cs
ICelebrityService.cs – 包装多个串行的认知服务来实现名人识别的中间服务层的接口定义需要依赖注入 using System.Threading.Tasks;namespace CognitiveMiddlewareService.MiddlewareService
{public interface ICelebrityService{TaskCelebrityResult Do(byte[] imgData);}
} CelebrityService.cs – 包装多个串行的认知服务来实现名人识别中间服务层的逻辑代码 using CognitiveMiddlewareService.CognitiveServices;
using Newtonsoft.Json;
using System.Threading.Tasks;namespace CognitiveMiddlewareService.MiddlewareService
{public class CelebrityService : ICelebrityService{private readonly IVisionService visionService;private readonly IEntitySearchService entityService;public CelebrityService(IVisionService vs, IEntitySearchService ess){this.visionService vs;this.entityService ess;}public async TaskCelebrityResult Do(byte[] imgData){// get original recognized resultvar stream Helper.GetStream(imgData);Celebrity celebrity await this.visionService.RecognizeCelebrityAsync(stream);if (celebrity ! null){// get entity search resultstring entityName celebrity.name;string jsonResult await this.entityService.SearchEntityAsync(entityName);EntityResult er JsonConvert.DeserializeObjectEntityResult(jsonResult);if (er?.entities?.value.Length 0){// isolation layer: decouple data structure then return abstract resultCelebrityResult cr new CelebrityResult(){Name er.entities.value[0].name,Description er.entities.value[0].description,Url er.entities.value[0].url,ThumbnailUrl er.entities.value[0].image.thumbnailUrl,Confidence celebrity.confidence};return cr;}}return null;}}
} 小提示上面的代码中用CelebrityResult接管了实体搜索结果和名人识别结果的部分有效字段以达到解耦/隔离的作用后面的代码只关心CelebrityResult如何定义的即可。 CelebrityResult.cs – 抽象出来的名人识别服务的返回结果 namespace CognitiveMiddlewareService.MiddlewareService
{public class CelebrityResult{public string Name { get; set; }public double Confidence { get; set; }public string Url { get; set; }public string Description { get; set; }public string ThumbnailUrl { get; set; }}
} ILandmarkService.cs – 包装多个串行的认知服务来实现地标识别的中间服务层的接口定义需要依赖注入 using CognitiveMiddlewareService.CognitiveServices;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;namespace CognitiveMiddlewareService.MiddlewareService
{public interface ILandmarkService{TaskLandmarkResult Do(byte[] imgData);}
} LandmarkService.cs – 包装多个串行的认知服务来实现地标识别的中间服务层的逻辑代码 using CognitiveMiddlewareService.CognitiveServices;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;namespace CognitiveMiddlewareService.MiddlewareService
{public class LandmarkService : ILandmarkService{private readonly IVisionService visionService;private readonly IEntitySearchService entityService;public LandmarkService(IVisionService vs, IEntitySearchService ess){this.visionService vs;this.entityService ess;}public async TaskLandmarkResult Do(byte[] imgData){// get original recognized resultvar streamLandmark Helper.GetStream(imgData);Landmark landmark await this.visionService.RecognizeLandmarkAsync(streamLandmark);if (landmark ! null){// get entity search resultstring entityName landmark.name;string jsonResult await this.entityService.SearchEntityAsync(entityName);EntityResult er JsonConvert.DeserializeObjectEntityResult(jsonResult);// isolation layer: decouple data structure then return abstract resultLandmarkResult lr new LandmarkResult(){Name er.entities.value[0].name,Description er.entities.value[0].description,Url er.entities.value[0].url,ThumbnailUrl er.entities.value[0].image.thumbnailUrl,Confidence landmark.confidence};return lr;}return null;}}
} 小提示上面的代码中用LandmarkResult接管了实体搜索结果和地标识别结果的部分有效字段以达到解耦/隔离的作用后面的代码只关心LandmarkResult如何定义的即可。 LandmarkResult.cs – 抽象出来的地标识别服务的返回结果 namespace CognitiveMiddlewareService.MiddlewareService
{public class LandmarkResult{public string Name { get; set; }public double Confidence { get; set; }public string Url { get; set; }public string Description { get; set; }public string ThumbnailUrl { get; set; }}
} Processors文件夹
在这个文件夹中我们需要添加以下文件 IProcessService.cs 进程服务 .cs 聚合结果.cs
IProcessService.cs – 任务调度层服务的接口定义需要依赖注入 using System.Threading.Tasks;namespace CognitiveMiddlewareService.Processors
{public interface IProcessService{TaskAggregatedResult Process(byte[] imgData);}
} ProcessService.cs – 任务调度层服务的逻辑代码 using CognitiveMiddlewareService.MiddlewareService;
using System.Collections.Generic;
using System.Threading.Tasks;namespace CognitiveMiddlewareService.Processors
{public class ProcessService : IProcessService{private readonly ILandmarkService landmarkService;private readonly ICelebrityService celebrityService;public ProcessService(ILandmarkService ls, ICelebrityService cs){this.landmarkService ls;this.celebrityService cs;}public async TaskAggregatedResult Process(byte[] imgData){// preprocess// todo: create screening image classifier to get a rough category, then decide call which service// task dispatcher: parallelized run Do// todo: put this logic into Dispatcher serviceListTask listTask new ListTask();var taskLandmark this.landmarkService.Do(imgData);listTask.Add(taskLandmark);var taskCelebrity this.celebrityService.Do(imgData);listTask.Add(taskCelebrity);await Task.WhenAll(listTask);LandmarkResult lmResult taskLandmark.Result;CelebrityResult cbResult taskCelebrity.Result;// aggregator// todo: put this logic into Aggregator serviceAggregatedResult ar new AggregatedResult(){Landmark lmResult,Celebrity cbResult};return ar;// ranker// todo: if there have more than one result in AgregatedResult, need give them a ranking// output generator// todo: generate specified JSON data, such as Adptive Card}}
} 小提示大家可以看到上面这个文件中有很多绿色的注释带有todo文字的对于一个更复杂的系统可以用这些todo中的描述来设计独立的模块。 AggregatedResult.cs – 任务调度层服务的最终聚合结果定义 using CognitiveMiddlewareService.MiddlewareService;namespace CognitiveMiddlewareService.Processors
{public class AggregatedResult{public LandmarkResult Landmark { get; set; }public CelebrityResult Celebrity { get; set; }}
}
- 上一篇: 做视频直播网站微网站 下载
- 下一篇: 做收款二维码的网站宁波企业网
相关文章
-
做视频直播网站微网站 下载
做视频直播网站微网站 下载
- 技术栈
- 2026年04月18日
-
做视频网站赚钱工业网站模板
做视频网站赚钱工业网站模板
- 技术栈
- 2026年04月18日
-
做视频网站要准备哪些资料帮人家做网站怎么赚钱
做视频网站要准备哪些资料帮人家做网站怎么赚钱
- 技术栈
- 2026年04月18日
-
做收款二维码的网站宁波企业网
做收款二维码的网站宁波企业网
- 技术栈
- 2026年04月18日
-
做属于公司的网站有什么好处asp网站做消息提醒功能
做属于公司的网站有什么好处asp网站做消息提醒功能
- 技术栈
- 2026年04月18日
-
做数据新闻的网站音频文件放到网站空间里生成链接怎么做
做数据新闻的网站音频文件放到网站空间里生成链接怎么做
- 技术栈
- 2026年04月18日
