Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] Update supported cross-region inference #741

Open
1 of 2 tasks
sztm opened this issue Feb 24, 2025 · 3 comments
Open
1 of 2 tasks

[Feature Request] Update supported cross-region inference #741

sztm opened this issue Feb 24, 2025 · 3 comments
Labels
enhancement New feature or request

Comments

@sztm
Copy link

sztm commented Feb 24, 2025

Describe the solution you'd like

Update supported cross region inference. Following list looks miss some regions and models.

cross_region_inference_models = {
"claude-v3-sonnet",
"claude-v3-haiku",
"claude-v3-opus",
"claude-v3.5-sonnet",
"claude-v3.5-sonnet-v2",
"claude-v3.5-haiku",
"amazon-nova-pro",
"amazon-nova-lite",
"amazon-nova-micro",
}
supported_region_prefixes = {
"us-east-1": "us",
"us-west-2": "us",
"eu-west-1": "eu",
"eu-central-1": "eu",
"eu-west-3": "eu",
}

Especially I want to add APAC for Claude 3.5 Sonnet to solve following error.

Why the solution needed

I can see a following error when use Claude 3.5 Sonnet v2 in ap-northeast-1 region even if enableBedrockCrossRegionInference is true.

Failed to run stream handler: An error occurred (ValidationException) when calling the ConverseStream operation: Invocation of model ID anthropic.claude-3-5-sonnet-20241022-v2:0 with on-demand throughput isn’t supported. Retry your request with the ID or ARN of an inference profile that contains this model.

Image

Additional context

Claude 3.5 Sonnet v2 is available only on cross region inference in ap-northeast-1. But bedrock-claude-chat app does not support it in APAC regions currently.

Amazon Bedrock supports APAC as mentioned in following document.

https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html

Probably this document is also not updated latest inference profiles.

Implementation feasibility

Are you willing to collaborate with us to discuss the solution, decide on the approach, and assist with the implementation?

  • Yes, I am able to implement the feature and create a pull request.
  • No, I am unable to implement the feature, but I am open to discussing the solution.

I believe updating following solves this issue.

supported_region_prefixes = {
"us-east-1": "us",
"us-west-2": "us",
"eu-west-1": "eu",
"eu-central-1": "eu",
"eu-west-3": "eu",
}

@sztm
Copy link
Author

sztm commented Feb 24, 2025

just saw current inference profiles by AWS CLI.

US

us-east-2

