in packages/constructs/L3/ai/gaia-l3-construct/lib/shared/layers/python-sdk/python/genai_core/models.py [0:0]
def list_bedrock_models():
try:
bedrock = genai_core.clients.get_bedrock_client(service_name="bedrock")
if not bedrock:
return None
response = bedrock.list_foundation_models(
byInferenceType=genai_core.types.InferenceType.ON_DEMAND.value,
byOutputModality=genai_core.types.Modality.TEXT.value,
)
bedrock_models = [
m
for m in response.get("modelSummaries", [])
if m.get("modelLifecycle", {}).get("status")
== genai_core.types.ModelStatus.ACTIVE.value
]
models = [
{
"provider": Provider.BEDROCK.value,
"name": model["modelId"],
"streaming": model.get("responseStreamingSupported", False),
"inputModalities": model["inputModalities"],
"outputModalities": model["outputModalities"],
"interface": ModelInterface.LANGCHIAN.value,
"ragSupported": True,
}
for model in bedrock_models
# Exclude embeddings and stable diffusion models
if "inputModalities" in model
and "outputModalities" in model
and Modality.EMBEDDING.value not in model.get("outputModalities", [])
and Modality.IMAGE.value not in model.get("outputModalities", [])
]
return models
except Exception as e:
print(f"Error listing Bedrock models: {e}")
return None