파트너십

Twelve Labs, MindsDB, Slack을 활용한 강력한 동영상 요약 도구 구축하기

제임스 러 (James Le)

이 튜토리얼에서는 Twelve Labs와 MindsDB를 활용하여 별도의 애플리케이션 코드 구현 없이 오직 SQL 구문만으로 설정하는 Slack 봇 빌드 과정을 소개합니다. 이 붓은 Pegasus 모델을 통해 비디오 요약을 자동으로 생성하고, 이를 Slack 채널에 공지사항으로 게시합니다.

이 튜토리얼에서는 Twelve Labs와 MindsDB를 활용하여 별도의 애플리케이션 코드 구현 없이 오직 SQL 구문만으로 설정하는 Slack 봇 빌드 과정을 소개합니다. 이 붓은 Pegasus 모델을 통해 비디오 요약을 자동으로 생성하고, 이를 Slack 채널에 공지사항으로 게시합니다.

목차

No headings found on page

뉴스레터 구독하기

뉴스레터 구독하기

영상 이해 분야의 최신 기술 업데이트, 튜토리얼 및 인사이트를 받아보세요.

영상 이해 분야의 최신 기술 업데이트, 튜토리얼 및 인사이트를 받아보세요.

AI로 영상을 검색하고, 분석하고, 탐색하세요.

2024. 3. 19.

5분

링크 복사하기

이 튜토리얼은 MindsDB의 멋진 팀원들인 Zoran Pandovski (Senior Full Stack Engineer), Martyna Slawinska (Software Engineer and Technical Writer), 그리고 Minura Punchihewa (Data Integrations Engineer)와 함께 공동 집필했습니다!

소개

최근 몇 년 동안 머신러닝 모델 분야에서 놀라운 발전이 있었습니다. 하지만 이러한 모델을 애플리케이션에 통합하고 서비스하는 것은 여전히 개발자들에게 도전 과제일 수 있습니다. 이번 튜토리얼에서는 비디오 이해를 위한 Twelve Labs의 최첨단 파운데이션 모델과 맞춤형 AI 구축을 위한 MindsDB의 플랫폼을 결합하여, 강력한 ML 앱을 훨씬 더 쉽게 구축할 수 있는 방법을 소개하고자 합니다. 인터넷 어디에나 비디오가 존재하지만, 텍스트와 달리 비디오는 파싱하고 요약하며 이해하기가 더 어렵습니다. 아래 튜토리얼을 통해 이 모든 작업을 수행할 수 있는 도구를 직접 구축할 수 있습니다.

Twelve Labs는 자연어 프롬프트를 이해하고 비디오 콘텐츠에서 인간과 유사한 텍스트를 생성할 수 있는 강력한 멀티모달 파운데이션 모델에 대한 접근을 제공합니다. MindsDB는 맞춤형 AI 솔루션을 구축하기 위해 머신러닝 모델과 데이터 소스에 접근할 수 있도록 정밀하게 지원합니다. 이 두 기술의 결합은 개발자들에게 무궁무진한 가능성을 열어줍니다.

텍스트를 생성하거나, 콘텐츠를 분류하거나, 비디오에서 특정 순간을 검색하려는 경우 모두 이 통합을 통해 Twelve Labs의 기능을 모든 개발자가 쉽게 활용할 수 있습니다. 이번 튜토리얼이 강력한 ML 앱을 구축하는 데 유익하고 도움이 되기를 바랍니다.

이 튜토리얼 전체를 통해 MindsDB에서 Twelve Labs 통합을 구성하고, MindsDB 내에 Twelve Labs 모델을 배포하며(Twelve Labs의 요약 작업을 사용하게 됩니다), 주기적으로 비디오 요약을 공지사항으로 게시하는 Slack 봇을 통해 전체 흐름을 자동화하는 방법을 배울 수 있습니다.

이 튜토리얼을 마칠 때쯤이면 MindsDB와 Twelve Labs의 장점을 활용하여 Slack 채널에 간결한 비디오 요약을 공지사항으로 게시하는 Slack 봇을 완성하게 될 것입니다.

그럼 시작하여 이 통합이 제공하는 무한한 가능성을 살펴보겠습니다.

사전 준비 사항

MindsDB 설치

MindsDB Docker 컨테이너를 실행하려면 다음 명령어를 실행하세요:

docker run -p 47334:47334 -p 47335:47335 --name mdb mindsdb/mindsdb

