TwelveLabs Marengo Embed 2.7 - Amazon Bedrock

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

TwelveLabs Marengo Embed 2.7

TwelveLabs Marengo Embed 2.7 모델은 비디오, 텍스트, 오디오 또는 이미지 입력에서 임베딩을 생성합니다. 이러한 임베딩은 유사성 검색, 클러스터링 및 기타 기계 학습 작업에 사용할 수 있습니다.

  • 공급자 - TwelveLabs

  • 모델 ID - twelvelabs.marengo-embed-2-7-v1:0

TwelveLabs Marengo Embed 2.7 모델은 다음 표에서 Amazon Bedrock 런타임 작업을 지원합니다.

API 작업 지원되는 모델 유형 입력 양식 출력 양식

InvokeModel

추론 프로필

텍스트

이미지

임베딩

StartAsyncInvoke 기본 모델

비디오

오디오

이미지

텍스트

임베딩

참고

InvokeModel를 사용하여 검색 쿼리에 대한 임베딩을 생성합니다. StartAsyncInvoke를 사용하여 자산에 대한 임베딩을 대규모로 생성합니다.

입력에는 다음 할당량이 적용됩니다.

입력 양식 Maximum
텍스트 토큰 77개
이미지 5MB
비디오(S3) 2GB
오디오(S3) 2GB
참고

base64 인코딩을 사용하여 오디오 또는 비디오를 인라인으로 정의하는 경우 요청 본문 페이로드가 Amazon Bedrock 25MB 모델 호출 할당량을 초과하지 않는지 확인합니다.

TwelveLabs Marengo Embed 2.7 요청 파라미터

요청을 할 때 모델별 입력이 지정되는 필드는 API 작업에 따라 달라집니다.

모델 입력 형식은 입력 형식에 따라 다릅니다.

