Skip to content

Config

__all__ = ['BaseConfig', 'BaseStructureConfig', 'StructureConfig', 'OpenAiStructureConfig', 'AzureOpenAiStructureConfig', 'AmazonBedrockStructureConfig', 'AnthropicStructureConfig', 'GoogleStructureConfig', 'CohereStructureConfig'] module-attribute

AmazonBedrockStructureConfig

Bases: StructureConfig

Source code in griptape/config/amazon_bedrock_structure_config.py
@define()
class AmazonBedrockStructureConfig(StructureConfig):
    prompt_driver: BasePromptDriver = field(
        default=Factory(
            lambda: AmazonBedrockPromptDriver(model="anthropic.claude-3-5-sonnet-20240620-v1:0", stream=False)
        ),
        metadata={"serializable": True},
    )
    image_generation_driver: BaseImageGenerationDriver = field(
        default=Factory(
            lambda: AmazonBedrockImageGenerationDriver(
                model="amazon.titan-image-generator-v1",
                image_generation_model_driver=BedrockTitanImageGenerationModelDriver(),
            )
        ),
        metadata={"serializable": True},
    )
    image_query_driver: BaseImageGenerationDriver = field(
        default=Factory(
            lambda: AmazonBedrockImageQueryDriver(
                model="anthropic.claude-3-5-sonnet-20240620-v1:0",
                image_query_model_driver=BedrockClaudeImageQueryModelDriver(),
            )
        ),
        metadata={"serializable": True},
    )
    embedding_driver: BaseEmbeddingDriver = field(
        default=Factory(lambda: AmazonBedrockTitanEmbeddingDriver(model="amazon.titan-embed-text-v1")),
        metadata={"serializable": True},
    )
    vector_store_driver: BaseVectorStoreDriver = field(
        default=Factory(
            lambda: LocalVectorStoreDriver(
                embedding_driver=AmazonBedrockTitanEmbeddingDriver(model="amazon.titan-embed-text-v1")
            )
        ),
        metadata={"serializable": True},
    )

embedding_driver: BaseEmbeddingDriver = field(default=Factory(lambda: AmazonBedrockTitanEmbeddingDriver(model='amazon.titan-embed-text-v1')), metadata={'serializable': True}) class-attribute instance-attribute

image_generation_driver: BaseImageGenerationDriver = field(default=Factory(lambda: AmazonBedrockImageGenerationDriver(model='amazon.titan-image-generator-v1', image_generation_model_driver=BedrockTitanImageGenerationModelDriver())), metadata={'serializable': True}) class-attribute instance-attribute

image_query_driver: BaseImageGenerationDriver = field(default=Factory(lambda: AmazonBedrockImageQueryDriver(model='anthropic.claude-3-5-sonnet-20240620-v1:0', image_query_model_driver=BedrockClaudeImageQueryModelDriver())), metadata={'serializable': True}) class-attribute instance-attribute

prompt_driver: BasePromptDriver = field(default=Factory(lambda: AmazonBedrockPromptDriver(model='anthropic.claude-3-5-sonnet-20240620-v1:0', stream=False)), metadata={'serializable': True}) class-attribute instance-attribute

vector_store_driver: BaseVectorStoreDriver = field(default=Factory(lambda: LocalVectorStoreDriver(embedding_driver=AmazonBedrockTitanEmbeddingDriver(model='amazon.titan-embed-text-v1'))), metadata={'serializable': True}) class-attribute instance-attribute

AnthropicStructureConfig

Bases: StructureConfig

