Skip to content

Commit e71d9b1

Browse files
MarkDaoustcopybara-github
authored andcommitted
feat: [GenerateContent] Add GenerationConfig.audio_transcription_config and Part.audio_transcription.
PiperOrigin-RevId: 945159024
1 parent 724ac51 commit e71d9b1

7 files changed

Lines changed: 405 additions & 108 deletions

File tree

google/genai/_live_converters.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@ def _AudioTranscriptionConfig_to_mldev(
4747
getv(from_object, ['adaptation_phrases']),
4848
)
4949

50+
if getv(from_object, ['word_timestamp']) is not None:
51+
setv(to_object, ['wordTimestamp'], getv(from_object, ['word_timestamp']))
52+
53+
if getv(from_object, ['diarization']) is not None:
54+
setv(to_object, ['diarization'], getv(from_object, ['diarization']))
55+
5056
return to_object
5157

5258

@@ -409,6 +415,13 @@ def _GenerationConfig_to_vertex(
409415
' mode, not in Gemini Enterprise Agent Platform mode.'
410416
)
411417

418+
if getv(from_object, ['audio_transcription_config']) is not None:
419+
setv(
420+
to_object,
421+
['audioTranscriptionConfig'],
422+
getv(from_object, ['audio_transcription_config']),
423+
)
424+
412425
return to_object
413426

414427

