Releases: griptape-ai/griptape
Releases · griptape-ai/griptape
0.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.
0.30.2
0.30.1
Fixed
CsvExtractionEngine
not using providedRuleset
s.- Docs examples for Extraction Engines not properly passing in schemas.
0.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
.
0.29.2
Fixed
Workflow
threads not being properly cleaned up after completion.- Crash when
ToolAction
s were missing output due to anActionsSubtask
exception.
0.29.1
Changed
- Remove
BaseTextArtifact
, revertCsvRowArtifact
to subclassTextArtifact
.
Fixed
- Missing extra for
drivers-text-to-speech-elevenlabs
.
0.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
.
0.28.2
Fixed
- Conversation Memory being incorrectly inserted into the
PromptTask.prompt_stack
when no system content is present.
0.28.1
Fixed
- Sending empty system content in
PromptTask
. - Throttling issues with
DuckDuckGoWebSearchDriver
.
0.28.0
Added
RagEngine
is an abstraction for implementing modular RAG pipelines.RagContext
is a container object for passing around RAG context.- RAG stages:
QueryRagStage
for parsing and expanding queries.RetrievalRagStage
for retrieving content.ResponseRagStage
for augmenting and generating outputs.
- RAG modules:
- Retrieval:
VectorStoreRetrievalRagModule
for retrieving text chunks from vector stores.TextLoaderRetrievalRagModule
for retrieving data with text loaders in real time.TextChunksRerankRagModule
for re-ranking retrieved results.
- Response:
MetadataBeforeResponseRagModule
for appending metadata.RulesetsBeforeResponseRagModule
for appending rulesets.PromptResponseRagModule
for generating responses based on retrieved text chunks.TextChunksResponseRagModule
for responding with retrieved text chunks.FootnotePromptResponseRagModule
for responding with automatic footnotes from text chunk references.
- Retrieval:
RagClient
tool for exposingRagEngines
to LLM agents.RagTask
task for includingRagEngines
in any structure.- Rerank drivers:
CohereRerankDriver
for using the Cohere rerank API.
utils.execute_futures_list()
for executing a list of futures.LocalVectorStoreDriver.persist_file
for persisting vectors and chunks in a text file.Entry.to_artifact()
for easy vector store entry conversions into Griptape artifacts.BaseVectorStoreDriver.does_entry_exist()
to check if an entry exists in the vector store.GoogleWebSearchDriver
to web search with the Google Customsearch API.DuckDuckGoWebSearchDriver
to web search with the DuckDuckGo search SDK.ProxyWebScraperDriver
to web scrape using proxies.- Parameter
session
onAmazonBedrockStructureConfig
. - Parameter
meta
onTextArtifact
. VectorStoreClient
improvements:VectorStoreClient.query_params
dict for custom query params.VectorStoreClient.process_query_output_fn
for custom query output processing logic.
- Parameter
fail_fast
toStructure
. BooleanArtifact
for handling boolean values.typos
to dev dependencies to catch typos in code/docs.Message
for storing messages in aPromptStack
. Messages consist of a role, content, and usage.DeltaMessage
for storing partial messages in aPromptStack
. MultipleDeltaMessage
can be combined to form aMessage
.TextMessageContent
for storing textual content in aMessage
.ImageMessageContent
for storing image content in aMessage
.- Support for adding
TextArtifact
s,ImageArtifact
s, andListArtifact
s toPromptStack
. - Support for image inputs to
OpenAiChatPromptDriver
,AzureOpenAiChatPromptDriver
,AmazonBedrockPromptDriver
,AnthropicPromptDriver
, andGooglePromptDriver
. - Input/output token usage metrics to all Prompt Drivers.
FinishPromptEvent.input_token_count
andFinishPromptEvent.output_token_count
.- Support for storing Artifacts as inputs/outputs in Conversation Memory Runs.
Agent.input
for passing Artifacts as input.- Support for
PromptTask
s to takeTextArtifact
s,ImageArtifact
s, andListArtifact
s as input. - Parameters
sort_key
andsort_key_value
onAmazonDynamoDbConversationMemoryDriver
for tables with sort keys. Reference
for supporting artifact citations in loaders and RAG engine modules.
Changed
- BREAKING: Moved/renamed
griptape.utils.PromptStack
togriptape.common.PromptStack
. - BREAKING: Renamed
PromptStack.inputs
toPromptStack.messages
. - BREAKING: Moved
PromptStack.USER_ROLE
,PromptStack.ASSISTANT_ROLE
, andPromptStack.SYSTEM_ROLE
toMessage
. - BREAKING: Updated return type of
PromptDriver.try_run
fromTextArtifact
toMessage
. - BREAKING: Updated return type of
PromptDriver.try_stream
fromIterator[TextArtifact]
toIterator[DeltaMessage]
. - BREAKING: Removed
BasePromptEvent.token_count
in favor ofFinishPromptEvent.input_token_count
andFinishPromptEvent.output_token_count
. - BREAKING: Removed
StartPromptEvent.prompt
. UseStartPromptEvent.prompt_stack
instead. - BREAKING: Removed
Agent.input_template
in favor ofAgent.input
. - BREAKING:
BasePromptDriver.run
now returns aMessage
instead of aTextArtifact
. For compatibility,Message.value
contains the Message's Artifact value - BREAKING:
BaseVectorStoreDriver.upsert_text_artifact()
andBaseVectorStoreDriver.upsert_text()
use artifact/string values to generatevector_id
if it wasn't implicitly passed. This change ensures that we don't generate embeddings for the same content every time. - BREAKING: Removed
VectorQueryEngine
in favor ofRagEngine
. - BREAKING: Removed
TextQueryTask
in favor ofRagTask
. - BREAKING:
TextArtifactStorage
now requiresvector_store_driver
andrag_engine
in place ofvector_query_engine
. - BREAKING: Moved
load_artifacts()
fromBaseQueryEngine
toBaseVectorStoreDriver
. - BREAKING: Merged
BaseVectorStoreDriver.QueryResult
intoBaseVectorStoreDriver.Entry
. - BREAKING: Replaced
query_engine
withvector_store_driver
inVectorStoreClient
. - BREAKING: removed parameters
google_api_lang
,google_api_key
,google_api_search_id
,google_api_country
onWebSearch
in favor ofweb_search_driver
. - BREAKING: removed
VectorStoreClient.top_n
andVectorStoreClient.namespace
in favor ofVectorStoreClient.query_params
. - BREAKING: All
futures_executor
fields renamed tofutures_executor_fn
and now accept callables instead of futures; wrapped all futuresubmit
calls with thewith
block to address future executor shutdown issues. GriptapeCloudKnowledgeBaseClient
migrated to/search
api.- Default Prompt Driver model in
GoogleStructureConfig
togemini-1.5-pro
.
Fixed
CoherePromptDriver
to properly handle empty history.StructureVisualizer.to_url()
by wrapping task IDs in single quotes.