v0.0.29
pipecat-ai/pipecatv0.0.29Jun 7, 2024by aconchillo
AI Summary
Introduced a base pipeline class, function calling capabilities, and detailed metrics tracking for TTFB and TTS services.
Key Highlights
- Added BasePipeline class and MetricsFrame for TTFB reporting.
- Added FunctionFilter for custom frame filtering.
- Added LLMService.register_function() for function calling.
- Added enable_metrics to PipelineParams.
New Features
- Pipeline base class
- Function calling
- Metrics framework
Full Release Notes
### 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 a `processors_with_metrics()` method that returns a list of all `FrameProcessor`s in the pipeline that can generate metrics. - Added `enable_metrics` to `PipelineParams`. - Added `MetricsFrame`. The `MetricsFrame` 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 a `Frame` to the processor/service until the first `DataFrame` is pushed downstream. If metrics are enabled an intial `MetricsFrame` with all the services in the pipeline will be sent. - Added TTFB metrics and debug logging for TTS services. ### Changed - Moved `ParallelTask` to `pipecat.pipeline.parallel_task`. ### Fixed - Fixed PlayHT TTS service to work properly async.