完成嵌入請求和回應結構描述 - Amazon Nova

完成嵌入請求和回應結構描述

完成同步結構描述

{ "schemaVersion": "nova-multimodal-embed-v1", "taskType": "SINGLE_EMBEDDING", "singleEmbeddingParams": { "embeddingPurpose": "GENERIC_INDEX" | "GENERIC_RETRIEVAL" | "TEXT_RETRIEVAL" | "IMAGE_RETRIEVAL" | "VIDEO_RETRIEVAL" | "DOCUMENT_RETRIEVAL" | "AUDIO_RETRIEVAL" | "CLASSIFICATION" | "CLUSTERING", "embeddingDimension": 256 | 384 | 1024 | 3072, "text": { "truncationMode": "START" | "END" | "NONE", "value": string, "source": SourceObject, }, "image": { "detailLevel": "STANDARD_IMAGE" | "DOCUMENT_IMAGE", "format": "png" | "jpeg" | "gif" | "webp", "source": SourceObject }, "audio": { "format": "mp3" | "wav" | "ogg", "source": SourceObject }, "video": { "format": "mp4" | "mov" | "mkv" | "webm" | "flv" | "mpeg" | "mpg" | "wmv" | "3gp", "source": SourceObject, "embeddingMode": "AUDIO_VIDEO_COMBINED" | "AUDIO_VIDEO_SEPARATE" } } }

下列清單包含請求的所有參數:

  • schemaVersion (選用) - 多模態嵌入模型請求的結構描述版本

    • 類型:字串

    • 允許的值:"nova-multimodal-embed-v1"

    • 預設:"nova-multimodal-embed-v1"

  • taskType (必填) - 指定要在輸入內容上執行的嵌入作業類型。single_embedding 指每個模型輸入產生一個嵌入。segmented_embedding 指先按使用者規格為模型輸入分段,然後為每個區段產生單一嵌入。

    • 類型:字串

    • 允許的值:同步呼叫必須是「SINGLE_EMBEDDING」。

  • singleEmbeddingParams (必填)

    • embeddingPurpose (必填) - Nova 多模態嵌入可讓您根據預期的應用程式最佳化嵌入。範例包括 MM-RAG、用於影像和影片搜尋的數位資產管理、多模態內容的相似性比較,或用於智慧型文件處理的文件分類。 embeddingPurpose 可讓您指定嵌入使用案例。根據下面的使用案例選取正確的值。

      • 搜尋和擷取:RAG 和搜尋等嵌入使用案例涉及兩個主要步驟:首先,透過為內容產生嵌入來建立索引,然後在搜尋期間從索引擷取最相關的內容。使用搜尋和擷取使用案例時,請使用下列值:

        • 編製索引:

          • "GENERIC_INDEX" - 建立最佳化嵌入,以用作向量資料存放區中的索引。無論您要編製索引的模態為何,都應該使用此值。

        • 搜尋/擷取:根據您所擷取的內容類型最佳化嵌入:

          • "TEXT_RETRIEVAL" - 建立最佳化嵌入,以搜尋僅包含文字嵌入的儲存庫。

          • "IMAGE_RETRIEVAL" - 建立最佳化嵌入,以搜尋僅包含以「STANDARD_IMAGE」detailLevel 建立之影像嵌入的儲存庫。

          • "VIDEO_RETRIEVAL" - 建立最佳化嵌入,以搜尋僅包含影片嵌入或以「AUDIO_VIDEO_COMBINED」嵌入模式建立之嵌入的儲存庫。

          • "DOCUMENT_RETRIEVAL" - 建立最佳化嵌入,以搜尋僅包含以「DOCUMENT_IMAGE」detailLevel 建立之文件影像嵌入的儲存庫。

          • "AUDIO_RETRIEVAL" - 建立最佳化嵌入,以搜尋僅包含音訊嵌入的儲存庫。

          • "GENERIC_RETRIEVAL" - 建立最佳化嵌入,以搜尋包含混合模態嵌入的儲存庫。

        • 範例:在使用者使用文字查詢來擷取影像的影像搜尋應用程式中,在根據影像建立嵌入索引時使用 embeddingPurpose = generic_index,並在建立用於擷取影像之查詢的嵌入時使用 embeddingPurpose = image_retrieval

      • "CLASSIFICATION" - 建立最佳化嵌入以執行分類。

      • "CLUSTERING" - 建立最佳化嵌入以用於叢集。

    • embeddingDimension (選用) - 要產生的向量大小。

      • 類型:int

      • 允許的值:256 | 384 | 1024 | 3072

      • 預設:3072

    • text (選用) - 代表文字內容。必須存在且僅存在文字、影像、影片、音訊中的一個。

      • truncationMode (必填) - 指定在詞元化的文字版本超過模型支援的數量上限時,要截斷哪些部分的文字。

        • 類型:字串

        • 允許的值:

          • "START" - 必要時從文字開頭省略字元。

          • "END" - 必要時從文字結尾省略字元。

          • "NONE" - 如果文字長度超過模型的詞元上限,則失敗。

      • value (選用;必須提供值或來源) - 要為其建立嵌入的文字值。

        • 類型:字串

        • 最大長度:8192 個字元

      • source (選用;必須提供值或來源) - 參考存放在 S3 中的文字檔案。請注意,SourceObject 的位元組選項不適用於文字輸入。若要將文字內嵌作為請求的一部分傳遞,請改用值參數。

        • 類型:SourceObject (請參閱「通用物件」一節)

    • image (選用) - 代表影像內容。必須存在且僅存在文字、影像、影片、音訊中的一個。

      • detailLevel (選用) - 規定處理影像時使用的解析度:「STANDARD_IMAGE」使用較低解析度,「DOCUMENT_IMAGE」使用較高解析度以更妥善地解譯文字。

        • 類型:字串

        • 允許的值:"STANDARD_IMAGE" | "DOCUMENT_IMAGE"

        • 預設:"STANDARD_IMAGE"

      • format (必填)

        • 類型:字串

        • 允許的值:"png" | "jpeg" | "gif" | "webp"

      • source (必填) - 影像內容來源。

        • 類型:SourceObject (請參閱「通用物件」一節)

    • audio (選用) - 代表音訊內容。必須存在且僅存在文字、影像、影片、音訊中的一個。

      • format (必填)

        • 類型:字串

        • 允許的值:"mp3" | "wav" | "ogg"

      • source (必填) - 音訊內容來源。

        • 類型:SourceObject (請參閱「通用物件」一節)

        • 音訊持續時間上限:30 秒

    • video (選用) - 代表影片內容。必須存在且僅存在文字、影像、影片、音訊中的一個。

      • format (必填)

        • 類型:字串

        • 允許的值:"mp4" | "mov" | "mkv" | "webm" | "flv" | "mpeg" | "mpg" | "wmv" | "3gp"

      • source (必填) - 影片內容來源。

        • 類型:SourceObject (請參閱「通用物件」一節)

        • 影片持續時間上限:30 秒

      • embeddingMode (必填)

        • 類型:字串

        • 值:"AUDIO_VIDEO_COMBINED" | "AUDIO_VIDEO_SEPARATE"

          • "AUDIO_VIDEO_COMBINED" - 會產生結合音訊和視覺內容的單一嵌入。

          • "AUDIO_VIDEO_SEPARATE" - 會產生兩個嵌入,一個用於音訊內容,另一個用於視覺內容。