$ aws bedrock list-inference-profiles --query "inferenceProfileSummaries[].[inferenceProfileId, models[].modelArn]" --region us-east-2
[
    [
        "us.anthropic.claude-3-haiku-20240307-v1:0",
        [
            "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-haiku-20240307-v1:0",
            "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-haiku-20240307-v1:0",
            "arn:aws:bedrock:us-east-2::foundation-model/anthropic.claude-3-haiku-20240307-v1:0"
        ]
    ],
    [
        "us.meta.llama3-2-1b-instruct-v1:0",
        [
            "arn:aws:bedrock:us-east-1::foundation-model/meta.llama3-2-1b-instruct-v1:0",
            "arn:aws:bedrock:us-east-2::foundation-model/meta.llama3-2-1b-instruct-v1:0",
            "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-2-1b-instruct-v1:0"
        ]
    ],
    [
        "us.meta.llama3-2-11b-instruct-v1:0",
        [
            "arn:aws:bedrock:us-east-1::foundation-model/meta.llama3-2-11b-instruct-v1:0",
            "arn:aws:bedrock:us-east-2::foundation-model/meta.llama3-2-11b-instruct-v1:0",
            "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-2-11b-instruct-v1:0"
        ]
    ],
    [
        "us.meta.llama3-2-3b-instruct-v1:0",
        [
            "arn:aws:bedrock:us-east-1::foundation-model/meta.llama3-2-3b-instruct-v1:0",
            "arn:aws:bedrock:us-east-2::foundation-model/meta.llama3-2-3b-instruct-v1:0",
            "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-2-3b-instruct-v1:0"
        ]
    ],
    [
        "us.meta.llama3-2-90b-instruct-v1:0",
        [
            "arn:aws:bedrock:us-east-1::foundation-model/meta.llama3-2-90b-instruct-v1:0",
            "arn:aws:bedrock:us-east-2::foundation-model/meta.llama3-2-90b-instruct-v1:0",
            "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-2-90b-instruct-v1:0"
        ]
    ],
    [
        "us.meta.llama3-1-8b-instruct-v1:0",
        [
            "arn:aws:bedrock:us-east-1::foundation-model/meta.llama3-1-8b-instruct-v1:0",
            "arn:aws:bedrock:us-east-2::foundation-model/meta.llama3-1-8b-instruct-v1:0",
            "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-1-8b-instruct-v1:0"
        ]
    ],
    [
        "us.meta.llama3-1-70b-instruct-v1:0",
        [
            "arn:aws:bedrock:us-east-1::foundation-model/meta.llama3-1-70b-instruct-v1:0",
            "arn:aws:bedrock:us-east-2::foundation-model/meta.llama3-1-70b-instruct-v1:0",
            "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-1-70b-instruct-v1:0"
        ]
    ],
    [
        "us.amazon.nova-micro-v1:0",
        [
            "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-micro-v1:0",
            "arn:aws:bedrock:us-west-2::foundation-model/amazon.nova-micro-v1:0",
            "arn:aws:bedrock:us-east-2::foundation-model/amazon.nova-micro-v1:0"
        ]
    ],
    [
        "us.amazon.nova-lite-v1:0",
        [
            "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-lite-v1:0",
            "arn:aws:bedrock:us-west-2::foundation-model/amazon.nova-lite-v1:0",
            "arn:aws:bedrock:us-east-2::foundation-model/amazon.nova-lite-v1:0"
        ]
    ],
    [
        "us.amazon.nova-pro-v1:0",
        [
            "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-pro-v1:0",
            "arn:aws:bedrock:us-west-2::foundation-model/amazon.nova-pro-v1:0",
            "arn:aws:bedrock:us-east-2::foundation-model/amazon.nova-pro-v1:0"
        ]
    ],
    [
        "us.anthropic.claude-3-5-haiku-20241022-v1:0",
        [
            "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-5-haiku-20241022-v1:0",
            "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-5-haiku-20241022-v1:0",
            "arn:aws:bedrock:us-east-2::foundation-model/anthropic.claude-3-5-haiku-20241022-v1:0"
        ]
    ],
    [
        "us.meta.llama3-1-405b-instruct-v1:0",
        [
            "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-1-405b-instruct-v1:0",
            "arn:aws:bedrock:us-east-1::foundation-model/meta.llama3-1-405b-instruct-v1:0",
            "arn:aws:bedrock:us-east-2::foundation-model/meta.llama3-1-405b-instruct-v1:0"
        ]
    ],
    [
        "us.meta.llama3-3-70b-instruct-v1:0",
        [
            "arn:aws:bedrock:us-east-2::foundation-model/meta.llama3-3-70b-instruct-v1:0",
            "arn:aws:bedrock:us-east-1::foundation-model/meta.llama3-3-70b-instruct-v1:0",
            "arn:aws:bedrock:us-west-2::foundation-model/meta.llama3-3-70b-instruct-v1:0"
        ]
    ],
    [
        "us.anthropic.claude-3-5-sonnet-20240620-v1:0",
        [
            "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0",
            "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0"
        ]
    ],
    [
        "us.anthropic.claude-3-5-sonnet-20241022-v2:0",
        [
            "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-5-sonnet-20241022-v2:0",
            "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-5-sonnet-20241022-v2:0",
            "arn:aws:bedrock:us-east-2::foundation-model/anthropic.claude-3-5-sonnet-20241022-v2:0"
        ]
    ]
]

us-east-1 ( Found 2 additional models )

