amazon_bedrock
__all__ = ['AmazonBedrockCohereEmbeddingDriver', 'AmazonBedrockTitanEmbeddingDriver']
module-attribute
Bases:
BaseEmbeddingDriver
Attributes
Name | Type | Description |
---|---|---|
model | str | Embedding model name. Defaults to DEFAULT_MODEL. |
input_type | str | Defaults to search_query . Prepends special tokens to differentiate each type from one another: search_document when you encode documents for embeddings that you store in a vector database. search_query when querying your vector DB to find relevant documents. |
session | Session | Optionally provide custom boto3.Session . |
tokenizer | BaseTokenizer | Optionally provide custom BedrockCohereTokenizer . |
client | BedrockRuntimeClient | Optionally provide custom bedrock-runtime client. |
Source Code in griptape/drivers/embedding/amazon_bedrock_cohere_embedding_driver.py
@define class AmazonBedrockCohereEmbeddingDriver(BaseEmbeddingDriver): """Amazon Bedrock Cohere Embedding Driver. Attributes: model: Embedding model name. Defaults to DEFAULT_MODEL. input_type: Defaults to `search_query`. Prepends special tokens to differentiate each type from one another: `search_document` when you encode documents for embeddings that you store in a vector database. `search_query` when querying your vector DB to find relevant documents. session: Optionally provide custom `boto3.Session`. tokenizer: Optionally provide custom `BedrockCohereTokenizer`. client: Optionally provide custom `bedrock-runtime` client. """ DEFAULT_MODEL = "cohere.embed-english-v3" model: str = field(default=DEFAULT_MODEL, kw_only=True) input_type: str = field(default="search_query", kw_only=True) session: boto3.Session = field(default=Factory(lambda: import_optional_dependency("boto3").Session()), kw_only=True) tokenizer: BaseTokenizer = field( default=Factory(lambda self: AmazonBedrockTokenizer(model=self.model), takes_self=True), kw_only=True, ) _client: Optional[BedrockRuntimeClient] = field( default=None, kw_only=True, alias="client", metadata={"serializable": False} ) @lazy_property() def client(self) -> BedrockRuntimeClient: return self.session.client("bedrock-runtime") def try_embed_chunk(self, chunk: str, **kwargs) -> list[float]: payload = {"input_type": self.input_type, "texts": [chunk]} response = self.client.invoke_model( body=json.dumps(payload), modelId=self.model, accept="*/*", contentType="application/json", ) response_body = json.loads(response.get("body").read()) return response_body.get("embeddings")[0]
DEFAULT_MODEL = 'cohere.embed-english-v3'
class-attribute instance-attribute_client = field(default=None, kw_only=True, alias='client', metadata={'serializable': False})
class-attribute instance-attributeinput_type = field(default='search_query', kw_only=True)
class-attribute instance-attributemodel = field(default=DEFAULT_MODEL, kw_only=True)
class-attribute instance-attributesession = field(default=Factory(lambda: import_optional_dependency('boto3').Session()), kw_only=True)
class-attribute instance-attributetokenizer = field(default=Factory(lambda self: AmazonBedrockTokenizer(model=self.model), takes_self=True), kw_only=True)
class-attribute instance-attribute
client()
Source Code in griptape/drivers/embedding/amazon_bedrock_cohere_embedding_driver.py
@lazy_property() def client(self) -> BedrockRuntimeClient: return self.session.client("bedrock-runtime")
try_embed_chunk(chunk, **kwargs)
Source Code in griptape/drivers/embedding/amazon_bedrock_cohere_embedding_driver.py
def try_embed_chunk(self, chunk: str, **kwargs) -> list[float]: payload = {"input_type": self.input_type, "texts": [chunk]} response = self.client.invoke_model( body=json.dumps(payload), modelId=self.model, accept="*/*", contentType="application/json", ) response_body = json.loads(response.get("body").read()) return response_body.get("embeddings")[0]
AmazonBedrockTitanEmbeddingDriver
Bases:
BaseEmbeddingDriver
Attributes
Name | Type | Description |
---|---|---|
model | str | Embedding model name. Defaults to DEFAULT_MODEL. |
tokenizer | BaseTokenizer | Optionally provide custom BedrockTitanTokenizer . |
session | Session | Optionally provide custom boto3.Session . |
client | BedrockRuntimeClient | Optionally provide custom bedrock-runtime client. |
Source Code in griptape/drivers/embedding/amazon_bedrock_titan_embedding_driver.py
@define class AmazonBedrockTitanEmbeddingDriver(BaseEmbeddingDriver): """Amazon Bedrock Titan Embedding Driver. Attributes: model: Embedding model name. Defaults to DEFAULT_MODEL. tokenizer: Optionally provide custom `BedrockTitanTokenizer`. session: Optionally provide custom `boto3.Session`. client: Optionally provide custom `bedrock-runtime` client. """ DEFAULT_MODEL = "amazon.titan-embed-text-v1" model: str = field(default=DEFAULT_MODEL, kw_only=True, metadata={"serializable": True}) session: boto3.Session = field(default=Factory(lambda: import_optional_dependency("boto3").Session()), kw_only=True) tokenizer: BaseTokenizer = field( default=Factory(lambda self: AmazonBedrockTokenizer(model=self.model), takes_self=True), kw_only=True, ) _client: Optional[BedrockRuntimeClient] = field( default=None, kw_only=True, alias="client", metadata={"serializable": False} ) @lazy_property() def client(self) -> BedrockRuntimeClient: return self.session.client("bedrock-runtime") def try_embed_artifact(self, artifact: TextArtifact | ImageArtifact, **kwargs) -> list[float]: if isinstance(artifact, TextArtifact): return self.try_embed_chunk(artifact.value) return self._invoke_model({"inputImage": base64.b64encode(artifact.value).decode()})["embedding"] def try_embed_chunk(self, chunk: str, **kwargs) -> list[float]: return self._invoke_model( { "inputText": chunk, } )["embedding"] def _invoke_model(self, payload: dict) -> dict[str, Any]: response = self.client.invoke_model( body=json.dumps(payload), modelId=self.model, accept="application/json", contentType="application/json", ) return json.loads(response.get("body").read())
DEFAULT_MODEL = 'amazon.titan-embed-text-v1'
class-attribute instance-attribute_client = field(default=None, kw_only=True, alias='client', metadata={'serializable': False})
class-attribute instance-attributemodel = field(default=DEFAULT_MODEL, kw_only=True, metadata={'serializable': True})
class-attribute instance-attributesession = field(default=Factory(lambda: import_optional_dependency('boto3').Session()), kw_only=True)
class-attribute instance-attributetokenizer = field(default=Factory(lambda self: AmazonBedrockTokenizer(model=self.model), takes_self=True), kw_only=True)
class-attribute instance-attribute
_invoke_model(payload)
Source Code in griptape/drivers/embedding/amazon_bedrock_titan_embedding_driver.py
def _invoke_model(self, payload: dict) -> dict[str, Any]: response = self.client.invoke_model( body=json.dumps(payload), modelId=self.model, accept="application/json", contentType="application/json", ) return json.loads(response.get("body").read())
client()
Source Code in griptape/drivers/embedding/amazon_bedrock_titan_embedding_driver.py
@lazy_property() def client(self) -> BedrockRuntimeClient: return self.session.client("bedrock-runtime")
try_embed_artifact(artifact, **kwargs)
Source Code in griptape/drivers/embedding/amazon_bedrock_titan_embedding_driver.py
def try_embed_artifact(self, artifact: TextArtifact | ImageArtifact, **kwargs) -> list[float]: if isinstance(artifact, TextArtifact): return self.try_embed_chunk(artifact.value) return self._invoke_model({"inputImage": base64.b64encode(artifact.value).decode()})["embedding"]
try_embed_chunk(chunk, **kwargs)
Source Code in griptape/drivers/embedding/amazon_bedrock_titan_embedding_driver.py
def try_embed_chunk(self, chunk: str, **kwargs) -> list[float]: return self._invoke_model( { "inputText": chunk, } )["embedding"]
- On this page
- AmazonBedrockTitanEmbeddingDriver
← Prev
amazon_bedrock_titan_embedding_driver
↑ Up
embedding
Next →
amazon_sagemaker_jumpstart_embedding_driver
Could this page be better? Report a problem or suggest an addition!