1212
1313from .message import (
1414 ModuleError ,
15+ ModuleErrorCode ,
1516 ModuleErrorVendorInfo ,
1617 ModuleMetricKey ,
1718 ModuleMetrics ,
@@ -215,7 +216,7 @@ async def send_asr_result(self, asr_result: ASRResult) -> None:
215216
216217 stable_data = Data .create ("asr_result" )
217218
218- model_json = asr_result .model_dump ()
219+ model_json = asr_result .model_dump (exclude_none = True )
219220
220221 stable_data .set_property_from_json (
221222 None ,
@@ -227,40 +228,38 @@ async def send_asr_result(self, asr_result: ASRResult) -> None:
227228 if asr_result .final :
228229 self .uuid = self ._get_uuid () # Reset UUID for the next final turn
229230
230-
231231 @final
232232 async def send_asr_error (
233- self , error : ModuleError , vendor_info : ModuleErrorVendorInfo | None = None
233+ self ,
234+ code : ModuleErrorCode ,
235+ message : str ,
236+ vendor_info : ModuleErrorVendorInfo | None = None ,
234237 ) -> None :
235238 """
236239 Send an error message related to ASR processing.
237240 """
238241 error_data = Data .create ("error" )
239242
240- vendorInfo = None
243+ module_error = ModuleError (
244+ id = self .uuid ,
245+ module = ModuleType .ASR ,
246+ code = code .value ,
247+ message = message ,
248+ metadata = {
249+ PROPERTY_KEY_SESSION_ID : self .session_id or "" ,
250+ },
251+ )
252+
241253 if vendor_info :
242- vendorInfo = {
243- " vendor" : vendor_info .vendor ,
244- " code" : vendor_info .code ,
245- " message" : vendor_info .message ,
246- }
254+ module_error . vendor_info = ModuleErrorVendorInfo (
255+ vendor = self .vendor () ,
256+ code = vendor_info .code ,
257+ message = vendor_info .message ,
258+ )
247259
248260 error_data .set_property_from_json (
249261 None ,
250- json .dumps (
251- {
252- "id" : self .uuid ,
253- "module" : ModuleType .ASR ,
254- "code" : error .code ,
255- "message" : error .message ,
256- "vendor_info" : vendorInfo or {},
257- "metadata" : (
258- {}
259- if self .session_id is None
260- else {PROPERTY_KEY_SESSION_ID : self .session_id }
261- ),
262- }
263- ),
262+ module_error .model_dump_json (exclude_none = True ),
264263 )
265264
266265 await self .ten_env .send_data (error_data )
0 commit comments