CohereCommand R및 Command R+ 모델 - Amazon Bedrock

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

CohereCommand R및 Command R+ 모델

InvokeModel또는 InvokeModelWithResponseStream (스트리밍) 을 사용하여 Cohere Command R 및 Cohere Command R+ 모델에 추론 요청을 합니다. 사용하려는 모델의 모델 ID가 필요합니다. 모델 ID를 가져오려면 을 참조하십시오아마존 베드락 모델 ID.

작은 정보

대화형 애플리케이션의 경우 Converse API를 사용하는 것이 좋습니다. Converse API는 메시지를 지원하는 모든 모델에서 작동하는 통합된 매개변수 세트를 제공합니다. 자세한 정보는 컨버스 API 사용하기을 참조하세요.

요청 및 응답

Request

CohereCommand모델에는 다음과 같은 추론 파라미터가 있습니다.

{ "message": string, "chat_history": [ { "role":"USER or CHATBOT", "message": string } ], "documents": [ {"title": string, "snippet": string}, ], "search_queries_only" : boolean, "preamble" : string, "max_tokens": int, "temperature": float, "p": float, "k": float, "prompt_truncation" : string, "frequency_penalty" : float, "presence_penalty" : float, "seed" : int, "return_prompt" : boolean, "tools" : [ { "name": string, "description": string, "parameter_definitions": { "parameter name": { "description": string, "type": string, "required": boolean } } } ], "tool_results" : [ { "call": { "name": string, "parameters": { "parameter name": string } }, "outputs": [ { "text": string } ] } ], "stop_sequences": [string], "raw_prompting" : boolean }

다음은 필수 파라미터입니다.

  • message — (필수) 모델이 응답할 텍스트 입력입니다.

