Refactoring the examples to use the new context summarization classes.
This commit is contained in:
@@ -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
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user