Step Functions를 사용하여 Amazon 베드락 모델을 호출하고 사용자 지정합니다. - AWS Step Functions

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

Step Functions를 사용하여 Amazon 베드락 모델을 호출하고 사용자 지정합니다.

Step Functions를 Amazon Bedrock과 통합하여 지정된 Amazon Bedrock 모델을 호출하고 모델을 사용자 지정하기 위한 미세 조정 작업을 생성할 수 있습니다. 이 페이지는 지원되는 Amazon Bedrock을 APIs 나열하고 모델 호출 결과를 추출하기 위한 예제 Task 상태를 제공합니다.

통합에 대해 자세히 알아보려면 AWS Step Functions의 서비스에 대해서는 및 을 참조하십시오 서비스 통합. Step API Functions에서 서비스에 파라미터 전달하기

작은 정보

다음과 통합되는 예제 워크플로를 배포하려면 Amazon Bedrock, 을 참조하십시오Amazon Bedrock을 사용하여 AI 프롬프트 체이닝을 수행하십시오..

Amazon Bedrock 서비스 통합 APIs

통합하려면 AWS Step Functions with Amazon Bedrock, 다음을 사용할 수 있습니다APIs. 이는 해당 항목과 APIs 유사합니다.Amazon Bedrock APIs, except InvokeModel에는 추가 요청 필드가 있습니다.

아마존 베드락 API - CreateModelCustomizationJob

기본 모델을 사용자 지정하기 위한 미세 튜닝 작업을 생성합니다. 요청 응답의 경우 Step Functions 통합을 API 호출하거나, 작업 실행 (CreateModelCustomizationJob.sync) 통합 패턴의 경우 .sync를 호출할 수 있습니다. CreateModelCustomizationJob 호출 필드에는 차이가 없습니다. API

아마존 베드락 API - InvokeModel

지정된 항목을 호출합니다.Amazon Bedrock 요청 본문에 제공한 입력을 사용하여 추론을 실행하는 모델입니다. InvokeModel을 사용하여 텍스트 모델, 이미지 모델 및 임베딩 모델의 추론을 실행합니다.

The Amazon Bedrock 의 서비스 통합 API 요청 본문에는 다음과 같은 추가 매개변수가 InvokeModel포함됩니다.

  • Body - 콘텐츠 유형 요청 헤더에 지정된 형식으로 입력 데이터를 지정합니다. Body에는 대상 모델별 파라미터가 포함되어 있습니다.

    InvokeModel API 사용하는 경우 Body 매개변수를 지정해야 합니다.Step Functions 제공한 입력의 유효성을 검사하지 않습니다Body.

    Body 사용하여 지정하는 경우 Amazon Bedrock 최적화된 통합을 통해 최대 256KB의 페이로드를 지정할 수 있습니다. 페이로드가 256KB를 초과하는 경우 Input을 사용하는 것이 좋습니다.

  • Input - 입력 데이터를 검색할 소스를 지정합니다. 이 옵션 필드는 다음 항목에만 해당됩니다.Amazon Bedrock 최적화된 통합: Step Functions. 이 필드에서 를 지정할 수 있습니다S3Uri.

    파라미터의 Body 또는 Input 중 하나를 지정할 수 있지만 둘 다 지정할 수는 없습니다.

    ContentType을 지정하지 않고 Input을 지정하면 입력 데이터 소스의 콘텐츠 유형이 ContentType의 값이 됩니다.

  • Output— API 응답이 기록되는 대상을 지정합니다. 이 옵션 필드는 다음과 같은 항목에만 해당됩니다.Amazon Bedrock 최적화된 통합: Step Functions. 이 필드에서 를 지정할 수 있습니다S3Uri.

    이 필드를 지정하면 API 응답 본문이 에 대한 참조로 대체됩니다.Amazon S3 원본 출력의 위치.

다음 예제는 for의 구문을 보여줍니다 InvokeModel API.Amazon Bedrock 통합.

