Amazon Bedrock is a fully managed AWS service that democratizes access to cutting-edge foundation models (FMs) like Anthropic’s Claude, AI21 Labs’ Jurassic-2, and Amazon Titan. This guide walks you through using Bedrock to build AI applications without managing infrastructure. We’ll include code examples, cost-saving tips, and real-world use cases.
1. Navigate to the AWS Bedrock Console.
2. Click Request Model Access and select models (e.g.,
Claude-v2).
3. Wait for AWS approval (usually instant for trial models).
# Verify access via AWS CLI
aws bedrock list-foundation-models --region us-east-1
# Expected output snippet:
{
"modelSummaries": [
{
"modelId": "anthropic.claude-v2",
"providerName": "Anthropic"
}
]
}
Explanation: This CLI command lists available models.
Ensure your IAM role has
bedrock:ListFoundationModels
permission.
Use the boto3
SDK to generate text:
import boto3
import json
bedrock = boto3.client(service_name='bedrock-runtime', region_name='us-east-1')
prompt = "Explain quantum computing in 3 sentences:"
body = json.dumps({
"prompt": f"\n\nHuman: {prompt}\n\nAssistant:",
"max_tokens_to_sample": 300,
"temperature": 0.5
})
response = bedrock.invoke_model(
modelId='anthropic.claude-v2',
body=body
)
response_body = json.loads(response['body'].read())
print(response_body['completion'])
Explanation: This code sends a prompt to Claude-v2. The
temperature
parameter controls creativity (0 = precise, 1 =
random).
Titan’s multilingual model supports 100+ languages:
def translate_text(text, target_language="Spanish"):
body = json.dumps({
"inputText": text,
"sourceLanguageCode": "auto",
"targetLanguageCode": target_language.lower()
})
response = bedrock.invoke_model(
modelId='amazon.titan-text-express-v1',
body=body
)
return json.loads(response['body'].read())['results'][0]['outputText']
print(translate_text("Hello, world!", "French")) # Output: "Bonjour le monde!"
Tip: Use amazon.titan-embed-text-v1
for
semantic search and embeddings.
Analyze a CSV file stored in S3:
s3 = boto3.client('s3')
# Download file from S3
s3.download_file('my-bucket', 'input.csv', 'local_input.csv')
with open('local_input.csv', 'r') as f:
questions = f.readlines()
# Generate answers for each question
answers = [bedrock.invoke_model(
modelId='anthropic.claude-v2',
body=json.dumps({"prompt": f"\n\nHuman: {q.strip()}\n\nAssistant:"})
) for q in questions[:5]] # Limit to 5 for testing
Cost Note: Bedrock charges per token. Use batch processing judiciously.
1. Set up AWS Budgets alerts for Bedrock.
2. Use shorter prompts and adjust
max_tokens_to_sample
.
3. Delete unnecessary model endpoints.
# Check usage via AWS CLI
aws cloudwatch get-metric-statistics \
--namespace AWS/Bedrock \
--metric-name InvocationCount \
--start-time 2023-10-01T00:00:00Z \
--end-time 2023-10-31T23:59:59Z \
--period 86400 \
--statistics Sum
Amazon Bedrock removes the complexity of deploying foundation models. You’ve learned to generate text, translate languages, and process batch data. Next, explore AWS’s advanced features like guardrails for content filtering and model customization.
Category: AWS
Similar Articles