$ aws bedrock list-inference-profiles --query "inferenceProfileSummaries[].[inferenceProfileId, models[].modelArn]" --region us-east-1
[
    [
        "us.anthropic.claude-3-sonnet-20240229-v1:0",
        [
            "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0",
            "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0"
        ]
    ],
    [
        "us.anthropic.claude-3-opus-20240229-v1:0",
        [
            "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-opus-20240229-v1:0",
            "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-opus-20240229-v1:0"
        ]
    ],
    ...(duprecated models)...
]
EU
$ aws bedrock list-inference-profiles --query "inferenceProfileSummaries[].[inferenceProfileId, models[].modelArn]" --region eu-west-1
[
    [
        "eu.anthropic.claude-3-sonnet-20240229-v1:0",
        [
            "arn:aws:bedrock:eu-west-1::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0",
            "arn:aws:bedrock:eu-west-3::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0",
            "arn:aws:bedrock:eu-central-1::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0"
        ]
    ],
    [
        "eu.anthropic.claude-3-haiku-20240307-v1:0",
        [
            "arn:aws:bedrock:eu-west-1::foundation-model/anthropic.claude-3-haiku-20240307-v1:0",
            "arn:aws:bedrock:eu-west-3::foundation-model/anthropic.claude-3-haiku-20240307-v1:0",
            "arn:aws:bedrock:eu-central-1::foundation-model/anthropic.claude-3-haiku-20240307-v1:0"
        ]
    ],
    [
        "eu.anthropic.claude-3-5-sonnet-20240620-v1:0",
        [
            "arn:aws:bedrock:eu-west-1::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0",
            "arn:aws:bedrock:eu-west-3::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0",
            "arn:aws:bedrock:eu-central-1::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0"
        ]
    ],
    [
        "eu.meta.llama3-2-3b-instruct-v1:0",
        [
            "arn:aws:bedrock:eu-central-1::foundation-model/meta.llama3-2-3b-instruct-v1:0",
            "arn:aws:bedrock:eu-west-1::foundation-model/meta.llama3-2-3b-instruct-v1:0",
            "arn:aws:bedrock:eu-west-3::foundation-model/meta.llama3-2-3b-instruct-v1:0"
        ]
    ],
    [
        "eu.meta.llama3-2-1b-instruct-v1:0",
        [
            "arn:aws:bedrock:eu-central-1::foundation-model/meta.llama3-2-1b-instruct-v1:0",
            "arn:aws:bedrock:eu-west-1::foundation-model/meta.llama3-2-1b-instruct-v1:0",
            "arn:aws:bedrock:eu-west-3::foundation-model/meta.llama3-2-1b-instruct-v1:0"
        ]
    ]
]
APAC
$ aws bedrock list-inference-profiles --query "inferenceProfileSummaries[].[inferenceProfileId, models[].modelArn]" --region ap-northeast-1
[
    [
        "apac.anthropic.claude-3-sonnet-20240229-v1:0",
        [
            "arn:aws:bedrock:ap-northeast-1::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0",
            "arn:aws:bedrock:ap-northeast-2::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0",
            "arn:aws:bedrock:ap-southeast-1::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0",
            "arn:aws:bedrock:ap-southeast-2::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0",
            "arn:aws:bedrock:ap-south-1::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0"
        ]
    ],
    [
        "apac.anthropic.claude-3-5-sonnet-20240620-v1:0",
        [
            "arn:aws:bedrock:ap-northeast-1::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0",
            "arn:aws:bedrock:ap-northeast-2::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0",
            "arn:aws:bedrock:ap-southeast-1::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0",
            "arn:aws:bedrock:ap-southeast-2::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0",
            "arn:aws:bedrock:ap-south-1::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0"
        ]
    ],
    [
        "apac.anthropic.claude-3-haiku-20240307-v1:0",
        [
            "arn:aws:bedrock:ap-northeast-1::foundation-model/anthropic.claude-3-haiku-20240307-v1:0",
            "arn:aws:bedrock:ap-northeast-2::foundation-model/anthropic.claude-3-haiku-20240307-v1:0",
            "arn:aws:bedrock:ap-southeast-2::foundation-model/anthropic.claude-3-haiku-20240307-v1:0",
            "arn:aws:bedrock:ap-south-1::foundation-model/anthropic.claude-3-haiku-20240307-v1:0",
            "arn:aws:bedrock:ap-southeast-1::foundation-model/anthropic.claude-3-haiku-20240307-v1:0"
        ]
    ],
    [
        "apac.anthropic.claude-3-5-sonnet-20241022-v2:0",
        [
            "arn:aws:bedrock:ap-northeast-1::foundation-model/anthropic.claude-3-5-sonnet-20241022-v2:0",
            "arn:aws:bedrock:ap-northeast-2::foundation-model/anthropic.claude-3-5-sonnet-20241022-v2:0",
            "arn:aws:bedrock:ap-northeast-3::foundation-model/anthropic.claude-3-5-sonnet-20241022-v2:0",
            "arn:aws:bedrock:ap-south-1::foundation-model/anthropic.claude-3-5-sonnet-20241022-v2:0",
            "arn:aws:bedrock:ap-southeast-1::foundation-model/anthropic.claude-3-5-sonnet-20241022-v2:0",
            "arn:aws:bedrock:ap-southeast-2::foundation-model/anthropic.claude-3-5-sonnet-20241022-v2:0"
        ]
    ]
]

@sztm
Copy link
Author

sztm commented Feb 24, 2025

They look complicated. Supported cross-region inferences are different by each regions.
I create a strict models map on to each regions by a script.