{ "ModelId": String, // required "Accept": String, // default: application/json "ContentType": String, // default: application/json "Input": { // not from Bedrock API "S3Uri": String }, "Output": { // not from Bedrock API "S3Uri": String } }

에 대한 작업 상태 정의 Amazon Bedrock 통합

다음 작업 상태 정의는 다음과 통합할 수 있는 방법을 보여줍니다.Amazon Bedrock 스테이트 머신에서. 이 예제는 경로 result_one으로 지정된 모델 간접 호출의 전체 결과를 추출하는 태스크 상태를 보여 줍니다. 이는 파운데이션 모델의 추론 파라미터를 기반으로 합니다. 이 예제에서는 Cohere Command의 대형 언어 모델 (LLM) 을 사용합니다.

{ "Type": "Task", "Resource": "arn:aws:states:::bedrock:invokeModel", "Parameters": { "ModelId": "cohere.command-text-v14", "Body": { "prompt.$": "$.prompt_one", "max_tokens": 250 }, "ContentType": "application/json", "Accept": "*/*" }, "ResultPath": "$.result_one", "ResultSelector": { "result_one.$": "$.Body.generations[0].text" }, "End": true }

IAM policies for calling Amazon Bedrock

콘솔을 사용하여 스테이트 머신을 생성하는 경우 Step Functions 필요한 최소 권한을 가진 상태 머신의 실행 역할을 자동으로 생성합니다. 이는 자동으로 생성됩니다.IAM 역할은 다음과 같은 경우에 유효합니다. AWS 리전 여기서 스테이트 머신을 생성할 수 있습니다.

생성할 때는 다음과 같이 하는 것이 좋습니다.IAM 정책, 와일드카드를 정책에 포함시키지 마십시오. 보안 모범 사례로 정책 범위를 최대한 좁혀야 합니다. 런타임 중에 특정 입력 파라미터를 알 수 없는 경우에만 동적 정책을 사용해야 합니다.

다음 예제 템플릿은 방법을 보여줍니다. AWS Step Functions 스테이트 머신 정의의 리소스를 기반으로 IAM 정책을 생성합니다. 자세한 내용은 Step Functions가 통합 서비스를 위한 IAM 정책을 생성하는 방법Step Functions에서 서비스 통합 패턴을 살펴보세요 단원을 참조하세요.

IAM 에 대한 정책 예제 Amazon Bedrock 통합

다음 섹션에서는 다음을 설명합니다.IAM 다음을 기반으로 필요한 권한 Amazon Bedrock API특정 기반 또는 프로비저닝된 모델에 사용하는 것입니다. 또한 이 섹션에는 전체 액세스 권한을 부여하는 정책의 예가 포함되어 있습니다.

교체하는 것을 잊지 마세요.italicized 텍스트를 리소스별 정보로 입력하세요.

IAM 다음을 사용하여 특정 기반 모델에 액세스하는 정책 예제 InvokeModel

다음은 IAM InvokeModelAPI작업을 amazon.titan-text-express-v1 사용하여 이름이 지정된 특정 기반 모델에 액세스하는 상태 머신의 정책 예제입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "InvokeModel1", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:us-east-2::foundation-model/amazon.titan-text-express-v1" ] } ] }

IAM 를 사용하여 특정 프로비저닝된 모델에 액세스하는 정책 예제 InvokeModel

다음은 IAM 작업을 c2oi931ulksx 사용하여 이름이 지정된 특정 프로비저닝 모델에 액세스하는 상태 머신의 정책 예제입니다. InvokeModelAPI

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "InvokeModel1", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:us-east-2:123456789012:provisioned-model/c2oi931ulksx" ] } ] }

모든 액세스 IAM 사용할 정책 예제 InvokeModel

다음은 IAM InvokeModelAPI액션을 사용할 때 전체 액세스 권한을 제공하는 상태 머신의 정책 예제입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "InvokeModel1", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:us-east-2::foundation-model/*", "arn:aws:bedrock:us-east-2:123456789012:provisioned-model/*" ] } ] }

IAM 특정 기반 모델을 기본 모델로 액세스하는 정책 예제

다음은 IAM 스테이트 머신이 CreateModelCustomizationJobAPI액션을 사용하여 기본 amazon.titan-text-express-v1 모델로 명명된 특정 기반 모델에 액세스하는 방법에 대한 정책 예제입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2::foundation-model/amazon.titan-text-express-v1", "arn:aws:bedrock:us-east-2:123456789012:custom-model/*", "arn:aws:bedrock:us-east-2:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myRole" ] } ] }

IAM 특정 사용자 지정 모델을 기본 모델로 액세스하는 정책 예제

다음은 IAM CreateModelCustomizationJobAPI작업을 사용하여 특정 사용자 지정 모델을 기본 모델로 액세스하는 상태 머신의 정책 예제입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2:123456789012:custom-model/*", "arn:aws:bedrock:us-east-2:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/[[roleName]]" ] } ] }

모든 액세스 IAM CreateModelCustomizationJob.sync를 사용하기 위한 정책 예제

다음은 IAM CreateModelCustomizationJobAPI액션을 사용할 때 전체 액세스 권한을 제공하는 상태 머신의 정책 예제입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2::foundation-model/*", "arn:aws:bedrock:us-east-2:123456789012:custom-model/*", "arn:aws:bedrock:us-east-2:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myRole" ] } ] }

IAM CreateModelCustomizationJob.sync를 사용하여 특정 기반 모델에 액세스하는 정책 예제

다음은 IAM CreateModelCustomizationJob.sync API 작업을 amazon.titan-text-express-v1 사용하여 이름이 지정된 특정 기반 모델에 액세스하는 상태 머신의 정책 예제입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2::foundation-model/amazon.titan-text-express-v1", "arn:aws:bedrock:us-east-2:123456789012:custom-model/*", "arn:aws:bedrock:us-east-2:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "bedrock:GetModelCustomizationJob", "bedrock:StopModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob3", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myRole" ] } ] }

IAM .sync를 사용하여 CreateModelCustomizationJob 사용자 지정 모델에 액세스하는 정책 예제

다음은 IAM CreateModelCustomizationJob.sync API 작업을 사용하여 사용자 지정 모델에 액세스하는 상태 머신의 정책 예제입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2:123456789012:custom-model/*", "arn:aws:bedrock:us-east-2:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "bedrock:GetModelCustomizationJob", "bedrock:StopModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob3", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myRole" ] } ] }

모든 액세스 IAM .sync를 사용하기 CreateModelCustomizationJob 위한 정책 예제

다음은 IAM CreateModelCustomizationJob.sync API 작업을 사용할 때 전체 액세스 권한을 제공하는 상태 머신의 정책 예제입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2::foundation-model/*", "arn:aws:bedrock:us-east-2:123456789012:custom-model/*", "arn:aws:bedrock:us-east-2:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "bedrock:GetModelCustomizationJob", "bedrock:StopModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob3", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myRole" ] } ] }