diff --git a/src/pipecat/adapters/base_llm_adapter.py b/src/pipecat/adapters/base_llm_adapter.py index ad563df3a..2a4257b64 100644 --- a/src/pipecat/adapters/base_llm_adapter.py +++ b/src/pipecat/adapters/base_llm_adapter.py @@ -16,7 +16,7 @@ from typing import Any, Generic, List, TypeVar, Union, cast from loguru import logger from pipecat.adapters.schemas.tools_schema import ToolsSchema -from pipecat.processors.aggregators.llm_context import LLMContext +from pipecat.processors.aggregators.llm_context import LLMContext, NotGiven # Should be a TypedDict TLLMInvocationParams = TypeVar("TLLMInvocationParams", bound=dict[str, Any]) @@ -75,8 +75,7 @@ class BaseLLMAdapter(ABC, Generic[TLLMInvocationParams]): """ pass - # TODO: should this also be able to return NotGiven? - def from_standard_tools(self, tools: Any) -> List[Any]: + def from_standard_tools(self, tools: Any) -> List[Any] | NotGiven: """Convert tools from standard format to provider format. Args: diff --git a/src/pipecat/adapters/services/gemini_adapter.py b/src/pipecat/adapters/services/gemini_adapter.py index 6b52010b5..b38a01077 100644 --- a/src/pipecat/adapters/services/gemini_adapter.py +++ b/src/pipecat/adapters/services/gemini_adapter.py @@ -12,6 +12,7 @@ from dataclasses import dataclass from typing import Any, List, Optional, TypedDict from loguru import logger +from openai import NotGiven from pipecat.adapters.base_llm_adapter import BaseLLMAdapter from pipecat.adapters.schemas.tools_schema import AdapterType, ToolsSchema @@ -41,7 +42,7 @@ class GeminiLLMInvocationParams(TypedDict): system_instruction: Optional[str] messages: List[Content] - tools: List[Any] + tools: List[Any] | NotGiven class GeminiLLMAdapter(BaseLLMAdapter[GeminiLLMInvocationParams]):