Merge pull request #2824 from pipecat-ai/aleix/gemini-under-google
google: move gemini_live inside google service
This commit is contained in:
23
CHANGELOG.md
23
CHANGELOG.md
@@ -9,10 +9,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Added `GeminiVertexMultimodalLiveLLMService`, for accessing Gemini Live via
|
- Added `GeminiLiveVertexLLMService`, for accessing Gemini Live via Google
|
||||||
Google Vertex AI.
|
Vertex AI.
|
||||||
|
|
||||||
- Added some new configuration options to `GeminiMultimodalLiveLLMService`:
|
- Added some new configuration options to `GeminiLiveLLMService`:
|
||||||
|
|
||||||
- `thinking`
|
- `thinking`
|
||||||
- `enable_affective_dialog`
|
- `enable_affective_dialog`
|
||||||
@@ -37,16 +37,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Updated `GeminiMultimodalLiveLLMService` to use the `google-genai` library
|
- Updated `GeminiLiveLLMService` to use the `google-genai` library rather than
|
||||||
rather than use WebSockets directly.
|
use WebSockets directly.
|
||||||
|
|
||||||
|
### Deprecated
|
||||||
|
|
||||||
|
- `GeminiMultimodalLiveLLMService` is now deprecated, use
|
||||||
|
`GeminiLiveLLMService`.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- `GeminiMultimodalLiveLLMService` will now end gracefully (i.e. after the bot
|
- `GeminiLiveLLMService` will now end gracefully (i.e. after the bot has
|
||||||
has finished) upon receiving an `EndFrame`.
|
finished) upon receiving an `EndFrame`.
|
||||||
|
|
||||||
- `GeminiMultimodalLiveLLMService` will try to seamlessly reconnect when it
|
- `GeminiLiveLLMService` will try to seamlessly reconnect when it loses its
|
||||||
loses its connection.
|
connection.
|
||||||
|
|
||||||
## [0.0.89] - 2025-10-07
|
## [0.0.89] - 2025-10-07
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ from pipecat.pipeline.runner import PipelineRunner
|
|||||||
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
||||||
from pipecat.runner.types import RunnerArguments
|
from pipecat.runner.types import RunnerArguments
|
||||||
from pipecat.runner.utils import create_transport
|
from pipecat.runner.utils import create_transport
|
||||||
from pipecat.services.gemini_live.gemini import GeminiLiveLLMService
|
from pipecat.services.google.gemini_live.gemini import GeminiLiveLLMService
|
||||||
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
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
|
|||||||
from pipecat.processors.transcript_processor import TranscriptProcessor
|
from pipecat.processors.transcript_processor import TranscriptProcessor
|
||||||
from pipecat.runner.types import RunnerArguments
|
from pipecat.runner.types import RunnerArguments
|
||||||
from pipecat.runner.utils import create_transport
|
from pipecat.runner.utils import create_transport
|
||||||
from pipecat.services.gemini_live.gemini import GeminiLiveLLMService
|
from pipecat.services.google.gemini_live.gemini import GeminiLiveLLMService
|
||||||
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
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ from pipecat.pipeline.task import PipelineParams, PipelineTask
|
|||||||
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
|
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
|
||||||
from pipecat.runner.types import RunnerArguments
|
from pipecat.runner.types import RunnerArguments
|
||||||
from pipecat.runner.utils import create_transport
|
from pipecat.runner.utils import create_transport
|
||||||
from pipecat.services.gemini_live.gemini import GeminiLiveLLMService
|
from pipecat.services.google.gemini_live.gemini import GeminiLiveLLMService
|
||||||
from pipecat.services.llm_service import FunctionCallParams
|
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
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ from pipecat.runner.utils import (
|
|||||||
maybe_capture_participant_camera,
|
maybe_capture_participant_camera,
|
||||||
maybe_capture_participant_screen,
|
maybe_capture_participant_screen,
|
||||||
)
|
)
|
||||||
from pipecat.services.gemini_live.gemini import GeminiLiveLLMService
|
from pipecat.services.google.gemini_live.gemini import GeminiLiveLLMService
|
||||||
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
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
|
|||||||
from pipecat.runner.types import RunnerArguments
|
from pipecat.runner.types import RunnerArguments
|
||||||
from pipecat.runner.utils import create_transport
|
from pipecat.runner.utils import create_transport
|
||||||
from pipecat.services.cartesia.tts import CartesiaTTSService
|
from pipecat.services.cartesia.tts import CartesiaTTSService
|
||||||
from pipecat.services.gemini_live.gemini import (
|
from pipecat.services.google.gemini_live.gemini import (
|
||||||
GeminiLiveLLMService,
|
GeminiLiveLLMService,
|
||||||
GeminiModalities,
|
GeminiModalities,
|
||||||
InputParams,
|
InputParams,
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ from pipecat.pipeline.task import PipelineParams, PipelineTask
|
|||||||
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
|
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
|
||||||
from pipecat.runner.types import RunnerArguments
|
from pipecat.runner.types import RunnerArguments
|
||||||
from pipecat.runner.utils import create_transport
|
from pipecat.runner.utils import create_transport
|
||||||
from pipecat.services.gemini_live.gemini import GeminiLiveLLMService
|
from pipecat.services.google.gemini_live.gemini import GeminiLiveLLMService
|
||||||
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
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ from pipecat.pipeline.task import PipelineParams, PipelineTask
|
|||||||
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
|
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
|
||||||
from pipecat.runner.types import RunnerArguments
|
from pipecat.runner.types import RunnerArguments
|
||||||
from pipecat.runner.utils import create_transport
|
from pipecat.runner.utils import create_transport
|
||||||
from pipecat.services.gemini_live.gemini import (
|
from pipecat.services.google.gemini_live.gemini import (
|
||||||
GeminiLiveLLMService,
|
GeminiLiveLLMService,
|
||||||
)
|
)
|
||||||
from pipecat.transports.base_transport import BaseTransport, TransportParams
|
from pipecat.transports.base_transport import BaseTransport, TransportParams
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
|
|||||||
from pipecat.processors.frame_processor import FrameDirection, FrameProcessor
|
from pipecat.processors.frame_processor import FrameDirection, FrameProcessor
|
||||||
from pipecat.runner.types import RunnerArguments
|
from pipecat.runner.types import RunnerArguments
|
||||||
from pipecat.runner.utils import create_transport
|
from pipecat.runner.utils import create_transport
|
||||||
from pipecat.services.gemini_live.gemini import GeminiLiveLLMService
|
|
||||||
from pipecat.services.google.frames import LLMSearchResponseFrame
|
from pipecat.services.google.frames import LLMSearchResponseFrame
|
||||||
|
from pipecat.services.google.gemini_live.gemini import GeminiLiveLLMService
|
||||||
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
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ from pipecat.pipeline.runner import PipelineRunner
|
|||||||
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
||||||
from pipecat.runner.types import RunnerArguments
|
from pipecat.runner.types import RunnerArguments
|
||||||
from pipecat.runner.utils import create_transport
|
from pipecat.runner.utils import create_transport
|
||||||
from pipecat.services.gemini_live.gemini import GeminiLiveLLMService
|
from pipecat.services.google.gemini_live.gemini import GeminiLiveLLMService
|
||||||
from pipecat.services.gemini_live.vertex import GeminiLiveVertexLLMService
|
from pipecat.services.google.gemini_live.vertex import GeminiLiveVertexLLMService
|
||||||
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
|
||||||
|
|||||||
@@ -4,8 +4,6 @@
|
|||||||
# SPDX-License-Identifier: BSD 2-Clause License
|
# SPDX-License-Identifier: BSD 2-Clause License
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
import asyncio
|
|
||||||
import os
|
import os
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
@@ -24,7 +22,7 @@ from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
|
|||||||
from pipecat.processors.frame_processor import FrameDirection
|
from pipecat.processors.frame_processor import FrameDirection
|
||||||
from pipecat.runner.types import RunnerArguments
|
from pipecat.runner.types import RunnerArguments
|
||||||
from pipecat.runner.utils import create_transport
|
from pipecat.runner.utils import create_transport
|
||||||
from pipecat.services.gemini_live.gemini import GeminiLiveLLMService
|
from pipecat.services.google.gemini_live.gemini import GeminiLiveLLMService
|
||||||
from pipecat.services.llm_service import FunctionCallParams
|
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
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ from pipecat.processors.frame_processor import FrameDirection, FrameProcessor
|
|||||||
from pipecat.processors.frameworks.rtvi import RTVIObserver, RTVIProcessor
|
from pipecat.processors.frameworks.rtvi import RTVIObserver, RTVIProcessor
|
||||||
from pipecat.runner.types import RunnerArguments
|
from pipecat.runner.types import RunnerArguments
|
||||||
from pipecat.runner.utils import create_transport
|
from pipecat.runner.utils import create_transport
|
||||||
from pipecat.services.gemini_live import GeminiLiveLLMService
|
from pipecat.services.google.gemini_live import GeminiLiveLLMService
|
||||||
from pipecat.transports.base_transport import TransportParams
|
from pipecat.transports.base_transport import TransportParams
|
||||||
from pipecat.transports.daily.transport import DailyParams, DailyTransport
|
from pipecat.transports.daily.transport import DailyParams, DailyTransport
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import warnings
|
|||||||
from loguru import logger
|
from loguru import logger
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from pipecat.services.gemini_live.file_api import GeminiFileAPI as _GeminiFileAPI
|
from pipecat.services.google.gemini_live.file_api import GeminiFileAPI as _GeminiFileAPI
|
||||||
except ModuleNotFoundError as e:
|
except ModuleNotFoundError as e:
|
||||||
logger.error(f"Exception: {e}")
|
logger.error(f"Exception: {e}")
|
||||||
logger.error("In order to use Google AI, you need to `pip install pipecat-ai[google]`.")
|
logger.error("In order to use Google AI, you need to `pip install pipecat-ai[google]`.")
|
||||||
|
|||||||
@@ -18,10 +18,10 @@ voice transcription, streaming responses, and tool usage.
|
|||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
from pipecat.services.gemini_live.gemini import (
|
from pipecat.services.google.gemini_live.gemini import (
|
||||||
ContextWindowCompressionParams as _ContextWindowCompressionParams,
|
ContextWindowCompressionParams as _ContextWindowCompressionParams,
|
||||||
)
|
)
|
||||||
from pipecat.services.gemini_live.gemini import (
|
from pipecat.services.google.gemini_live.gemini import (
|
||||||
GeminiLiveAssistantContextAggregator,
|
GeminiLiveAssistantContextAggregator,
|
||||||
GeminiLiveContext,
|
GeminiLiveContext,
|
||||||
GeminiLiveContextAggregatorPair,
|
GeminiLiveContextAggregatorPair,
|
||||||
@@ -29,9 +29,11 @@ from pipecat.services.gemini_live.gemini import (
|
|||||||
GeminiLiveUserContextAggregator,
|
GeminiLiveUserContextAggregator,
|
||||||
GeminiModalities,
|
GeminiModalities,
|
||||||
)
|
)
|
||||||
from pipecat.services.gemini_live.gemini import GeminiMediaResolution as _GeminiMediaResolution
|
from pipecat.services.google.gemini_live.gemini import (
|
||||||
from pipecat.services.gemini_live.gemini import GeminiVADParams as _GeminiVADParams
|
GeminiMediaResolution as _GeminiMediaResolution,
|
||||||
from pipecat.services.gemini_live.gemini import InputParams as _InputParams
|
)
|
||||||
|
from pipecat.services.google.gemini_live.gemini import GeminiVADParams as _GeminiVADParams
|
||||||
|
from pipecat.services.google.gemini_live.gemini import InputParams as _InputParams
|
||||||
|
|
||||||
with warnings.catch_warnings():
|
with warnings.catch_warnings():
|
||||||
warnings.simplefilter("always")
|
warnings.simplefilter("always")
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ from typing import List, Optional, Union
|
|||||||
from loguru import logger
|
from loguru import logger
|
||||||
|
|
||||||
from pipecat.adapters.schemas.tools_schema import ToolsSchema
|
from pipecat.adapters.schemas.tools_schema import ToolsSchema
|
||||||
from pipecat.services.gemini_live.gemini import (
|
from pipecat.services.google.gemini_live.gemini import (
|
||||||
GeminiLiveLLMService,
|
GeminiLiveLLMService,
|
||||||
HttpOptions,
|
HttpOptions,
|
||||||
InputParams,
|
InputParams,
|
||||||
Reference in New Issue
Block a user