Releases: pipecat-ai/pipecat
v0.0.32
Added
-
Allow specifying a
DeepgramSTTService
url which allows using on-prem Deepgram. -
Added new
FastAPIWebsocketTransport
. This is a new websocket transport that can be integrated with FastAPI websockets. -
Added new
TwilioFrameSerializer
. This is a new serializer that knows how to serialize and deserialize audio frames from Twilio. -
Added Daily transport event:
on_dialout_answered
. See https://reference-python.daily.co/api_reference.html#daily.EventHandler -
Added new
AzureSTTService
. This allows you to use Azure Speech-To-Text.
Performance
- Convert
BaseOutputTransport
andBaseOutputTransport
to fully use asyncio and remove the use of threads.
Other
-
Added
twilio-chatbot
. This is an example that shows how to integrate Twilio phone numbers with a Pipecat bot. -
Updated
07f-interruptible-azure.py
to useAzureLLMService
,AzureSTTService
andAzureTTSService
.
v0.0.31
Performance
- Break long audio frames into 20ms chunks instead of 10ms.
v0.0.30
Added
-
Added
report_only_initial_ttfb
toPipelineParams
. This will make it so only the initial TTFB metrics after the user stops talking are reported. -
Added
OpenPipeLLMService
. This service will let you run OpenAI through OpenPipe's SDK. -
Allow specifying frame processors' name through a new
name
constructor argument. -
Added
DeepgramSTTService
. This service has an ongoing websocket connection. To handle this, it subclassesAIService
instead ofSTTService
. The output of this service will be pushed from the same task, except system frames likeStartFrame
,CancelFrame
orStartInterruptionFrame
.
Changed
-
FrameSerializer.deserialize()
can now returnNone
in case it is not possible to desearialize the given data. -
daily_rest.DailyRoomProperties
now allows extra unknown parameters.
Fixed
-
Fixed an issue where
DailyRoomProperties.exp
always had the same old timestamp unless set by the user. -
Fixed a couple of issues with
WebsocketServerTransport
. It needed to usepush_audio_frame()
and also VAD was not working properly. -
Fixed an issue that would cause LLM aggregator to fail with small
VADParams.stop_secs
values. -
Fixed an issue where
BaseOutputTransport
would send longer audio frames preventing interruptions.
Other
-
Added new
07h-interruptible-openpipe.py
example. This example shows how to use OpenPipe to run OpenAI LLMs and get the logs stored in OpenPipe. -
Added new
dialin-chatbot
example. This examples shows how to call the bot using a phone number.
v0.0.29
Added
-
Added a new
FunctionFilter
. This filter will let you filter frames based on a given function, except system messages which should never be filtered. -
Added
FrameProcessor.can_generate_metrics()
method to indicate if a processor can generate metrics. In the future this might get an extra argument to ask for a specific type of metric. -
Added
BasePipeline
. All pipeline classes should be based on this class. All subclasses should implement aprocessors_with_metrics()
method that returns a list of allFrameProcessor
s in the pipeline that can generate metrics. -
Added
enable_metrics
toPipelineParams
. -
Added
MetricsFrame
. TheMetricsFrame
will report different metrics in the system. Right now, it can report TTFB (Time To First Byte) values for different services, that is the time spent between the arrival of aFrame
to the processor/service until the firstDataFrame
is pushed downstream. If metrics are enabled an intialMetricsFrame
with all the services in the pipeline will be sent. -
Added TTFB metrics and debug logging for TTS services.
Changed
- Moved
ParallelTask
topipecat.pipeline.parallel_task
.
Fixed
- Fixed PlayHT TTS service to work properly async.
v0.0.28
Fixed
- Fixed an issue with
SileroVADAnalyzer
that would cause memory to keep growing indefinitely.
v0.0.27
Added
- Added
DailyTransport.participants()
andDailyTransport.participant_counts()
.
v0.0.26
Added
-
Added
OpenAITTSService
. -
Allow passing
output_format
andmodel_id
toCartesiaTTSService
to change audio sample format and the model to use. -
Added
DailyRESTHelper
which helps you create Daily rooms and tokens in an easy way. -
PipelineTask
now has ahas_finished()
method to indicate if the task has completed. If a task is never ranhas_finished()
will return False. -
PipelineRunner
now supports SIGTERM. If received, the runner will be canceled.
Fixed
-
Fixed an issue where
BaseInputTransport
andBaseOutputTransport
where stopping push tasks before pushingEndFrame
frames could cause the bots to get stuck. -
Fixed an error closing local audio transports.
-
Fixed an issue with Deepgram TTS that was introduced in the previous release.
-
Fixed
AnthropicLLMService
interruptions. If an interruption occurred, auser
message could be appended after the previoususer
message. Anthropic does not allow that because it requires alternateuser
andassistant
messages.
Performance
-
The
BaseInputTransport
does not pull audio frames from sub-classes any more. Instead, sub-classes now push audio frames into a queue in the base class. Also,DailyInputTransport
now pushes audio frames every 20ms instead of 10ms. -
Remove redundant camera input thread from
DailyInputTransport
. This should improve performance a little bit when processing participant videos. -
Load Cartesia voice on startup.
v0.0.25
Added
-
Added
WebsocketServerTransport
. This will create a websocket server and will read messages coming from a client. The messages are serialized/deserialized with protobufs. Seeexamples/websocket-server
for a detailed example. -
Added function calling (
LLMService.register_function()
). This will allow the LLM to call functions you have registered when needed. For example, if you register a function to get the weather in Los Angeles and ask the LLM about the weather in Los Angeles, the LLM will call your function. See https://platform.openai.com/docs/guides/function-calling -
Added new
LangchainProcessor
. -
Added Cartesia TTS support (https://cartesia.ai/)
Fixed
-
Fixed SileroVAD frame processor.
-
Fixed an issue where
camera_out_enabled
would cause the highg CPU usage if no image was provided.
Performance
- Removed unnecessary audio input tasks.
v0.0.24
Added
-
Exposed
on_dialin_ready
for Daily transport SIP endpoint handling. This notifies when the Daily room SIP endpoints are ready. This allows integrating with third-party services like Twilio. -
Exposed Daily transport
on_app_message
event. -
Added Daily transport
on_call_state_updated
event. -
Added Daily transport
start_recording()
,stop_recording
andstop_dialout
.
Changed
-
Added
PipelineParams
. This replaces theallow_interruptions
argument inPipelineTask
and will allow future parameters in the future. -
Fixed Deepgram Aura TTS base_url and added ErrorFrame reporting.
-
GoogleLLMService
api_key
argument is now mandatory.
Fixed
-
Daily tranport
dialin-ready
doesn't not block anymore and it now handles timeouts. -
Fixed AzureLLMService.
v0.0.23
Fixed
- Fixed an issue handling Daily transport
dialin-ready
event.