API를 사용하여 단일 프롬프트로 모델 간접 호출 - Amazon Bedrock

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

API를 사용하여 단일 프롬프트로 모델 간접 호출

InvokeModelor InvokeModelWithResponseStream요청을 전송하여 API를 통해 모델에 대한 추론을 실행합니다. contentTypeaccept 필드에 요청 및 응답 본문의 미디어 유형을 지정할 수 있습니다. 값을 지정하지 않은 경우 두 필드의 기본값은 application/json입니다.

스트리밍은 모델을 제외한 AI21 Labs Jurassic-2 모든 텍스트 출력 모델에서 지원됩니다. 모델이 스트리밍을 지원하는지 확인하려면 GetFoundationModelor ListFoundationModels요청을 보내고 responseStreamingSupported 필드의 값을 확인하십시오.

사용하는 모델에 따라 다음 필드를 지정합니다.

  1. modelId - 모델 ID 또는 해당 ARN 중 하나를 사용합니다. modelIdOR을 찾는 방법은 사용하는 모델 유형에 modelArn 따라 달라집니다.

    • 기본 모델 - 다음 중 하나를 수행합니다.

    • 사용자 지정 모델 - 사용자 지정 모델의 프로비저닝된 처리량을 구매하고(자세한 내용은 Amazon Bedrock의 프로비저닝된 처리량 참조) 프로비저닝 모델의 모델 ID 또는 ARN을 찾습니다.

    • 프로비저닝된 모델 - 기본 또는 사용자 지정 모델에 프로비저닝된 처리량을 생성한 경우 다음 중 하나를 수행합니다.

      • ListProvisionedModelThroughputs요청을 보내고 provisionedModelArn 응답에 사용할 모델을 찾으세요.

      • 콘솔의 프로비저닝된 처리량에서 모델을 선택하고 모델 세부 정보 섹션에서 모델 ARN을 찾으십시오.

  2. body - 각 기본 모델에는 body 필드에 설정된 자체 추론 파라미터가 있습니다. 사용자 지정 또는 프로비저닝된 모델의 추론 파라미터는 모델을 만든 기본 모델에 따라 달라집니다. 자세한 정보는 파운데이션 모델의 추론 파라미터을 참조하세요.

모델 코드 간접 호출 예제

다음 예제는 API를 사용하여 추론을 실행하는 방법을 보여줍니다. InvokeModel 다양한 모델의 예제를 보려면 원하는 모델(파운데이션 모델의 추론 파라미터)의 추론 파라미터 참조를 확인합니다.

CLI

다음 예제는 개 두 마리의 프롬프트 스토리에 대해 생성된 invoke-model-output응답을.txt라는 파일에 저장합니다.

aws bedrock-runtime invoke-model \ --model-id anthropic.claude-v2 \ --body '{"prompt": "\n\nHuman: story of two dogs\n\nAssistant:", "max_tokens_to_sample" : 300}' \ --cli-binary-format raw-in-base64-out \ invoke-model-output.txt
Python

다음 예제는 8학년 학생들에게 블랙홀을 설명하라는 프롬프트에 대해 생성된 응답을 반환합니다.

import boto3 import json brt = boto3.client(service_name='bedrock-runtime') body = json.dumps({ "prompt": "\n\nHuman: explain black holes to 8th graders\n\nAssistant:", "max_tokens_to_sample": 300, "temperature": 0.1, "top_p": 0.9, }) modelId = 'anthropic.claude-v2' accept = 'application/json' contentType = 'application/json' response = brt.invoke_model(body=body, modelId=modelId, accept=accept, contentType=contentType) response_body = json.loads(response.get('body').read()) # text print(response_body.get('completion'))

스트리밍 코드가 포함된 모델 간접 호출 예제

참고

AWS CLI 는 스트리밍을 지원하지 않습니다.

다음 예제는 화성에서 살기 위한 에세이를 1000단어로 작성하라는 프롬프트를 사용하여 InvokeModelWithResponseStreamAPI를 사용하여 Python으로 스트리밍 텍스트를 생성하는 방법을 보여줍니다.

import boto3 import json brt = boto3.client(service_name='bedrock-runtime') body = json.dumps({ 'prompt': '\n\nHuman: write an essay for living on mars in 1000 words\n\nAssistant:', 'max_tokens_to_sample': 4000 }) response = brt.invoke_model_with_response_stream( modelId='anthropic.claude-v2', body=body ) stream = response.get('body') if stream: for event in stream: chunk = event.get('chunk') if chunk: print(json.loads(chunk.get('bytes').decode()))