mirror of
				https://github.com/OpenSPG/openspg.git
				synced 2025-11-04 03:55:40 +00:00 
			
		
		
		
	bugfix
This commit is contained in:
		
							parent
							
								
									22d9cac97a
								
							
						
					
					
						commit
						cdeba0cded
					
				@ -1,11 +1,66 @@
 | 
			
		||||
package com.antgroup.openspg.builder.core.physical.process;
 | 
			
		||||
 | 
			
		||||
import com.antgroup.openspg.builder.core.physical.operator.OperatorFactory;
 | 
			
		||||
import com.antgroup.openspg.builder.core.physical.operator.PythonOperatorFactory;
 | 
			
		||||
import com.antgroup.openspg.builder.core.physical.operator.protocol.InvokeResultWrapper;
 | 
			
		||||
import com.antgroup.openspg.builder.core.physical.operator.protocol.PythonRecord;
 | 
			
		||||
import com.antgroup.openspg.builder.core.runtime.BuilderContext;
 | 
			
		||||
import com.antgroup.openspg.builder.model.exception.BuilderException;
 | 
			
		||||
import com.antgroup.openspg.builder.model.pipeline.config.BaseExtractNodeConfig;
 | 
			
		||||
import com.antgroup.openspg.builder.model.record.BaseRecord;
 | 
			
		||||
import com.antgroup.openspg.builder.model.record.BuilderRecord;
 | 
			
		||||
import com.antgroup.openspg.core.schema.model.identifier.SPGTypeIdentifier;
 | 
			
		||||
import com.fasterxml.jackson.core.type.TypeReference;
 | 
			
		||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import org.apache.commons.collections4.CollectionUtils;
 | 
			
		||||
 | 
			
		||||
@SuppressWarnings("unchecked")
 | 
			
		||||
