# Copyright (c) Alibaba, Inc. and its affiliates. import unittest from modelscope.models import Model from modelscope.outputs import OutputKeys from modelscope.pipelines import pipeline from modelscope.utils.constant import Tasks from modelscope.utils.test_utils import test_level class HiTeATasksTest(unittest.TestCase): @unittest.skipUnless(test_level() >= 1, 'skip test in current test level') def test_run_with_video_captioning_with_model(self): model = Model.from_pretrained( 'damo/multi-modal_hitea_video-captioning_base_en') pipeline_caption = pipeline( task=Tasks.video_captioning, model=model, ) video = 'data/test/videos/video_caption_and_qa_test.mp4' result = pipeline_caption(video) print(result[OutputKeys.CAPTION]) @unittest.skipUnless(test_level() >= 0, 'skip test in current test level') def test_run_with_video_captioning_with_name(self): model = 'damo/multi-modal_hitea_video-captioning_base_en' pipeline_caption = pipeline( Tasks.video_captioning, model=model, ) video = 'data/test/videos/video_caption_and_qa_test.mp4' result = pipeline_caption(video) print(result[OutputKeys.CAPTION]) @unittest.skipUnless(test_level() >= 1, 'skip test in current test level') def test_run_with_video_question_answering_with_model(self): model = Model.from_pretrained( 'damo/multi-modal_hitea_video-question-answering_base_en') pipeline_vqa = pipeline(Tasks.video_question_answering, model=model) video = 'data/test/videos/video_caption_and_qa_test.mp4' text = 'How many people are there?' input = {'video': video, 'text': text} result = pipeline_vqa(input) print(result) @unittest.skipUnless(test_level() >= 0, 'skip test in current test level') def test_run_with_video_question_answering_with_name(self): model = 'damo/multi-modal_hitea_video-question-answering_base_en' pipeline_vqa = pipeline(Tasks.video_question_answering, model=model) video = 'data/test/videos/video_caption_and_qa_test.mp4' text = 'Who teaches a girl how to paint eggs?' input = {'video': video, 'text': text} result = pipeline_vqa(input) print(result) if __name__ == '__main__': unittest.main()