CohereEmbedmodel - Amazon Bedrock

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

CohereEmbedmodel

Anda membuat permintaan inferensi ke Embed model dengan InvokeModelAnda memerlukan ID model untuk model yang ingin Anda gunakan. Untuk mendapatkan ID model, lihatID model Amazon Bedrock.

catatan

Amazon Bedrock tidak mendukung respons streaming dari Cohere Embed model.

Permintaan dan Tanggapan

Request

CohereEmbedModel memiliki parameter inferensi berikut.

{ "texts":[string], "input_type": "search_document|search_query|classification|clustering", "truncate": "NONE|START|END" }

Berikut ini adalah parameter yang diperlukan.

  • teks — (Diperlukan) Sebuah array string untuk model untuk disematkan. Untuk kinerja optimal, kami sarankan untuk 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

    128 teks

    Karakter

    Minimum Maksimum

    0 karakter

    2048 karakter

Berikut ini adalah parameter opsional.

  • 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 yang disematkan 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.

  • 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.

Untuk informasi lebih lanjut, lihat https://docs.cohere.com/reference/embed dalam Cohere dokumentasi.

Response

bodyTanggapan dari panggilan ke InvokeModel adalah sebagai berikut:

{ "embeddings": [ [ <array of 1024 floats> ] ], "id": string, "response_type" : "embeddings_floats, "texts": [string] }

bodyTanggapan memiliki bidang-bidang berikut:

  • id — Pengenal untuk respons.

  • response_type — Jenis respon. 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 lebih lanjut, lihat https://docs.cohere.com/reference/embed.

Contoh kode

Contoh ini menunjukkan cara memanggil CohereEmbed 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" try: body = json.dumps({ "texts": [ text1, text2], "input_type": input_type} ) 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()