@@ -147,40 +147,75 @@ public MarkdownContentResult Visit(ContentMultimodalText content, ContentVisitor
147
147
{
148
148
if ( part . IsObject )
149
149
{
150
- var obj = part . ObjectValue ;
151
- if ( obj . content_type == "image_asset_pointer" && string . IsNullOrWhiteSpace ( obj . asset_pointer ) == false )
150
+ markdownContent . AddRange ( GetMarkdownMediaAsset ( context , part . ObjectValue ) ) ;
151
+ }
152
+ else if ( part . IsString )
153
+ {
154
+ markdownContent . Add ( part . StringValue ) ;
155
+ }
156
+ }
157
+ return new MarkdownContentResult ( markdownContent ) ;
158
+ }
159
+
160
+ private IEnumerable < string > GetMarkdownMediaAsset ( ContentVisitorContext context , ContentMultimodalText . ContentMultimodalTextParts obj )
161
+ {
162
+ switch ( obj . content_type )
163
+ {
164
+ case "image_asset_pointer" when string . IsNullOrWhiteSpace ( obj . asset_pointer ) == false :
152
165
{
153
166
var searchPattern = obj . asset_pointer . Replace ( "sediment://" , string . Empty ) . Replace ( "file-service://" , string . Empty ) ;
154
- var markdownImage = assetLocator . GetMarkdownImage ( new AssetRequest (
155
- searchPattern ,
156
- context . Role ,
157
- context . CreatedDate ,
158
- context . UpdatedDate )
159
- ) ;
167
+ var markdownImage = GetMediaAsset ( context , searchPattern ) ;
160
168
161
169
if ( string . IsNullOrWhiteSpace ( markdownImage ) == false )
162
170
{
163
- markdownContent . Add ( markdownImage ) ;
171
+ yield return markdownImage ;
164
172
}
165
173
else
166
174
{
167
175
Console . Error . WriteLine ( "\t Unable to find asset " + obj . asset_pointer ) ;
168
- markdownContent . Add ( $ "> ⚠️ **Warning:** Could not find asset: { obj . asset_pointer } .") ;
176
+ yield return $ "> ⚠️ **Warning:** Could not find asset: { obj . asset_pointer } .";
169
177
}
170
178
171
179
if ( context . MessageMetadata . image_gen_title != null )
172
180
{
173
- markdownContent . Add ( $ "*{ context . MessageMetadata . image_gen_title } * ") ;
181
+ yield return $ "*{ context . MessageMetadata . image_gen_title } * ";
174
182
}
175
- markdownContent . Add ( $ "**Size:** { obj . size_bytes } **Dims:** { obj . width } x{ obj . height } ") ;
183
+ yield return $ "**Size:** { obj . size_bytes } **Dims:** { obj . width } x{ obj . height } ";
184
+ break ;
176
185
}
177
- }
178
- else if ( part . IsString )
179
- {
180
- markdownContent . Add ( part . StringValue ) ;
181
- }
186
+
187
+ case "real_time_user_audio_video_asset_pointer" when string . IsNullOrWhiteSpace ( obj . audio_asset_pointer ? . asset_pointer ) == false :
188
+ {
189
+ var searchPattern = obj . audio_asset_pointer . asset_pointer . Replace ( "sediment://" , string . Empty ) . Replace ( "file-service://" , string . Empty ) ;
190
+ var markdownAsset = GetMediaAsset ( context , searchPattern ) ;
191
+
192
+ yield return $ "{ markdownAsset } ";
193
+ break ;
194
+ }
195
+
196
+ case "audio_asset_pointer" when string . IsNullOrWhiteSpace ( obj . asset_pointer ) == false :
197
+ {
198
+ var searchPattern = obj . asset_pointer . Replace ( "sediment://" , string . Empty ) . Replace ( "file-service://" , string . Empty ) ;
199
+ var markdownAsset = GetMediaAsset ( context , searchPattern ) ;
200
+
201
+ yield return $ "{ markdownAsset } ";
202
+ break ;
203
+ }
204
+
205
+ case "audio_transcription" when string . IsNullOrWhiteSpace ( obj . text ) == false :
206
+ yield return $ "*{ obj . text } * ";
207
+ break ;
182
208
}
183
- return new MarkdownContentResult ( markdownContent ) ;
209
+ }
210
+
211
+ private string ? GetMediaAsset ( ContentVisitorContext context , string searchPattern )
212
+ {
213
+ return assetLocator . GetMarkdownMediaAsset ( new AssetRequest (
214
+ searchPattern ,
215
+ context . Role ,
216
+ context . CreatedDate ,
217
+ context . UpdatedDate )
218
+ ) ;
184
219
}
185
220
186
221
public MarkdownContentResult Visit ( ContentCode content , ContentVisitorContext context )
0 commit comments