code: def __init__(
      self,
      title: str,
      ci_title: str,
      model_results: Dict,
      additional_results: Dict,
  ):
      self.title = title
      self.ci_title = ci_title
  
      # Failures and success of the modeling tests
      self.n_model_success = sum(
          r["success"] for r in model_results.values()
      )
      self.n_model_single_gpu_failures = sum(
          dicts_to_sum(r["failed"])["single"]
          for r in model_results.values()
      )
      self.n_model_multi_gpu_failures = sum(
          dicts_to_sum(r["failed"])["multi"]
          for r in model_results.values()
      )
  
      # Some suites do not have a distinction between single and multi GPU.
      self.n_model_unknown_failures = sum(
          dicts_to_sum(r["failed"])["unclassified"]
          for r in model_results.values()
      )
      self.n_model_failures = (
          self.n_model_single_gpu_failures
          + self.n_model_multi_gpu_failures
          + self.n_model_unknown_failures
      )
  
      # Failures and success of the additional tests
      self.n_additional_success = sum(
          r["success"] for r in additional_results.values()
      )
  
      all_additional_failures = dicts_to_sum(
          [r["failed"] for r in additional_results.values()]
      )
      self.n_additional_single_gpu_failures = all_additional_failures[
          "single"
      ]
      self.n_additional_multi_gpu_failures = all_additional_failures[
          "multi"
      ]
      self.n_additional_unknown_gpu_failures = all_additional_failures[
          "unclassified"
      ]
      self.n_additional_failures = (
          self.n_additional_single_gpu_failures
          + self.n_additional_multi_gpu_failures
          + self.n_additional_unknown_gpu_failures
      )
  
      # Results
      self.n_failures = (
          self.n_model_failures + self.n_additional_failures
      )
      self.n_success = self.n_model_success + self.n_additional_success
      self.n_tests = self.n_failures + self.n_success
  
      self.model_results = model_results
      self.additional_results = additional_results
  
      self.thread_ts = None
  
imports: import ast
  import collections
  import functools
  import json
  import math
  import operator
  import os
  import re
  import sys
  import time
  from typing import Dict, List, Optional, Union
  import requests
  from slack_sdk import WebClient
label_desc: Use image node_id 1 to create a new Message object  with example: obj = Message(title, ci_title, model_results, additional_results)