bedrock.py 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. import boto3
  2. from openhands.core.logger import openhands_logger as logger
  3. def list_foundation_models(
  4. aws_region_name: str, aws_access_key_id: str, aws_secret_access_key: str
  5. ) -> list[str]:
  6. try:
  7. # The AWS bedrock model id is not queried, if no AWS parameters are configured.
  8. client = boto3.client(
  9. service_name='bedrock',
  10. region_name=aws_region_name,
  11. aws_access_key_id=aws_access_key_id,
  12. aws_secret_access_key=aws_secret_access_key,
  13. )
  14. foundation_models_list = client.list_foundation_models(
  15. byOutputModality='TEXT', byInferenceType='ON_DEMAND'
  16. )
  17. model_summaries = foundation_models_list['modelSummaries']
  18. return ['bedrock/' + model['modelId'] for model in model_summaries]
  19. except Exception as err:
  20. logger.warning(
  21. '%s. Please config AWS_REGION_NAME AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY'
  22. ' if you want use bedrock model.',
  23. err,
  24. )
  25. return []
  26. def remove_error_modelId(model_list):
  27. return list(filter(lambda m: not m.startswith('bedrock'), model_list))