1616
1717using System ;
1818using System . Collections . Generic ;
19+ using System . Linq ;
20+ using Firebase . VertexAI . Internal ;
1921
2022namespace Firebase . VertexAI {
2123
@@ -34,6 +36,7 @@ public readonly struct GenerationConfig {
3436 private readonly string [ ] _stopSequences ;
3537 private readonly string _responseMimeType ;
3638 private readonly Schema _responseSchema ;
39+ private readonly List < ResponseModality > _responseModalities ;
3740
3841 /// <summary>
3942 /// Creates a new `GenerationConfig` value.
@@ -146,7 +149,8 @@ public GenerationConfig(
146149 float ? frequencyPenalty = null ,
147150 string [ ] stopSequences = null ,
148151 string responseMimeType = null ,
149- Schema responseSchema = null ) {
152+ Schema responseSchema = null ,
153+ IEnumerable < ResponseModality > responseModalities = null ) {
150154 _temperature = temperature ;
151155 _topP = topP ;
152156 _topK = topK ;
@@ -157,6 +161,8 @@ public GenerationConfig(
157161 _stopSequences = stopSequences ;
158162 _responseMimeType = responseMimeType ;
159163 _responseSchema = responseSchema ;
164+ _responseModalities = responseModalities != null ?
165+ new List < ResponseModality > ( responseModalities ) : null ;
160166 }
161167
162168 /// <summary>
@@ -175,6 +181,10 @@ internal Dictionary<string, object> ToJson() {
175181 if ( _stopSequences != null && _stopSequences . Length > 0 ) jsonDict [ "stopSequences" ] = _stopSequences ;
176182 if ( ! string . IsNullOrWhiteSpace ( _responseMimeType ) ) jsonDict [ "responseMimeType" ] = _responseMimeType ;
177183 if ( _responseSchema != null ) jsonDict [ "responseSchema" ] = _responseSchema . ToJson ( ) ;
184+ if ( _responseModalities != null && _responseModalities . Count > 0 ) {
185+ jsonDict [ "responseModalities" ] =
186+ _responseModalities . Select ( EnumConverters . ResponseModalityToString ) . ToList ( ) ;
187+ }
178188
179189 return jsonDict ;
180190 }
0 commit comments