Text
{ "inputType": "text", "inputText": "string", "textTruncate": "string }
Inline image
{ "inputType": "image", "mediaSource": { "base64String": "base64-encoded string" } }
S3 image
{ "inputType": "image", "mediaSource": { "s3Location": { "uri": "string", "bucketOwner": "string" } } }
Inline video
{ "inputType": "video", "mediaSource": { "s3Location": { "base64String": "base64-encoded string" } }, "startSec": double, "lengthSec": double, "useFixedLengthSec": double, "embeddingOption": "visual-text" | "visual-image" | "audio" }
S3 video
{ "inputType": "image", "mediaSource": { "s3Location": { "uri": "string", "bucketOwner": "string" } }, "startSec": double, "lengthSec": double, "useFixedLengthSec": double, "minClipSec": int, "embeddingOption": ["string"] }
Inline audio
{ "inputType": "audio", "mediaSource": { "base64String": "base64-encoded string" }, "startSec": double, "lengthSec": double, "useFixedLengthSec": double }
S3 audio
{ "inputType": "audio", "mediaSource": { "s3Location": { "uri": "string", "bucketOwner": "string" } }, "startSec": double, "lengthSec": double, "useFixedLengthSec": double }

입력 파라미터에 대한 자세한 내용은 다음 섹션을 확장하세요.

임베딩 방식입니다.

  • 유형: 문자열

  • 필수 항목 여부: 예

  • 유효한 값: video | text | audio | image

포함할 텍스트입니다.

  • 유형: 문자열

  • 필수: 예(호환되는 입력 유형의 경우)

  • 호환되는 입력 유형: 텍스트

플랫폼이 텍스트를 잘라내는 방법을 지정합니다.

  • 유형: 문자열

  • 필수 항목 여부: 아니요

  • 유효한 값:

    • end - 텍스트의 끝을 자릅니다.

    • none - 텍스트가 제한을 초과하는 경우 오류를 반환합니다.

  • 기본값: end

  • 호환되는 입력 유형: 텍스트

미디어 소스에 대한 정보를 포함합니다.

  • 유형: 객체

  • 필수: 예(호환되는 유형인 경우)

  • 호환되는 입력 유형: 이미지, 비디오, 오디오

요청 본문의 mediaSource 객체 형식은 미디어가 Base64-encoded 문자열 또는 S3 위치로 정의되는지 여부에 따라 달라집니다.

  • Base64-encoded 문자열

    { "mediaSource": { "base64String": "base64-encoded string" } }
    • base64String Base64-encoded 문자열입니다.

  • S3 위치 - S3 URI 및를 지정합니다.

    { "s3Location": { "uri": "string", "bucketOwner": "string" } }
    • uri - 미디어가 포함된 S3 URI입니다.

    • bucketOwner - S3 버킷 소유자의 AWS 계정 ID입니다.

검색할 임베딩 유형을 지정합니다.

  • 유형: 목록

  • 필수 항목 여부: 아니요

  • 목록 멤버에 유효한 값:

    • visual-text - 텍스트 검색에 최적화된 시각적 임베딩입니다.

    • visual-image - 이미지 검색에 최적화된 시각적 임베딩입니다.

    • audio - 비디오에 오디오를 임베딩합니다.

  • 기본값: ["visual-text", "visual-image", "audio"]

  • 호환되는 입력 유형: 비디오, 오디오

처리가 시작되어야 하는 클립의 초 단위 시점입니다.

  • 유형: Double

  • 필수 항목 여부: 아니요

  • 최소값: 0

  • 기본값: 0

  • 호환되는 입력 유형: 비디오, 오디오

처리가 중지되어야 하는 시점부터 계산되는 초 단위 startSec 시간입니다.

  • 유형: Double

  • 필수 항목 여부: 아니요

  • 유효한 값: 0 - 미디어 기간

  • 기본값: 미디어 기간

  • 호환되는 입력 유형: 비디오, 오디오

예:

  • startSec: 5

  • lengthSec: 20

  • 결과: 클립은 0:05에서 0:20까지 처리됩니다.

모델이 임베딩을 생성해야 하는 각 클립의 기간입니다.

  • 유형: Double

  • 필수 항목 여부: 아니요

  • 값 파라미터: 2~10. 보다 크거나 같아야 합니다minClipSec.

  • 기본값: 미디어 유형에 따라 다름:

    • 비디오: 샷 경계 감지로 동적으로 분할

    • 오디오: 균등하게 분할되고 가능한 한 10에 근접합니다. 예:

      • 50초 클립은 5개의 10초 세그먼트로 나뉩니다.

      • 16초 클립은 2개의 8초 세그먼트로 나뉩니다.

  • 호환되는 입력 유형: – 비디오, 오디오

  • 참고: 보다 크거나 같아야 합니다minClipSec.

각 클립의 최소값을 초 단위로 설정합니다.

  • 유형: int

  • 필수 항목 여부: 아니요

  • 값 파라미터: 범위: 1~5

  • 기본값: 4

  • 호환되는 입력 유형: 비디오

  • 참고: 보다 작거나 같아야 합니다useFixedLengthSec.

TwelveLabs Marengo Embed 2.7 응답

출력 임베딩 및 관련 메타데이터의 위치는 호출 방법에 따라 달라집니다.

  • InvokeModel – 응답 본문에 있습니다.

  • StartAsyncInvoke - 비동기 호출 작업이 완료된 s3OutputDataConfig후에 정의된 S3 버킷에서.

임베딩 벡터가 여러 개 있는 경우 출력은 객체 목록이며, 각 객체에는 벡터와 관련 메타데이터가 포함됩니다.

출력 임베딩 벡터의 형식은 다음과 같습니다.

{ "embedding": ["string"], "embeddingOption": "visual-text" | "visual-image" | "audio", "startSec": double, "endsec": double }

응답 파라미터에 대한 자세한 내용은 다음 섹션을 확장하세요.

입력의 벡터 표현을 임베딩합니다.

  • Type: doubles 목록

임베딩 유형입니다.

  • 유형: 문자열

  • 가능한 값:

    • visual-text - 텍스트 검색에 최적화된 시각적 임베딩입니다.

    • visual-image - 이미지 검색에 최적화된 시각적 임베딩입니다.

    • audio - 비디오에 오디오를 임베딩합니다.

  • 호환되는 입력 유형: 비디오

클립의 시작 오프셋입니다.

  • 유형: Double

  • 호환되는 입력 유형: 비디오, 오디오

클립의 끝 오프셋으로, 초 단위입니다.

  • 유형: Double

  • 호환되는 입력 유형: 비디오, 오디오

TwelveLabs Marengo Embed 2.7 코드 예제

이 섹션에서는 Python을 사용하여 다양한 입력 유형으로 TwelveLabs Marengo Embed 2.7 모델을 사용하는 방법을 보여줍니다.

참고

현재 InvokeModel은 텍스트 및 이미지 입력만 지원합니다.

다음 단계에 따라 코드를 통합합니다.

1. 모델별 입력 정의

입력 유형에 따라 모델별 입력을 정의합니다.

Text
# Create the model-specific input model_id = "twelvelabs.marengo-embed-2-7-v1:0" # Replace the us prefix depending on your region inference_profile_id = "us.twelvelabs.marengo-embed-2-7-v1:0" model_input = { "inputType": "text", "inputText": "man walking a dog" }
Inline image
# Create the model-specific input model_id = "twelvelabs.marengo-embed-2-7-v1:0" # Replace the us prefix depending on your region inference_profile_id = "us.twelvelabs.marengo-embed-2-7-v1:0" model_input = { "inputType": "image", "mediaSource": { "base64String": "example-base64-image" } }
S3 image
# Create the model-specific input model_id = "twelvelabs.marengo-embed-2-7-v1:0" # Replace the us prefix depending on your region inference_profile_id = "us.twelvelabs.marengo-embed-2-7-v1:0" model_input = { "inputType": "image", "mediaSource": { "s3Location": { "uri": "s3://amzn-s3-demo-bucket/my_image.png", "bucketOwner": "123456789012" } } }
Inline video
# Create the model-specific input model_id = "twelvelabs.marengo-embed-2-7-v1:0" # Replace the us prefix depending on your region inference_profile_id = "us.twelvelabs.marengo-embed-2-7-v1:0" model_input = { "inputType": "video", "mediaSource": { "base64String": "base_64_encoded_string_of_video" }, "startSec": 0, "lengthSec": 13, "useFixedLengthSec": 5, "embeddingOption": [ "visual-text", "audio" ] }
S3 video
# Create the model-specific input model_id = "twelvelabs.marengo-embed-2-7-v1:0" # Replace the us prefix depending on your region inference_profile_id = "us.twelvelabs.marengo-embed-2-7-v1:0" model_input = { "inputType": "video", "mediaSource": { "s3Location": { "uri": "amzn-s3-demo-bucket/my-video.mp4", "bucketOwner": "123456789012" } }, "startSec": 0, "lengthSec": 13, "useFixedLengthSec": 5, "embeddingOption": [ "visual-text", "audio" ] }
Inline audio
# Create the model-specific input model_id = "twelvelabs.marengo-embed-2-7-v1:0" # Replace the us prefix depending on your region inference_profile_id = "us.twelvelabs.marengo-embed-2-7-v1:0" model_input = { "inputType": "audio", "mediaSource": { "base64String": "base_64_encoded_string_of_audio" }, "startSec": 0, "lengthSec": 13, "useFixedLengthSec": 10 }
S3 audio
# Create the model-specific input model_id = "twelvelabs.marengo-embed-2-7-v1:0" # Replace the us prefix depending on your region inference_profile_id = "us.twelvelabs.marengo-embed-2-7-v1:0" model_input = { "inputType": "audio", "mediaSource": { "s3Location": { "uri": "s3://amzn-s3-demo-bucket/my-audio.wav", "bucketOwner": "123456789012" } }, "startSec": 0, "lengthSec": 13, "useFixedLengthSec": 10 }
2. 모델 입력을 사용하여 모델 호출 실행

그런 다음 선택한 모델 호출 방법에 해당하는 코드 조각을 추가합니다.

InvokeModel
# Run model invocation with InvokeModel import boto3 import json # Initialize the Bedrock Runtime client client = boto3.client('bedrock-runtime') # Make the request response = client.invoke_model( modelId=inference_profile_id, body=json.dumps(model_input) ) # Print the response body response_body = json.loads(response['body'].read().decode('utf-8')) print(response_body)
StartAsyncInvoke
# Run model invocation asynchronously import boto3 import json # Initalize the Bedrock Runtime client. client = boto3.client("bedrock-runtime") try: # Start the asynchronous job invocation = client.start_async_invoke( modelId=model_id, modelInput=model_input, outputDataConfig={ "s3OutputDataConfig": { "s3Uri": "s3://&example-s3-destination-bucket;" } } ) # Print the response JSON print("Response:") print(json.dumps(invocation, indent=2, default=str)) except Exception as e: # Implement error handling here. message = e.response["Error"]["Message"] print(f"Error: {message}")