@@ -17,7 +17,21 @@ def is_anam_avatar(config: typing.Dict[str, typing.Any]) -> bool:
1717 return config .get ("vendor" ) == "anam"
1818
1919
20- def validate_avatar_config (config : typing .Dict [str , typing .Any ]) -> None :
20+ def is_generic_avatar (config : typing .Dict [str , typing .Any ]) -> bool :
21+ return config .get ("vendor" ) == "generic"
22+
23+
24+ def is_rtc_avatar (config : typing .Dict [str , typing .Any ]) -> bool :
25+ params = config .get ("params" , {})
26+ return isinstance (params , dict ) and bool (params .get ("agora_uid" )) and (
27+ is_heygen_avatar (config ) or is_live_avatar_avatar (config ) or is_generic_avatar (config )
28+ )
29+
30+
31+ def validate_avatar_config (
32+ config : typing .Dict [str , typing .Any ],
33+ require_session_fields : bool = False ,
34+ ) -> None :
2135 """Validates avatar configuration at runtime.
2236
2337 Parameters
@@ -45,6 +59,8 @@ def validate_avatar_config(config: typing.Dict[str, typing.Any]) -> None:
4559 f"Invalid quality for { label } : { params .get ('quality' )} . "
4660 f"Must be one of: { ', ' .join (valid_qualities )} "
4761 )
62+ if require_session_fields and not params .get ("agora_token" ):
63+ raise ValueError (f"{ label } avatar requires agora_token after session enrichment" )
4864 elif is_akool_avatar (config ):
4965 params = config .get ("params" , {})
5066 if not params .get ("api_key" ):
@@ -53,6 +69,23 @@ def validate_avatar_config(config: typing.Dict[str, typing.Any]) -> None:
5369 params = config .get ("params" , {})
5470 if not params .get ("api_key" ):
5571 raise ValueError ("Anam avatar requires api_key" )
72+ elif is_generic_avatar (config ):
73+ params = config .get ("params" , {})
74+ if not params .get ("api_key" ):
75+ raise ValueError ("Generic avatar requires api_key" )
76+ if not params .get ("api_base_url" ):
77+ raise ValueError ("Generic avatar requires api_base_url" )
78+ if not params .get ("avatar_id" ):
79+ raise ValueError ("Generic avatar requires avatar_id" )
80+ if not params .get ("agora_uid" ):
81+ raise ValueError ("Generic avatar requires agora_uid" )
82+ if require_session_fields :
83+ if not params .get ("agora_token" ):
84+ raise ValueError ("Generic avatar requires agora_token after session enrichment" )
85+ if not params .get ("agora_appid" ):
86+ raise ValueError ("Generic avatar requires agora_appid after session enrichment" )
87+ if not params .get ("agora_channel" ):
88+ raise ValueError ("Generic avatar requires agora_channel after session enrichment" )
5689
5790
5891def validate_tts_sample_rate (
0 commit comments