Skip to content

Conversation

@keighrim
Copy link
Member

@keighrim keighrim commented Nov 20, 2025

first step toward #326
This PR re-implements the "pipeline-id" generation logic from clamsproject/aapb-brandeis-datahousing#11

Here's an example output

{                                                                                                                                                      
  "pipeline_id": "swt-detection/v7.4/3fd99622c1a78613dc21c3dc4984e6fe/swt-detection/v7.4/3fd99622c1a78613dc21c3dc4984e6fe/llava-captioner/v1.2-6-gc824c97/63c50899e241c2a27eb65ad85e4e8773",                                                                                                                  
  "stats": {                                                                                                                                           
    "viewCount": 3,                                                                                                                                    
    "errorViews": [],                                                                                                                                  
    "warningViews": [                                                                                                                                  
      "v_2"                                                                                                                                            
    ],                                                                                                                                                 
    "emptyViews": [],                                                                                                                                  
    "annotationCount": {                                                                                                                               
      "total": 30687,                                                                                                                                  
      "v_0": 30614,                                                                                                                                    
      "v_1": 25,                                                                                                                                       
      "v_3": 48                                                                                                                                        
    },                                                                                                                                                 
    "annotationCountByType": {                                                                                                                         
      "http://mmif.clams.ai/vocabulary/TimePoint/v4": {                                                                                                
        "total": 30614,                                                                                                                                
        "v_0": 30614                                                                                                                                   
      },                                                                                                                                               
      "http://mmif.clams.ai/vocabulary/TimeFrame/v5": {                                                                                                
        "total": 24,                                                                                                                                   
        "v_1": 24                                                                                                                                      
      },                                                                                                                                               
      "http://mmif.clams.ai/vocabulary/Annotation/v5": {                                                                                               
        "total": 1,                                                                                                                                    
        "v_1": 1                                                                                                                                       
      },                                                                                                                                               
      "http://mmif.clams.ai/vocabulary/TextDocument/v1": {
        "total": 24,
        "v_3": 24
      },
      "http://mmif.clams.ai/vocabulary/Alignment/v1": {
        "total": 24,
        "v_3": 24
      }
    }
  },
  "views": {
    "v_0": {
      "app": "http://apps.clams.ai/swt-detection/v7.4",
      "appConfiguration": {
        "useClassifier": true,
        "tpModelName": "convnext_small",
        "tpUsePosModel": true,
        "tpStartAt": 0,
        "tpStopAt": 9000000,
        "tpSampleRate": 125,
        "useStitcher": true,
        "tfMinTPScore": 0.05,
        "tfMinTFScore": 0.2,
        "tfMinTFDuration": 1900,
        "tfAllowOverlap": false,
        "tfDynamicSceneLabels": [
          "credit",
          "credits"
        ],
        "tfLabelMap": {
          "I": "chyron",
          "Y": "chyron",
          "N": "chyron"
        },
        "tfLabelMapPreset": "nopreset",
        "pretty": true,
        "runningTime": false,
        "hwFetch": false
      }
    },
    "v_1": {
      "app": "http://apps.clams.ai/swt-detection/v7.4",
      "appConfiguration": {
        "useClassifier": true,
        "tpModelName": "convnext_small",
        "tpUsePosModel": true,
        "tpStartAt": 0,
        "tpStopAt": 9000000,
        "tpSampleRate": 125,
        "useStitcher": true,
        "tfMinTPScore": 0.05,
        "tfMinTFScore": 0.2,
        "tfMinTFDuration": 1900,
        "tfAllowOverlap": false,
        "tfDynamicSceneLabels": [
          "credit",
          "credits"
        ],
        "tfLabelMap": {
          "I": "chyron",
          "Y": "chyron",
          "N": "chyron"
        },
        "tfLabelMapPreset": "nopreset",
        "pretty": true,
        "runningTime": false,
        "hwFetch": false
      }
    },
    "v_3": {
      "app": "http://apps.clams.ai/llava-captioner/v1.2-6-gc824c97",
      "appConfiguration": {
        "frameInterval": 30,
        "defaultPrompt": "Describe what is shown in this video frame. Analyze the purpose of this frame in the context of a news video. Transcribe any text present.",
        "promptMap": {},
        "config": "/home/kmlynch/clams_apps/app-llava-captioner/config/hi-chy-annotator_instructions-3.yaml",
        "pretty": false
      }
    }
  }
}

