feat:智能体创建
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.xiang.xservice.ai.agent;
|
||||
|
||||
import com.xiang.xservice.ai.core.enums.ModelTypeEnum;
|
||||
import com.xiang.xservice.ai.pojo.enums.AgentEnums;
|
||||
|
||||
public interface BaseAgent {
|
||||
/**
|
||||
@@ -11,4 +12,6 @@ public interface BaseAgent {
|
||||
* @param message
|
||||
*/
|
||||
void chat(ModelTypeEnum modelType, Long memoryId, Long userId, String message);
|
||||
|
||||
AgentEnums agent();
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.xiang.xservice.ai.core.handler.MyStreamingHandler;
|
||||
import com.xiang.xservice.ai.core.route.TaskRouter;
|
||||
import com.xiang.xservice.ai.core.storage.DbPersistentStore;
|
||||
import com.xiang.xservice.ai.core.storage.MemoryPersistentStore;
|
||||
import com.xiang.xservice.ai.pojo.enums.AgentEnums;
|
||||
import com.xiang.xservice.ai.repository.manage.IAiSimpleChatMessageManage;
|
||||
import dev.langchain4j.data.message.SystemMessage;
|
||||
import dev.langchain4j.data.message.UserMessage;
|
||||
@@ -69,4 +70,9 @@ public class SimpleChatAgent implements BaseAgent {
|
||||
.ignoreErrors()
|
||||
.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AgentEnums agent() {
|
||||
return AgentEnums.SIMPLE_CHAT_AGENT;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.xiang.xservice.ai.agent;
|
||||
|
||||
import com.xiang.xservice.ai.core.enums.ModelTypeEnum;
|
||||
import com.xiang.xservice.ai.pojo.enums.AgentEnums;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class StockAnalysisAgent implements BaseAgent{
|
||||
@Override
|
||||
public void chat(ModelTypeEnum modelType, Long memoryId, Long userId, String message) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public AgentEnums agent() {
|
||||
return AgentEnums.STOCK_ANALYZER_AGENT;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.xiang.xservice.ai.pojo.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum AgentEnums {
|
||||
SIMPLE_CHAT_AGENT("SimpleChatAgent"),
|
||||
STOCK_ANALYZER_AGENT("StockAnalysisAgent"),
|
||||
;
|
||||
private final String name;
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.xiang.xservice.ai.service;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import com.xiang.xservice.ai.agent.BaseAgent;
|
||||
import com.xiang.xservice.ai.agent.SimpleChatAgent;
|
||||
import com.xiang.xservice.ai.agent.StockAnalysisAgent;
|
||||
import com.xiang.xservice.ai.config.OpenAIBaseConfig;
|
||||
import com.xiang.xservice.ai.core.route.TaskRouter;
|
||||
import com.xiang.xservice.ai.pojo.enums.AgentEnums;
|
||||
import com.xiang.xservice.ai.repository.manage.IAiSimpleChatMessageManage;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class AgentService {
|
||||
|
||||
private final static Map<AgentEnums, BaseAgent> agents = Maps.newHashMap();
|
||||
|
||||
public AgentService(List<BaseAgent> agentList) {
|
||||
agents.putAll(agentList.stream()
|
||||
.collect(Collectors.toMap(BaseAgent::agent, Function.identity())));
|
||||
}
|
||||
|
||||
public BaseAgent createAgent(AgentEnums name) {
|
||||
BaseAgent agent = agents.get(name);
|
||||
if (Objects.isNull(agent)) throw new RuntimeException("Agent not found: " + name);
|
||||
return agent;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user