@@ -1689,6 +1702,13 @@ def _Part_to_mldev(
16891702
if getv(from_object, ['part_metadata']) is not None:
16901703
setv(to_object, ['partMetadata'], getv(from_object, ['part_metadata']))
16911704

1705+
if getv(from_object, ['audio_transcription']) is not None:
1706+
setv(
1707+
to_object,
1708+
['audioTranscription'],
1709+
getv(from_object, ['audio_transcription']),
1710+
)
1711+
16921712
return to_object
16931713

16941714

@@ -1770,6 +1790,13 @@ def _Part_to_vertex(
17701790
' mode, not in Gemini Enterprise Agent Platform mode.'
17711791
)
17721792

1793+
if getv(from_object, ['audio_transcription']) is not None:
1794+
setv(
1795+
to_object,
1796+
['audioTranscription'],
1797+
getv(from_object, ['audio_transcription']),
1798+
)
1799+
17731800
return to_object
17741801

17751802

google/genai/_tokens_converters.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@ def _AudioTranscriptionConfig_to_mldev(
4747
getv(from_object, ['adaptation_phrases']),
4848
)
4949

50+
if getv(from_object, ['word_timestamp']) is not None:
51+
setv(to_object, ['wordTimestamp'], getv(from_object, ['word_timestamp']))
52+
53+
if getv(from_object, ['diarization']) is not None:
54+
setv(to_object, ['diarization'], getv(from_object, ['diarization']))
55+
5056
return to_object
5157

5258

@@ -595,6 +601,13 @@ def _Part_to_mldev(
595601
if getv(from_object, ['part_metadata']) is not None:
596602
setv(to_object, ['partMetadata'], getv(from_object, ['part_metadata']))
597603

604+
if getv(from_object, ['audio_transcription']) is not None:
605+
setv(
606+
to_object,
607+
['audioTranscription'],
608+
getv(from_object, ['audio_transcription']),
609+
)
610+
598611
return to_object
599612

600613

google/genai/batches.py

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,39 @@
3434
logger = logging.getLogger('google_genai.batches')
3535

3636

37+
def _AudioTranscriptionConfig_to_mldev(
38+
from_object: Union[dict[str, Any], object],
39+
parent_object: Optional[dict[str, Any]] = None,
40+
) -> dict[str, Any]:
41+
to_object: dict[str, Any] = {}
42+
if getv(from_object, ['language_codes']) is not None:
43+
raise ValueError(
44+
'language_codes parameter is only supported in Gemini Enterprise Agent'
45+
' Platform mode, not in Gemini Developer API mode.'
46+
)
47+
48+
if getv(from_object, ['language_auto']) is not None:
49+
setv(to_object, ['languageAuto'], getv(from_object, ['language_auto']))
50+
51+
if getv(from_object, ['language_hints']) is not None:
52+
setv(to_object, ['languageHints'], getv(from_object, ['language_hints']))
53+
54+
if getv(from_object, ['adaptation_phrases']) is not None:
55+
setv(
56+
to_object,
57+
['adaptationPhrases'],
58+
getv(from_object, ['adaptation_phrases']),
59+
)
60+
61+
if getv(from_object, ['word_timestamp']) is not None:
62+
setv(to_object, ['wordTimestamp'], getv(from_object, ['word_timestamp']))
63+
64+
if getv(from_object, ['diarization']) is not None:
65+
setv(to_object, ['diarization'], getv(from_object, ['diarization']))
66+
67+
return to_object
68+
69+
3770
def _AuthConfig_to_mldev(
3871
from_object: Union[dict[str, Any], object],
3972
parent_object: Optional[dict[str, Any]] = None,
@@ -1182,6 +1215,15 @@ def _GenerateContentConfig_to_mldev(
11821215
if getv(from_object, ['service_tier']) is not None:
11831216
setv(parent_object, ['serviceTier'], getv(from_object, ['service_tier']))
11841217

1218+
if getv(from_object, ['audio_transcription_config']) is not None:
1219+
setv(
1220+
to_object,
1221+
['audioTranscriptionConfig'],
1222+
_AudioTranscriptionConfig_to_mldev(
1223+
getv(from_object, ['audio_transcription_config']), to_object
1224+
),
1225+
)
1226+
11851227
return to_object
11861228

11871229

@@ -1606,6 +1648,13 @@ def _Part_to_mldev(
16061648
if getv(from_object, ['part_metadata']) is not None:
16071649
setv(to_object, ['partMetadata'], getv(from_object, ['part_metadata']))
16081650

1651+
if getv(from_object, ['audio_transcription']) is not None:
1652+
setv(
1653+
to_object,
1654+
['audioTranscription'],
1655+
getv(from_object, ['audio_transcription']),
1656+
)
1657+
16091658
return to_object
16101659

16111660

google/genai/caches.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -789,6 +789,13 @@ def _Part_to_mldev(
789789
if getv(from_object, ['part_metadata']) is not None:
790790
setv(to_object, ['partMetadata'], getv(from_object, ['part_metadata']))
791791

792+
if getv(from_object, ['audio_transcription']) is not None:
793+
setv(
794+
to_object,
795+
['audioTranscription'],
796+
getv(from_object, ['audio_transcription']),
797+
)
798+
792799
return to_object
793800

794801

@@ -870,6 +877,13 @@ def _Part_to_vertex(
870877
' mode, not in Gemini Enterprise Agent Platform mode.'
871878
)
872879

880+
if getv(from_object, ['audio_transcription']) is not None:
881+
setv(
882+
to_object,
883+
['audioTranscription'],
884+
getv(from_object, ['audio_transcription']),
885+
)
886+
873887
return to_object
874888

875889

google/genai/models.py

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,40 @@ def _VideoGenerationReferenceType_to_mldev_enum_validate(
6464
)
6565

6666

67+
def _AudioTranscriptionConfig_to_mldev(
68+
from_object: Union[dict[str, Any], object],
69+
parent_object: Optional[dict[str, Any]] = None,
70+
root_object: Optional[Union[dict[str, Any], object]] = None,
71+
) -> dict[str, Any]:
72+
to_object: dict[str, Any] = {}
73+
if getv(from_object, ['language_codes']) is not None:
74+
raise ValueError(
75+
'language_codes parameter is only supported in Gemini Enterprise Agent'
76+
' Platform mode, not in Gemini Developer API mode.'
77+
)
78+
79+
if getv(from_object, ['language_auto']) is not None:
80+
setv(to_object, ['languageAuto'], getv(from_object, ['language_auto']))
81+
82+
if getv(from_object, ['language_hints']) is not None:
83+
setv(to_object, ['languageHints'], getv(from_object, ['language_hints']))
84+
85+
if getv(from_object, ['adaptation_phrases']) is not None:
86+
setv(
87+
to_object,
88+
['adaptationPhrases'],
89+
getv(from_object, ['adaptation_phrases']),
90+
)
91+
92+
if getv(from_object, ['word_timestamp']) is not None:
93+
setv(to_object, ['wordTimestamp'], getv(from_object, ['word_timestamp']))
94+
95+
if getv(from_object, ['diarization']) is not None:
96+
setv(to_object, ['diarization'], getv(from_object, ['diarization']))
97+
98+
return to_object
99+
100+
67101
def _AuthConfig_to_mldev(
68102
from_object: Union[dict[str, Any], object],
69103
parent_object: Optional[dict[str, Any]] = None,
@@ -1453,6 +1487,17 @@ def _GenerateContentConfig_to_mldev(
14531487
if getv(from_object, ['service_tier']) is not None:
14541488
setv(parent_object, ['serviceTier'], getv(from_object, ['service_tier']))
14551489

1490+
if getv(from_object, ['audio_transcription_config']) is not None:
1491+
setv(
1492+
to_object,
1493+
['audioTranscriptionConfig'],
1494+
_AudioTranscriptionConfig_to_mldev(
1495+
getv(from_object, ['audio_transcription_config']),
1496+
to_object,
1497+
root_object,
1498+
),
1499+
)
1500+
14561501
return to_object
14571502

14581503

@@ -1643,6 +1688,13 @@ def _GenerateContentConfig_to_vertex(
16431688
if getv(from_object, ['service_tier']) is not None:
16441689
setv(parent_object, ['serviceTier'], getv(from_object, ['service_tier']))
16451690

1691+
if getv(from_object, ['audio_transcription_config']) is not None:
1692+
setv(
1693+
to_object,
1694+
['audioTranscriptionConfig'],
1695+
getv(from_object, ['audio_transcription_config']),
1696+
)
1697+
16461698
return to_object
16471699

16481700

@@ -2990,6 +3042,13 @@ def _GenerationConfig_to_vertex(
29903042
' mode, not in Gemini Enterprise Agent Platform mode.'
29913043
)
29923044

3045+
if getv(from_object, ['audio_transcription_config']) is not None:
3046+
setv(
3047+
to_object,
3048+
['audioTranscriptionConfig'],
3049+
getv(from_object, ['audio_transcription_config']),
3050+
)
3051+
29933052
return to_object
29943053

29953054

@@ -3664,6 +3723,13 @@ def _Part_to_mldev(
36643723
if getv(from_object, ['part_metadata']) is not None:
36653724
setv(to_object, ['partMetadata'], getv(from_object, ['part_metadata']))
36663725

3726+
if getv(from_object, ['audio_transcription']) is not None:
3727+
setv(
3728+
to_object,
3729+
['audioTranscription'],
3730+
getv(from_object, ['audio_transcription']),
3731+
)
3732+
36673733
return to_object
36683734

36693735

@@ -3746,6 +3812,13 @@ def _Part_to_vertex(
37463812
' mode, not in Gemini Enterprise Agent Platform mode.'
37473813
)
37483814

3815+
if getv(from_object, ['audio_transcription']) is not None:
3816+
setv(
3817+
to_object,
3818+
['audioTranscription'],
3819+
getv(from_object, ['audio_transcription']),
3820+
)
3821+
37493822
return to_object
37503823

37513824

google/genai/tunings.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1242,6 +1242,13 @@ def _GenerationConfig_from_vertex(
12421242
[item for item in getv(from_object, ['responseFormat'])],
12431243
)
12441244

1245+
if getv(from_object, ['audioTranscriptionConfig']) is not None:
1246+
setv(
1247+
to_object,
1248+
['audio_transcription_config'],
1249+
getv(from_object, ['audioTranscriptionConfig']),
1250+
)
1251+
12451252
return to_object
12461253

12471254

@@ -1376,6 +1383,13 @@ def _GenerationConfig_to_vertex(
13761383
' mode, not in Gemini Enterprise Agent Platform mode.'
13771384
)
13781385

1386+
if getv(from_object, ['audio_transcription_config']) is not None:
1387+
setv(
1388+
to_object,
1389+
['audioTranscriptionConfig'],
1390+
getv(from_object, ['audio_transcription_config']),
1391+
)
1392+
13791393
return to_object
13801394

13811395

@@ -1567,6 +1581,13 @@ def _Part_to_vertex(
15671581
' mode, not in Gemini Enterprise Agent Platform mode.'
15681582
)
15691583

1584+
if getv(from_object, ['audio_transcription']) is not None:
1585+
setv(
1586+
to_object,
1587+
['audioTranscription'],
1588+
getv(from_object, ['audio_transcription']),
1589+
)
1590+
15701591
return to_object
15711592

15721593

0 commit comments

Comments
 (0)