コード例 #1
0
ファイル: MediaAIService.cs プロジェクト: lulzzz/magic-media
        private static void MapTagsAndObject(ImageAIDetectionResult imageAIResult, MediaAI mediaAi)
        {
            var tags    = new List <MediaAITag>();
            var objects = new List <MediaAIObject>();

            foreach (ImageAIDetectionItem?item in imageAIResult.Items)
            {
                switch (item.Type)
                {
                case "tag":
                    tags.Add(new MediaAITag
                    {
                        Name       = item.Name,
                        Confidence = item.Probability,
                        Source     = AISource.ImageAI
                    });
                    break;

                case "object":
                    objects.Add(new MediaAIObject
                    {
                        Name       = item.Name,
                        Confidence = item.Probability,
                        Source     = AISource.ImageAI,
                        Box        = item.Box
                    });
                    break;
                }
            }

            mediaAi.Tags    = tags;
            mediaAi.Objects = objects;
        }
コード例 #2
0
ファイル: MediaAIService.cs プロジェクト: lulzzz/magic-media
        public async Task SaveImageAIDetectionAsync(
            ImageAIDetectionResult imageAIResult,
            CancellationToken cancellationToken)
        {
            var mediaAi = new MediaAI
            {
                Id      = Guid.NewGuid(),
                MediaId = imageAIResult.MediaId
            };

            MediaAISourceInfo sourceInfo = new()
            {
                AnalysisDate = DateTime.UtcNow,
                Source       = AISource.ImageAI,
                Success      = imageAIResult.Success
            };

            if (imageAIResult.Success)
            {
                MapTagsAndObject(imageAIResult, mediaAi);
            }
            else
            {
                sourceInfo.Data.Add("Error", imageAIResult.Error);
            }

            mediaAi.SourceInfo = new List <MediaAISourceInfo> {
                sourceInfo
            };

            await SaveMediaAI(mediaAi, cancellationToken);
        }
コード例 #3
0
        public async Task <IActionResult> AddImageAIData([FromBody] ImageAIDetectionResult imageAIResult, CancellationToken cancellationToken)
        {
            await _mediaAIService.SaveImageAIDetectionAsync(imageAIResult, cancellationToken);

            return(Ok(true));
        }