index.ts
import {
  BedrockClient,
  type InferenceProfileSummary,
  ListInferenceProfilesCommand,
} from "@aws-sdk/client-bedrock";

const AWS_PROFILE = process.env["AWS_PROFILE"];

// Ref: https://github.com/aws-samples/bedrock-claude-chat/blob/a890a5f269f3c00e341c728b690e3f4d6d5395e8/backend/app/bedrock.py#L270-L286
const supportedBaseModelIds = [
  "anthropic.claude-v2:1",
  "anthropic.claude-instant-v1",
  "anthropic.claude-3-sonnet-20240229-v1:0",
  "anthropic.claude-3-haiku-20240307-v1:0",
  "anthropic.claude-3-opus-20240229-v1:0",
  "anthropic.claude-3-5-sonnet-20240620-v1:0",
  "anthropic.claude-3-5-sonnet-20241022-v2:0",
  "anthropic.claude-3-5-haiku-20241022-v1:0",
  "mistral.mistral-7b-instruct-v0:2",
  "mistral.mixtral-8x7b-instruct-v0:1",
  "mistral.mistral-large-2402-v1:0",
  "amazon.nova-pro-v1:0",
  "amazon.nova-lite-v1:0",
  "amazon.nova-micro-v1:0",
];

const regions: string[] = [
  // US
  "us-east-1",
  "us-east-2",
  "us-west-2",
  "ap-south-1",
  // // EU
  "eu-central-1",
  "eu-west-1",
  "eu-west-2",
  "eu-west-3",
  "eu-north-1",
  // // APAC
  "ap-northeast-1",
  "ap-northeast-2",
  "ap-northeast-3",
  "ap-southeast-1",
  "ap-southeast-2",
];

interface RegionModelDict {
  /**
   * "us" | "eu" | "apac"
   */
  area: string;
  region: string;
  model: string;
}

const sortByRegionAndModel = (dictList: RegionModelDict[]): RegionModelDict[] =>
  dictList
    .toSorted((a, b) => a.model.localeCompare(b.model))
    .toSorted((a, b) => regions.indexOf(a.region) - regions.indexOf(b.region));

const uniq = (dict: RegionModelDict[]): RegionModelDict[] => {
  const list: RegionModelDict[] = [];

  for (const pair of dict) {
    if (
      !list.find(
        (item) => item.model === pair.model && item.region === pair.region
      )
    )
      list.push(pair);
  }

  return list;
};

const splitInferenceProfilesId = (
  inferenceProfileId: string
): {
  area: string;
  model: string;
} => {
  const [area, ...rest] = inferenceProfileId.split(".");
  const model = rest.join(".");

  return {
    area,
    model,
  };
};

const getRegionFromArn = (arn: string): string | undefined => arn.split(":")[3];

const toRegionModelDictList = (
  inferenceProfiles: InferenceProfileSummary[]
): RegionModelDict[] => {
  const list: RegionModelDict[] = [];

  for (const inferenceProfile of inferenceProfiles) {
    const { inferenceProfileId, models } = inferenceProfile;

    if (inferenceProfileId === undefined || models === undefined) {
      continue;
    }

    const { area, model } = splitInferenceProfilesId(inferenceProfileId);

    const regions = models
      .map(({ modelArn }) => modelArn && getRegionFromArn(modelArn))
      .filter((region) => region !== "")
      .filter((region) => region !== undefined);

    for (const region of regions) {
      list.push({
        area,
        model,
        region,
      });
    }
  }

  return list;
};

const listInferenceProfilesForRegion = async (
  region: string
): Promise<InferenceProfileSummary[] | undefined> => {
  const client = new BedrockClient({
    region,
    profile: AWS_PROFILE,
  });

  const command = new ListInferenceProfilesCommand({
    typeEquals: "SYSTEM_DEFINED",
    maxResults: 1000,
  });

  const response = await client.send(command);
  return response.inferenceProfileSummaries;
};

const listInferenceProfilesForAllRegion = async (): Promise<
  InferenceProfileSummary[]
> => {
  let list: InferenceProfileSummary[] = [];

  for (const region of regions) {
    const inferenceProfiles = await listInferenceProfilesForRegion(region);

    if (inferenceProfiles === undefined) {
      continue;
    }

    list = [...list, ...inferenceProfiles];
  }

  return list;
};