MindsDB 컨테이너가 실행되는 동안 다음 명령어를 실행하여 쉘에 접속합니다:

docker exec -it mdb sh

Docker 컨테이너 내부에서 다음 명령어를 사용하여 TwelveLabs 및 Slack 통합을 위한 추가 종속성을 설치합니다:

pip install mindsdb[twelve_labs] mindsdb[slack]

설치가 완료되면 브라우저를 통해 http://127.0.0.1:47334 주소로 MindsDB의 웹 인터페이스에 접속할 수 있습니다.

Twelve Labs API 키 발급

Twelve Labs API 키를 가져오려면 대시보드 페이지에 로그인한 후, API 키를 찾아 복사 아이콘을 선택하여 클립보드에 복사합니다.

Twelve Labs는 애플리케이션에 구성을 전달할 때 환경 변수를 사용할 것을 권장합니다. 하지만 이 튜토리얼에서는 아래와 같이 ML 엔진을 생성하는 동안 MindsDB에 API 키를 매개변수로 직접 전달할 수 있습니다.

MindsDB에서 Twelve Labs 모델 배포 및 사용하기

Twelve Labs 엔진 구성

요약 작업을 시작하기 전에 MindsDB와 Twelve Labs 간의 연결을 설정해야 합니다. 여기에는 Twelve Labs API를 활용하는 머신러닝(ML) 엔진을 생성하는 작업이 포함됩니다. 이 통합을 개시하려면 API 키를 복사하고 다음 SQL 명령을 실행하여 Twelve Labs 엔진을 생성하세요:

CREATE ML_ENGINE twelve_labs_engine
FROM twelve_labs
USING
 twelve_labs_api_key = '<YOUR_API_KEY>';

Twelve Labs 모델 배포

ML 엔진이 준비되었으며, 다음 단계는 요약 작업을 처리할 모델을 생성하는 것입니다:

CREATE MODEL mindsdb.demo_day_model
PREDICT result_summary
USING
 engine = 'twelve_labs_engine',
 task = "summarization",
 engine_id = 'pegasus1',
 index_name = 'index_1',
 index_options = ['visual', 'conversation'],
 video_urls = ['https://mindsdb.s3.eu-north-1.amazonaws.com/demo_day.mp4'],
 summarization_type = 'summary',
 prompt = 'Explore MindsDBs latest updates! Discover innovative features enhancing your analytics experience. Understand how these improvements bring precision and efficiency to your work, reflecting our commitment to forefront technology. Learn about integrating these new capabilities seamlessly.'

USING 문에서 제공한 매개변수는 다음과 같습니다:

  • engine: 사용할 ML 엔진의 이름입니다. 여기서는 이전에 생성한 'twelve_labs_engine'입니다.

  • task: 모델이 수행할 작업의 이름입니다.

  • engine_id: 사용할 Twelve Labs 엔진의 ID입니다. 요약 작업에는 'pegasus1'을 제공해야 합니다.

  • index_name: 사용할 인덱스의 이름입니다. 인덱스가 존재하지 않으면 자동으로 생성됩니다.

  • index_options: 처리할 비디오 내 정보 유형의 목록입니다. 'pegasus1' 엔진은 'visual''conversation'만 지원합니다.

  • video_files: 비디오의 로컬 경로 목록입니다.

  • summarization_type: 수행할 요약 유형이며, 여기서는 'summary'입니다.

  • prompt: 요약 작업에 대한 컨텍스트를 제공하고 공지사항 스타일로 요약 어조를 변경합니다.

비디오 크기에 따라 인덱스를 생성하고 비디오 데이터(비디오 임베딩 및 메타데이터)를 저장하는 데 시간이 다소 걸릴 수 있습니다. 위의 명령어가 실행되면 다음 describe 문을 실행하여 모델 상태를 확인할 수 있습니다:

DESCRIBE mindsdb.demo_day_model

모든 것이 원활하게 작동하면 STATUS 열에 완료(complete) 상태가 표시됩니다. 에러가 발생한 경우, 에러에 대한 자세한 정보가 포함된 ERROR 열을 확인하세요.

비디오에서 요약을 생성하기 전에 video_id를 알아야 합니다. 이를 확인하려면 인덱싱된 비디오 모델에 대한 DESCRIBE 문을 실행하세요:

DESCRIBE mindsdb.demo_day_model.indexed_videos;

반환된 결과 세트에 video_id가 포함되어 있을 것입니다. ID를 복사하고 모델을 쿼리하여 비디오의 핵심 포인트를 가져옵니다.

