@FunctionalInterface public interface IntelligenceFieldValueConvertor
Object convert(String fieldName, Object fieldValue, Class type)
Messenger在使用applyIntelligenceChange方法对AI提取数据进行定制化处理时,通过实现此方法将AI的提示数据转换为合适的表单对象属性值,比如返回正确的外部代码表的代码项。
applyIntelligenceChange方法对字段名匹配表单数据的每一项获取到的AI提示数据均会调用此方法进行转换处理,此方法的实现应该保证:
1、如果处理结果需要忽略AI的提取内容,应返回null。
2、如果传入字段不需要处理,可直接用于修改表单实体对象,应返回传入的fieldValue原值。
3、否则,处理结果应返回和该字段对应属性类型相符的结果。
转换实现示意如下:
IntelligenceFieldValueConvertor convertor = (name, value, type) -> {
switch (name) {
case "fieldIgnore": //忽略提取结果
return null;
case "fieldOther": //返回处理后的值
return ...; //一般来说无需使用type,因为messenger应该清楚字段的类型。
default: //其他直接使用提取结果
return value;
}
};
注: 对于外部代码表,可以使用AbstractMessenger的getCachedCodeItemByIntelligenceValue系列方法从缓存的外部代码表数据中找到AI提取结果对应项。fieldName - 字段名称fieldValue - 该字段的AI提取数据,一定不为null。根据字段类型不同,提取数据的类型可能为字符串、数值或者CodeItemtype - 字段的类型AbstractMessenger.applyIntelligenceChange(InfoPlusEvent, Object, IntelligenceFieldValueConvertor),
AbstractMessenger.getCachedCodeItemByIntelligenceValue(Object, String),
AbstractMessenger.getCachedCodeItemByIntelligenceValue(Object, String, String),
AbstractMessenger.getCachedCodeItemByIntelligenceValue(Object, String, String, boolean)Copyright © 2025. All rights reserved.