InvokeModel 回應主體

InvokeModel 傳回成功結果時,回應的主體將具有下列結構:

{ "embeddings": [ { "embeddingType": "TEXT" | "IMAGE" | "VIDEO" | "AUDIO" | "AUDIO_VIDEO_COMBINED", "embedding": number[], "truncatedCharLength": int // Only included if text input was truncated } ] }

下列清單包含回應的所有參數:

  • embeddings (必填) - 對於大多數請求,此陣列將包含單一嵌入。對於選取「AUDIO_VIDEO_SEPARATE」embeddingMode 的影片請求,此陣列將包含兩個嵌入 - 一個嵌入用於影片內容,另一個嵌入用於音訊內容。

    • 類型:具有下列屬性的嵌入陣列

      • embeddingType (必填) - 報告已建立的嵌入類型。

        • 類型:字串

        • 允許的值:"TEXT" | "IMAGE" | "VIDEO" | "AUDIO" | "AUDIO_VIDEO_COMBINED"

      • embedding (必填) - 嵌入向量。

        • 類型:數字[]

      • truncatedCharLength (選用) - 僅適用於文字嵌入請求。當輸入文字的詞元化版本超過模型的限制時傳回。值表示在產生嵌入之前截斷文字的字元 (該字元之後的文字被截斷)。

        • 類型:int

完成非同步結構描述

您可以使用 Amazon Bedrock 執行時期 API 函數 StartAsyncInvokeGetAsyncInvokeListAsyncInvokes 以非同步方式產生嵌入。如果您想要使用 Nova Embeddings 來為長內容分段,例如較長文字段落或超過 30 秒的影片和音訊,則必須使用非同步 API。

呼叫 StartAsyncInvoke 時,必須提供 modelIdoutputDataConfigmodelInput 參數。

response = bedrock_runtime.start_async_invoke( modelId="amazon.nova-2-multimodal-embeddings-v1:0", outputDataConfig=Data Config, modelInput=Model Input )

outputDataConfig 指定您要儲存所產生輸出的 S3 儲存貯體。其結構如下:

{ "s3OutputDataConfig": { "s3Uri": "s3://your-s3-bucket" } }

s3Uri 是目的地儲存貯體的 S3 URI。如需其他選用參數,請參閱 StartAsyncInvoke 説明文件。

下列結構用於 modelInput 參數。

{ "schemaVersion": "nova-multimodal-embed-v1", "taskType": "SEGMENTED_EMBEDDING", "segmentedEmbeddingParams": { "embeddingPurpose": "GENERIC_INDEX" | "GENERIC_RETRIEVAL" | "TEXT_RETRIEVAL" | "IMAGE_RETRIEVAL" | "VIDEO_RETRIEVAL" | "DOCUMENT_RETRIEVAL" | "AUDIO_RETRIEVAL" | "CLASSIFICATION" | "CLUSTERING", "embeddingDimension": 256 | 384 | 1024 | 3072, "text": { "truncationMode": "START" | "END" | "NONE", "value": string, "source": { "s3Location": { "uri": "s3://Your S3 Object" } }, "segmentationConfig": { "maxLengthChars": int } }, "image": { "format": "png" | "jpeg" | "gif" | "webp", "source": SourceObject, "detailLevel": "STANDARD_IMAGE" | "DOCUMENT_IMAGE" }, "audio": { "format": "mp3" | "wav" | "ogg", "source": SourceObject, "segmentationConfig": { "durationSeconds": int } }, "video": { "format": "mp4" | "mov" | "mkv" | "webm" | "flv" | "mpeg" | "mpg" | "wmv" | "3gp", "source": SourceObject, "embeddingMode": "AUDIO_VIDEO_COMBINED" | "AUDIO_VIDEO_SEPARATE", "segmentationConfig": { "durationSeconds": int } } } }

下列清單包含請求的所有參數:

  • schemaVersion (選用) - 多模態嵌入模型請求的結構描述版本

    • 類型:字串

    • 允許的值:"nova-multimodal-embed-v1"

    • 預設:"nova-multimodal-embed-v1"

  • taskType (必填) - 指定要在輸入內容上執行的嵌入作業類型。single_embedding 指每個模型輸入產生一個嵌入。segmented_embedding 指先按使用者規格為模型輸入分段,然後為每個區段產生單一嵌入。

    • 類型:字串

    • 允許的值:非同步呼叫必須是「SEGMENTED_EMBEDDING」。

  • segmentedEmbeddingParams (必填)

    • embeddingPurpose (必填) - Nova 多模態嵌入可讓您根據預期的應用程式最佳化嵌入。範例包括 MM-RAG、用於影像和影片搜尋的數位資產管理、多模態內容的相似性比較,或用於智慧型文件處理的文件分類。 embeddingPurpose 可讓您指定嵌入使用案例。根據下面的使用案例選取正確的值。

      • 搜尋和擷取:RAG 和搜尋等嵌入使用案例涉及兩個主要步驟:首先,透過為內容產生嵌入來建立索引,然後在搜尋期間從索引擷取最相關的內容。使用搜尋和擷取使用案例時,請使用下列值:

        • 編製索引:

          • "GENERIC_INDEX" - 建立最佳化嵌入,以用作向量資料存放區中的索引。無論您要編製索引的模態為何,都應該使用此值。

        • 搜尋/擷取:根據您所擷取的內容類型最佳化嵌入:

          • "TEXT_RETRIEVAL" - 建立最佳化嵌入,以搜尋僅包含文字嵌入的儲存庫。

          • "IMAGE_RETRIEVAL" - 建立最佳化嵌入,以搜尋僅包含以「STANDARD_IMAGE」detailLevel 建立之影像嵌入的儲存庫。

          • "VIDEO_RETRIEVAL" - 建立最佳化嵌入,以搜尋僅包含影片嵌入或以「AUDIO_VIDEO_COMBINED」嵌入模式建立之嵌入的儲存庫。

          • "DOCUMENT_RETRIEVAL" - 建立最佳化嵌入,以搜尋僅包含以「DOCUMENT_IMAGE」detailLevel 建立之文件影像嵌入的儲存庫。

          • "AUDIO_RETRIEVAL" - 建立最佳化嵌入,以搜尋僅包含音訊嵌入的儲存庫。

          • "GENERIC_RETRIEVAL" - 建立最佳化嵌入,以搜尋包含混合模態嵌入的儲存庫。

        • 範例:在使用者使用文字查詢來擷取影像的影像搜尋應用程式中,在根據影像建立嵌入索引時使用 embeddingPurpose = generic_index,並在建立用於擷取影像之查詢的嵌入時使用 embeddingPurpose = image_retrieval

      • "CLASSIFICATION" - 建立最佳化嵌入以執行分類。

      • "CLUSTERING" - 建立最佳化嵌入以用於叢集。

    • embeddingDimension (選用) - 要產生的向量大小。

      • 類型:int

      • 允許的值:256 | 384 | 1024 | 3072

      • 預設:3072

    • text (選用) - 代表文字內容。必須存在且僅存在文字、影像、影片、音訊中的一個。

      • truncationMode (必填) - 指定在詞元化的文字版本超過模型支援的數量上限時,要截斷哪些部分的文字。

        • 類型:字串

        • 允許的值:

          • "START" - 必要時從文字開頭省略字元。

          • "END" - 必要時從文字結尾省略字元。

          • "NONE" - 如果文字長度超過模型的詞元上限,則失敗。

      • value (選用;必須提供值或來源) - 要為其建立嵌入的文字值。

        • 類型:字串

        • 最大長度:8192 個字元

      • source (選用;必須提供值或來源) - 參考存放在 S3 中的文字檔案。請注意,SourceObject 的位元組選項不適用於文字輸入。若要將文字內嵌作為請求的一部分傳遞,請改用值參數。

      • segmentationConfig (必填) - 控制文字內容應如何分割成多個嵌入。

        • maxLengthChars (選用) - 每個區段允許的長度上限。模型會嘗試僅在字邊界進行分割。

          • 類型:int

          • 有效範圍:800 到 50,000

          • 預設:32,000

    • image (選用) - 代表影像內容。必須存在且僅存在文字、影像、影片、音訊中的一個。

      • format (必填)

        • 類型:字串

        • 允許的值:"png" | "jpeg" | "gif" | "webp"

      • source (必填) - 影像內容來源。

        • 類型:SourceObject (請參閱「通用物件」一節)

      • detailLevel (選用) - 規定處理影像時使用的解析度:「STANDARD_IMAGE」使用較低解析度,「DOCUMENT_IMAGE」使用較高解析度以更妥善地解譯文字。

        • 類型:字串

        • 允許的值:"STANDARD_IMAGE" | "DOCUMENT_IMAGE"

        • 預設:"STANDARD_IMAGE"

    • audio (選用) - 代表音訊內容。必須存在且僅存在文字、影像、影片、音訊中的一個。

      • format (必填)

        • 類型:字串

        • 允許的值:"mp3" | "wav" | "ogg"

      • source (必填) - 音訊內容來源。

        • 類型:SourceObject (請參閱「通用物件」一節)

      • segmentationConfig (必填) - 控制音訊內容應如何分割成多個嵌入。

        • durationSeconds (選用) - 用於每個區段的音訊持續時間上限 (以秒為單位)。

          • 類型:int

          • 有效範圍:1 到 30

          • 預設:5

    • video (選用) - 代表影片內容。必須存在且僅存在文字、影像、影片、音訊中的一個。

      • format (必填)

        • 類型:字串

        • 允許的值:"mp4" | "mov" | "mkv" | "webm" | "flv" | "mpeg" | "mpg" | "wmv" | "3gp"

      • source (必填) - 影片內容來源。

        • 類型:SourceObject (請參閱「通用物件」一節)

      • embeddingMode (必填)

        • 類型:字串

        • 值:"AUDIO_VIDEO_COMBINED" | "AUDIO_VIDEO_SEPARATE"

          • "AUDIO_VIDEO_COMBINED" - 會為每個區段產生結合音訊和視覺內容的單一嵌入。

          • "AUDIO_VIDEO_SEPARATE" - 會為每個區段產生兩個嵌入,一個用於音訊內容,另一個用於影片內容。

      • segmentationConfig (必填) - 控制影片內容應如何分割成多個嵌入。

        • durationSeconds (選用) - 用於每個區段的影片持續時間上限 (以秒為單位)。

          • 類型:int

          • 有效範圍:1 到 30

          • 預設:5

StartAsyncInvoke 回應

呼叫 StartAsyncInvoke 的回應將具有以下結構。invocationArn 可以使用 GetAsyncInvoke 函數來查詢非同步任務的狀態。

{ "invocationArn": "arn:aws:bedrock:us-east-1:xxxxxxxxxxxx:async-invoke/lvmxrnjf5mo3", }

非同步輸出

當非同步嵌入產生完成時,輸出成品會寫入您指定為輸出目的地的 S3 儲存貯體。這些檔案將會有以下結構:

amzn-s3-demo-bucket/ job-id/ segmented-embedding-result.json embedding-audio.jsonl embedding-image.json embedding-text.jsonl embedding-video.jsonl manifest.json

segmented-embedding-result.json 將包含整體任務結果以及對應 jsonl 檔案的參考,該檔案中包含每個模態的實際嵌入。以下是檔案的截斷範例:

{ "sourceFileUri": string, "embeddingDimension": 256 | 384 | 1024 | 3072, "embeddingResults": [ { "embeddingType": "TEXT" | "IMAGE" | "VIDEO" | "AUDIO" | "AUDIO_VIDEO_COMBINED", "status": "SUCCESS" | "FAILURE" | "PARTIAL_SUCCESS", "failureReason": string, // Granular error codes "message": string, // Human-readbale failure message "outputFileUri": string // S3 URI to a "embedding-modality.jsonl" file } ... ] }

embedding-modality.json 將為 jsonl 檔案,其中包含每個模態的嵌入輸出。jsonl 檔案中的每一行都會遵循下列結構描述:

{ "embedding": number[], // The generated embedding vector "segmentMetadata": { "segmentIndex": number, "segmentStartCharPosition": number, // Included for text only "segmentEndCharPosition": number, // Included for text only "truncatedCharLength": number, // Included only when text gets truncated "segmentStartSeconds": number, // Included for audio/video only "segmentEndSeconds": number // Included for audio/video only }, "status": "SUCCESS" | "FAILURE", "failureReason": string, // Granular error codes "message": string // Human-readable failure message }

下列清單包含回應的所有參數。對於文字字元或音訊/影片時間,所有起始和結尾時間都以零為基礎。此外,所有結尾文字位置或音訊/影片時間值均包含在內。

  • embedding (必填) — 嵌入向量。

    • 類型:數字

  • segmentMetadata — 區段的中繼資料。

    • segmentIndex — 請求中所提供之陣列內的區段索引。

    • segmentStartCharPosition — 僅適用於文字。區段中嵌入內容的起始字元 (包含) 位置。

    • segmentEndCharPosition — 僅適用於文字。區段中嵌入內容的結尾字元 (不含) 位置。

    • truncatedCharLength (選用) — 當輸入文字的詞元化版本超過模型的限制時傳回。值表示在產生嵌入之前截斷文字的字元 (該字元之後的文字被截斷)。

      • 類型:整數

    • segmentStartSeconds — 僅適用於音訊/影片。區段中嵌入內容的起始時間位置。

    • segmentEndSeconds — 僅適用於音訊/影片。區段中嵌入內容的結尾時間位置。

  • status — 區段的狀態。

  • failureReason — 區段失敗的詳細原因。

    • RAI_VIOLATION_INPUT_TEXT_DEFLECTION — 輸入文字違反 RAI 政策。

    • RAI_VIOLATION_INPUT_IMAGE_DEFLECTION — 輸入影像違反 RAI 政策。

    • INVALID_CONTENT — 輸入無效。

    • RATE_LIMIT_EXCEEDED — 由於服務無法使用,嵌入請求會受到限流。

    • INTERNAL_SERVER_EXCEPTION — 發生錯誤。

  • message — 相關失敗訊息。

Nova Embeddings 的檔案限制

同步作業可以同時接受 S3 輸入和內嵌區塊。非同步作業只能接受 S3 輸入。

以非同步方式產生嵌入時,您需要確保您的檔案分成適當數量的區段。對於文字嵌入,區段數量不能超過 1900 個。對於音訊和影片嵌入,區段數量不能超過 1434 個。

同步輸入大小限制

檔案類型

大小限制

(內嵌) 所有檔案類型

25 MB

(S3) 文字

1 MB;50,000 個字元

(S3) 影像

50 MB

(S3) 影片

30 秒;100 MB

(S3) 音訊

30 秒;100 MB

注意

25 MB 內嵌檔案限制是在 Base64 嵌入之後。這會導致檔案大小膨脹約 33%

非同步輸入大小限制

檔案類型

大小限制

(S3) 文字

634 MB

(S3) 影像

50 MB

(S3) 影片

2 GB;2 小時

(S3) 音訊

1 GB;2 小時

輸入檔案類型

模態

檔案類型

影像格式

PNG、JPEG、WEBP、GIF

音訊格式

MP3、WAV、OGG

影片格式

MP4、MOV、MKV、WEBM、FLV、MPEG、MPG、WMV、3GP