const main = async () => {
  const inferenceProfiles = await listInferenceProfilesForAllRegion();
  const activeInferenceProfiles = inferenceProfiles.filter(
    ({ status }) => status === "ACTIVE"
  );

  // transform to RegionModelDict[]
  const regionModelDictList = sortByRegionAndModel(
    uniq(
      toRegionModelDictList(activeInferenceProfiles).filter(({ model }) =>
        supportedBaseModelIds.includes(model)
      )
    )
  );

  console.log(
    JSON.stringify(
      Object.groupBy(regionModelDictList, ({ region }) => region),
      null,
      2
    )
  );
};

main().catch((error) => {
  console.error(error);
});
Result
{
  "us-east-1": [
    {
      "area": "us",
      "model": "amazon.nova-lite-v1:0",
      "region": "us-east-1"
    },
    {
      "area": "us",
      "model": "amazon.nova-micro-v1:0",
      "region": "us-east-1"
    },
    {
      "area": "us",
      "model": "amazon.nova-pro-v1:0",
      "region": "us-east-1"
    },
    {
      "area": "us",
      "model": "anthropic.claude-3-5-haiku-20241022-v1:0",
      "region": "us-east-1"
    },
    {
      "area": "us",
      "model": "anthropic.claude-3-5-sonnet-20240620-v1:0",
      "region": "us-east-1"
    },
    {
      "area": "us",
      "model": "anthropic.claude-3-5-sonnet-20241022-v2:0",
      "region": "us-east-1"
    },
    {
      "area": "us",
      "model": "anthropic.claude-3-haiku-20240307-v1:0",
      "region": "us-east-1"
    },
    {
      "area": "us",
      "model": "anthropic.claude-3-opus-20240229-v1:0",
      "region": "us-east-1"
    },
    {
      "area": "us",
      "model": "anthropic.claude-3-sonnet-20240229-v1:0",
      "region": "us-east-1"
    }
  ],
  "us-east-2": [
    {
      "area": "us",
      "model": "amazon.nova-lite-v1:0",
      "region": "us-east-2"
    },
    {
      "area": "us",
      "model": "amazon.nova-micro-v1:0",
      "region": "us-east-2"
    },
    {
      "area": "us",
      "model": "amazon.nova-pro-v1:0",
      "region": "us-east-2"
    },
    {
      "area": "us",
      "model": "anthropic.claude-3-5-haiku-20241022-v1:0",
      "region": "us-east-2"
    },
    {
      "area": "us",
      "model": "anthropic.claude-3-5-sonnet-20241022-v2:0",
      "region": "us-east-2"
    },
    {
      "area": "us",
      "model": "anthropic.claude-3-haiku-20240307-v1:0",
      "region": "us-east-2"
    }
  ],
  "us-west-2": [
    {
      "area": "us",
      "model": "amazon.nova-lite-v1:0",
      "region": "us-west-2"
    },
    {
      "area": "us",
      "model": "amazon.nova-micro-v1:0",
      "region": "us-west-2"
    },
    {
      "area": "us",
      "model": "amazon.nova-pro-v1:0",
      "region": "us-west-2"
    },
    {
      "area": "us",
      "model": "anthropic.claude-3-5-haiku-20241022-v1:0",
      "region": "us-west-2"
    },
    {
      "area": "us",
      "model": "anthropic.claude-3-5-sonnet-20240620-v1:0",
      "region": "us-west-2"
    },
    {
      "area": "us",
      "model": "anthropic.claude-3-5-sonnet-20241022-v2:0",
      "region": "us-west-2"
    },
    {
      "area": "us",
      "model": "anthropic.claude-3-haiku-20240307-v1:0",
      "region": "us-west-2"
    },
    {
      "area": "us",
      "model": "anthropic.claude-3-opus-20240229-v1:0",
      "region": "us-west-2"
    },
    {
      "area": "us",
      "model": "anthropic.claude-3-sonnet-20240229-v1:0",
      "region": "us-west-2"
    }
  ],
  "ap-south-1": [
    {
      "area": "apac",
      "model": "anthropic.claude-3-5-sonnet-20240620-v1:0",
      "region": "ap-south-1"
    },
    {
      "area": "apac",
      "model": "anthropic.claude-3-5-sonnet-20241022-v2:0",
      "region": "ap-south-1"
    },
    {
      "area": "apac",
      "model": "anthropic.claude-3-haiku-20240307-v1:0",
      "region": "ap-south-1"
    },
    {
      "area": "apac",
      "model": "anthropic.claude-3-sonnet-20240229-v1:0",
      "region": "ap-south-1"
    }
  ],
  "eu-central-1": [
    {
      "area": "eu",
      "model": "anthropic.claude-3-5-sonnet-20240620-v1:0",
      "region": "eu-central-1"
    },
    {
      "area": "eu",
      "model": "anthropic.claude-3-haiku-20240307-v1:0",
      "region": "eu-central-1"
    },
    {
      "area": "eu",
      "model": "anthropic.claude-3-sonnet-20240229-v1:0",
      "region": "eu-central-1"
    }
  ],
  "eu-west-1": [
    {
      "area": "eu",
      "model": "anthropic.claude-3-5-sonnet-20240620-v1:0",
      "region": "eu-west-1"
    },
    {
      "area": "eu",
      "model": "anthropic.claude-3-haiku-20240307-v1:0",
      "region": "eu-west-1"
    },
    {
      "area": "eu",
      "model": "anthropic.claude-3-sonnet-20240229-v1:0",
      "region": "eu-west-1"
    }
  ],
  "eu-west-3": [
    {
      "area": "eu",
      "model": "anthropic.claude-3-5-sonnet-20240620-v1:0",
      "region": "eu-west-3"
    },
    {
      "area": "eu",
      "model": "anthropic.claude-3-haiku-20240307-v1:0",
      "region": "eu-west-3"
    },
    {
      "area": "eu",
      "model": "anthropic.claude-3-sonnet-20240229-v1:0",
      "region": "eu-west-3"
    }
  ],
  "ap-northeast-1": [
    {
      "area": "apac",
      "model": "anthropic.claude-3-5-sonnet-20240620-v1:0",
      "region": "ap-northeast-1"
    },
    {
      "area": "apac",
      "model": "anthropic.claude-3-5-sonnet-20241022-v2:0",
      "region": "ap-northeast-1"
    },
    {
      "area": "apac",
      "model": "anthropic.claude-3-haiku-20240307-v1:0",
      "region": "ap-northeast-1"
    },
    {
      "area": "apac",
      "model": "anthropic.claude-3-sonnet-20240229-v1:0",
      "region": "ap-northeast-1"
    }
  ],
  "ap-northeast-2": [
    {
      "area": "apac",
      "model": "anthropic.claude-3-5-sonnet-20240620-v1:0",
      "region": "ap-northeast-2"
    },
    {
      "area": "apac",
      "model": "anthropic.claude-3-5-sonnet-20241022-v2:0",
      "region": "ap-northeast-2"
    },
    {
      "area": "apac",
      "model": "anthropic.claude-3-haiku-20240307-v1:0",
      "region": "ap-northeast-2"
    },
    {
      "area": "apac",
      "model": "anthropic.claude-3-sonnet-20240229-v1:0",
      "region": "ap-northeast-2"
    }
  ],
  "ap-northeast-3": [
    {
      "area": "apac",
      "model": "anthropic.claude-3-5-sonnet-20241022-v2:0",
      "region": "ap-northeast-3"
    }
  ],
  "ap-southeast-1": [
    {
      "area": "apac",
      "model": "anthropic.claude-3-5-sonnet-20240620-v1:0",
      "region": "ap-southeast-1"
    },
    {
      "area": "apac",
      "model": "anthropic.claude-3-5-sonnet-20241022-v2:0",
      "region": "ap-southeast-1"
    },
    {
      "area": "apac",
      "model": "anthropic.claude-3-haiku-20240307-v1:0",
      "region": "ap-southeast-1"
    },
    {
      "area": "apac",
      "model": "anthropic.claude-3-sonnet-20240229-v1:0",
      "region": "ap-southeast-1"
    }
  ],
  "ap-southeast-2": [
    {
      "area": "apac",
      "model": "anthropic.claude-3-5-sonnet-20240620-v1:0",
      "region": "ap-southeast-2"
    },
    {
      "area": "apac",
      "model": "anthropic.claude-3-5-sonnet-20241022-v2:0",
      "region": "ap-southeast-2"
    },
    {
      "area": "apac",
      "model": "anthropic.claude-3-haiku-20240307-v1:0",
      "region": "ap-southeast-2"
    },
    {
      "area": "apac",
      "model": "anthropic.claude-3-sonnet-20240229-v1:0",
      "region": "ap-southeast-2"
    }
  ]
}

@statefb
Copy link
Contributor

statefb commented Feb 25, 2025

@sztm Thank you for the detailed reporting. We'd be appreciated if you could create a PR, Thank you.

@statefb statefb added enhancement New feature or request and removed needs-triage labels Feb 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants