Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Anda membuat permintaan inferensi ke sebuah Embed model dengan InvokeModelAnda memerlukan ID model untuk model yang ingin Anda gunakan. Untuk mendapatkan ID model, lihatModel pondasi yang didukung di Amazon Bedrock.
catatan
Amazon Bedrock tidak mendukung respons streaming dari Cohere Embed model.
Permintaan dan Tanggapan
Bagian Cohere Embed model memiliki parameter inferensi berikut.
{
"texts":[string],
"input_type": "search_document|search_query|classification|clustering",
"truncate": "NONE|START|END",
"embedding_types": embedding_types
}
Berikut ini adalah parameter yang diperlukan.
-
text — Sebuah array string untuk model untuk embed. Untuk kinerja optimal, kami sarankan mengurangi panjang setiap teks menjadi kurang dari 512 token. 1 token adalah sekitar 4 karakter.
Berikut ini adalah teks per panggilan dan batas karakter.
Teks per panggilan
Minimum Maksimum 0 teks
96 teks
Karakter
Minimum Maksimum 0 karakter
2048 karakter
-
input_type — Tambahkan token khusus untuk membedakan setiap jenis satu sama lain. Anda tidak boleh mencampur jenis yang berbeda bersama-sama, kecuali saat mencampur jenis untuk pencarian dan pengambilan. Dalam hal ini, sematkan korpus Anda dengan
search_document
tipe dan kueri tertanam dengan tipe tipe.search_query
-
search_document
— Dalam kasus penggunaan pencarian, gunakansearch_document
saat Anda menyandikan dokumen untuk penyematan yang Anda simpan dalam database vektor. -
search_query
— Gunakansearch_query
saat menanyakan DB vektor Anda untuk menemukan dokumen yang relevan. -
classification
— Gunakanclassification
saat menggunakan embeddings sebagai masukan ke pengklasifikasi teks. -
clustering
— Gunakanclustering
untuk mengelompokkan embeddings.
-
Berikut ini adalah parameter opsional:
-
truncate — Menentukan bagaimana API menangani input lebih lama dari panjang token maksimum. Gunakan salah satu langkah berikut:
-
NONE
— (Default) Mengembalikan kesalahan ketika input melebihi panjang token masukan maksimum. -
START
— Buang awal input. -
END
— Buang akhir input.
Jika Anda menentukan
START
atauEND
, model membuang input hingga input yang tersisa persis dengan panjang token input maksimum untuk model. -
-
embedding_types - Menentukan jenis embeddings Anda ingin telah kembali. Opsional dan default adalah
None
, yang mengembalikan jenisEmbed Floats
respons. Bisa satu atau lebih dari jenis berikut:-
float
— Gunakan nilai ini untuk mengembalikan embeddings float default. -
int8
— Gunakan nilai ini untuk mengembalikan penyematan int8 yang ditandatangani. -
uint8
— Gunakan nilai ini untuk mengembalikan penyematan int8 yang tidak ditandatangani. -
binary
— Gunakan nilai ini untuk mengembalikan penyematan biner yang ditandatangani. -
ubinary
— Gunakan nilai ini untuk mengembalikan embeddings biner yang tidak ditandatangani.
-
Untuk informasi selengkapnya, lihat https://docs.cohere.com/reference/menyematkan
Contoh kode
Contoh ini menunjukkan cara memanggil Cohere Embed Englishmodel.
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
"""
Shows how to generate text embeddings using the Cohere Embed English model.
"""
import json
import logging
import boto3
from botocore.exceptions import ClientError
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
def generate_text_embeddings(model_id, body):
"""
Generate text embedding by using the Cohere Embed model.
Args:
model_id (str): The model ID to use.
body (str) : The reqest body to use.
Returns:
dict: The response from the model.
"""
logger.info(
"Generating text emdeddings with the Cohere Embed model %s", model_id)
accept = '*/*'
content_type = 'application/json'
bedrock = boto3.client(service_name='bedrock-runtime')
response = bedrock.invoke_model(
body=body,
modelId=model_id,
accept=accept,
contentType=content_type
)
logger.info("Successfully generated text with Cohere model %s", model_id)
return response
def main():
"""
Entrypoint for Cohere Embed example.
"""
logging.basicConfig(level=logging.INFO,
format="%(levelname)s: %(message)s")
model_id = 'cohere.embed-english-v3'
text1 = "hello world"
text2 = "this is a test"
input_type = "search_document"
embedding_types = ["int8", "float"]
try:
body = json.dumps({
"texts": [
text1,
text2],
"input_type": input_type,
"embedding_types": embedding_types}
)
response = generate_text_embeddings(model_id=model_id,
body=body)
response_body = json.loads(response.get('body').read())
print(f"ID: {response_body.get('id')}")
print(f"Response type: {response_body.get('response_type')}")
print("Embeddings")
for i, embedding in enumerate(response_body.get('embeddings')):
print(f"\tEmbedding {i}")
print(*embedding)
print("Texts")
for i, text in enumerate(response_body.get('texts')):
print(f"\tText {i}: {text}")
except ClientError as err:
message = err.response["Error"]["Message"]
logger.error("A client error occurred: %s", message)
print("A client error occured: " +
format(message))
else:
print(
f"Finished generating text embeddings with Cohere model {model_id}.")
if __name__ == "__main__":
main()