diff --git a/packages/phoenix-evals/src/phoenix/evals/models/bedrock.py b/packages/phoenix-evals/src/phoenix/evals/models/bedrock.py index 1234980e854..a1874c5ebe8 100644 --- a/packages/phoenix-evals/src/phoenix/evals/models/bedrock.py +++ b/packages/phoenix-evals/src/phoenix/evals/models/bedrock.py @@ -1,3 +1,4 @@ +import asyncio import json import logging from dataclasses import dataclass, field @@ -21,8 +22,9 @@ class BedrockModel(BaseModel): AWS API are dynamically throttled when encountering rate limit errors. Requires the `boto3` package to be installed. - Supports Async: ❌ - `boto3` does not support async calls + Supports Async: 🟡 + `boto3` does not support async calls, but the syncrhonous call is wrapped in an + executor to allow for concurrent calls. Args: model_id (str): The model name to use. @@ -109,7 +111,8 @@ def _generate(self, prompt: str, **kwargs: Dict[str, Any]) -> str: return self._parse_output(response) or "" async def _async_generate(self, prompt: str, **kwargs: Dict[str, Any]) -> str: - return self._generate(prompt, **kwargs) + loop = asyncio.get_event_loop() + return await loop.run_in_executor(None, self._generate, prompt, **kwargs) def _rate_limited_completion(self, **kwargs: Any) -> Any: """Use tenacity to retry the completion call."""