Bases: BaseImageQueryModelDriver
Source code in griptape/drivers/image_query_model/bedrock_claude_image_query_model_driver.py
| @define
class BedrockClaudeImageQueryModelDriver(BaseImageQueryModelDriver):
ANTHROPIC_VERSION = "bedrock-2023-05-31" # static string for AWS: https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-anthropic-claude-messages.html#api-inference-examples-claude-multimodal-code-example
def image_query_request_parameters(self, query: str, images: list[ImageArtifact], max_tokens: int) -> dict:
content = [self._construct_image_message(image) for image in images]
content.append(self._construct_text_message(query))
messages = self._construct_messages(content)
input_params = {"messages": messages, "anthropic_version": self.ANTHROPIC_VERSION, "max_tokens": max_tokens}
return input_params
def process_output(self, output: dict) -> TextArtifact:
content_blocks = output["content"]
if len(content_blocks) < 1:
raise ValueError("Response content is empty")
text_content = content_blocks[0]["text"]
return TextArtifact(text_content)
def _construct_image_message(self, image_data: ImageArtifact) -> dict:
data = image_data.base64
type = image_data.mime_type
return {"source": {"data": data, "media_type": type, "type": "base64"}, "type": "image"}
def _construct_text_message(self, query: str) -> dict:
return {"text": query, "type": "text"}
def _construct_messages(self, content: list) -> list:
return [{"content": content, "role": "user"}]
|
ANTHROPIC_VERSION = 'bedrock-2023-05-31'
class-attribute
instance-attribute
image_query_request_parameters(query, images, max_tokens)
Source code in griptape/drivers/image_query_model/bedrock_claude_image_query_model_driver.py
| def image_query_request_parameters(self, query: str, images: list[ImageArtifact], max_tokens: int) -> dict:
content = [self._construct_image_message(image) for image in images]
content.append(self._construct_text_message(query))
messages = self._construct_messages(content)
input_params = {"messages": messages, "anthropic_version": self.ANTHROPIC_VERSION, "max_tokens": max_tokens}
return input_params
|
process_output(output)
Source code in griptape/drivers/image_query_model/bedrock_claude_image_query_model_driver.py
| def process_output(self, output: dict) -> TextArtifact:
content_blocks = output["content"]
if len(content_blocks) < 1:
raise ValueError("Response content is empty")
text_content = content_blocks[0]["text"]
return TextArtifact(text_content)
|