Refactoring the examples to use the new context summarization classes.

This commit is contained in:
filipi87
2026-02-27 18:42:39 -03:00
parent 69414e8a5a
commit 0839e3813f
3 changed files with 40 additions and 25 deletions

View File

@@ -41,7 +41,10 @@ from pipecat.services.openai.llm import OpenAILLMService
from pipecat.transports.base_transport import BaseTransport, TransportParams from pipecat.transports.base_transport import BaseTransport, TransportParams
from pipecat.transports.daily.transport import DailyParams from pipecat.transports.daily.transport import DailyParams
from pipecat.transports.websocket.fastapi import FastAPIWebsocketParams 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) load_dotenv(override=True)
@@ -120,14 +123,16 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
), ),
assistant_params=LLMAssistantAggregatorParams( assistant_params=LLMAssistantAggregatorParams(
enable_context_summarization=True, enable_auto_context_summarization=True,
# Optional: customize context summarization behavior # Optional: customize context summarization behavior
# Using low limits to demonstrate the feature quickly # 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 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 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
),
), ),
), ),
) )

View File

@@ -41,7 +41,10 @@ from pipecat.services.llm_service import FunctionCallParams
from pipecat.transports.base_transport import BaseTransport, TransportParams from pipecat.transports.base_transport import BaseTransport, TransportParams
from pipecat.transports.daily.transport import DailyParams from pipecat.transports.daily.transport import DailyParams
from pipecat.transports.websocket.fastapi import FastAPIWebsocketParams 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) load_dotenv(override=True)
@@ -120,14 +123,16 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
), ),
assistant_params=LLMAssistantAggregatorParams( assistant_params=LLMAssistantAggregatorParams(
enable_context_summarization=True, enable_auto_context_summarization=True,
# Optional: customize context summarization behavior # Optional: customize context summarization behavior
# Using low limits to demonstrate the feature quickly # 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 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 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
),
), ),
), ),
) )

View File

@@ -44,7 +44,10 @@ from pipecat.services.openai.llm import OpenAILLMService
from pipecat.transports.base_transport import BaseTransport, TransportParams from pipecat.transports.base_transport import BaseTransport, TransportParams
from pipecat.transports.daily.transport import DailyParams from pipecat.transports.daily.transport import DailyParams
from pipecat.transports.websocket.fastapi import FastAPIWebsocketParams 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) load_dotenv(override=True)
@@ -147,23 +150,25 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
), ),
assistant_params=LLMAssistantAggregatorParams( assistant_params=LLMAssistantAggregatorParams(
enable_context_summarization=True, enable_auto_context_summarization=True,
context_summarization_config=LLMContextSummarizationConfig( auto_context_summarization_config=LLMAutoContextSummarizationConfig(
# Trigger thresholds (low values to demonstrate quickly) # Trigger thresholds (low values to demonstrate quickly)
max_context_tokens=1000, max_context_tokens=1000,
max_unsummarized_messages=10, max_unsummarized_messages=10,
# Summary generation summary_config=LLMContextSummaryConfig(
target_context_tokens=800, # Summary generation
min_messages_after_summary=2, target_context_tokens=800,
summarization_prompt=CUSTOM_SUMMARIZATION_PROMPT, min_messages_after_summary=2,
# Custom summary format - wrap in XML tags so the system summarization_prompt=CUSTOM_SUMMARIZATION_PROMPT,
# prompt can identify summaries vs. live conversation # Custom summary format - wrap in XML tags so the system
summary_message_template="<context_summary>\n{summary}\n</context_summary>", # prompt can identify summaries vs. live conversation
# Use a dedicated cheap LLM for summarization instead of summary_message_template="<context_summary>\n{summary}\n</context_summary>",
# the primary conversation model # Use a dedicated cheap LLM for summarization instead of
llm=summarization_llm, # the primary conversation model
# Cancel summarization if it takes longer than 60 seconds llm=summarization_llm,
summarization_timeout=60.0, # Cancel summarization if it takes longer than 60 seconds
summarization_timeout=60.0,
),
), ),
), ),
) )