Releases: griptape-ai/griptape
Releases · griptape-ai/griptape
v0.33.0
Added
Workflow.input_tasks
andWorkflow.output_tasks
to access the input and output tasks of a Workflow.- Ability to pass nested list of
Tasks
toStructure.tasks
allowing for more complex declarative Structure definitions. TavilyWebSearchDriver
to integrate Tavily's web search capabilities.ExaWebSearchDriver
to integrate Exa's web search capabilities.Workflow.outputs
to access the outputs of a Workflow.BaseFileLoader
for Loaders that load from a path.BaseLoader.fetch()
method for fetching data from a source.BaseLoader.parse()
method for parsing fetched data.BaseFileManager.encoding
to specify the encoding when loading and saving files.BaseWebScraperDriver.extract_page()
method for extracting data from an already scraped web page.TextLoaderRetrievalRagModule.chunker
for specifying the chunking strategy.file_utils.get_mime_type
utility for getting the MIME type of a file.BaseRulesetDriver
for loading aRuleset
from an external source.LocalRulesetDriver
for loading aRuleset
from a local.json
file.GriptapeCloudRulesetDriver
for loading aRuleset
resource from Griptape Cloud.
- Parameter
alias
onGriptapeCloudConversationMemoryDriver
for fetching a Thread by alias. - Basic support for OpenAi Structured Output via
OpenAiChatPromptDriver.response_format
parameter. - Ability to pass callable to
activity.schema
for dynamic schema generation.
Changed
- BREAKING: Renamed parameters on several classes to
client
:bedrock_client
onAmazonBedrockCohereEmbeddingDriver
.bedrock_client
onAmazonBedrockCohereEmbeddingDriver
.bedrock_client
onAmazonBedrockTitanEmbeddingDriver
.bedrock_client
onAmazonBedrockImageGenerationDriver
.bedrock_client
onAmazonBedrockImageQueryDriver
.bedrock_client
onAmazonBedrockPromptDriver
.sagemaker_client
onAmazonSageMakerJumpstartEmbeddingDriver
.sagemaker_client
onAmazonSageMakerJumpstartPromptDriver
.sqs_client
onAmazonSqsEventListenerDriver
.iotdata_client
onAwsIotCoreEventListenerDriver
.s3_client
onAmazonS3FileManagerDriver
.s3_client
onAwsS3Tool
.iam_client
onAwsIamTool
.pusher_client
onPusherEventListenerDriver
.mq
onMarqoVectorStoreDriver
.model_client
onGooglePromptDriver
.model_client
onGoogleTokenizer
.
- BREAKING: Renamed parameter
pipe
onHuggingFacePipelinePromptDriver
topipeline
. - BREAKING: Removed
BaseFileManager.default_loader
andBaseFileManager.loaders
. - BREAKING: Loaders no longer chunk data, use a Chunker to chunk the data.
- BREAKING: Removed
fileutils.load_file
andfileutils.load_files
. - BREAKING: Removed
loaders-dataframe
andloaders-audio
extras as they are no longer needed. - BREKING:
TextLoader
,PdfLoader
,ImageLoader
, andAudioLoader
now take astr | PathLike
instead ofbytes
. Passingbytes
is still supported but deprecated. - BREAKING: Removed
DataframeLoader
. - BREAKING: Update
pypdf
dependency to^5.0.1
. - BREAKING: Update
redis
dependency to^5.1.0
. - BREAKING: Remove
torch
extra fromtransformers
dependency. This must be installed separately. - BREAKING: Split
BaseExtractionEngine.extract
intoextract_text
andextract_artifacts
for consistency withBaseSummaryEngine
. - BREAKING:
BaseExtractionEngine
no longer catches exceptions and returnsErrorArtifact
s. - BREAKING:
JsonExtractionEngine.template_schema
is now required. - BREAKING:
CsvExtractionEngine.column_names
is now required. - BREAKING: Renamed
RuleMixin.all_rulesets
toRuleMixin.rulesets
. - BREAKING: Renamed
GriptapeCloudKnowledgeBaseVectorStoreDriver
toGriptapeCloudVectorStoreDriver
. - BREAKING:
OpenAiChatPromptDriver.response_format
is now adict
instead of astr
. MarkdownifyWebScraperDriver.DEFAULT_EXCLUDE_TAGS
now includes media/blob-like HTML tagsStructureRunTask
now inherits fromPromptTask
.- Several places where API clients are initialized are now lazy loaded.
BaseVectorStoreDriver.upsert_text_artifacts
now returns a list or dictionary of upserted vector ids.LocalFileManagerDriver.workdir
is now optional.filetype
is now a core dependency.FileManagerTool
now usesfiletype
for more accurate file type detection.BaseFileLoader.load_file()
will now either return aTextArtifact
or aBlobArtifact
depending on whetherBaseFileManager.encoding
is set.Structure.output
's type is nowBaseArtifact
and raises an exception if the output isNone
.JsonExtractionEngine.extract_artifacts
now returns aListArtifact[JsonArtifact]
.CsvExtractionEngine.extract_artifacts
now returns aListArtifact[CsvRowArtifact]
.- Remove
manifest.yml
requirements for custom tool creation.
Fixed
- Anthropic native Tool calling.
- Empty
ActionsSubtask.thought
being logged. RuleMixin
no longer prevents settingrulesets
andrules
at the same time.PromptTask
will merge in its Structure's Rulesets and Rules.PromptTask
not checking whether Structure was set before building Prompt Stack.BaseTask.full_context
context being empty when not connected to a Structure.
v0.32.0
Added
BaseArtifact.to_bytes()
method to convert an Artifact's value to bytes.BlobArtifact.base64
property for converting aBlobArtifact
's value to a base64 string.CsvLoader
/SqlLoader
/DataframeLoader
formatter_fn
field for customizing how SQL results are formatted intoTextArtifact
s.AzureOpenAiTextToSpeechDriver
.JsonSchemaRule
for instructing the LLM to output a JSON object that conforms to a schema.- Ability to use Event Listeners as Context Managers for temporarily setting the Event Bus listeners.
- Ability to use Drivers Configs as Context Managers for temporarily setting the default Drivers.
- Generic type support to
ListArtifact
. - Iteration support to
ListArtifact
.
Changed
- BREAKING: Removed
CsvRowArtifact
. UseTextArtifact
instead. - BREAKING: Removed
MediaArtifact
, useImageArtifact
orAudioArtifact
instead. - BREAKING:
CsvLoader
,DataframeLoader
, andSqlLoader
now returnlist[TextArtifact]
. - BREAKING: Removed
ImageArtifact.media_type
. - BREAKING: Removed
AudioArtifact.media_type
. - BREAKING: Removed
BlobArtifact.dir_name
. - BREAKING: Moved
ImageArtifact.prompt
andImageArtifact.model
intoImageArtifact.meta
. - BREAKING:
ImageArtifact.format
is now required. - BREAKING: Removed the
__all__
declaration from thegriptape.mixins
module. - Updated
JsonArtifact
value converter to properly handle more types. AudioArtifact
now subclassesBlobArtifact
instead ofMediaArtifact
.ImageArtifact
now subclassesBlobArtifact
instead ofMediaArtifact
.- Removed
__add__
method fromBaseArtifact
, implemented it where necessary.
Fixed
- Crash when passing "empty" Artifacts or no Artifacts to
CohereRerankDriver
.
v0.31.0
Added
- Parameter
meta: dict
onBaseEvent
.
Changed
- BREAKING: Drivers, Loaders, and Engines now raise exceptions rather than returning
ErrorArtifacts
. - BREAKING: Parameter
driver
onBaseConversationMemory
renamed toconversation_memory_driver
. - BREAKING:
BaseConversationMemory.add_to_prompt_stack
now takes aprompt_driver
parameter. - BREAKING:
BaseConversationMemoryDriver.load
now returnstuple[list[Run], dict]
. This represents the runs and metadata. - BREAKING:
BaseConversationMemoryDriver.store
now takesruns: list[Run]
andmetadata: dict
as input. - BREAKING: Parameter
file_path
onLocalConversationMemoryDriver
renamed topersist_file
and is now typeOptional[str]
. Defaults.drivers_config.conversation_memory_driver
now defaults toLocalConversationMemoryDriver
instead ofNone
.CsvRowArtifact.to_text()
now includes the header.
Fixed
- Parsing streaming response with some OpenAI compatible services.
- Issue in
PromptSummaryEngine
if there are no artifacts during recursive summarization. - Issue in
GooglePromptDriver
using Tools with no schema. - Missing
maxTokens
inference parameter inAmazonBedrockPromptDriver
. - Incorrect model in
OpenAiDriverConfig
'stext_to_speech_driver
. - Crash when using
CohereRerankDriver
withCsvRowArtifact
s.
v0.30.2
Fixed
- Ensure thread safety when publishing events by adding a thread lock to batch operations in
BaseEventListenerDriver
. FileManagerTool
failing to save Artifacts created byExtractionTool
with aCsvExtractionEngine
.
v0.30.1
Fixed
CsvExtractionEngine
not using providedRuleset
s.- Docs examples for Extraction Engines not properly passing in schemas.
v0.30.0
Added
AstraDbVectorStoreDriver
to support DataStax Astra DB as a vector store.- Ability to set custom schema properties on Tool Activities via
extra_schema_properties
. - Parameter
structure
toBaseTask
. - Method
try_find_task
toStructure
. TranslateQueryRagModule
RagEngine
module for translating input queries.- Global event bus,
griptape.events.EventBus
, for publishing and subscribing to events. - Global object,
griptape.configs.Defaults
, for setting default values throughout the framework. - Unique name generation for all
RagEngine
modules. ExtractionTool
for having the LLM extract structured data from text.PromptSummaryTool
for having the LLM summarize text.QueryTool
for having the LLM query text.- Support for bitshift composition in
BaseTask
for adding parent/child tasks. JsonArtifact
for handling de/seralization of values.Chat.logger_level
for setting what theChat
utility sets the logger level to.FuturesExecutorMixin
to DRY up and optimize concurrent code across multiple classes.utils.execute_futures_list_dict
for executing a dict of lists of futures.GriptapeCloudConversationMemoryDriver
to store conversation history in Griptape Cloud.griptape.utils.decorators.lazy_property
for creating lazy properties.
Changed
- BREAKING: Removed all uses of
EventPublisherMixin
in favor ofEventBus
. - BREAKING: Removed
EventPublisherMixin
. - BREAKING: Removed
Pipeline.prompt_driver
andWorkflow.prompt_driver
. Set this viagriptape.configs.Defaults.drivers.prompt_driver
instead.Agent.prompt_driver
has not been removed. - BREAKING: Removed
Pipeline.stream
andWorkflow.stream
. Set this viagriptape.configs.Defaults.drivers.prompt_driver.stream
instead.Agent.stream
has not been removed. - BREAKING: Removed
Structure.embedding_driver
, set this viagriptape.configs.Defaults.drivers.embedding_driver
instead. - BREAKING: Removed
Structure.custom_logger
andStructure.logger_level
, set these vialogging.getLogger(griptape.configs.Defaults.logger_name)
instead. - BREAKING: Removed
BaseStructureConfig.merge_config
. - BREAKING: Renamed
StructureConfig
toDriversConfig
, moved togriptape.configs.drivers
and renamed fields accordingly. - BREAKING:
RagContext.output
was changed toRagContext.outputs
to support multiple outputs. All relevant RAG modules were adjusted accordingly. - BREAKING: Removed before and after response modules from
ResponseRagStage
. - BREAKING: Moved ruleset and metadata ingestion from standalone modules to
PromptResponseRagModule
. - BREAKING: Dropped
Client
from all Tool names for better naming consistency. - BREAKING: Dropped
_client
suffix from all Tool packages. - BREAKING: Added
Tool
suffix to all Tool names for better naming consistency. - BREAKING: Removed
TextArtifactStorage.query
andTextArtifactStorage.summarize
. - BREAKING: Removed
TextArtifactStorage.rag_engine
, andTextArtifactStorage.retrieval_rag_module_name
. - BREAKING: Removed
TextArtifactStorage.summary_engine
,TextArtifactStorage.csv_extraction_engine
, andTextArtifactStorage.json_extraction_engine
. - BREAKING: Removed
TaskMemory.summarize_namespace
andTaskMemory.query_namespace
. - BREAKING: Removed
Structure.rag_engine
. - BREAKING: Split
JsonExtractionEngine.template_generator
intoJsonExtractionEngine.system_template_generator
andJsonExtractionEngine.user_template_generator
. - BREAKING: Split
CsvExtractionEngine.template_generator
intoCsvExtractionEngine.system_template_generator
andCsvExtractionEngine.user_template_generator
. - BREAKING: Changed
JsonExtractionEngine.template_schema
from arun
argument to a class attribute. - BREAKING: Changed
CsvExtractionEngine.column_names
from arun
argument to a class attribute. - BREAKING: Removed
JsonExtractionTask
, andCsvExtractionTask
useExtractionTask
instead. - BREAKING: Removed
TaskMemoryClient
, useQueryClient
,ExtractionTool
, orPromptSummaryTool
instead. - BREAKING:
BaseTask.add_parent/child
now take aBaseTask
instead ofstr | BaseTask
. - Engines that previously required Drivers now pull from
griptape.configs.Defaults.drivers_config
by default. BaseTask.add_parent/child
will now callself.structure.add_task
if possible.BaseTask.add_parent/child
now returnsself
, allowing for chaining.Chat
now sets thegriptape
logger level tologging.ERROR
, suppressing all logs except for errors.
Fixed
JsonExtractionEngine
failing to parse json when the LLM outputs more than just the json.- Exception when adding
ErrorArtifact
's to the Prompt Stack. - Concurrency bug in
BaseVectorStoreDriver.upsert_text_artifacts
. - Schema issues with Tools that use lists.
- Issue with native Tool calling and streaming with
GooglePromptDriver
. - Description not being used properly in
StructureRunTool
.
v0.29.2
Fixed
Workflow
threads not being properly cleaned up after completion.- Crash when
ToolAction
s were missing output due to anActionsSubtask
exception.
v0.29.1
Changed
- Remove
BaseTextArtifact
, revertCsvRowArtifact
to subclassTextArtifact
.
Fixed
- Missing extra for
drivers-text-to-speech-elevenlabs
.
v0.29.0
Added
- Native function calling support to
OpenAiChatPromptDriver
,AzureOpenAiChatPromptDriver
,AnthropicPromptDriver
,AmazonBedrockPromptDriver
,GooglePromptDriver
,OllamaPromptDriver
, andCoherePromptDriver
. OllamaEmbeddingDriver
for generating embeddings with Ollama.GriptapeCloudKnowledgeBaseVectorStoreDriver
to query Griptape Cloud Knowledge Bases.GriptapeCloudEventListenerDriver.api_key
defaults to the value in theGT_CLOUD_API_KEY
environment variable.BaseObservabilityDriver
as the base class for all Observability Drivers.DummyObservabilityDriver
as a no-op Observability Driver.OpenTelemetryObservabilityDriver
for sending observability data to an open telemetry collector or vendor.GriptapeCloudObservabilityDriver
for sending observability data to Griptape Cloud.DatadogObservabilityDriver
for sending observability data to a Datadog Agent.Observability
context manager for enabling observability and configuring which Observability Driver to use.@observable
decorator for selecting which functions/methods to provide observability for.GenericArtifact
for storing any data.BaseTextArtifact
for text-based Artifacts to subclass.HuggingFacePipelineImageGenerationDriver
for generating images locally with HuggingFace pipelines.BaseImageGenerationPipelineDriver
as the base class for drivers interfacing with HuggingFace image generation pipelines.StableDiffusion3ImageGenerationPipelineDriver
for local text-to-image generation using a Stable Diffusion 3 pipeline.StableDiffusion3Img2ImgImageGenerationPipelineDriver
for local image-to-image generation using a Stable Diffusion 3 pipeline.StableDiffusion3ControlNetImageGenerationPipelineDriver
for local ControlNet image generation using a Stable Diffusion 3 pipeline.
Changed
- BREAKING:
BaseVectorStoreDriver.upsert_text_artifacts
optional arguments are now keyword-only arguments. - BREAKING:
BaseVectorStoreDriver.upsert_text_artifact
optional arguments are now keyword-only arguments. - BREAKING:
BaseVectorStoreDriver.upsert_text
optional arguments are now keyword-only arguments. - BREAKING:
BaseVectorStoreDriver.does_entry_exist
optional arguments are now keyword-only arguments. - BREAKING:
BaseVectorStoreDriver.load_artifacts
optional arguments are now keyword-only arguments. - BREAKING:
BaseVectorStoreDriver.upsert_vector
optional arguments are now keyword-only arguments. - BREAKING:
BaseVectorStoreDriver.query
optional arguments are now keyword-only arguments. - BREAKING:
EventListener.publish_event
'sflush
argument is now a keyword-only argument. - BREAKING:
BaseEventListenerDriver.publish_event
'sflush
argument is now a keyword-only argument. - BREAKING: Renamed
DummyException
toDummyError
for pep8 naming compliance. - BREAKING: Migrate to
sqlalchemy
2.0. - BREAKING: Make
sqlalchemy
an optional dependency. - BREAKING: Renamed
drivers-sql-redshift
todrivers-sql-amazon-redshift
- BREAKING: Renamed
drivers-prompt-huggingface
extra todrivers-prompt-huggingface-hub
. - BREAKING: Renamed
drivers-vector-postgresql
extra todrivers-vector-pgvector
. - BREAKING: Update
marqo
dependency to^3.7.0
. - BREAKING: Removed
drivers-sql-postgresql
extra. Usedrivers-sql
extra and install necessary drivers (i.e.psycopg2
) separately. - Removed unnecessary
sqlalchemy-redshift
dependency indrivers-sql-amazon-redshift
extra. - Removed unnecessary
transformers
dependency indrivers-prompt-huggingface
extra. - Removed unnecessary
huggingface-hub
dependency indrivers-prompt-huggingface-pipeline
extra. CsvRowArtifact
now inherits fromBaseTextArtifact
.TextArtifact
now inherits fromBaseTextArtifact
.
Fixed
- Parameter
count
forQdrantVectorStoreDriver.query
now optional as per documentation. - Path issues on Windows with
LocalFileManagerDriver
andAmazonS3FileManagerDriver
.
v0.28.2
Fixed
- Conversation Memory being incorrectly inserted into the
PromptTask.prompt_stack
when no system content is present.