--- id: amazon-bedrock title: Amazon Bedrock sidebar_label: Amazon Bedrock --- `deepeval` supports Amazon Bedrock models that are available through the Bedrock Runtime Converse API for all evaluation metrics. To get started, you'll need to set up your AWS credentials. :::note `AmazonBedrockModel` requires `aiobotocore` and `botocore`. `deepeval` will prompt you to install them if they are missing. ::: ### Setting Up Your API Key To use Amazon Bedrock for `deepeval`'s LLM-based evaluations (metrics evaluated using an LLM), provide your `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` in the CLI: ```bash export AWS_ACCESS_KEY_ID= export AWS_SECRET_ACCESS_KEY= ``` Alternatively, if you're working in a notebook environment (e.g., Jupyter or Colab), set your keys in a cell: ```bash %env AWS_ACCESS_KEY_ID= %env AWS_SECRET_ACCESS_KEY= ``` ### Python To use Amazon bedrock models for `deepeval` metrics, define an `AmazonBedrockModel` and specify the model you want to use. ```python from deepeval.models import AmazonBedrockModel from deepeval.metrics import AnswerRelevancyMetric model = AmazonBedrockModel( model="anthropic.claude-3-opus-20240229-v1:0", region="us-east-1", generation_kwargs={"temperature": 0}, ) answer_relevancy = AnswerRelevancyMetric(model=model) ``` To use any Amazon Bedrock model directly in `deepeval`, set the `USE_AWS_BEDROCK_MODEL=1` in your `env` and simply pass the name of your desired model in your metric initialization: ```python from deepeval.metrics import AnswerRelevancyMetric answer_relevancy = AnswerRelevancyMetric( model="anthropic.claude-3-opus-20240229-v1:0", ) ``` You should also set the other necessary vars like `AWS_ACCESS_KEY_ID`, `AWS_SESSION_TOKEN`, ..etc. to be able to use the Amazon Bedrock models as shown above. There are **ZERO** mandatory and **SEVEN** optional parameters when creating an `AmazonBedrockModel`: - [Optional] `model`: A string specifying the bedrock model identifier to call (e.g. `anthropic.claude-3-opus-20240229-v1:0`). Defaults to `AWS_BEDROCK_MODEL_NAME` if not passed; raises an error at runtime if unset. - [Optional] `region`: A string specifying the AWS region hosting your Bedrock endpoint (e.g. `us-east-1`). Defaults to `AWS_BEDROCK_REGION` if not passed; raises an error at runtime if unset. - [Optional] `aws_access_key_id`: A string specifiying your AWS Access Key ID. Defaults to `AWS_ACCESS_KEY_ID` if not passed; if still omitted, falls back to the AWS default credentials chain. - [Optional] `aws_secret_access_key`: A string specifiying your AWS Secret Access Key. Defaults to `AWS_SECRET_ACCESS_KEY` if not passed; if still omitted, falls back to the AWS default credentials chain. - [Optional] `cost_per_input_token`: A float specifying the per-input-token cost in USD. Defaults to `AWS_BEDROCK_COST_PER_INPUT_TOKEN` if available in `deepeval`'s model cost registry, else `None`. - [Optional] `cost_per_output_token`: A float specifying the per-output-token cost in USD. Defaults to `AWS_BEDROCK_COST_PER_OUTPUT_TOKEN` if available in `deepeval`'s model cost registry, else `None`. - [Optional] `generation_kwargs`: A dictionary of generation parameters that will be sent to Bedrock as `inferenceConfig`. Available keys may vary by the Bedrock model you choose. See the [AWS Bedrock inference parameters docs](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-parameters.html). Parameters may be explicitly passed to the model at initialization time, or configured with optional settings. The **mandatory** parameters are required at runtime, but you can provide them either explicitly as constructor arguments, **or** via `deepeval` settings / environment variables (constructor args take precedence). See [Environment variables and settings](/docs/evaluation-flags-and-configs#model-settings-aws-amazon-bedrock) for the Bedrock-related environment variables. :::tip Pass generation parameters like `temperature`, `topP`, or `maxTokens` via `generation_kwargs` (they are sent as `inferenceConfig`). Extra `**kwargs` passed to `AmazonBedrockModel(...)` are forwarded to the underlying Bedrock client (aiobotocore/botocore) and are **not** treated as generation parameters. ::: ### Available Amazon Bedrock Models :::note This list only displays some of the available models. For a comprehensive list, refer to the Amazon Bedrock's official documentation. ::: Below is a list of commonly used Amazon Bedrock foundation models: - `anthropic.claude-3-opus-20240229-v1:0` - `anthropic.claude-3-sonnet-20240229-v1:0` - `anthropic.claude-opus-4-20250514-v1:0` - `anthropic.claude-opus-4-1-20250805-v1:0` - `anthropic.claude-sonnet-4-20250514-v1:0` - `anthropic.claude-sonnet-4-5-20250929-v1:0` - `anthropic.claude-haiku-4-5-20251001-v1:0` - `amazon.titan-text-express-v1` - `amazon.titan-text-premier-v1:0` - `amazon.nova-micro-v1:0` - `amazon.nova-lite-v1:0` - `amazon.nova-pro-v1:0` - `amazon.nova-premier-v1:0` - `meta.llama4-maverick-17b-instruct-v1:0` - `meta.llama4-maverick-17b-instruct-128k-v1:0` - `meta.llama4-scout-17b-instruct-v1:0` - `meta.llama4-scout-17b-instruct-128k-v1:0` - `mistral.mistral-large-2407-v1:0` - `mistral.mistral-large-2411-v1:0` - `mistral.pixtral-large-2411-v1:0` - `mistral.pixtral-large-2502-v1:0` - `mistral.pixtral-large-2511-v1:0` - `openai.gpt-oss-20b-1:0` - `openai.gpt-oss-120b-1:0`