Source code in griptape/config/anthropic_structure_config.py
@define
class AnthropicStructureConfig(StructureConfig):
    prompt_driver: BasePromptDriver = field(
        default=Factory(lambda: AnthropicPromptDriver(model="claude-3-5-sonnet-20240620")),
        metadata={"serializable": True},
        kw_only=True,
    )
    embedding_driver: BaseEmbeddingDriver = field(
        default=Factory(lambda: VoyageAiEmbeddingDriver(model="voyage-large-2")),
        metadata={"serializable": True},
        kw_only=True,
    )
    vector_store_driver: BaseVectorStoreDriver = field(
        default=Factory(
            lambda: LocalVectorStoreDriver(embedding_driver=VoyageAiEmbeddingDriver(model="voyage-large-2"))
        ),
        kw_only=True,
        metadata={"serializable": True},
    )
    image_query_driver: BaseImageQueryDriver = field(
        default=Factory(lambda: AnthropicImageQueryDriver(model="claude-3-opus-20240229")),
        kw_only=True,
        metadata={"serializable": True},
    )

embedding_driver: BaseEmbeddingDriver = field(default=Factory(lambda: VoyageAiEmbeddingDriver(model='voyage-large-2')), metadata={'serializable': True}, kw_only=True) class-attribute instance-attribute

