feat:智能体创建

This commit is contained in:
Ttt
2026-03-13 23:38:25 +08:00
parent 35dca0a435
commit 5dbd0b3a36
6 changed files with 82 additions and 2 deletions

View File

@@ -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();
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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;
}
}