Parse Bedrock embedding response to EmbedderOutput format.
(self, response: Any)
| 274 | return str(response) |
| 275 | |
| 276 | def parse_embedding_response(self, response: Any) -> EmbedderOutput: |
| 277 | """Parse Bedrock embedding response to EmbedderOutput format.""" |
| 278 | from adalflow.core.types import Embedding |
| 279 | |
| 280 | try: |
| 281 | embedding_data: List[Embedding] = [] |
| 282 | |
| 283 | if isinstance(response, dict) and "embeddings" in response: |
| 284 | embeddings = response.get("embeddings") or [] |
| 285 | embedding_data = [ |
| 286 | Embedding(embedding=emb, index=i) for i, emb in enumerate(embeddings) |
| 287 | ] |
| 288 | elif isinstance(response, dict) and "embedding" in response: |
| 289 | emb = response.get("embedding") or [] |
| 290 | embedding_data = [Embedding(embedding=emb, index=0)] |
| 291 | else: |
| 292 | raise ValueError(f"Unexpected embedding response type: {type(response)}") |
| 293 | |
| 294 | return EmbedderOutput(data=embedding_data, error=None, raw_response=response) |
| 295 | except Exception as e: |
| 296 | log.error(f"Error parsing Bedrock embedding response: {e}") |
| 297 | return EmbedderOutput(data=[], error=str(e), raw_response=response) |
| 298 | |
| 299 | @backoff.on_exception( |
| 300 | backoff.expo, |
nothing calls this directly
no outgoing calls
no test coverage detected