다음 파라미터는 선택 사항입니다.

  • chat_history — 사용자와 모델 간에 주고받은 이전 메시지 목록으로, 사용자 메시지에 응답하기 위한 대화형 컨텍스트를 모델에 제공하기 위한 것입니다.

    다음은 필수 필드입니다.

    • role— 메시지의 역할. 유효한 값은 USER 또는CHATBOT. 토큰입니다.

    • message— 메시지의 텍스트 콘텐츠.

    다음은 해당 필드의 JSON의 chat_history 예시입니다.

    "chat_history": [ {"role": "USER", "message": "Who discovered gravity?"}, {"role": "CHATBOT", "message": "The man who is widely credited with discovering gravity is Sir Isaac Newton"} ]
  • 문서 — 모델이 더 정확한 답변을 생성하기 위해 인용할 수 있는 텍스트 목록입니다. 각 문서는 문자열 사전입니다. 결과 생성에는 이러한 문서 중 일부를 참조하는 인용이 포함됩니다. 사전에 있는 문자열의 총 단어 수는 300단어 미만으로 유지하는 것이 좋습니다. 일부 키-값 쌍이 모델에 표시되지 않도록 _excludes 필드 (문자열 배열) 를 선택적으로 제공할 수 있습니다. 자세한 내용은 설명서의 문서 모드 안내서를 참조하십시오. Cohere

    다음은 해당 documents 필드의 JSON 예제입니다.

    "documents": [ {"title": "Tall penguins", "snippet": "Emperor penguins are the tallest."}, {"title": "Penguin habitats", "snippet": "Emperor penguins only live in Antarctica."} ]
  • 검색_쿼리_전용 — 기본값은 입니다. falsetrue 경우 응답에 생성된 검색 쿼리 목록만 포함되고 검색은 수행되지 않으며 모델에서 사용자의 응답에 대한 응답도 생성되지 않습니다. message

  • 프리앰블 — 검색 쿼리 생성을 위한 기본 프리앰블을 재정의합니다. 도구 사용 세대에 영향을 주지 않습니다.

  • max_token — 모델이 응답의 일부로 생성해야 하는 최대 토큰 수입니다. 값을 낮게 설정하면 생성이 완료되지 않을 수 있다는 점에 유의하세요. 또는 필드와 함께 사용할 경우 설정이 불완전하거나 생성되지 max_tokens 않을 toolsdocuments 있습니다.

  • 온도 - 낮은 값을 사용하면 반응의 임의성을 줄일 수 있습니다. 파라미터 값을 높이면 임의성을 더욱 극대화할 수 있습니다. p

    기본값 최소 Maximum

    0.3

    0

    1

  • p — 상위 P. 가능성이 낮은 옵션을 무시하려면 낮은 값을 사용하십시오.

    기본값 최소 Maximum

    0.75

    0.01

    0.99

  • k — 상위 K. 모델이 다음 토큰을 생성할 때 사용하는 토큰 선택 개수를 지정합니다.

    기본값 최소 Maximum

    0

    0

    500

  • prompt t_truncation — 기본값은 입니다. OFF 프롬프트의 구성 방법을 지정합니다. 로 prompt_truncation 설정하면 모델의 컨텍스트 길이 제한에 맞는 프롬프트를 생성하기 위해 chat_historydocuments 의 일부 요소가 삭제됩니다. AUTO_PRESERVE_ORDER 이 과정에서 문서 순서와 채팅 기록이 보존됩니다. prompt_truncation`로 OFF 설정하면 요소가 삭제되지 않습니다.

  • 주파수_페널티 — 생성된 토큰의 반복성을 줄이는 데 사용됩니다. 값이 높을수록 이전에 제시한 토큰에 더 강한 페널티가 적용되며, 이는 프롬프트 또는 이전 세대에 이미 나타난 횟수에 비례합니다.

    기본값 최소 Maximum

    0

    0

    1

  • presence_penalties — 생성된 토큰의 반복성을 줄이는 데 사용됩니다. 이 페널티가 정확한 빈도와 상관없이 이미 등장한 모든 토큰에 동일하게 적용된다는 점을 제외하면 비슷합니다. frequency_penalty

    기본값 최소 Maximum

    0

    0

    1

  • 시드 — 지정된 경우 백엔드는 결정론적으로 토큰을 샘플링하기 위해 최선을 다합니다. 즉, 동일한 시드와 파라미터를 사용한 반복 요청에서도 동일한 결과가 반환되도록 백엔드가 최선을 다합니다. 하지만 결정론을 완전히 보장할 수는 없습니다.

  • return_prompt — 모델로 전송된 전체 프롬프트를 true 반환하도록 지정합니다. 기본 값은 false입니다. 응답에서는 필드에 프롬프트가 표시됩니다. prompt

  • 도구 — 모델이 텍스트 응답을 생성하기 전에 호출을 제안할 수 있는 사용 가능한 도구 (함수) 목록입니다. tools가 전달되면 (없이tool_results) 응답의 필드가 입력되고 "" 응답의 tool_calls 필드에는 필요한 도구 호출 목록이 채워집니다. text 호출할 필요가 없는 경우 tool_calls 배열은 비어 있게 됩니다.

    자세한 내용은 Cohere 설명서의 도구 사용을 참조하십시오.

    작은 정보

    도구 사용을 애플리케이션에 통합하려면 Converse API를 사용하는 것이 좋습니다. 자세한 정보는 도구 사용 (함수 호출)을 참조하세요.

    다음은 해당 필드의 JSON 예제입니다. tools

    [ { "name": "top_song", "description": "Get the most popular song played on a radio station.", "parameter_definitions": { "sign": { "description": "The call sign for the radio station for which you want the most popular song. Example calls signs are WZPZ and WKRP.", "type": "str", "required": true } } } ]

    자세한 내용은 설명서의 1단계 도구 사용 (함수 호출) 을 Cohere 참조하십시오.

  • tools_results — 이전 채팅 턴에서 모델이 추천한 도구를 호출한 결과 목록입니다. 결과는 텍스트 응답을 생성하는 데 사용되며 인용에 참조됩니다. 사용할 tool_results 때는 tools 반드시 전달해야 합니다. 각 tool_result 파일에는 호출 방법에 대한 정보와 사전 형식의 출력 목록이 들어 있습니다. Cohere의 독특하고 세분화된 인용 논리를 사용하려면 출력이 목록이어야 합니다. 예를 들어 출력이 한 항목인 경우에도 목록 안에 래핑해야 합니다. {"status": 200}

    자세한 내용은 Cohere 설명서의 도구 사용을 참조하십시오.

    다음은 해당 tools_results 필드의 JSON 예제입니다.

    [ { "call": { "name": "top_song", "parameters": { "sign": "WZPZ" } }, "outputs": [ { "song": "Elemental Hotel" } ] } ]
  • stop_sequence — 중지 시퀀스 목록입니다. 중지 시퀀스가 감지되면 모델은 추가 토큰 생성을 중단합니다.

  • raw_prompt — 사전 처리 없이 사용자를 모델로 보내려면 지정하고true, message 그렇지 않으면 false로 지정합니다.

Response

응답에는 다음과 같은 필드가 포함될 수 있습니다.

{ "response_id": string, "text": string, "generation_id": string, "citations": [ { "start": int, "end": int, "text": "string", "document_ids": [ "string" ] } ], "finish_reason": string, "tool_calls": [ { "name": string, "parameters": { "parameter name": string } } ], { "meta": { "api_version": { "version": string }, "billed_units": { "input_tokens": int, "output_tokens": int } } }
  • response_id — 채팅 완료를 위한 고유 식별자

  • text — 채팅 메시지 입력에 대한 모델의 응답입니다.

  • generation_id — Cohere 플랫폼에서 피드백 엔드포인트와 함께 사용되는 채팅 완료를 위한 고유 식별자입니다.

  • 인용 — 생성된 답변에 대한 인라인 인용 및 관련 메타데이터의 배열. 다음 필드를 포함합니다.

    • start — 인용이 시작되는 색인 (0부터 시작).

    • — 인용이 끝나는 색인 (0부터 시작).

    • 텍스트 — 인용과 관련된 텍스트입니다.

    • document_ids — 텍스트로 인용된 문서에 해당하는 문서 ID의 배열입니다.

  • prompt — 모델에 전송된 전체 프롬프트입니다. 이 return_prompt 필드를 반환할 필드를 지정하십시오.

  • finish_reason — 모델이 출력 생성을 중단한 이유. 다음 중 하나일 수 있습니다.

    • 완료 — 토큰 생성 종료에 도달했습니다. 이것이 최상의 성능을 발휘할 수 있는 완료 이유인지 확인하세요.

    • error_toxic — 콘텐츠 필터 때문에 생성을 완료할 수 없습니다.

    • error_limit — 모델의 컨텍스트 제한에 도달했기 때문에 생성을 완료할 수 없습니다.

    • 오류 — 오류로 인해 생성을 완료할 수 없습니다.

    • user_cancel — 사용자가 생성을 중지했기 때문에 생성을 완료할 수 없습니다.

    • max_token — 사용자가 요청에 max_tokens 제한을 지정했는데 이 한도에 도달했기 때문에 생성을 완료할 수 없습니다. 성능이 최상으로 나오지 않을 수 있습니다.

  • tool_calls — 호출에 적합한 도구 목록입니다. tools입력 필드를 지정한 경우에만 반환됩니다.

    자세한 내용은 Cohere 설명서의 도구 사용을 참조하십시오.

    작은 정보

    도구 사용을 애플리케이션에 통합하려면 Converse API를 사용하는 것이 좋습니다. 자세한 정보는 도구 사용 (함수 호출)을 참조하세요.

    다음은 해당 필드의 JSON 예제입니다. tool_calls

    [ { "name": "top_song", "parameters": { "sign": "WZPZ" } } ]
  • 메타 — API 사용 데이터 (스트리밍용으로만 존재).

    • api_version— API 버전. 버전은 version 필드에 있습니다.

    • billed_units— 청구 단위. 가능한 값은 다음과 같습니다.

      • input_tokens— 청구된 입력 토큰의 수.

      • output_tokens— 청구된 출력 토큰의 수.

코드 예제

이 예제는 CohereCommand R모델을 호출하는 방법을 보여줍니다.

# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 """ Shows how to use the Cohere Command R model. """ import json import logging import boto3 from botocore.exceptions import ClientError logger = logging.getLogger(__name__) logging.basicConfig(level=logging.INFO) def generate_text(model_id, body): """ Generate text using a Cohere Command R 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 with Cohere model %s", model_id) bedrock = boto3.client(service_name='bedrock-runtime') response = bedrock.invoke_model( body=body, modelId=model_id ) logger.info( "Successfully generated text with Cohere Command R model %s", model_id) return response def main(): """ Entrypoint for Cohere example. """ logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") model_id = 'cohere.command-r-v1:0' chat_history = [ {"role": "USER", "message": "What is an interesting new role in AI if I don't have an ML background?"}, {"role": "CHATBOT", "message": "You could explore being a prompt engineer!"} ] message = "What are some skills I should have?" try: body = json.dumps({ "message": message, "chat_history": chat_history, "max_tokens": 2000, "temperature": 0.6, "p": 0.5, "k": 250 }) response = generate_text(model_id=model_id, body=body) response_body = json.loads(response.get('body').read()) response_chat_history = response_body.get('chat_history') print('Chat history\n------------') for response_message in response_chat_history: if 'message' in response_message: print(f"Role: {response_message['role']}") print(f"Message: {response_message['message']}\n") print("Generated text\n--------------") print(f"Stop reason: {response_body['finish_reason']}") print(f"Response text: \n{response_body['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 with Cohere model {model_id}.") if __name__ == "__main__": main()