diff --git a/examples/foundational/54-context-summarization-openai.py b/examples/foundational/54-context-summarization-openai.py index 45f27854f..ff6701bec 100644 --- a/examples/foundational/54-context-summarization-openai.py +++ b/examples/foundational/54-context-summarization-openai.py @@ -41,7 +41,10 @@ from pipecat.services.openai.llm import OpenAILLMService from pipecat.transports.base_transport import BaseTransport, TransportParams from pipecat.transports.daily.transport import DailyParams from pipecat.transports.websocket.fastapi import FastAPIWebsocketParams -from pipecat.utils.context.llm_context_summarization import LLMContextSummarizationConfig +from pipecat.utils.context.llm_context_summarization import ( + LLMAutoContextSummarizationConfig, + LLMContextSummaryConfig, +) load_dotenv(override=True) @@ -120,14 +123,16 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): vad_analyzer=SileroVADAnalyzer(), ), assistant_params=LLMAssistantAggregatorParams( - enable_context_summarization=True, + enable_auto_context_summarization=True, # Optional: customize context summarization behavior # Using low limits to demonstrate the feature quickly - context_summarization_config=LLMContextSummarizationConfig( + auto_context_summarization_config=LLMAutoContextSummarizationConfig( max_context_tokens=1000, # Trigger summarization at 1000 tokens - target_context_tokens=800, # Target context size for the summarization max_unsummarized_messages=10, # Or when 10 new messages accumulate - min_messages_after_summary=2, # Keep last 2 messages uncompressed + summary_config=LLMContextSummaryConfig( + target_context_tokens=800, # Target context size for the summarization + min_messages_after_summary=2, # Keep last 2 messages uncompressed + ), ), ), ) diff --git a/examples/foundational/54a-context-summarization-google.py b/examples/foundational/54a-context-summarization-google.py index 2ce29e959..7d2a91310 100644 --- a/examples/foundational/54a-context-summarization-google.py +++ b/examples/foundational/54a-context-summarization-google.py @@ -41,7 +41,10 @@ from pipecat.services.llm_service import FunctionCallParams from pipecat.transports.base_transport import BaseTransport, TransportParams from pipecat.transports.daily.transport import DailyParams from pipecat.transports.websocket.fastapi import FastAPIWebsocketParams -from pipecat.utils.context.llm_context_summarization import LLMContextSummarizationConfig +from pipecat.utils.context.llm_context_summarization import ( + LLMAutoContextSummarizationConfig, + LLMContextSummaryConfig, +) load_dotenv(override=True) @@ -120,14 +123,16 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): vad_analyzer=SileroVADAnalyzer(), ), assistant_params=LLMAssistantAggregatorParams( - enable_context_summarization=True, + enable_auto_context_summarization=True, # Optional: customize context summarization behavior # Using low limits to demonstrate the feature quickly - context_summarization_config=LLMContextSummarizationConfig( + auto_context_summarization_config=LLMAutoContextSummarizationConfig( max_context_tokens=1000, # Trigger summarization at 1000 tokens - target_context_tokens=800, # Target context size for the summarization max_unsummarized_messages=10, # Or when 10 new messages accumulate - min_messages_after_summary=2, # Keep last 2 messages uncompressed + summary_config=LLMContextSummaryConfig( + target_context_tokens=800, # Target context size for the summarization + min_messages_after_summary=2, # Keep last 2 messages uncompressed + ), ), ), ) diff --git a/examples/foundational/54c-context-summarization-dedicated-llm.py b/examples/foundational/54c-context-summarization-dedicated-llm.py index 3b2195e80..1dce3890f 100644 --- a/examples/foundational/54c-context-summarization-dedicated-llm.py +++ b/examples/foundational/54c-context-summarization-dedicated-llm.py @@ -44,7 +44,10 @@ from pipecat.services.openai.llm import OpenAILLMService from pipecat.transports.base_transport import BaseTransport, TransportParams from pipecat.transports.daily.transport import DailyParams from pipecat.transports.websocket.fastapi import FastAPIWebsocketParams -from pipecat.utils.context.llm_context_summarization import LLMContextSummarizationConfig +from pipecat.utils.context.llm_context_summarization import ( + LLMAutoContextSummarizationConfig, + LLMContextSummaryConfig, +) load_dotenv(override=True) @@ -147,23 +150,25 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): vad_analyzer=SileroVADAnalyzer(), ), assistant_params=LLMAssistantAggregatorParams( - enable_context_summarization=True, - context_summarization_config=LLMContextSummarizationConfig( + enable_auto_context_summarization=True, + auto_context_summarization_config=LLMAutoContextSummarizationConfig( # Trigger thresholds (low values to demonstrate quickly) max_context_tokens=1000, max_unsummarized_messages=10, - # Summary generation - target_context_tokens=800, - min_messages_after_summary=2, - summarization_prompt=CUSTOM_SUMMARIZATION_PROMPT, - # Custom summary format - wrap in XML tags so the system - # prompt can identify summaries vs. live conversation - summary_message_template="\n{summary}\n", - # Use a dedicated cheap LLM for summarization instead of - # the primary conversation model - llm=summarization_llm, - # Cancel summarization if it takes longer than 60 seconds - summarization_timeout=60.0, + summary_config=LLMContextSummaryConfig( + # Summary generation + target_context_tokens=800, + min_messages_after_summary=2, + summarization_prompt=CUSTOM_SUMMARIZATION_PROMPT, + # Custom summary format - wrap in XML tags so the system + # prompt can identify summaries vs. live conversation + summary_message_template="\n{summary}\n", + # Use a dedicated cheap LLM for summarization instead of + # the primary conversation model + llm=summarization_llm, + # Cancel summarization if it takes longer than 60 seconds + summarization_timeout=60.0, + ), ), ), )