Twelve Labs 모델이 생성한 요약 가져오기

비디오 ID를 사용하여 이제 요약을 추출할 수 있습니다:

SELECT * FROM mindsdb.demo_day_model
WHERE video_id = '65e88e6f48db9fa780cb466f'

이제 result_id 및 video_id와 함께 실제 요약 텍스트가 포함된 result_summary 열을 확인할 수 있습니다.

정말 놀랍지 않나요? 단 몇 줄의 SQL 문만으로 비디오의 명확한 요약을 얻을 수 있었습니다. 여기서 한 걸음 더 나아가, Slack 채널에 요약을 게시하는 Slack 봇을 만들어 보겠습니다.

Slack 연동

MindsDB를 Slack 워크스페이스에 연결하기 전에, MindsDB Slack 설명서의 안내에 따라 토큰을 생성해 주세요.

토큰을 확보한 후 다음 명령어를 실행합니다:

CREATE DATABASE demo_day_bot
WITH
ENGINE = 'slack',
PARAMETERS =  {
    "token": "xoxb-2347-21112-csuae1231" 
};

그 후, Slack 채널에 환영 메시지를 게시하여 연동 여부를 확인합니다:

INSERT INTO demo_day_bot.channels (channel, text)
VALUES("announcements, "Welcome from MindsDB and Twelve Labs");

이제 공지 채널에서 위의 메시지를 확인할 수 있습니다.

정상적으로 작동한다면, Twelve Labs 모델을 사용하여 요약본을 채널에 게시할 수 있습니다:

INSERT INTO demo_day_bot.channels (channel, text)
SELECT "announcements" as channel, result_summary as text 
FROM mindsdb.demo_day_model 
WHERE video_id='65e7396748db9fa780cb4575'

이 쿼리는 demo_day_model을 호출하여 요약 텍스트를 가져오고, demo_day_bot을 사용하여 이를 공지 채널에 게시합니다.

결론

축하합니다! 이 튜토리얼을 완수함으로써, MindsDB와 Twelve Labs의 강력한 기능을 활용해 간결한 비디오 요약을 Slack 채널에 공지사항으로 전달하는 Slack 봇을 성공적으로 구축하셨습니다.

이번 과정에서 배운 내용들은 다음과 같습니다:

  1. MindsDB 설치 및 구성

  2. Twelve Labs API 키 발급

  3. MindsDB에서 Twelve Labs 엔진 구성

  4. MindsDB에 Twelve Labs 요약 모델 배포

  5. SQL 쿼리를 통해 Twelve Labs 모델을 사용한 비디오 요약 생성

  6. 자동 업데이트를 위한 Slack과 요약 워크플로우 연동하기

전체 GitHub 저장소는 여기에서 확인할 수 있습니다: https://github.com/mindsdb/mindsdb/tree/staging/mindsdb/integrations/handlers/twelve_labs_handler.

이 통합은 MindsDB의 AI-SQL 기능을 활용하여 Twelve Labs의 최첨단 파운데이션 모델을 애플리케이션으로 손쉽게 가져오는 솔루션을 정밀하게 보여줍니다. 단 몇 줄의 SQL만으로 업계 최고 수준의 비디오 이해 기능에 접근하고 이를 효율적인 Slack 봇에 원활하게 구현할 수 있었습니다.

MindsDB와 Twelve Labs의 잠재력을 더 자세히 알아보려면 다음 추가 리소스를 살펴보세요:

다양한 Twelve Labs 모델과 MindsDB 통합을 실험하며 훨씬 더 강력한 비디오 AI 애플리케이션을 직접 구축해 보시기를 권장합니다. 가능성은 무궁무진합니다!

질문이나 의견이 있으시면 언제든지 MindsDB 및 Twelve Labs 커뮤니티에 문의해 주세요. 즐거운 개발이 되시길 바랍니다!

이 튜토리얼은 MindsDB의 멋진 팀원들인 Zoran Pandovski (Senior Full Stack Engineer), Martyna Slawinska (Software Engineer and Technical Writer), 그리고 Minura Punchihewa (Data Integrations Engineer)와 함께 공동 집필했습니다!

소개

최근 몇 년 동안 머신러닝 모델 분야에서 놀라운 발전이 있었습니다. 하지만 이러한 모델을 애플리케이션에 통합하고 서비스하는 것은 여전히 개발자들에게 도전 과제일 수 있습니다. 이번 튜토리얼에서는 비디오 이해를 위한 Twelve Labs의 최첨단 파운데이션 모델과 맞춤형 AI 구축을 위한 MindsDB의 플랫폼을 결합하여, 강력한 ML 앱을 훨씬 더 쉽게 구축할 수 있는 방법을 소개하고자 합니다. 인터넷 어디에나 비디오가 존재하지만, 텍스트와 달리 비디오는 파싱하고 요약하며 이해하기가 더 어렵습니다. 아래 튜토리얼을 통해 이 모든 작업을 수행할 수 있는 도구를 직접 구축할 수 있습니다.

Twelve Labs는 자연어 프롬프트를 이해하고 비디오 콘텐츠에서 인간과 유사한 텍스트를 생성할 수 있는 강력한 멀티모달 파운데이션 모델에 대한 접근을 제공합니다. MindsDB는 맞춤형 AI 솔루션을 구축하기 위해 머신러닝 모델과 데이터 소스에 접근할 수 있도록 정밀하게 지원합니다. 이 두 기술의 결합은 개발자들에게 무궁무진한 가능성을 열어줍니다.

텍스트를 생성하거나, 콘텐츠를 분류하거나, 비디오에서 특정 순간을 검색하려는 경우 모두 이 통합을 통해 Twelve Labs의 기능을 모든 개발자가 쉽게 활용할 수 있습니다. 이번 튜토리얼이 강력한 ML 앱을 구축하는 데 유익하고 도움이 되기를 바랍니다.

이 튜토리얼 전체를 통해 MindsDB에서 Twelve Labs 통합을 구성하고, MindsDB 내에 Twelve Labs 모델을 배포하며(Twelve Labs의 요약 작업을 사용하게 됩니다), 주기적으로 비디오 요약을 공지사항으로 게시하는 Slack 봇을 통해 전체 흐름을 자동화하는 방법을 배울 수 있습니다.

이 튜토리얼을 마칠 때쯤이면 MindsDB와 Twelve Labs의 장점을 활용하여 Slack 채널에 간결한 비디오 요약을 공지사항으로 게시하는 Slack 봇을 완성하게 될 것입니다.

그럼 시작하여 이 통합이 제공하는 무한한 가능성을 살펴보겠습니다.

사전 준비 사항

MindsDB 설치

MindsDB Docker 컨테이너를 실행하려면 다음 명령어를 실행하세요:

docker run -p 47334:47334 -p 47335:47335 --name mdb mindsdb/mindsdb

MindsDB 컨테이너가 실행되는 동안 다음 명령어를 실행하여 쉘에 접속합니다:

docker exec -it mdb sh

Docker 컨테이너 내부에서 다음 명령어를 사용하여 TwelveLabs 및 Slack 통합을 위한 추가 종속성을 설치합니다:

pip install mindsdb[twelve_labs] mindsdb[slack]

설치가 완료되면 브라우저를 통해 http://127.0.0.1:47334 주소로 MindsDB의 웹 인터페이스에 접속할 수 있습니다.

Twelve Labs API 키 발급

Twelve Labs API 키를 가져오려면 대시보드 페이지에 로그인한 후, API 키를 찾아 복사 아이콘을 선택하여 클립보드에 복사합니다.

Twelve Labs는 애플리케이션에 구성을 전달할 때 환경 변수를 사용할 것을 권장합니다. 하지만 이 튜토리얼에서는 아래와 같이 ML 엔진을 생성하는 동안 MindsDB에 API 키를 매개변수로 직접 전달할 수 있습니다.

MindsDB에서 Twelve Labs 모델 배포 및 사용하기

Twelve Labs 엔진 구성

요약 작업을 시작하기 전에 MindsDB와 Twelve Labs 간의 연결을 설정해야 합니다. 여기에는 Twelve Labs API를 활용하는 머신러닝(ML) 엔진을 생성하는 작업이 포함됩니다. 이 통합을 개시하려면 API 키를 복사하고 다음 SQL 명령을 실행하여 Twelve Labs 엔진을 생성하세요:

CREATE ML_ENGINE twelve_labs_engine
FROM twelve_labs
USING
 twelve_labs_api_key = '<YOUR_API_KEY>';

Twelve Labs 모델 배포

ML 엔진이 준비되었으며, 다음 단계는 요약 작업을 처리할 모델을 생성하는 것입니다:

CREATE MODEL mindsdb.demo_day_model
PREDICT result_summary
USING
 engine = 'twelve_labs_engine',
 task = "summarization",
 engine_id = 'pegasus1',
 index_name = 'index_1',
 index_options = ['visual', 'conversation'],
 video_urls = ['https://mindsdb.s3.eu-north-1.amazonaws.com/demo_day.mp4'],
 summarization_type = 'summary',
 prompt = 'Explore MindsDBs latest updates! Discover innovative features enhancing your analytics experience. Understand how these improvements bring precision and efficiency to your work, reflecting our commitment to forefront technology. Learn about integrating these new capabilities seamlessly.'

USING 문에서 제공한 매개변수는 다음과 같습니다:

  • engine: 사용할 ML 엔진의 이름입니다. 여기서는 이전에 생성한 'twelve_labs_engine'입니다.

  • task: 모델이 수행할 작업의 이름입니다.

  • engine_id: 사용할 Twelve Labs 엔진의 ID입니다. 요약 작업에는 'pegasus1'을 제공해야 합니다.

  • index_name: 사용할 인덱스의 이름입니다. 인덱스가 존재하지 않으면 자동으로 생성됩니다.

  • index_options: 처리할 비디오 내 정보 유형의 목록입니다. 'pegasus1' 엔진은 'visual''conversation'만 지원합니다.

  • video_files: 비디오의 로컬 경로 목록입니다.

  • summarization_type: 수행할 요약 유형이며, 여기서는 'summary'입니다.

  • prompt: 요약 작업에 대한 컨텍스트를 제공하고 공지사항 스타일로 요약 어조를 변경합니다.

비디오 크기에 따라 인덱스를 생성하고 비디오 데이터(비디오 임베딩 및 메타데이터)를 저장하는 데 시간이 다소 걸릴 수 있습니다. 위의 명령어가 실행되면 다음 describe 문을 실행하여 모델 상태를 확인할 수 있습니다:

DESCRIBE mindsdb.demo_day_model

모든 것이 원활하게 작동하면 STATUS 열에 완료(complete) 상태가 표시됩니다. 에러가 발생한 경우, 에러에 대한 자세한 정보가 포함된 ERROR 열을 확인하세요.

비디오에서 요약을 생성하기 전에 video_id를 알아야 합니다. 이를 확인하려면 인덱싱된 비디오 모델에 대한 DESCRIBE 문을 실행하세요:

DESCRIBE mindsdb.demo_day_model.indexed_videos;

반환된 결과 세트에 video_id가 포함되어 있을 것입니다. ID를 복사하고 모델을 쿼리하여 비디오의 핵심 포인트를 가져옵니다.

Twelve Labs 모델이 생성한 요약 가져오기

비디오 ID를 사용하여 이제 요약을 추출할 수 있습니다:

SELECT * FROM mindsdb.demo_day_model
WHERE video_id = '65e88e6f48db9fa780cb466f'

이제 result_id 및 video_id와 함께 실제 요약 텍스트가 포함된 result_summary 열을 확인할 수 있습니다.

정말 놀랍지 않나요? 단 몇 줄의 SQL 문만으로 비디오의 명확한 요약을 얻을 수 있었습니다. 여기서 한 걸음 더 나아가, Slack 채널에 요약을 게시하는 Slack 봇을 만들어 보겠습니다.

Slack 연동

MindsDB를 Slack 워크스페이스에 연결하기 전에, MindsDB Slack 설명서의 안내에 따라 토큰을 생성해 주세요.

토큰을 확보한 후 다음 명령어를 실행합니다:

CREATE DATABASE demo_day_bot
WITH
ENGINE = 'slack',
PARAMETERS =  {
    "token": "xoxb-2347-21112-csuae1231" 
};

그 후, Slack 채널에 환영 메시지를 게시하여 연동 여부를 확인합니다:

INSERT INTO demo_day_bot.channels (channel, text)
VALUES("announcements, "Welcome from MindsDB and Twelve Labs");

이제 공지 채널에서 위의 메시지를 확인할 수 있습니다.

정상적으로 작동한다면, Twelve Labs 모델을 사용하여 요약본을 채널에 게시할 수 있습니다:

INSERT INTO demo_day_bot.channels (channel, text)
SELECT "announcements" as channel, result_summary as text 
FROM mindsdb.demo_day_model 
WHERE video_id='65e7396748db9fa780cb4575'

이 쿼리는 demo_day_model을 호출하여 요약 텍스트를 가져오고, demo_day_bot을 사용하여 이를 공지 채널에 게시합니다.

결론

축하합니다! 이 튜토리얼을 완수함으로써, MindsDB와 Twelve Labs의 강력한 기능을 활용해 간결한 비디오 요약을 Slack 채널에 공지사항으로 전달하는 Slack 봇을 성공적으로 구축하셨습니다.

이번 과정에서 배운 내용들은 다음과 같습니다:

  1. MindsDB 설치 및 구성

  2. Twelve Labs API 키 발급

  3. MindsDB에서 Twelve Labs 엔진 구성

  4. MindsDB에 Twelve Labs 요약 모델 배포

  5. SQL 쿼리를 통해 Twelve Labs 모델을 사용한 비디오 요약 생성

  6. 자동 업데이트를 위한 Slack과 요약 워크플로우 연동하기

전체 GitHub 저장소는 여기에서 확인할 수 있습니다: https://github.com/mindsdb/mindsdb/tree/staging/mindsdb/integrations/handlers/twelve_labs_handler.

이 통합은 MindsDB의 AI-SQL 기능을 활용하여 Twelve Labs의 최첨단 파운데이션 모델을 애플리케이션으로 손쉽게 가져오는 솔루션을 정밀하게 보여줍니다. 단 몇 줄의 SQL만으로 업계 최고 수준의 비디오 이해 기능에 접근하고 이를 효율적인 Slack 봇에 원활하게 구현할 수 있었습니다.

MindsDB와 Twelve Labs의 잠재력을 더 자세히 알아보려면 다음 추가 리소스를 살펴보세요:

다양한 Twelve Labs 모델과 MindsDB 통합을 실험하며 훨씬 더 강력한 비디오 AI 애플리케이션을 직접 구축해 보시기를 권장합니다. 가능성은 무궁무진합니다!

질문이나 의견이 있으시면 언제든지 MindsDB 및 Twelve Labs 커뮤니티에 문의해 주세요. 즐거운 개발이 되시길 바랍니다!

이 튜토리얼은 MindsDB의 멋진 팀원들인 Zoran Pandovski (Senior Full Stack Engineer), Martyna Slawinska (Software Engineer and Technical Writer), 그리고 Minura Punchihewa (Data Integrations Engineer)와 함께 공동 집필했습니다!

소개

최근 몇 년 동안 머신러닝 모델 분야에서 놀라운 발전이 있었습니다. 하지만 이러한 모델을 애플리케이션에 통합하고 서비스하는 것은 여전히 개발자들에게 도전 과제일 수 있습니다. 이번 튜토리얼에서는 비디오 이해를 위한 Twelve Labs의 최첨단 파운데이션 모델과 맞춤형 AI 구축을 위한 MindsDB의 플랫폼을 결합하여, 강력한 ML 앱을 훨씬 더 쉽게 구축할 수 있는 방법을 소개하고자 합니다. 인터넷 어디에나 비디오가 존재하지만, 텍스트와 달리 비디오는 파싱하고 요약하며 이해하기가 더 어렵습니다. 아래 튜토리얼을 통해 이 모든 작업을 수행할 수 있는 도구를 직접 구축할 수 있습니다.

Twelve Labs는 자연어 프롬프트를 이해하고 비디오 콘텐츠에서 인간과 유사한 텍스트를 생성할 수 있는 강력한 멀티모달 파운데이션 모델에 대한 접근을 제공합니다. MindsDB는 맞춤형 AI 솔루션을 구축하기 위해 머신러닝 모델과 데이터 소스에 접근할 수 있도록 정밀하게 지원합니다. 이 두 기술의 결합은 개발자들에게 무궁무진한 가능성을 열어줍니다.

텍스트를 생성하거나, 콘텐츠를 분류하거나, 비디오에서 특정 순간을 검색하려는 경우 모두 이 통합을 통해 Twelve Labs의 기능을 모든 개발자가 쉽게 활용할 수 있습니다. 이번 튜토리얼이 강력한 ML 앱을 구축하는 데 유익하고 도움이 되기를 바랍니다.

이 튜토리얼 전체를 통해 MindsDB에서 Twelve Labs 통합을 구성하고, MindsDB 내에 Twelve Labs 모델을 배포하며(Twelve Labs의 요약 작업을 사용하게 됩니다), 주기적으로 비디오 요약을 공지사항으로 게시하는 Slack 봇을 통해 전체 흐름을 자동화하는 방법을 배울 수 있습니다.

이 튜토리얼을 마칠 때쯤이면 MindsDB와 Twelve Labs의 장점을 활용하여 Slack 채널에 간결한 비디오 요약을 공지사항으로 게시하는 Slack 봇을 완성하게 될 것입니다.

그럼 시작하여 이 통합이 제공하는 무한한 가능성을 살펴보겠습니다.

사전 준비 사항

MindsDB 설치

MindsDB Docker 컨테이너를 실행하려면 다음 명령어를 실행하세요:

docker run -p 47334:47334 -p 47335:47335 --name mdb mindsdb/mindsdb

MindsDB 컨테이너가 실행되는 동안 다음 명령어를 실행하여 쉘에 접속합니다:

docker exec -it mdb sh

Docker 컨테이너 내부에서 다음 명령어를 사용하여 TwelveLabs 및 Slack 통합을 위한 추가 종속성을 설치합니다:

pip install mindsdb[twelve_labs] mindsdb[slack]

설치가 완료되면 브라우저를 통해 http://127.0.0.1:47334 주소로 MindsDB의 웹 인터페이스에 접속할 수 있습니다.

Twelve Labs API 키 발급

Twelve Labs API 키를 가져오려면 대시보드 페이지에 로그인한 후, API 키를 찾아 복사 아이콘을 선택하여 클립보드에 복사합니다.

Twelve Labs는 애플리케이션에 구성을 전달할 때 환경 변수를 사용할 것을 권장합니다. 하지만 이 튜토리얼에서는 아래와 같이 ML 엔진을 생성하는 동안 MindsDB에 API 키를 매개변수로 직접 전달할 수 있습니다.

MindsDB에서 Twelve Labs 모델 배포 및 사용하기

Twelve Labs 엔진 구성

요약 작업을 시작하기 전에 MindsDB와 Twelve Labs 간의 연결을 설정해야 합니다. 여기에는 Twelve Labs API를 활용하는 머신러닝(ML) 엔진을 생성하는 작업이 포함됩니다. 이 통합을 개시하려면 API 키를 복사하고 다음 SQL 명령을 실행하여 Twelve Labs 엔진을 생성하세요:

CREATE ML_ENGINE twelve_labs_engine
FROM twelve_labs
USING
 twelve_labs_api_key = '<YOUR_API_KEY>';

Twelve Labs 모델 배포

ML 엔진이 준비되었으며, 다음 단계는 요약 작업을 처리할 모델을 생성하는 것입니다:

CREATE MODEL mindsdb.demo_day_model
PREDICT result_summary
USING
 engine = 'twelve_labs_engine',
 task = "summarization",
 engine_id = 'pegasus1',
 index_name = 'index_1',
 index_options = ['visual', 'conversation'],
 video_urls = ['https://mindsdb.s3.eu-north-1.amazonaws.com/demo_day.mp4'],
 summarization_type = 'summary',
 prompt = 'Explore MindsDBs latest updates! Discover innovative features enhancing your analytics experience. Understand how these improvements bring precision and efficiency to your work, reflecting our commitment to forefront technology. Learn about integrating these new capabilities seamlessly.'

USING 문에서 제공한 매개변수는 다음과 같습니다:

  • engine: 사용할 ML 엔진의 이름입니다. 여기서는 이전에 생성한 'twelve_labs_engine'입니다.

  • task: 모델이 수행할 작업의 이름입니다.

  • engine_id: 사용할 Twelve Labs 엔진의 ID입니다. 요약 작업에는 'pegasus1'을 제공해야 합니다.

  • index_name: 사용할 인덱스의 이름입니다. 인덱스가 존재하지 않으면 자동으로 생성됩니다.

  • index_options: 처리할 비디오 내 정보 유형의 목록입니다. 'pegasus1' 엔진은 'visual''conversation'만 지원합니다.

  • video_files: 비디오의 로컬 경로 목록입니다.

  • summarization_type: 수행할 요약 유형이며, 여기서는 'summary'입니다.

  • prompt: 요약 작업에 대한 컨텍스트를 제공하고 공지사항 스타일로 요약 어조를 변경합니다.

비디오 크기에 따라 인덱스를 생성하고 비디오 데이터(비디오 임베딩 및 메타데이터)를 저장하는 데 시간이 다소 걸릴 수 있습니다. 위의 명령어가 실행되면 다음 describe 문을 실행하여 모델 상태를 확인할 수 있습니다:

DESCRIBE mindsdb.demo_day_model

모든 것이 원활하게 작동하면 STATUS 열에 완료(complete) 상태가 표시됩니다. 에러가 발생한 경우, 에러에 대한 자세한 정보가 포함된 ERROR 열을 확인하세요.

비디오에서 요약을 생성하기 전에 video_id를 알아야 합니다. 이를 확인하려면 인덱싱된 비디오 모델에 대한 DESCRIBE 문을 실행하세요:

DESCRIBE mindsdb.demo_day_model.indexed_videos;

반환된 결과 세트에 video_id가 포함되어 있을 것입니다. ID를 복사하고 모델을 쿼리하여 비디오의 핵심 포인트를 가져옵니다.

Twelve Labs 모델이 생성한 요약 가져오기

비디오 ID를 사용하여 이제 요약을 추출할 수 있습니다:

SELECT * FROM mindsdb.demo_day_model
WHERE video_id = '65e88e6f48db9fa780cb466f'

이제 result_id 및 video_id와 함께 실제 요약 텍스트가 포함된 result_summary 열을 확인할 수 있습니다.

정말 놀랍지 않나요? 단 몇 줄의 SQL 문만으로 비디오의 명확한 요약을 얻을 수 있었습니다. 여기서 한 걸음 더 나아가, Slack 채널에 요약을 게시하는 Slack 봇을 만들어 보겠습니다.

Slack 연동

MindsDB를 Slack 워크스페이스에 연결하기 전에, MindsDB Slack 설명서의 안내에 따라 토큰을 생성해 주세요.

토큰을 확보한 후 다음 명령어를 실행합니다:

CREATE DATABASE demo_day_bot
WITH
ENGINE = 'slack',
PARAMETERS =  {
    "token": "xoxb-2347-21112-csuae1231" 
};

그 후, Slack 채널에 환영 메시지를 게시하여 연동 여부를 확인합니다:

INSERT INTO demo_day_bot.channels (channel, text)
VALUES("announcements, "Welcome from MindsDB and Twelve Labs");

이제 공지 채널에서 위의 메시지를 확인할 수 있습니다.

정상적으로 작동한다면, Twelve Labs 모델을 사용하여 요약본을 채널에 게시할 수 있습니다:

INSERT INTO demo_day_bot.channels (channel, text)
SELECT "announcements" as channel, result_summary as text 
FROM mindsdb.demo_day_model 
WHERE video_id='65e7396748db9fa780cb4575'

이 쿼리는 demo_day_model을 호출하여 요약 텍스트를 가져오고, demo_day_bot을 사용하여 이를 공지 채널에 게시합니다.

결론

축하합니다! 이 튜토리얼을 완수함으로써, MindsDB와 Twelve Labs의 강력한 기능을 활용해 간결한 비디오 요약을 Slack 채널에 공지사항으로 전달하는 Slack 봇을 성공적으로 구축하셨습니다.

이번 과정에서 배운 내용들은 다음과 같습니다:

  1. MindsDB 설치 및 구성

  2. Twelve Labs API 키 발급

  3. MindsDB에서 Twelve Labs 엔진 구성

  4. MindsDB에 Twelve Labs 요약 모델 배포

  5. SQL 쿼리를 통해 Twelve Labs 모델을 사용한 비디오 요약 생성

  6. 자동 업데이트를 위한 Slack과 요약 워크플로우 연동하기

전체 GitHub 저장소는 여기에서 확인할 수 있습니다: https://github.com/mindsdb/mindsdb/tree/staging/mindsdb/integrations/handlers/twelve_labs_handler.

이 통합은 MindsDB의 AI-SQL 기능을 활용하여 Twelve Labs의 최첨단 파운데이션 모델을 애플리케이션으로 손쉽게 가져오는 솔루션을 정밀하게 보여줍니다. 단 몇 줄의 SQL만으로 업계 최고 수준의 비디오 이해 기능에 접근하고 이를 효율적인 Slack 봇에 원활하게 구현할 수 있었습니다.

MindsDB와 Twelve Labs의 잠재력을 더 자세히 알아보려면 다음 추가 리소스를 살펴보세요:

다양한 Twelve Labs 모델과 MindsDB 통합을 실험하며 훨씬 더 강력한 비디오 AI 애플리케이션을 직접 구축해 보시기를 권장합니다. 가능성은 무궁무진합니다!

질문이나 의견이 있으시면 언제든지 MindsDB 및 Twelve Labs 커뮤니티에 문의해 주세요. 즐거운 개발이 되시길 바랍니다!