完成嵌入請求和回應結構描述
完成同步結構描述
{ "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 函數 StartAsyncInvoke、GetAsyncInvoke 和 ListAsyncInvokes 以非同步方式產生嵌入。如果您想要使用 Nova Embeddings 來為長內容分段,例如較長文字段落或超過 30 秒的影片和音訊,則必須使用非同步 API。
呼叫 StartAsyncInvoke 時,必須提供 modelId、outputDataConfig 和 modelInput 參數。
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- 將為 jsonl 檔案,其中包含每個模態的嵌入輸出。jsonl 檔案中的每一行都會遵循下列結構描述:modality.json
{ "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 |