
# WITH ARGUMENTS语法
WITH ARGUMENTS语法扩展了现有用户定义函数（UDF）的功能，主要作用是允许用户在UDF运行时设置初始状态。通过这一功能，用户可以：
- 配置运行时资源和并发度：用户可以指定UDF运行时所需的资源（如内存、CPU等）以及并发执行的实例数量，从而优化性能和资源利用率。
- 设置类的初始化参数：对于以类（class）形式定义的UDF，用户可以通过WITH ARGUMENTS语法传递初始化构造参数，从而在UDF实例化时设置特定的初始状态。
使用注意事项如下：
- WITH ARGUMENTS支持几个固定的参数配置，具体的参数信息请参考[表1]。对于class的初始化参数名称不能与固定参数同名，参数名称是大小写敏感的。
- 入参列表仅支持常量。
- 以class形式定义的UDF函数体，用户按需定义class的__init__和__del__成员方法，但必须定义__call__成员方法，该方法为主函数入口。
- min_concurrency和max_concurrency需要同时设置，设置成功后表示开启自适应并发度。
 表1UDF运行时配置列表 
| 参数名             | 参数描述                                                                                                 | 默认值  |
|:---|:---|:---|
| concurrency     | UDF的运行并发度，取值范围\[1,1024\]。                                                                            | 1    |
| min_concurrency | UDF的运行最小并发度，取值范围\[1,1024\]。                                                                          | 0    |
| max_concurrency | UDF的运行最大并发度，取值范围\[1,1024\]。                                                                          | 0    |
| timeout         | UDF执行的超时时间，取值范围\[1,3600\]，单位为s。                                                                      | 1000 |
| dpu             | UDF运行时单个actor的资源规格，例如dpu=1，表示规格为1U4G，其取值可以是介于0.33到1.0之间的分数值，也可以是1到32间的整数值，需要注意的是，系统会将输入值四舍五入，保留两位小数。 | 1    |
| apu             | 指定异构资源的类型和规格，例如"NPU/.+/1"                                                                            | null |
   