@clams-bot clams-bot added this to infra Nov 20, 2025
@github-project-automation github-project-automation bot moved this to Todo in infra Nov 20, 2025
@keighrim
Copy link
Member Author

Another example with app profiling

{
  "pipeline_id": "swt-detection/v8.2/fa67da31cb29cbeb24886603ba109da1/swt-detection/v8.2/fa67da31cb29cbeb24886603ba109da1/smolvlm2-captioner/98610f0/ef8c30d5dd41e266aa69668a194a17f3",
  "stats": {
    "viewCount": 3,
    "errorViews": [],
    "warningViews": [],
    "emptyViews": [],
    "annotationCount": {
      "total": 1825,
      "v_0": 1816,
      "v_1": 5,
      "v_2": 4
    },
    "annotationCountByType": {
      "http://mmif.clams.ai/vocabulary/TimePoint/v5": {
        "total": 1816,
        "v_0": 1816
      },
      "http://mmif.clams.ai/vocabulary/TimeFrame/v6": {
        "total": 4,
        "v_1": 4
      },
      "http://mmif.clams.ai/vocabulary/Annotation/v6": {
        "total": 1,
        "v_1": 1
      },
      "http://mmif.clams.ai/vocabulary/TextDocument/v1": {
        "total": 2,
        "v_2": 2
      },
      "http://mmif.clams.ai/vocabulary/Alignment/v1": {
        "total": 2,
        "v_2": 2
      }
    }
  },
  "views": {
    "v_0": {
      "app": "http://apps.clams.ai/swt-detection/v8.2",
      "appConfiguration": {
        "useClassifier": true,
        "tpModelName": "convnextv2_tiny",
        "tpUsePosModel": true,
        "tpStartAt": 0,
        "tpStopAt": 9223372036854775807,
        "tpSampleRate": 1000,
        "useStitcher": true,
        "tfMinTPScore": 0.5,
        "tfMinTFScore": 0.9,
        "tfMinTFDuration": 5000,
        "tfAllowOverlap": false,
        "tfDynamicSceneLabels": [
          "credit",
          "credits"
        ],
        "tfLabelMap": {
          "B": "Bars",
          "S": "Slate",
          "S:H": "Slate",
          "S:C": "Slate",
          "S:D": "Slate",
          "S:B": "Slate",
          "S:G": "Slate",
          "Y": "chyron",
          "U": "chyron",
          "K": "chyron",
          "KU": "chyron",
          "I": "chyron",
          "N": "chyron",
          "IN": "chyron",
          "C": "Credits",
          "R": "Credits",
          "CR": "Credits",
          "M": "Other-text",
          "O": "Other-text",
          "W": "Other-text",
          "L": "Other-text",
          "G": "Other-text",
          "F": "Other-text",
          "E": "Other-text",
          "T": "Other-text",
          "GLOTW": "Other-text"
        },
        "tfLabelMapPreset": "relaxed",
        "pretty": true,
        "runningTime": true,
        "hwFetch": true
      },
      "appProfiling": {
        "runningTime": 472185,
        "hardware": {
          "architecture": "x86_64",
          "cuda": [
            "NVIDIA GeForce RTX 3060, With 12.00 GiB, Used 3.37 GiB"
          ]
        }
      }
    },
    "v_1": {
      "app": "http://apps.clams.ai/swt-detection/v8.2",
      "appConfiguration": {
        "useClassifier": true,
        "tpModelName": "convnextv2_tiny",
        "tpUsePosModel": true,
        "tpStartAt": 0,
        "tpStopAt": 9223372036854775807,
        "tpSampleRate": 1000,
        "useStitcher": true,
        "tfMinTPScore": 0.5,
        "tfMinTFScore": 0.9,
        "tfMinTFDuration": 5000,
        "tfAllowOverlap": false,
        "tfDynamicSceneLabels": [
          "credit",
          "credits"
        ],
        "tfLabelMap": {
          "B": "Bars",
          "S": "Slate",
          "S:H": "Slate",
          "S:C": "Slate",
          "S:D": "Slate",
          "S:B": "Slate",
          "S:G": "Slate",
          "Y": "chyron",
          "U": "chyron",
          "K": "chyron",
          "KU": "chyron",
          "I": "chyron",
          "N": "chyron",
          "IN": "chyron",
          "C": "Credits",
          "R": "Credits",
          "CR": "Credits",
          "M": "Other-text",
          "O": "Other-text",
          "W": "Other-text",
          "L": "Other-text",
          "G": "Other-text",
          "F": "Other-text",
          "E": "Other-text",
          "T": "Other-text",
          "GLOTW": "Other-text"
        },
        "tfLabelMapPreset": "relaxed",
        "pretty": true,
        "runningTime": true,
        "hwFetch": true
      },
      "appProfiling": {
        "runningTime": 472185,
        "hardware": {
          "architecture": "x86_64",
          "cuda": [
            "NVIDIA GeForce RTX 3060, With 12.00 GiB, Used 3.37 GiB"
          ]
        }
      }
    },
    "v_2": {
      "app": "http://apps.clams.ai/smolvlm2-captioner/98610f0",
      "appConfiguration": {
        "frameInterval": 30,
        "defaultPrompt": "Describe what is shown in this video frame. Analyze the purpose of this frame in the context of a news video. Transcribe any text present.",
        "promptMap": [
          "chyron:Transcribe verbatim the text in the \"lower third\" or \"chyron\" area of the screen, including every character.  Preserve spacing and line breaks where feasible.\nDo not, under any circumstances, include text that is in the top half of the frame.\nEven for text in the bottom half of frame, do not include the text unless it is part of the chyron graphical element.  Easily legible text in a logo that is part of the chyron should be included, but watermarks, background text, and filmed text should be omitted.\nTo transcribe an okina character, use the backtick: (ASCII code 39).\n"
        ],
        "config": "config/hi-chy-annotator_instructions-3.yaml",
        "num_beams": 1,
        "pretty": false,
        "runningTime": true,
        "hwFetch": true
      },
      "appProfiling": {
        "runningTime": 693793,
        "hardware": {
          "architecture": "x86_64",
          "cuda": [
            "NVIDIA RTX A6000 (49140 MiB)",
            "NVIDIA RTX A6000 (49140 MiB)",
            "NVIDIA RTX A6000 (49140 MiB)",
            "NVIDIA RTX A6000 (49140 MiB)"
          ]
        }
      }
    }
  }
}

@codecov
Copy link

codecov bot commented Nov 20, 2025

Codecov Report

❌ Patch coverage is 12.32877% with 128 lines in your changes missing coverage. Please review.
✅ Project coverage is 82.31%. Comparing base (9c0d3ba) to head (f7eedfa).
⚠️ Report is 5 commits behind head on develop.

Files with missing lines Patch % Lines
mmif/utils/cli/describe.py 11.42% 124 Missing ⚠️
mmif/utils/cli/rewind.py 0.00% 4 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #339      +/-   ##
===========================================
- Coverage    88.19%   82.31%   -5.88%     
===========================================
  Files           13       14       +1     
  Lines         1677     1815     +138     
===========================================
+ Hits          1479     1494      +15     
- Misses         198      321     +123     
Flag Coverage Δ
unittests 82.31% <12.32%> (-5.88%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@keighrim keighrim merged commit 0415fff into develop Nov 20, 2025
4 of 6 checks passed
@github-project-automation github-project-automation bot moved this from Todo to Done in infra Nov 20, 2025
@keighrim keighrim deleted the 326-describe-cli branch November 20, 2025 17:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants