Bedrock Çıkarım Profilleri
Bölgeler arası yük dengeleme, maliyet tahsisi ve uyumluluk kontrolleri için LibreChat ile AWS Bedrock özel çıkarım profillerini yapılandırın ve kullanın.
Bu kılavuz, AWS Bedrock özel çıkarım profillerini (custom inference profiles) LibreChat ile nasıl yapılandıracağınızı ve kullanacağınızı açıklar; bu sayede daha iyi kontrol, maliyet tahsisi ve bölgeler arası yük dengeleme için model isteklerini özel uygulama çıkarım profilleri üzerinden yönlendirmenize olanak tanır.
Genel Bakış
AWS Bedrock inference profiles, temel modeller için özel yönlendirme yapılandırmaları oluşturmanıza olanak tanır. Özel (uygulama) bir inference profile oluşturduğunuzda, AWS model adı bilgisi içermeyen benzersiz bir ARN oluşturur:
arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123def456LibreChat'in çıkarım profili eşleme özelliği şunları yapmanızı sağlar:
- Kullanıcı dostu model kimliklerini özel çıkarım profili ARN'leri ile eşleştirin
- Model yeteneği algılamasını korurken istekleri özel profilleriniz üzerinden yönlendirin
- Güvenli ARN yönetimi için ortam değişkenlerini kullanın
Neden Özel Çıkarım Profilleri (Custom Inference Profiles) Kullanmalısınız?
| Avantaj | Açıklama |
|---|---|
| Bölgeler Arası Yük Dengeleme | İstekleri birden fazla AWS bölgesi arasında otomatik olarak dağıtın |
| Maliyet Tahsisi | Maliyetleri uygulama veya ekip bazında etiketleyin ve takip edin |
| İşlem Hacmi Yönetimi | Uygulamalarınız için özel işlem hacmi yapılandırın |
| Uyumluluk | Veri yerleşimi için istekleri belirli bölgeler üzerinden yönlendirin |
| İzleme | CloudWatch'ta çıkarım profili başına kullanımı takip edin |
Ön Koşullar
Başlamadan önce şunlara sahip olduğunuzdan emin olun:
- Bedrock erişimi etkinleştirilmiş AWS Account
- AWS CLI yüklü ve yapılandırılmış
- IAM İzinleri:
bedrock:CreateInferenceProfilebedrock:ListInferenceProfilesbedrock:GetInferenceProfilebedrock:InvokeModel/bedrock:InvokeModelWithResponseStream
- LibreChat ve yapılandırılmış Bedrock endpoint'i (bkz. AWS Bedrock Setup)
Özel Çıkarım Profilleri Oluşturma
Önemli: Özel çıkarım profilleri (custom inference profiles) yalnızca API (AWS CLI, SDK, vb.) aracılığıyla oluşturulabilir ve AWS Konsolu üzerinden oluşturulamaz.
Yöntem 1: AWS CLI (Önerilen)
Adım 1: Mevcut Sistem Çıkarım Profillerini Listeleme
# List all inference profiles
aws bedrock list-inference-profiles --region us-east-1
# Filter for Claude models
aws bedrock list-inference-profiles --region us-east-1 \
--query "inferenceProfileSummaries[?contains(inferenceProfileId, 'claude')]"Adım 2: Özel Bir Çıkarım Profili (Custom Inference Profile) Oluşturun
# Get the system inference profile ARN to copy from
export SOURCE_PROFILE_ARN=$(aws bedrock list-inference-profiles --region us-east-1 \
--query "inferenceProfileSummaries[?inferenceProfileId=='us.anthropic.claude-3-7-sonnet-20250219-v1:0'].inferenceProfileArn" \
--output text)
# Create your custom inference profile
aws bedrock create-inference-profile \
--inference-profile-name "MyApp-Claude-3-7-Sonnet" \
--description "Custom inference profile for my application" \
--model-source copyFrom="$SOURCE_PROFILE_ARN" \
--region us-east-1Adım 3: Oluşturmayı Doğrulayın
# List your custom profiles
aws bedrock list-inference-profiles --type-equals APPLICATION --region us-east-1
# Get details of a specific profile
aws bedrock get-inference-profile \
--inference-profile-identifier "arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123" \
--region us-east-1Yöntem 2: Python Betiği
import boto3
AWS_REGION = 'us-east-1'
def create_inference_profile(profile_name: str, source_model_id: str):
"""
Create a custom inference profile for LibreChat.
Args:
profile_name: Name for your custom profile
source_model_id: The system inference profile ID to copy from
(e.g., 'us.anthropic.claude-3-7-sonnet-20250219-v1:0')
"""
bedrock = boto3.client('bedrock', region_name=AWS_REGION)
profiles = bedrock.list_inference_profiles()
source_arn = None
for profile in profiles['inferenceProfileSummaries']:
if profile['inferenceProfileId'] == source_model_id:
source_arn = profile['inferenceProfileArn']
break
if not source_arn:
raise ValueError(f"Source profile {source_model_id} not found")
response = bedrock.create_inference_profile(
inferenceProfileName=profile_name,
description=f'Custom inference profile for {profile_name}',
modelSource={'copyFrom': source_arn},
tags=[
{'key': 'Application', 'value': 'LibreChat'},
{'key': 'Environment', 'value': 'Production'}
]
)
print(f"Created profile: {response['inferenceProfileArn']}")
return response['inferenceProfileArn']
if __name__ == "__main__":
create_inference_profile(
"LibreChat-Claude-3-7-Sonnet",
"us.anthropic.claude-3-7-sonnet-20250219-v1:0"
)
create_inference_profile(
"LibreChat-Claude-Sonnet-4-5",
"us.anthropic.claude-sonnet-4-5-20250929-v1:0"
)LibreChat'i Yapılandırma
librechat.yaml Yapılandırması
bedrock endpoint yapılandırmasını librechat.yaml dosyanıza ekleyin. Tüm alan referansı için AWS Bedrock Object Structure bölümüne bakın.
endpoints:
bedrock:
# List the models you want available in the UI
models:
- 'us.anthropic.claude-3-7-sonnet-20250219-v1:0'
- 'us.anthropic.claude-sonnet-4-5-20250929-v1:0'
- 'global.anthropic.claude-opus-4-5-20251101-v1:0'
# Map model IDs to their custom inference profile ARNs
inferenceProfiles:
# Using environment variable (recommended for security)
'us.anthropic.claude-3-7-sonnet-20250219-v1:0': '${BEDROCK_CLAUDE_37_PROFILE}'
# Using direct ARN
'us.anthropic.claude-sonnet-4-5-20250929-v1:0': 'arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123'
# Another env variable example
'global.anthropic.claude-opus-4-5-20251101-v1:0': '${BEDROCK_OPUS_45_PROFILE}'
# Optional: Configure available regions for cross-region inference
availableRegions:
- 'us-east-1'
- 'us-west-2'Ortam Değişkenleri
.env dosyanıza Bedrock bölgenizi, AWS kimlik doğrulama ayarlarınızı ve çıkarım profili ARN'lerinizi ekleyin:
#===================================#
# AWS Bedrock Configuration #
#===================================#
BEDROCK_AWS_DEFAULT_REGION=us-east-1
# Option 1: Use an AWS profile
BEDROCK_AWS_PROFILE=your-profile-name
# Option 2: Omit BEDROCK_AWS_PROFILE and Bedrock-specific static credentials
# to use the AWS SDK default credential provider chain.
# Option 3: Static Bedrock credentials, if profiles or IAM roles are not suitable
# BEDROCK_AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
# BEDROCK_AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
# BEDROCK_AWS_SESSION_TOKEN=your-session-token
# Option 4: Bedrock API key (bearer auth)
# BEDROCK_AWS_BEARER_TOKEN=your-bedrock-api-key
# Inference Profile ARNs
BEDROCK_CLAUDE_37_PROFILE=arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123
BEDROCK_OPUS_45_PROFILE=arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/def456Günlük Kaydı (Logging) Kurulumu
Çıkarım profillerinizin doğru şekilde kullanıldığını doğrulamak için AWS Bedrock model çağırma günlüğünü (model invocation logging) etkinleştirin.
1. CloudWatch Günlük Grubu Oluşturun
aws logs create-log-group \
--log-group-name /aws/bedrock/model-invocations \
--region us-east-12. Bedrock Günlüğü için IAM Rolü Oluşturun
Güven ilkesi dosyasını (bedrock-logging-trust.json) oluşturun:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "bedrock.amazonaws.com"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "YOUR_ACCOUNT_ID"
},
"ArnLike": {
"aws:SourceArn": "arn:aws:bedrock:us-east-1:YOUR_ACCOUNT_ID:*"
}
}
}
]
}Rolü oluştur:
aws iam create-role \
--role-name BedrockLoggingRole \
--assume-role-policy-document file://bedrock-logging-trust.jsonCloudWatch Logs izinlerini ekleyin:
aws iam put-role-policy \
--role-name BedrockLoggingRole \
--policy-name BedrockLoggingPolicy \
--policy-document '{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:us-east-1:YOUR_ACCOUNT_ID:log-group:/aws/bedrock/model-invocations:*"
}
]
}'Büyük veriler için S3 kovası oluşturun (gerekli):
aws s3 mb s3://bedrock-logs-YOUR_ACCOUNT_ID --region us-east-1
aws iam put-role-policy \
--role-name BedrockLoggingRole \
--policy-name BedrockS3Policy \
--policy-document '{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:PutObject"],
"Resource": "arn:aws:s3:::bedrock-logs-YOUR_ACCOUNT_ID/*"
}
]
}'3. Model Çağırma Günlüğünü Etkinleştirin
aws bedrock put-model-invocation-logging-configuration \
--logging-config '{
"cloudWatchConfig": {
"logGroupName": "/aws/bedrock/model-invocations",
"roleArn": "arn:aws:iam::YOUR_ACCOUNT_ID:role/BedrockLoggingRole",
"largeDataDeliveryS3Config": {
"bucketName": "bedrock-logs-YOUR_ACCOUNT_ID",
"keyPrefix": "large-data"
}
},
"textDataDeliveryEnabled": true,
"imageDataDeliveryEnabled": true,
"embeddingDataDeliveryEnabled": true
}' \
--region us-east-1Günlüğe kaydetmenin etkinleştirildiğini doğrulayın:
aws bedrock get-model-invocation-logging-configuration --region us-east-1Yapılandırmanızı Doğrulama
CLI Üzerinden Günlükleri (Logs) Görüntüleme
LibreChat üzerinden bir istekte bulunduktan sonra günlükleri (logs) kontrol edin:
# Tail logs in real-time
aws logs tail /aws/bedrock/model-invocations --follow --region us-east-1
# View recent logs
aws logs tail /aws/bedrock/model-invocations --since 5m --region us-east-1Nelere Dikkat Edilmeli
Günlük çıktısında modelId alanını arayın:
{
"timestamp": "2026-01-16T16:56:15Z",
"accountId": "123456789012",
"region": "us-east-1",
"requestId": "a8b9d8c9-87b3-41ea-8a02-e8bfdba7782f",
"operation": "ConverseStream",
"modelId": "arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123",
"inferenceRegion": "us-west-2"
}Başarı göstergeleri:
modelId, özel çıkarım profili ARN'nizi gösterir (application-inference-profileiçerir)inferenceRegiondeğişkenlik gösterebilir (bölgeler arası yönlendirmenin çalıştığını gösterir)
Eğer eşleme (mapping) çalışmıyorsa:
modelId, ARN yerine ham model kimliğini (ID) gösterecektir
AWS Konsolu aracılığıyla Günlükleri Görüntüleme
- AWS Konsolunda CloudWatch'u açın
- Logs > Log groups kısmına gidin
/aws/bedrock/model-invocationsöğesini seçin- En son günlük akışına tıklayın
- Çıkarım profili kimliğinizi (ID) arayın
Kullanım İzleme
CloudWatch Metrikleri
CloudWatch'ta Bedrock metriklerini görüntüleyin:
aws cloudwatch list-metrics --namespace AWS/Bedrock --region us-east-1AWS Konsolu
- Bedrock Console > Inference profiles > Application sekmesi
- Özel profilinize tıklayın
- Çağrı metriklerini ve kullanım istatistiklerini görüntüleyin
Sorun Giderme
Yaygın Sorunlar
| Sorun | Neden | Çözüm |
|---|---|---|
| Model tanınmıyor | models dizisinde eksik model | Model kimliğini librechat.yaml içindeki models kısmına ekleyin |
| ARN kullanılmıyor | Model kimliği eşleşmiyor | inferenceProfiles içindeki model kimliğinin models içindekilerle tam olarak eşleştiğinden emin olun |
| Ortam değişkeni çözümlenmedi | Yazım hatası veya ayarlanmamış | .env dosyasını kontrol edin ve değişken adının ${VAR_NAME} ile eşleştiğinden emin olun |
| Erişim Reddedildi | Eksik IAM izinleri | Çıkarım profili ARN'si için bedrock:InvokeModel* izinlerini ekleyin |
| Model erişimi reddedildi | Model sözleşmesi eksik veya yayılıyor | Bedrock model sözleşmesini kabul edin ve kullanılabilirliğin yayılmasını bekleyin |
| Profil bulunamadı | Yanlış bölge | Profilleri aynı bölgede oluşturduğunuzdan/kullandığınızdan emin olun |
Model Access Agreement Propagation
Bir uygulama çıkarım profili oluşturmak, AWS hesabınızdaki temel foundation modelini otomatik olarak etkinleştirmez. Model erişimi yeni etkinleştirildiyse, çıkarım profili üzerinden yapılan isteklerin başarılı olması için AWS'nin kısa bir yayılma süresine ihtiyacı olabilir.
Bu durum, çıkarım profili mevcut olsa ve IAM rolünüz bedrock:InvokeModel izinlerine sahip olsa bile AccessDeniedException olarak görünebilir. Hata; aws-marketplace:ViewSubscriptions, aws-marketplace:Subscribe ifadelerinden bahsedebilir veya birkaç dakika sonra tekrar denemenizi isteyebilir.
LibreChat eşlemesinde hata ayıklamadan önce temel model kullanılabilirliğini kontrol edin:
aws bedrock get-foundation-model-availability \
--region us-east-1 \
--model-id us.anthropic.claude-sonnet-4-5-20250929-v1:0Şunu ara:
agreementAvailability.statusdeğeriAVAILABLEolarak ayarlandıauthorizationStatusdeğeriAUTHORIZEDolarak ayarlandıentitlementAvailabilitydeğeriAVAILABLEolarak ayarlandıregionAvailabilitydeğeriAVAILABLEolarak ayarlandı
Anlaşma eksikse, Bedrock konsolunda veya Bedrock model anlaşmalarını ve Marketplace aboneliklerini yönetebilen bir AWS yetkilisi ile model anlaşmasını kabul edin. Durum AVAILABLE olarak değiştikten sonra birkaç dakika bekleyin ve uygulama çıkarım profilini çağırmayı tekrar deneyin.
Hata Ayıklama Kontrol Listesi
- Model ID,
modelsdizisi içerisindedir inferenceProfilesiçindeki Model ID tam olarak (büyük/küçük harfe duyarlı) eşleşir- Ortam değişkeni ayarlandı (
${VAR}sözdizimi kullanılıyorsa) - AWS kimlik bilgileri, inference profile'ı çağırma iznine sahiptir
- Temel model sözleşmesi Bedrock içinde
AVAILABLEdurumdadır - LibreChat, yapılandırma değişikliklerinden sonra yeniden başlatıldı
Yapılandırma Yüklemesini Doğrulama
LibreChat başladığında sunucu günlüklerini inceleyerek yapılandırmanızın doğru bir şekilde okunup okunmadığını kontrol edin.
Tam Örnek
librechat.yaml
version: 1.3.5
endpoints:
bedrock:
models:
- 'us.anthropic.claude-3-7-sonnet-20250219-v1:0'
- 'us.anthropic.claude-sonnet-4-5-20250929-v1:0'
- 'global.anthropic.claude-opus-4-5-20251101-v1:0'
- 'us.amazon.nova-pro-v1:0'
inferenceProfiles:
'us.anthropic.claude-3-7-sonnet-20250219-v1:0': '${BEDROCK_CLAUDE_37_PROFILE}'
'us.anthropic.claude-sonnet-4-5-20250929-v1:0': '${BEDROCK_SONNET_45_PROFILE}'
'global.anthropic.claude-opus-4-5-20251101-v1:0': '${BEDROCK_OPUS_45_PROFILE}'
availableRegions:
- 'us-east-1'
- 'us-west-2'.env
# AWS Bedrock
BEDROCK_AWS_DEFAULT_REGION=us-east-1
BEDROCK_AWS_PROFILE=your-profile-name
# Or use a Bedrock API key instead:
# BEDROCK_AWS_BEARER_TOKEN=your-bedrock-api-key
# Inference Profiles
BEDROCK_CLAUDE_37_PROFILE=arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123
BEDROCK_SONNET_45_PROFILE=arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/def456
BEDROCK_OPUS_45_PROFILE=arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/ghi789Hızlı Kurulum Betiği
#!/bin/bash
REGION="us-east-1"
ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
# Create inference profiles
for MODEL in "us.anthropic.claude-3-7-sonnet-20250219-v1:0" "us.anthropic.claude-sonnet-4-5-20250929-v1:0"; do
PROFILE_NAME="LibreChat-${MODEL//[.:]/-}"
SOURCE_ARN=$(aws bedrock list-inference-profiles --region $REGION \
--query "inferenceProfileSummaries[?inferenceProfileId=='$MODEL'].inferenceProfileArn" \
--output text)
if [ -n "$SOURCE_ARN" ]; then
echo "Creating profile for $MODEL..."
aws bedrock create-inference-profile \
--inference-profile-name "$PROFILE_NAME" \
--model-source copyFrom="$SOURCE_ARN" \
--region $REGION
fi
done
# List created profiles
echo ""
echo "Your custom inference profiles:"
aws bedrock list-inference-profiles --type-equals APPLICATION --region $REGION \
--query "inferenceProfileSummaries[].{Name:inferenceProfileName,ARN:inferenceProfileArn}" \
--output tableİlgili Kaynaklar
- AWS Bedrock Inference Profiles Belgeleri
- AWS Bedrock Model Access Documentation
- AWS Bedrock Nesne Yapısı - YAML yapılandırma alanı referansı
- AWS Bedrock Kurulumu - Temel Bedrock yapılandırması
- AWS Bedrock Model Invocation Logging
Bu rehber nasıl?