def _parse_number(value):
"""安全解析 NUMBER/RATIO 槽位值,绝不用 eval。解析失败则原样返回。"""
s = str(value).strip()
try:
if '%' in s:
return float(s.replace('%', '')) / 100
return float(s)
except (ValueError, TypeError):
return value
def value_process(key, value):
position_map = {
"主驾": "MAIN",
Allowed by auto mode classifier
● Update(~/mcp/function_call/slot_process.py)
Added 1 line, removed 4 lines
"主副驾": "FRONT"
}
if key in ["NUMBER", "RATIO"]:
if '%' in value:
value = float(eval(value.replace('%', '')) / 100)
else:
value = float(eval(value))
value = _parse_number(value)
elif key in ["POSITION"]:
value = position_map.get(value, value)
elif key == "对话时长":
Allowed by auto mode classifier