livekit-plugins-google 1.0.0rc4__py3-none-any.whl → 1.0.0rc6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,13 +5,13 @@ from typing import Literal, Union
5
5
 
6
6
  from google.genai import types
7
7
 
8
- from ..._utils import _build_gemini_ctx, _build_tools
8
+ # from ..._utils import _build_gemini_ctx, _build_tools
9
9
 
10
10
  LiveAPIModels = Literal["gemini-2.0-flash-exp"]
11
11
 
12
12
  Voice = Literal["Puck", "Charon", "Kore", "Fenrir", "Aoede"]
13
13
 
14
- __all__ = ["_build_tools", "ClientEvents", "_build_gemini_ctx"]
14
+ # __all__ = ["_build_tools", "ClientEvents", "_build_gemini_ctx"]
15
15
 
16
16
  ClientEvents = Union[
17
17
  types.ContentListUnion,
@@ -27,7 +27,6 @@ from google.genai.types import (
27
27
  )
28
28
  from livekit import rtc
29
29
  from livekit.agents import llm, utils
30
- from livekit.agents.llm.function_context import _create_ai_function_info
31
30
  from livekit.agents.utils import images
32
31
 
33
32
  from ...log import logger
@@ -35,9 +34,10 @@ from .api_proto import (
35
34
  ClientEvents,
36
35
  LiveAPIModels,
37
36
  Voice,
38
- _build_gemini_ctx,
39
- _build_tools,
40
37
  )
38
+
39
+ # temporary placeholders
40
+ from .temp import _build_gemini_ctx, _build_tools, _create_ai_function_info
41
41
  from .transcriber import ModelTranscriber, TranscriberSession, TranscriptionContent
42
42
 
43
43
  EventTypes = Literal[
@@ -0,0 +1,10 @@
1
+ def _build_tools():
2
+ pass
3
+
4
+
5
+ def _create_ai_function_info():
6
+ pass
7
+
8
+
9
+ def _build_gemini_ctx():
10
+ pass
@@ -18,7 +18,7 @@ from __future__ import annotations
18
18
  import json
19
19
  import os
20
20
  from dataclasses import dataclass
21
- from typing import Any, Literal, cast
21
+ from typing import Any, cast
22
22
 
23
23
  from google import genai
24
24
  from google.auth._default_async import default_async
@@ -43,7 +43,7 @@ from .utils import to_chat_ctx, to_fnc_ctx
43
43
  class _LLMOptions:
44
44
  model: ChatModels | str
45
45
  temperature: NotGivenOr[float]
46
- tool_choice: NotGivenOr[ToolChoice | Literal["auto", "required", "none"]]
46
+ tool_choice: NotGivenOr[ToolChoice]
47
47
  vertexai: NotGivenOr[bool]
48
48
  project: NotGivenOr[str]
49
49
  location: NotGivenOr[str]
@@ -69,7 +69,7 @@ class LLM(llm.LLM):
69
69
  top_k: NotGivenOr[float] = NOT_GIVEN,
70
70
  presence_penalty: NotGivenOr[float] = NOT_GIVEN,
71
71
  frequency_penalty: NotGivenOr[float] = NOT_GIVEN,
72
- tool_choice: NotGivenOr[ToolChoice | Literal["auto", "required", "none"]] = NOT_GIVEN,
72
+ tool_choice: NotGivenOr[ToolChoice] = NOT_GIVEN,
73
73
  ) -> None:
74
74
  """
75
75
  Create a new instance of Google GenAI LLM.
@@ -93,7 +93,7 @@ class LLM(llm.LLM):
93
93
  top_k (int, optional): The top-k sampling value for response generation. Defaults to None.
94
94
  presence_penalty (float, optional): Penalizes the model for generating previously mentioned concepts. Defaults to None.
95
95
  frequency_penalty (float, optional): Penalizes the model for repeating words. Defaults to None.
96
- tool_choice (ToolChoice or Literal["auto", "required", "none"], optional): Specifies whether to use tools during response generation. Defaults to "auto".
96
+ tool_choice (ToolChoice, optional): Specifies whether to use tools during response generation. Defaults to "auto".
97
97
  """ # noqa: E501
98
98
  super().__init__()
99
99
  gcp_project = project if is_given(project) else os.environ.get("GOOGLE_CLOUD_PROJECT")
@@ -147,7 +147,7 @@ class LLM(llm.LLM):
147
147
  tools: list[FunctionTool] | None = None,
148
148
  conn_options: APIConnectOptions = DEFAULT_API_CONNECT_OPTIONS,
149
149
  parallel_tool_calls: NotGivenOr[bool] = NOT_GIVEN,
150
- tool_choice: NotGivenOr[ToolChoice | Literal["auto", "required", "none"]] = NOT_GIVEN,
150
+ tool_choice: NotGivenOr[ToolChoice] = NOT_GIVEN,
151
151
  extra_kwargs: NotGivenOr[dict[str, Any]] = NOT_GIVEN,
152
152
  ) -> LLMStream:
153
153
  extra = {}
@@ -158,7 +158,7 @@ class LLM(llm.LLM):
158
158
  tool_choice = tool_choice if is_given(tool_choice) else self._opts.tool_choice
159
159
  if is_given(tool_choice):
160
160
  gemini_tool_choice: types.ToolConfig
161
- if isinstance(tool_choice, ToolChoice):
161
+ if isinstance(tool_choice, dict) and tool_choice.get("type") == "function":
162
162
  gemini_tool_choice = types.ToolConfig(
163
163
  function_calling_config=types.FunctionCallingConfig(
164
164
  mode="ANY",
@@ -30,7 +30,7 @@ def to_chat_ctx(
30
30
  if msg.type == "message" and msg.role == "system":
31
31
  sys_parts = []
32
32
  for content in msg.content:
33
- if isinstance(content, str):
33
+ if content and isinstance(content, str):
34
34
  sys_parts.append(types.Part(text=content))
35
35
  system_instruction = types.Content(parts=sys_parts)
36
36
  continue
@@ -51,9 +51,9 @@ def to_chat_ctx(
51
51
 
52
52
  if msg.type == "message":
53
53
  for content in msg.content:
54
- if isinstance(content, str):
54
+ if content and isinstance(content, str):
55
55
  parts.append(types.Part(text=content))
56
- elif isinstance(content, dict):
56
+ elif content and isinstance(content, dict):
57
57
  parts.append(types.Part(text=json.dumps(content)))
58
58
  elif isinstance(content, llm.ImageContent):
59
59
  parts.append(_to_image_part(content, cache_key))
@@ -12,4 +12,4 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- __version__ = '1.0.0.rc4'
15
+ __version__ = '1.0.0.rc6'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: livekit-plugins-google
3
- Version: 1.0.0rc4
3
+ Version: 1.0.0rc6
4
4
  Summary: Agent Framework plugin for services from Google Cloud
5
5
  Project-URL: Documentation, https://docs.livekit.io
6
6
  Project-URL: Website, https://livekit.io/
@@ -22,7 +22,7 @@ Requires-Dist: google-auth<3,>=2
22
22
  Requires-Dist: google-cloud-speech<3,>=2
23
23
  Requires-Dist: google-cloud-texttospeech<3,>=2
24
24
  Requires-Dist: google-genai==1.5.0
25
- Requires-Dist: livekit-agents>=1.0.0.rc4
25
+ Requires-Dist: livekit-agents>=1.0.0.rc6
26
26
  Description-Content-Type: text/markdown
27
27
 
28
28
  # LiveKit Plugins Google
@@ -1,17 +1,18 @@
1
1
  livekit/plugins/google/__init__.py,sha256=e_kSlFNmKhyyeliz7f4WOKc_Y0-y39QjO5nCWuguhss,1171
2
- livekit/plugins/google/llm.py,sha256=oAi4EUitki2EUWIMEcnSVO4AB6EmZzi3vNiDG2mdVvU,14377
2
+ livekit/plugins/google/llm.py,sha256=1yy6DaPxcO5EUN3JORpZ-q5ygdPWWmq6P3x73EbAqK4,14251
3
3
  livekit/plugins/google/log.py,sha256=GI3YWN5YzrafnUccljzPRS_ZALkMNk1i21IRnTl2vNA,69
4
4
  livekit/plugins/google/models.py,sha256=SGjAumdDK97NNLwMFcqZdKR68f1NoGB2Rk1UP2-imG0,1457
5
5
  livekit/plugins/google/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  livekit/plugins/google/stt.py,sha256=fT5JtDM8ck2iMAzRvFKVeyT1oPt_R-bDkqiLa-ysikc,22539
7
7
  livekit/plugins/google/tts.py,sha256=mYm9n4zDzmNEAF3bSOb4-603CJrrdv9YJhrfbp5_k5A,7455
8
- livekit/plugins/google/utils.py,sha256=G38YJO5siXxlMU15j9PmvRfuLAJmXzlXyhd457jKey0,8375
9
- livekit/plugins/google/version.py,sha256=j59nZMZZ8g3asKADdj9zt64g9i53Uq4ib4H0zY4FnPM,604
8
+ livekit/plugins/google/utils.py,sha256=Ezh8eX6ld_11achNzUQqT4Owe1mKgOfBTl5IInt4Fm4,8411
9
+ livekit/plugins/google/version.py,sha256=PDOEKN5zsYLQdbfAm5Di6G1sFYANNA0LqJR8zZzeghg,604
10
10
  livekit/plugins/google/beta/__init__.py,sha256=AxRYc7NGG62Tv1MmcZVCDHNvlhbC86hM-_yP01Qb28k,47
11
11
  livekit/plugins/google/beta/realtime/__init__.py,sha256=_fW2NMN22F-hnQ4xAJ_g5lPbR7CvM_xXzSWlUQY-E-U,188
12
- livekit/plugins/google/beta/realtime/api_proto.py,sha256=zrAR9aZ3wFpEiIoSi_8xiP6i8k5diPSl-r298imUyf4,684
13
- livekit/plugins/google/beta/realtime/realtime_api.py,sha256=b7shOYZ86b38zxZCJkgzLQQeWESYo3VUZU1-7rNDAmw,22588
12
+ livekit/plugins/google/beta/realtime/api_proto.py,sha256=VO6QqOGOrxzsaOLBqnwNd8c-BId0PjwKicdrPTJisy0,688
13
+ livekit/plugins/google/beta/realtime/realtime_api.py,sha256=ERM6WvcTtrfIyKpukzoSYrkhd3eYxIY-I09mKWp8vLk,22576
14
+ livekit/plugins/google/beta/realtime/temp.py,sha256=an_YueuS_tUw3_QC6xWkkcw5JrJOBQFv2pJh6atpNcc,108
14
15
  livekit/plugins/google/beta/realtime/transcriber.py,sha256=DD7q894xc25GeeuKDar6-GwH-MxStEwhwBiX-KZ-Jo4,9559
15
- livekit_plugins_google-1.0.0rc4.dist-info/METADATA,sha256=WFkUe9U3EZq-ecGc05X6SJVzaT7fCO2UOEWInuFbShc,3496
16
- livekit_plugins_google-1.0.0rc4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
17
- livekit_plugins_google-1.0.0rc4.dist-info/RECORD,,
16
+ livekit_plugins_google-1.0.0rc6.dist-info/METADATA,sha256=FsushpxpQGoSVYyzBTT-mZ1tRLVx4kOquWN9-k-Nb0U,3496
17
+ livekit_plugins_google-1.0.0rc6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
18
+ livekit_plugins_google-1.0.0rc6.dist-info/RECORD,,