aidial_adapter_bedrock/app.py (35 lines of code) (raw):

from aidial_sdk import DIALApp from aidial_sdk.telemetry.types import TelemetryConfig from aidial_adapter_bedrock.adapter_deployments import AdapterDeployments from aidial_adapter_bedrock.chat_completion import BedrockChatCompletion from aidial_adapter_bedrock.dial_api.response import ModelObject, ModelsResponse from aidial_adapter_bedrock.embeddings import BedrockEmbeddings from aidial_adapter_bedrock.server.exceptions import dial_exception_decorator from aidial_adapter_bedrock.utils.env import ( get_aws_default_region, get_str_dict, ) from aidial_adapter_bedrock.utils.log_config import configure_loggers AWS_DEFAULT_REGION = get_aws_default_region() app = DIALApp( description="AWS Bedrock adapter for DIAL API", telemetry_config=TelemetryConfig(), add_healthcheck=True, ) # NOTE: configuring logger after the DIAL telemetry is initialized, # because it may have configured the root logger on its own via # logging=True configuration. configure_loggers() deployments = AdapterDeployments.create( compat_mapping=get_str_dict("COMPATIBILITY_MAPPING") ) @app.get("/openai/models") @dial_exception_decorator async def models(): return ModelsResponse( data=list( map(ModelObject.chat_completions, deployments.chat_completions) ) + list(map(ModelObject.embeddings, deployments.embeddings)) ) for deployment_id, deployment in deployments.chat_completions.items(): app.add_chat_completion(deployment_id, BedrockChatCompletion(deployment)) for deployment_id, deployment in deployments.embeddings.items(): app.add_embeddings(deployment_id, BedrockEmbeddings(deployment))