Spaces:
Running
Running
Download src/lib/embeddings/client_bedrock.py from Leon4gr45/brain: direct link, hf CLI and curl.
- Browser
- Download file 1.24 kB
-
https://huggingface.co/spaces/Leon4gr45/brain/resolve/main/src/lib/embeddings/client_bedrock.py
- Command line
-
hf download hf://spaces/Leon4gr45/brain/src/lib/embeddings/client_bedrock.py
-
curl -L -o client_bedrock.py https://huggingface.co/spaces/Leon4gr45/brain/resolve/main/src/lib/embeddings/client_bedrock.py
1.24 kB
| import json | |
| import boto3 | |
| from src.adapters.interfaces.embeddings import EmbeddingsClient | |
| from src.config import config | |
| class BedrockEmbeddingsClient(EmbeddingsClient): | |
| def __init__(self): | |
| session = boto3.Session( | |
| aws_access_key_id=config.bedrock.access_key_id, | |
| aws_secret_access_key=config.bedrock.secret_access_key, | |
| aws_session_token=config.bedrock.session_token, | |
| region_name=config.bedrock.region, | |
| ) | |
| self.client = session.client("bedrock-runtime") | |
| self.model = config.bedrock.embedding_model | |
| def _embed_one(self, text: str) -> list[float]: | |
| body = json.dumps({"inputText": text}) | |
| response = self.client.invoke_model( | |
| modelId=self.model, | |
| body=body, | |
| contentType="application/json", | |
| accept="application/json", | |
| ) | |
| payload = json.loads(response["body"].read()) | |
| return payload["embedding"] | |
| def embed_text(self, text: str) -> list[float]: | |
| return self._embed_one(text) | |
| def embed_texts(self, texts: list[str]) -> list[list[float]]: | |
| return [self._embed_one(text) for text in texts] | |
| _embeddings_bedrock_client = BedrockEmbeddingsClient() | |