image_query_driver: BaseImageQueryDriver = field(default=Factory(lambda: AnthropicImageQueryDriver(model='claude-3-opus-20240229')), kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

prompt_driver: BasePromptDriver = field(default=Factory(lambda: AnthropicPromptDriver(model='claude-3-5-sonnet-20240620')), metadata={'serializable': True}, kw_only=True) class-attribute instance-attribute

vector_store_driver: BaseVectorStoreDriver = field(default=Factory(lambda: LocalVectorStoreDriver(embedding_driver=VoyageAiEmbeddingDriver(model='voyage-large-2'))), kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

AzureOpenAiStructureConfig

Bases: StructureConfig

Azure OpenAI Structure Configuration.

Attributes:

Name Type Description
azure_endpoint str

The endpoint for the Azure OpenAI instance.

azure_ad_token Optional[str]

An optional Azure Active Directory token.

azure_ad_token_provider Optional[Callable[[], str]]

An optional Azure Active Directory token provider.

api_key Optional[str]

An optional Azure API key.

prompt_driver BasePromptDriver

An Azure OpenAI Chat Prompt Driver.

image_generation_driver BaseImageGenerationDriver

An Azure OpenAI Image Generation Driver.

image_query_driver BaseImageQueryDriver

An Azure OpenAI Vision Image Query Driver.

embedding_driver BaseEmbeddingDriver

An Azure OpenAI Embedding Driver.

vector_store_driver BaseVectorStoreDriver

A Local Vector Store Driver.

Source code in griptape/config/azure_openai_structure_config.py
@define
class AzureOpenAiStructureConfig(StructureConfig):
    """Azure OpenAI Structure Configuration.

    Attributes:
        azure_endpoint: The endpoint for the Azure OpenAI instance.
        azure_ad_token: An optional Azure Active Directory token.
        azure_ad_token_provider: An optional Azure Active Directory token provider.
        api_key: An optional Azure API key.
        prompt_driver: An Azure OpenAI Chat Prompt Driver.
        image_generation_driver: An Azure OpenAI Image Generation Driver.
        image_query_driver: An Azure OpenAI Vision Image Query Driver.
        embedding_driver: An Azure OpenAI Embedding Driver.
        vector_store_driver: A Local Vector Store Driver.
    """

    azure_endpoint: str = field(kw_only=True, metadata={"serializable": True})
    azure_ad_token: Optional[str] = field(kw_only=True, default=None, metadata={"serializable": False})
    azure_ad_token_provider: Optional[Callable[[], str]] = field(
        kw_only=True, default=None, metadata={"serializable": False}
    )
    api_key: Optional[str] = field(kw_only=True, default=None, metadata={"serializable": False})
    prompt_driver: BasePromptDriver = field(
        default=Factory(
            lambda self: AzureOpenAiChatPromptDriver(
                model="gpt-4o",
                azure_endpoint=self.azure_endpoint,
                api_key=self.api_key,
                azure_ad_token=self.azure_ad_token,
                azure_ad_token_provider=self.azure_ad_token_provider,
            ),
            takes_self=True,
        ),
        metadata={"serializable": True},
        kw_only=True,
    )
    image_generation_driver: BaseImageGenerationDriver = field(
        default=Factory(
            lambda self: AzureOpenAiImageGenerationDriver(
                model="dall-e-2",
                azure_endpoint=self.azure_endpoint,
                api_key=self.api_key,
                azure_ad_token=self.azure_ad_token,
                azure_ad_token_provider=self.azure_ad_token_provider,
                image_size="512x512",
            ),
            takes_self=True,
        ),
        metadata={"serializable": True},
        kw_only=True,
    )
    image_query_driver: BaseImageQueryDriver = field(
        default=Factory(
            lambda self: AzureOpenAiImageQueryDriver(
                model="gpt-4o",
                azure_endpoint=self.azure_endpoint,
                api_key=self.api_key,
                azure_ad_token=self.azure_ad_token,
                azure_ad_token_provider=self.azure_ad_token_provider,
            ),
            takes_self=True,
        ),
        metadata={"serializable": True},
        kw_only=True,
    )
    embedding_driver: BaseEmbeddingDriver = field(
        default=Factory(
            lambda self: AzureOpenAiEmbeddingDriver(
                model="text-embedding-3-small",
                azure_endpoint=self.azure_endpoint,
                api_key=self.api_key,
                azure_ad_token=self.azure_ad_token,
                azure_ad_token_provider=self.azure_ad_token_provider,
            ),
            takes_self=True,
        ),
        metadata={"serializable": True},
        kw_only=True,
    )
    vector_store_driver: BaseVectorStoreDriver = field(
        default=Factory(lambda self: LocalVectorStoreDriver(embedding_driver=self.embedding_driver), takes_self=True),
        metadata={"serializable": True},
        kw_only=True,
    )

api_key: Optional[str] = field(kw_only=True, default=None, metadata={'serializable': False}) class-attribute instance-attribute

azure_ad_token: Optional[str] = field(kw_only=True, default=None, metadata={'serializable': False}) class-attribute instance-attribute

azure_ad_token_provider: Optional[Callable[[], str]] = field(kw_only=True, default=None, metadata={'serializable': False}) class-attribute instance-attribute

azure_endpoint: str = field(kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

embedding_driver: BaseEmbeddingDriver = field(default=Factory(lambda self: AzureOpenAiEmbeddingDriver(model='text-embedding-3-small', azure_endpoint=self.azure_endpoint, api_key=self.api_key, azure_ad_token=self.azure_ad_token, azure_ad_token_provider=self.azure_ad_token_provider), takes_self=True), metadata={'serializable': True}, kw_only=True) class-attribute instance-attribute

image_generation_driver: BaseImageGenerationDriver = field(default=Factory(lambda self: AzureOpenAiImageGenerationDriver(model='dall-e-2', azure_endpoint=self.azure_endpoint, api_key=self.api_key, azure_ad_token=self.azure_ad_token, azure_ad_token_provider=self.azure_ad_token_provider, image_size='512x512'), takes_self=True), metadata={'serializable': True}, kw_only=True) class-attribute instance-attribute

image_query_driver: BaseImageQueryDriver = field(default=Factory(lambda self: AzureOpenAiImageQueryDriver(model='gpt-4o', azure_endpoint=self.azure_endpoint, api_key=self.api_key, azure_ad_token=self.azure_ad_token, azure_ad_token_provider=self.azure_ad_token_provider), takes_self=True), metadata={'serializable': True}, kw_only=True) class-attribute instance-attribute

prompt_driver: BasePromptDriver = field(default=Factory(lambda self: AzureOpenAiChatPromptDriver(model='gpt-4o', azure_endpoint=self.azure_endpoint, api_key=self.api_key, azure_ad_token=self.azure_ad_token, azure_ad_token_provider=self.azure_ad_token_provider), takes_self=True), metadata={'serializable': True}, kw_only=True) class-attribute instance-attribute

vector_store_driver: BaseVectorStoreDriver = field(default=Factory(lambda self: LocalVectorStoreDriver(embedding_driver=self.embedding_driver), takes_self=True), metadata={'serializable': True}, kw_only=True) class-attribute instance-attribute

BaseConfig

Bases: SerializableMixin, ABC

Source code in griptape/config/base_config.py
@define
class BaseConfig(SerializableMixin, ABC): ...

BaseStructureConfig

Bases: BaseConfig, ABC

Source code in griptape/config/base_structure_config.py
@define
class BaseStructureConfig(BaseConfig, ABC):
    prompt_driver: BasePromptDriver = field(kw_only=True, metadata={"serializable": True})
    image_generation_driver: BaseImageGenerationDriver = field(kw_only=True, metadata={"serializable": True})
    image_query_driver: BaseImageQueryDriver = field(kw_only=True, metadata={"serializable": True})
    embedding_driver: BaseEmbeddingDriver = field(kw_only=True, metadata={"serializable": True})
    vector_store_driver: BaseVectorStoreDriver = field(kw_only=True, metadata={"serializable": True})
    conversation_memory_driver: Optional[BaseConversationMemoryDriver] = field(
        default=None, kw_only=True, metadata={"serializable": True}
    )
    text_to_speech_driver: BaseTextToSpeechDriver = field(kw_only=True, metadata={"serializable": True})
    audio_transcription_driver: BaseAudioTranscriptionDriver = field(kw_only=True, metadata={"serializable": True})

    def merge_config(self, config: dict) -> BaseStructureConfig:
        base_config = self.to_dict()
        merged_config = dict_merge(base_config, config)

        return BaseStructureConfig.from_dict(merged_config)

audio_transcription_driver: BaseAudioTranscriptionDriver = field(kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

conversation_memory_driver: Optional[BaseConversationMemoryDriver] = field(default=None, kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

embedding_driver: BaseEmbeddingDriver = field(kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

image_generation_driver: BaseImageGenerationDriver = field(kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

image_query_driver: BaseImageQueryDriver = field(kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

prompt_driver: BasePromptDriver = field(kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

text_to_speech_driver: BaseTextToSpeechDriver = field(kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

vector_store_driver: BaseVectorStoreDriver = field(kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

merge_config(config)

Source code in griptape/config/base_structure_config.py
def merge_config(self, config: dict) -> BaseStructureConfig:
    base_config = self.to_dict()
    merged_config = dict_merge(base_config, config)

    return BaseStructureConfig.from_dict(merged_config)

CohereStructureConfig

Bases: StructureConfig

Source code in griptape/config/cohere_structure_config.py
@define
class CohereStructureConfig(StructureConfig):
    api_key: str = field(metadata={"serializable": False}, kw_only=True)

    prompt_driver: BasePromptDriver = field(
        default=Factory(lambda self: CoherePromptDriver(model="command-r", api_key=self.api_key), takes_self=True),
        metadata={"serializable": True},
        kw_only=True,
    )
    embedding_driver: BaseEmbeddingDriver = field(
        default=Factory(
            lambda self: CohereEmbeddingDriver(
                model="embed-english-v3.0", api_key=self.api_key, input_type="search_document"
            ),
            takes_self=True,
        ),
        metadata={"serializable": True},
        kw_only=True,
    )
    vector_store_driver: BaseVectorStoreDriver = field(
        default=Factory(lambda self: LocalVectorStoreDriver(embedding_driver=self.embedding_driver), takes_self=True),
        kw_only=True,
        metadata={"serializable": True},
    )

api_key: str = field(metadata={'serializable': False}, kw_only=True) class-attribute instance-attribute

embedding_driver: BaseEmbeddingDriver = field(default=Factory(lambda self: CohereEmbeddingDriver(model='embed-english-v3.0', api_key=self.api_key, input_type='search_document'), takes_self=True), metadata={'serializable': True}, kw_only=True) class-attribute instance-attribute

prompt_driver: BasePromptDriver = field(default=Factory(lambda self: CoherePromptDriver(model='command-r', api_key=self.api_key), takes_self=True), metadata={'serializable': True}, kw_only=True) class-attribute instance-attribute

vector_store_driver: BaseVectorStoreDriver = field(default=Factory(lambda self: LocalVectorStoreDriver(embedding_driver=self.embedding_driver), takes_self=True), kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

GoogleStructureConfig

Bases: StructureConfig

Source code in griptape/config/google_structure_config.py
@define
class GoogleStructureConfig(StructureConfig):
    prompt_driver: BasePromptDriver = field(
        default=Factory(lambda: GooglePromptDriver(model="gemini-pro")), kw_only=True, metadata={"serializable": True}
    )
    embedding_driver: BaseEmbeddingDriver = field(
        default=Factory(lambda: GoogleEmbeddingDriver(model="models/embedding-001")),
        kw_only=True,
        metadata={"serializable": True},
    )
    vector_store_driver: BaseVectorStoreDriver = field(
        default=Factory(
            lambda: LocalVectorStoreDriver(embedding_driver=GoogleEmbeddingDriver(model="models/embedding-001"))
        ),
        kw_only=True,
        metadata={"serializable": True},
    )

embedding_driver: BaseEmbeddingDriver = field(default=Factory(lambda: GoogleEmbeddingDriver(model='models/embedding-001')), kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

prompt_driver: BasePromptDriver = field(default=Factory(lambda: GooglePromptDriver(model='gemini-pro')), kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

vector_store_driver: BaseVectorStoreDriver = field(default=Factory(lambda: LocalVectorStoreDriver(embedding_driver=GoogleEmbeddingDriver(model='models/embedding-001'))), kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

OpenAiStructureConfig

Bases: StructureConfig

Source code in griptape/config/openai_structure_config.py
@define
class OpenAiStructureConfig(StructureConfig):
    prompt_driver: BasePromptDriver = field(
        default=Factory(lambda: OpenAiChatPromptDriver(model="gpt-4o")), metadata={"serializable": True}, kw_only=True
    )
    image_generation_driver: BaseImageGenerationDriver = field(
        default=Factory(lambda: OpenAiImageGenerationDriver(model="dall-e-2", image_size="512x512")),
        kw_only=True,
        metadata={"serializable": True},
    )
    image_query_driver: BaseImageQueryDriver = field(
        default=Factory(lambda: OpenAiImageQueryDriver(model="gpt-4o")), kw_only=True, metadata={"serializable": True}
    )
    embedding_driver: BaseEmbeddingDriver = field(
        default=Factory(lambda: OpenAiEmbeddingDriver(model="text-embedding-3-small")),
        metadata={"serializable": True},
        kw_only=True,
    )
    vector_store_driver: BaseVectorStoreDriver = field(
        default=Factory(
            lambda: LocalVectorStoreDriver(embedding_driver=OpenAiEmbeddingDriver(model="text-embedding-3-small"))
        ),
        kw_only=True,
        metadata={"serializable": True},
    )
    text_to_speech_driver: BaseTextToSpeechDriver = field(
        default=Factory(lambda: OpenAiTextToSpeechDriver(model="tts")), kw_only=True, metadata={"serializable": True}
    )
    audio_transcription_driver: BaseAudioTranscriptionDriver = field(
        default=Factory(lambda: OpenAiAudioTranscriptionDriver(model="whisper-1")),
        kw_only=True,
        metadata={"serializable": True},
    )

audio_transcription_driver: BaseAudioTranscriptionDriver = field(default=Factory(lambda: OpenAiAudioTranscriptionDriver(model='whisper-1')), kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

embedding_driver: BaseEmbeddingDriver = field(default=Factory(lambda: OpenAiEmbeddingDriver(model='text-embedding-3-small')), metadata={'serializable': True}, kw_only=True) class-attribute instance-attribute

image_generation_driver: BaseImageGenerationDriver = field(default=Factory(lambda: OpenAiImageGenerationDriver(model='dall-e-2', image_size='512x512')), kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

image_query_driver: BaseImageQueryDriver = field(default=Factory(lambda: OpenAiImageQueryDriver(model='gpt-4o')), kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

prompt_driver: BasePromptDriver = field(default=Factory(lambda: OpenAiChatPromptDriver(model='gpt-4o')), metadata={'serializable': True}, kw_only=True) class-attribute instance-attribute

text_to_speech_driver: BaseTextToSpeechDriver = field(default=Factory(lambda: OpenAiTextToSpeechDriver(model='tts')), kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

vector_store_driver: BaseVectorStoreDriver = field(default=Factory(lambda: LocalVectorStoreDriver(embedding_driver=OpenAiEmbeddingDriver(model='text-embedding-3-small'))), kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

StructureConfig

Bases: BaseStructureConfig

Source code in griptape/config/structure_config.py
@define
class StructureConfig(BaseStructureConfig):
    prompt_driver: BasePromptDriver = field(
        kw_only=True, default=Factory(lambda: DummyPromptDriver()), metadata={"serializable": True}
    )
    image_generation_driver: BaseImageGenerationDriver = field(
        kw_only=True, default=Factory(lambda: DummyImageGenerationDriver()), metadata={"serializable": True}
    )
    image_query_driver: BaseImageQueryDriver = field(
        kw_only=True, default=Factory(lambda: DummyImageQueryDriver()), metadata={"serializable": True}
    )
    embedding_driver: BaseEmbeddingDriver = field(
        kw_only=True, default=Factory(lambda: DummyEmbeddingDriver()), metadata={"serializable": True}
    )
    vector_store_driver: BaseVectorStoreDriver = field(
        default=Factory(lambda: DummyVectorStoreDriver()), kw_only=True, metadata={"serializable": True}
    )
    conversation_memory_driver: Optional[BaseConversationMemoryDriver] = field(
        default=None, kw_only=True, metadata={"serializable": True}
    )
    text_to_speech_driver: BaseTextToSpeechDriver = field(
        default=Factory(lambda: DummyTextToSpeechDriver()), kw_only=True, metadata={"serializable": True}
    )
    audio_transcription_driver: BaseAudioTranscriptionDriver = field(
        default=Factory(lambda: DummyAudioTranscriptionDriver()), kw_only=True, metadata={"serializable": True}
    )

audio_transcription_driver: BaseAudioTranscriptionDriver = field(default=Factory(lambda: DummyAudioTranscriptionDriver()), kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

conversation_memory_driver: Optional[BaseConversationMemoryDriver] = field(default=None, kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

embedding_driver: BaseEmbeddingDriver = field(kw_only=True, default=Factory(lambda: DummyEmbeddingDriver()), metadata={'serializable': True}) class-attribute instance-attribute

image_generation_driver: BaseImageGenerationDriver = field(kw_only=True, default=Factory(lambda: DummyImageGenerationDriver()), metadata={'serializable': True}) class-attribute instance-attribute

image_query_driver: BaseImageQueryDriver = field(kw_only=True, default=Factory(lambda: DummyImageQueryDriver()), metadata={'serializable': True}) class-attribute instance-attribute

prompt_driver: BasePromptDriver = field(kw_only=True, default=Factory(lambda: DummyPromptDriver()), metadata={'serializable': True}) class-attribute instance-attribute

text_to_speech_driver: BaseTextToSpeechDriver = field(default=Factory(lambda: DummyTextToSpeechDriver()), kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

vector_store_driver: BaseVectorStoreDriver = field(default=Factory(lambda: DummyVectorStoreDriver()), kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute