Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Cohere Embed model
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.
Amazon Bedrock tidak mendukung respons streaming dari Cohere Embed model.
Permintaan dan Tanggapan
- Request
-
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, gunakan search_document
saat Anda menyandikan dokumen untuk penyematan yang Anda simpan dalam database vektor.
-
search_query
— Gunakan search_query
saat menanyakan DB vektor Anda untuk menemukan dokumen yang relevan.
-
classification
— Gunakan classification
saat menggunakan embeddings sebagai masukan ke pengklasifikasi teks.
-
clustering
— Gunakan clustering
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:
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 adalahNone
, yang mengembalikan jenis Embed 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 di Cohere dokumentasi.
- Response
-
body
Tanggapan dari panggilan ke InvokeModel
adalah sebagai berikut:
{
"embeddings": [
[ <array of 1024 floats>
]
],
"id": string,
"response_type" : "embeddings_floats,
"texts": [string]
}
body
Tanggapan memiliki bidang-bidang berikut:
-
id — Pengenal untuk respons.
-
response_type - Jenis respons. Nilai ini selalu embeddings_floats
.
-
Embeddings — Sebuah array embeddings, di mana setiap embedding adalah array float dengan 1024 elemen. Panjang embeddings
array akan sama dengan panjang texts
array asli.
-
text — Sebuah array yang berisi entri teks yang embeddings dikembalikan.
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()