InvokeModel을 사용하여 단일 프롬프트 제출 - Amazon Bedrock

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

InvokeModel을 사용하여 단일 프롬프트 제출

InvokeModel 또는 InvokeModelWithResponseStream 요청을 전송하여 API를 통해 모델에 대한 추론을 실행합니다. 모델이 스트리밍을 지원하는지 확인하려면 GetFoundationModel 또는 ListFoundationModels 요청을 보내고 responseStreamingSupported 필드의 값을 확인합니다.

필수 필드는 다음과 같습니다.

필드 사용 사례
modelId 사용할 프롬프트 관리의 모델, 추론 프로필 또는 프롬프트를 지정합니다. 이 값을 찾는 방법을 알아보려면 API를 사용하여 프롬프트 제출 및 응답 생성 섹션을 참조하세요.
본문 모델의 추론 파라미터를 지정합니다. 여러 모델의 추론 파라미터를 확인하려면 파운데이션 모델의 추론 요청 파라미터 및 응답 필드 섹션을 참조하세요. modelId 필드의 프롬프트 관리에서 프롬프트를 지정하는 경우이 필드를 생략합니다(포함하면 무시됨).

다음 필드는 선택 사항입니다.

필드 사용 사례
accept 요청 본문의 미디어 유형을 지정합니다. 자세한 내용은 Swagger 웹사이트Media Types를 참조하세요.
contentType 응답 본문의 미디어 유형을 지정합니다. 자세한 내용은 Swagger 웹사이트Media Types를 참조하세요.
explicitPromptCaching 프롬프트 캐싱의 활성화 또는 비활성화 여부를 지정합니다. 자세한 내용은 더 빠른 모델 추론을 위한 프롬프트 캐싱 단원을 참조하십시오.
guardrailIdentifier 프롬프트 및 응답에 적용할 가드레일을 지정합니다. 자세한 내용은 가드레일 테스트 섹션을 참조하세요.
guardrailVersion 프롬프트 및 응답에 적용할 가드레일을 지정합니다. 자세한 내용은 가드레일 테스트 섹션을 참조하세요.
trace 지정한 가드레일에 대한 추적을 반환할지 여부를 지정합니다. 자세한 내용은 가드레일 테스트 섹션을 참조하세요.

모델 코드 간접 호출 예제

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

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 는 스트리밍을 지원하지 않습니다.

다음 예제는 화성에서 살기에 대한 1,000단어 에세이 쓰기 프롬프트를 사용하여 Python으로 스트리밍 텍스트를 생성하는 InvokeModelWithResponseStream API 사용 방법을 보여 줍니다.

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()))