mirror of
https://gitee.com/dromara/liteFlow.git
synced 2026-06-11 15:06:54 +08:00
Refactor: 引入 ObjectMapperHolder,将 ObjectMapper 彻底单例化。补充一些注释
This commit is contained in:
@@ -2,7 +2,6 @@ package com.yomahub.liteflow.ai.tool;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.yomahub.liteflow.ai.engine.model.output.structure.generator.JsonSchemaGenerator;
|
||||
import com.yomahub.liteflow.ai.engine.tool.ToolCallBack;
|
||||
import com.yomahub.liteflow.ai.engine.tool.ToolDefinition;
|
||||
@@ -30,7 +29,6 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
public class SpringBeanToolRegistry implements ToolRegistry {
|
||||
|
||||
private static final LFLog LOG = LFLoggerManager.getLogger(SpringBeanToolRegistry.class);
|
||||
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
|
||||
|
||||
private final ApplicationContext applicationContext;
|
||||
private final Map<String, ToolCallBack> toolCache = new ConcurrentHashMap<>();
|
||||
|
||||
@@ -5,7 +5,7 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.Marker;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* engine 模块日志
|
||||
*
|
||||
* @author 苍镜月
|
||||
* @since TODO
|
||||
|
||||
@@ -8,7 +8,7 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* engine 模块日志
|
||||
*
|
||||
* @author 苍镜月
|
||||
* @since TODO
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.yomahub.liteflow.ai.engine.model.output.structure.Description;
|
||||
import com.yomahub.liteflow.ai.engine.model.output.structure.ParameterizedTypeImpl;
|
||||
import com.yomahub.liteflow.ai.engine.model.output.structure.TypeReference;
|
||||
import com.yomahub.liteflow.ai.engine.tool.annotation.ToolParam;
|
||||
import com.yomahub.liteflow.ai.engine.util.ObjectMapperHolder;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Parameter;
|
||||
@@ -33,7 +34,7 @@ public class JsonSchemaGenerator {
|
||||
private static final Character COMMA = ',';
|
||||
private static final SchemaGenerator strictSchemaGenerator;
|
||||
private static final SchemaGenerator schemagenerator;
|
||||
private static final ObjectMapper MAPPER = new ObjectMapper();
|
||||
private static final ObjectMapper MAPPER = ObjectMapperHolder.getInstance();
|
||||
|
||||
static {
|
||||
// 配置 JSON Schema 生成器
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.yomahub.liteflow.ai.engine.model.output.structure.TypeReference;
|
||||
import com.yomahub.liteflow.ai.engine.model.output.structure.generator.JsonSchemaGenerator;
|
||||
import com.yomahub.liteflow.ai.engine.util.ObjectMapperHolder;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.Map;
|
||||
@@ -92,7 +93,7 @@ public class JsonSchemaParser<T> {
|
||||
*/
|
||||
public JsonSchemaParser(JsonNode jsonSchema) {
|
||||
this.targetType = Map.class;
|
||||
this.objectMapper = new ObjectMapper();
|
||||
this.objectMapper = ObjectMapperHolder.getInstance();
|
||||
this.jsonSchema = jsonSchema;
|
||||
}
|
||||
|
||||
@@ -122,7 +123,7 @@ public class JsonSchemaParser<T> {
|
||||
*/
|
||||
public JsonSchemaParser(Type targetType, boolean strict) {
|
||||
this.targetType = targetType;
|
||||
this.objectMapper = new ObjectMapper();
|
||||
this.objectMapper = ObjectMapperHolder.getInstance();
|
||||
this.jsonSchema = JsonSchemaGenerator.generate(targetType, strict);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.yomahub.liteflow.ai.engine.model.output.structure.TypeReference;
|
||||
import com.yomahub.liteflow.ai.engine.model.output.structure.parser.JsonSchemaParser;
|
||||
import com.yomahub.liteflow.ai.engine.util.ObjectMapperHolder;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.Objects;
|
||||
@@ -19,7 +20,7 @@ import java.util.Objects;
|
||||
|
||||
public class ToolDefinition<I> {
|
||||
|
||||
private static final ObjectMapper MAPPER = new ObjectMapper();
|
||||
private static final ObjectMapper MAPPER = ObjectMapperHolder.getInstance();
|
||||
|
||||
private final String name;
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.yomahub.liteflow.ai.engine.model.output.structure.TypeReference;
|
||||
import com.yomahub.liteflow.ai.engine.model.output.structure.parser.JsonSchemaParser;
|
||||
import com.yomahub.liteflow.ai.engine.tool.ToolCallBack;
|
||||
import com.yomahub.liteflow.ai.engine.tool.ToolDefinition;
|
||||
import com.yomahub.liteflow.ai.engine.util.ObjectMapperHolder;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.Objects;
|
||||
@@ -34,7 +35,7 @@ public class FunctionToolCallback<I, O> implements ToolCallBack {
|
||||
public FunctionToolCallback(ToolDefinition<I> toolDefinition, Function<I, O> function) {
|
||||
this.toolDefinition = toolDefinition;
|
||||
this.function = function;
|
||||
this.objectMapper = new ObjectMapper();
|
||||
this.objectMapper = ObjectMapperHolder.getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.yomahub.liteflow.ai.engine.log.EngineLogManager;
|
||||
import com.yomahub.liteflow.ai.engine.tool.ToolCallBack;
|
||||
import com.yomahub.liteflow.ai.engine.tool.ToolDefinition;
|
||||
import com.yomahub.liteflow.ai.engine.tool.annotation.ToolParam;
|
||||
import com.yomahub.liteflow.ai.engine.util.ObjectMapperHolder;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Parameter;
|
||||
@@ -24,7 +25,7 @@ import java.util.Objects;
|
||||
public class MethodToolCallBack implements ToolCallBack {
|
||||
|
||||
private static final EngineLog LOG = EngineLogManager.getLogger(MethodToolCallBack.class);
|
||||
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
|
||||
private static final ObjectMapper OBJECT_MAPPER = ObjectMapperHolder.getInstance();
|
||||
|
||||
private final ToolDefinition<?> toolDefinition;
|
||||
private final Object bean;
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.yomahub.liteflow.ai.engine.util;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
/**
|
||||
* ObjectMapperHolder
|
||||
*
|
||||
* @author 苍镜月
|
||||
* @since TODO
|
||||
*/
|
||||
|
||||
public class ObjectMapperHolder {
|
||||
|
||||
private static final ObjectMapper MAPPER = new ObjectMapper();
|
||||
|
||||
private ObjectMapperHolder() {
|
||||
}
|
||||
|
||||
public static ObjectMapper getInstance() {
|
||||
return MAPPER;
|
||||
}
|
||||
}
|
||||
@@ -31,7 +31,6 @@ public class OllamaChatRequest extends ChatRequest {
|
||||
// ==== RequestBody 相关参数 =====
|
||||
|
||||
public OllamaChatRequest() {
|
||||
super();
|
||||
}
|
||||
|
||||
public OllamaChatRequest(
|
||||
|
||||
Reference in New Issue
Block a user