public abstract class BaseExtractProcessor<T extends BaseExtractNodeConfig>
 | 
			
		||||
    extends BaseProcessor<T> {
 | 
			
		||||
 | 
			
		||||
  protected static final ObjectMapper mapper = new ObjectMapper();
 | 
			
		||||
  protected final OperatorFactory operatorFactory;
 | 
			
		||||
 | 
			
		||||
  public BaseExtractProcessor(String id, String name, T config) {
 | 
			
		||||
    super(id, name, config);
 | 
			
		||||
    this.operatorFactory = PythonOperatorFactory.getInstance();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Override
 | 
			
		||||
  public void doInit(BuilderContext context) throws BuilderException {
 | 
			
		||||
    super.doInit(context);
 | 
			
		||||
    this.operatorFactory.init(context);
 | 
			
		||||
    this.operatorFactory.loadOperator(config.getOperatorConfig());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Override
 | 
			
		||||
  public List<BaseRecord> process(List<BaseRecord> inputs) {
 | 
			
		||||
    List<BaseRecord> results = new ArrayList<>();
 | 
			
		||||
    for (BaseRecord record : inputs) {
 | 
			
		||||
      BuilderRecord builderRecord = (BuilderRecord) record;
 | 
			
		||||
      Map<String, Object> result =
 | 
			
		||||
          (Map<String, Object>)
 | 
			
		||||
              operatorFactory.invoke(config.getOperatorConfig(), builderRecord.getProps());
 | 
			
		||||
 | 
			
		||||
      InvokeResultWrapper<List<PythonRecord>> invokeResultWrapper =
 | 
			
		||||
          mapper.convertValue(
 | 
			
		||||
              result, new TypeReference<InvokeResultWrapper<List<PythonRecord>>>() {});
 | 
			
		||||
      if (invokeResultWrapper == null || CollectionUtils.isEmpty(invokeResultWrapper.getData())) {
 | 
			
		||||
        continue;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      for (PythonRecord data : invokeResultWrapper.getData()) {
 | 
			
		||||
        results.add(
 | 
			
		||||
            new BuilderRecord(
 | 
			
		||||
                null, SPGTypeIdentifier.parse(data.getSpgTypeName()), data.getProperties()));
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return results;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Override
 | 
			
		||||
  public void close() throws Exception {}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,27 +1,10 @@
 | 
			
		||||
package com.antgroup.openspg.builder.core.physical.process;
 | 
			
		||||
 | 
			
		||||
import com.antgroup.openspg.builder.core.runtime.BuilderContext;
 | 
			
		||||
import com.antgroup.openspg.builder.model.exception.BuilderException;
 | 
			
		||||
import com.antgroup.openspg.builder.model.pipeline.config.LLMBasedExtractNodeConfig;
 | 
			
		||||
import com.antgroup.openspg.builder.model.record.BaseRecord;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
public class LLMBasedExtractProcessor extends BaseExtractProcessor<LLMBasedExtractNodeConfig> {
 | 
			
		||||
 | 
			
		||||
  public LLMBasedExtractProcessor(String id, String name, LLMBasedExtractNodeConfig config) {
 | 
			
		||||
    super(id, name, config);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Override
 | 
			
		||||
  public void doInit(BuilderContext context) throws BuilderException {
 | 
			
		||||
    super.doInit(context);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Override
 | 
			
		||||
  public List<BaseRecord> process(List<BaseRecord> inputs) {
 | 
			
		||||
    return null;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Override
 | 
			
		||||
  public void close() throws Exception {}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,66 +1,11 @@
 | 
			
		||||
package com.antgroup.openspg.builder.core.physical.process;
 | 
			
		||||
 | 
			
		||||
import com.antgroup.openspg.builder.core.physical.operator.OperatorFactory;
 | 
			
		||||
import com.antgroup.openspg.builder.core.physical.operator.PythonOperatorFactory;
 | 
			
		||||
import com.antgroup.openspg.builder.core.physical.operator.protocol.InvokeResultWrapper;
 | 
			
		||||
import com.antgroup.openspg.builder.core.physical.operator.protocol.PythonRecord;
 | 
			
		||||
import com.antgroup.openspg.builder.core.runtime.BuilderContext;
 | 
			
		||||
import com.antgroup.openspg.builder.model.exception.BuilderException;
 | 
			
		||||
import com.antgroup.openspg.builder.model.pipeline.config.UserDefinedExtractNodeConfig;
 | 
			
		||||
import com.antgroup.openspg.builder.model.record.BaseRecord;
 | 
			
		||||
import com.antgroup.openspg.builder.model.record.BuilderRecord;
 | 
			
		||||
import com.antgroup.openspg.core.schema.model.identifier.SPGTypeIdentifier;
 | 
			
		||||
import com.fasterxml.jackson.core.type.TypeReference;
 | 
			
		||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import org.apache.commons.collections4.CollectionUtils;
 | 
			
		||||
 | 
			
		||||
@SuppressWarnings("unchecked")
 | 
			
		||||
public class UserDefinedExtractProcessor
 | 
			
		||||
    extends BaseExtractProcessor<UserDefinedExtractNodeConfig> {
 | 
			
		||||
 | 
			
		||||
  private static final ObjectMapper mapper = new ObjectMapper();
 | 
			
		||||
  private final OperatorFactory operatorFactory;
 | 
			
		||||
 | 
			
		||||
  public UserDefinedExtractProcessor(String id, String name, UserDefinedExtractNodeConfig config) {
 | 
			
		||||
    super(id, name, config);
 | 
			
		||||
    this.operatorFactory = PythonOperatorFactory.getInstance();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Override
 | 
			
		||||
  public void doInit(BuilderContext context) throws BuilderException {
 | 
			
		||||
    super.doInit(context);
 | 
			
		||||
    this.operatorFactory.init(context);
 | 
			
		||||
    this.operatorFactory.loadOperator(config.getOperatorConfig());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Override
 | 
			
		||||
  public List<BaseRecord> process(List<BaseRecord> inputs) {
 | 
			
		||||
    List<BaseRecord> results = new ArrayList<>();
 | 
			
		||||
    for (BaseRecord record : inputs) {
 | 
			
		||||
      BuilderRecord builderRecord = (BuilderRecord) record;
 | 
			
		||||
      Map<String, Object> result =
 | 
			
		||||
          (Map<String, Object>)
 | 
			
		||||
              operatorFactory.invoke(config.getOperatorConfig(), builderRecord.getProps());
 | 
			
		||||
 | 
			
		||||
      InvokeResultWrapper<List<PythonRecord>> invokeResultWrapper =
 | 
			
		||||
          mapper.convertValue(
 | 
			
		||||
              result, new TypeReference<InvokeResultWrapper<List<PythonRecord>>>() {});
 | 
			
		||||
      if (invokeResultWrapper == null || CollectionUtils.isEmpty(invokeResultWrapper.getData())) {
 | 
			
		||||
        continue;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      for (PythonRecord data : invokeResultWrapper.getData()) {
 | 
			
		||||
        results.add(
 | 
			
		||||
            new BuilderRecord(
 | 
			
		||||
                null, SPGTypeIdentifier.parse(data.getSpgTypeName()), data.getProperties()));
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return results;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Override
 | 
			
		||||
  public void close() throws Exception {}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -19,7 +19,10 @@ import lombok.Getter;
 | 
			
		||||
@Getter
 | 
			
		||||
public abstract class BaseExtractNodeConfig extends BaseNodeConfig {
 | 
			
		||||
 | 
			
		||||
  public BaseExtractNodeConfig(NodeTypeEnum type) {
 | 
			
		||||
  private final OperatorConfig operatorConfig;
 | 
			
		||||
 | 
			
		||||
  public BaseExtractNodeConfig(NodeTypeEnum type, OperatorConfig operatorConfig) {
 | 
			
		||||
    super(type);
 | 
			
		||||
    this.operatorConfig = operatorConfig;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,10 +1,12 @@
 | 
			
		||||
package com.antgroup.openspg.builder.model.pipeline.config;
 | 
			
		||||
 | 
			
		||||
import com.antgroup.openspg.builder.model.pipeline.enums.NodeTypeEnum;
 | 
			
		||||
import lombok.Getter;
 | 
			
		||||
 | 
			
		||||
@Getter
 | 
			
		||||
public class LLMBasedExtractNodeConfig extends BaseExtractNodeConfig {
 | 
			
		||||
 | 
			
		||||
  public LLMBasedExtractNodeConfig() {
 | 
			
		||||
    super(NodeTypeEnum.LLM_BASED_EXTRACT);
 | 
			
		||||
  public LLMBasedExtractNodeConfig(OperatorConfig operatorConfig) {
 | 
			
		||||
    super(NodeTypeEnum.LLM_BASED_EXTRACT, operatorConfig);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -6,10 +6,7 @@ import lombok.Getter;
 | 
			
		||||
@Getter
 | 
			
		||||
public class UserDefinedExtractNodeConfig extends BaseExtractNodeConfig {
 | 
			
		||||
 | 
			
		||||
  private final OperatorConfig operatorConfig;
 | 
			
		||||
 | 
			
		||||
  public UserDefinedExtractNodeConfig(OperatorConfig operatorConfig) {
 | 
			
		||||
    super(NodeTypeEnum.USER_DEFINED_EXTRACT);
 | 
			
		||||
    this.operatorConfig = operatorConfig;
 | 
			
		||||
    super(NodeTypeEnum.USER_DEFINED_EXTRACT, operatorConfig);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user