Digizuite currently offers support for Google Vision and Web Detection for Images:
https://cloud.google.com/vision/docs/detecting-web
How it works:
Digizuite offers an automation which can be triggered based on your requirements. Often it will be on all new product images being uploaded into the platform. Since this is in our automation, it is completely customized what should trigger so you could do it for certain metadata or workflow stages.
Endpoints
These endpoints are the ones which is used in the automation config further down
Type | Endpoint | Input | Functionality | Output |
---|---|---|---|---|
Google Vision |
|
| Sends image for web search at google Vision and returns urls. | Returns See all the definitions here: https://cloud.google.com/vision/docs/detecting-web public class GoogleResponse { public WebDetection webDetection { get; set; } } public class WebDetection { public List<WebEntity> webEntities { get; set; } public List<FullMatchingImage> fullMatchingImages { get; set; } public List<PartialMatchingImage> partialMatchingImages { get; set; } public List<PagesWithMatchingImage> pagesWithMatchingImages { get; set; } public List<VisuallySimilarImage> visuallySimilarImages { get; set; } public List<BestGuessLabel> bestGuessLabels { get; set; } } public class BestGuessLabel { public string label { get; set; } } public class FullMatchingImage { public string url { get; set; } } public class PagesWithMatchingImage { public string url { get; set; } public string pageTitle { get; set; } public List<FullMatchingImage> fullMatchingImages { get; set; } } public class PartialMatchingImage { public string url { get; set; } } public class VisuallySimilarImage { public string url { get; set; } } public class WebEntity { public string entityId { get; set; } public double score { get; set; } public string description { get; set; } } |
Configuration
The following shows a starting point for your integration.
Note that client id and secret code must be provided for the endpoint by Digizuite R&D. Also remember ONLY to use the client id on the environment which it is related to.
When you have added the below then you are good to go.
trigger "Metadata trigger" { type = "Specific Metadata Value" resolves = "Set String Metafield" value = "#54a0ff;creative" ignore_casing = "true" meta_field = "guid:6fe35f10-c810-497b-af9c-e52c3d583593" listen_to_metadata_changes = "all" } action "Invoke Endpoint" { type = "Invoke Endpoint" endpoint = "https://dgz-integration-broker-queue.azurewebsites.net/api/integrations/asset/invoke?clientId={SECRET_CLIENT_ID}&integrationType=GoogleImageSearch&assetId=<assetid>&code={SECRET_CODE}" method = "post" response = "@response" } action "Query JSON" { type = "Query JSON" needs = "Invoke Endpoint" json = "@response" json_path = "$.result.webDetection.pagesWithMatchingImages[*].url" error_on_not_found_items = "true" result = "@queryResult" } action "Set String Metafield" { type = "Set String Metafield" needs = "Query JSON" meta_field = "guid:7441267e-4f7c-4dcd-9c42-20273a4ab6af" new_value = "@queryResult" asset_item_ids = "@sourceAssetItemId" }