Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.

Info

Please be aware that 5.8+ have a different URL so go find the right base URL here: Digizuite™ AI Services or ask R&D. But client id and code will be the same.

Since this is custom categories it requires a workshop to define categories and get images which corresponds to those categories for training the AI model.

interface DigizuiteTagResponse { status: string; // from ai service errorMessage: string; // from ai service tags: DetectTagObject[]; } interface DetectTagObject { prop: number; name: number; id: number; }

See all the definitions here:

https://cloud.google.com/vision/docs/detecting-web

Type

Endpoint

Input

Functionality

Output

Google Vision

https://dgz-integration-broker{URL-DEPENDING-ON-DAM-VERSION}.azurewebsites.net/api/integrations/asset/invoke?clientId={SECRET_CLIENT_ID}&integrationType=GoogleImageSearch&assetId=<assetid>&code={SECRET_CODE}

Info
  • clientId: provided by Digizuite

  • integrationType: GoogleImageSearch

  • code: provided by digizuite

Sends image for web search at google Vision and returns urls.

Returns

Code Block
Code Block
   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.

Info

Note that client id and secret code must be provided for the endpoint by Digizuite R&D. Also , the ximilar or inscene API key must be provided to Digizuite so it can be associated with 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.

Code Block
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{URL-DEPENDING-ON-DAM-VERSION}.azurewebsites.net/api/integrations/asset/invoke?clientId={SECRET_CLIENT_ID}&integrationType=ximilaraiserviceGoogleImageSearch&assetId=<assetid>&code={SECRET_CODE}"
    method = "post"
    response = "@response"
}


action "Query JSON" {
	type = "Query JSON"
	needs = "Invoke Endpoint"
	json = "@response"
	json_path = "$.result.tagswebDetection.pagesWithMatchingImages[*].nameurl"
	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"
}

...