Skip to content

v0.28.0

Compare
Choose a tag to compare
@collindutter collindutter released this 10 Dec 18:13
· 516 commits to dev since this release
54bbe2b

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.
  • RagClient tool for exposing RagEngines to LLM agents.
  • RagTask task for including RagEngines 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 on AmazonBedrockStructureConfig.
  • Parameter meta on TextArtifact.
  • VectorStoreClient improvements:
    • VectorStoreClient.query_params dict for custom query params.
    • VectorStoreClient.process_query_output_fn for custom query output processing logic.
  • Parameter fail_fast to Structure.
  • BooleanArtifact for handling boolean values.
  • typos to dev dependencies to catch typos in code/docs.
  • Message for storing messages in a PromptStack. Messages consist of a role, content, and usage.
  • DeltaMessage for storing partial messages in a PromptStack. Multiple DeltaMessage can be combined to form a Message.
  • TextMessageContent for storing textual content in a Message.
  • ImageMessageContent for storing image content in a Message.
  • Support for adding TextArtifacts, ImageArtifacts, and ListArtifacts to PromptStack.
  • Support for image inputs to OpenAiChatPromptDriver, AzureOpenAiChatPromptDriver, AmazonBedrockPromptDriver, AnthropicPromptDriver, and GooglePromptDriver.
  • Input/output token usage metrics to all Prompt Drivers.
  • FinishPromptEvent.input_token_count and FinishPromptEvent.output_token_count.
  • Support for storing Artifacts as inputs/outputs in Conversation Memory Runs.
  • Agent.input for passing Artifacts as input.
  • Support for PromptTasks to take TextArtifacts, ImageArtifacts, and ListArtifacts as input.
  • Parameters sort_key and sort_key_value on AmazonDynamoDbConversationMemoryDriver for tables with sort keys.
  • Reference for supporting artifact citations in loaders and RAG engine modules.

Changed

  • BREAKING: Moved/renamed griptape.utils.PromptStack to griptape.common.PromptStack.
  • BREAKING: Renamed PromptStack.inputs to PromptStack.messages.
  • BREAKING: Moved PromptStack.USER_ROLE, PromptStack.ASSISTANT_ROLE, and PromptStack.SYSTEM_ROLE to Message.
  • BREAKING: Updated return type of PromptDriver.try_run from TextArtifact to Message.
  • BREAKING: Updated return type of PromptDriver.try_stream from Iterator[TextArtifact] to Iterator[DeltaMessage].
  • BREAKING: Removed BasePromptEvent.token_count in favor of FinishPromptEvent.input_token_count and FinishPromptEvent.output_token_count.
  • BREAKING: Removed StartPromptEvent.prompt. Use StartPromptEvent.prompt_stack instead.
  • BREAKING: Removed Agent.input_template in favor of Agent.input.
  • BREAKING: BasePromptDriver.run now returns a Message instead of a TextArtifact. For compatibility, Message.value contains the Message's Artifact value
  • BREAKING: BaseVectorStoreDriver.upsert_text_artifact() and BaseVectorStoreDriver.upsert_text() use artifact/string values to generate vector_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 of RagEngine.
  • BREAKING: Removed TextQueryTask in favor of RagTask.
  • BREAKING: TextArtifactStorage now requires vector_store_driver and rag_engine in place of vector_query_engine.
  • BREAKING: Moved load_artifacts() from BaseQueryEngine to BaseVectorStoreDriver.
  • BREAKING: Merged BaseVectorStoreDriver.QueryResult into BaseVectorStoreDriver.Entry.
  • BREAKING: Replaced query_engine with vector_store_driver in VectorStoreClient.
  • BREAKING: removed parameters google_api_lang, google_api_key, google_api_search_id, google_api_country on WebSearch in favor of web_search_driver.
  • BREAKING: removed VectorStoreClient.top_n and VectorStoreClient.namespace in favor of VectorStoreClient.query_params.
  • BREAKING: All futures_executor fields renamed to futures_executor_fn and now accept callables instead of futures; wrapped all future submit calls with the with block to address future executor shutdown issues.
  • GriptapeCloudKnowledgeBaseClient migrated to /search api.
  • Default Prompt Driver model in GoogleStructureConfig to gemini-1.5-pro.

Fixed

  • CoherePromptDriver to properly handle empty history.
  • StructureVisualizer.to_url() by wrapping task IDs in single quotes.