mirascope.core.bedrock.tool | Mirascope
MirascopeLilypad

mirascope.core.bedrock.tool

Module tool

The BedrockTool class for easy tool usage with Bedrock LLM calls.

Usage

Class GenerateBedrockStrictToolJsonSchema

Bases:

GenerateJsonSchemaNoTitles

Class BedrockToolConfig

A tool configuration for Bedrock-specific features.

Bases:

ToolConfig

Class BedrockTool

A class for defining tools for Bedrock LLM calls.

Example:

from mirascope.core import prompt_template
from mirascope.core.bedrock import bedrock_call


def format_book(title: str, author: str) -> str:
    return f"{title} by {author}"


@bedrock_call("anthropic.claude-3-haiku-20240307-v1:0", tools=[format_book])
@prompt_template("Recommend a {genre} book")
def recommend_book(genre: str):
    ...


response = recommend_book("fantasy")
if tool := response.tool:  # returns an `BedrockTool` instance
    print(tool.call())

Bases:

BaseTool

Attributes

NameTypeDescription
tool_callSkipJsonSchema[ToolUseBlockContentTypeDef]-

Function tool_schema

Constructs a JSON Schema tool schema from the BaseModel schema defined.

Example:

from mirascope.core.bedrock import BedrockTool


def format_book(title: str, author: str) -> str:
    return f"{title} by {author}"


tool_type = BedrockTool.type_from_fn(format_book)
print(tool_type.tool_schema())  # prints the Bedrock-specific tool schema

Parameters

NameTypeDescription
clsAny-

Returns

TypeDescription
ToolTypeDef-

Function from_tool_call

Constructs an BedrockTool instance from a tool_call.

Parameters

NameTypeDescription
clsAny-
tool_callToolUseBlockContentTypeDefThe Bedrock tool call from which to construct this tool instance.

Returns

TypeDescription
BedrockTool-