mirror of
https://github.com/tencentmusic/supersonic.git
synced 2026-04-26 18:24:20 +08:00
[feature][headless-chat]Introduce ChatApp to support more flexible chat model config.#1739
This commit is contained in:
@@ -8,7 +8,9 @@ import com.tencent.supersonic.chat.BaseTest;
|
||||
import com.tencent.supersonic.chat.api.pojo.response.QueryResult;
|
||||
import com.tencent.supersonic.chat.server.agent.*;
|
||||
import com.tencent.supersonic.chat.server.pojo.ChatModel;
|
||||
import com.tencent.supersonic.common.pojo.enums.ChatModelType;
|
||||
import com.tencent.supersonic.common.pojo.ChatApp;
|
||||
import com.tencent.supersonic.common.util.ChatAppManager;
|
||||
import com.tencent.supersonic.headless.chat.corrector.LLMSqlCorrector;
|
||||
import com.tencent.supersonic.util.DataUtils;
|
||||
import com.tencent.supersonic.util.LLMConfigUtils;
|
||||
import org.junit.jupiter.api.*;
|
||||
@@ -135,22 +137,22 @@ public class Text2SQLEval extends BaseTest {
|
||||
Agent agent = new Agent();
|
||||
agent.setName("Agent for Test");
|
||||
ToolConfig toolConfig = new ToolConfig();
|
||||
toolConfig.getTools().add(getLLMQueryTool());
|
||||
toolConfig.getTools().add(getDatasetTool());
|
||||
agent.setToolConfig(JSONObject.toJSONString(toolConfig));
|
||||
ChatModel chatModel = new ChatModel();
|
||||
chatModel.setName("Text2SQL LLM");
|
||||
chatModel.setConfig(LLMConfigUtils.getLLMConfig(LLMConfigUtils.LLMType.OLLAMA_LLAMA3));
|
||||
chatModel = chatModelService.createChatModel(chatModel, User.getDefaultUser());
|
||||
Map<ChatModelType, Integer> chatModelConfig = Maps.newHashMap();
|
||||
chatModelConfig.put(ChatModelType.TEXT_TO_SQL, chatModel.getId());
|
||||
agent.setChatModelConfig(chatModelConfig);
|
||||
MultiTurnConfig multiTurnConfig = new MultiTurnConfig();
|
||||
multiTurnConfig.setEnableMultiTurn(enableMultiturn);
|
||||
agent.setMultiTurnConfig(multiTurnConfig);
|
||||
Integer chatModelId = chatModel.getId();
|
||||
// configure chat apps
|
||||
Map<String, ChatApp> chatAppConfig = Maps.newHashMap(ChatAppManager.getAllApps());
|
||||
chatAppConfig.values().forEach(app -> app.setChatModelId(chatModelId));
|
||||
chatAppConfig.get(LLMSqlCorrector.APP_KEY).setEnable(true);
|
||||
agent.setChatAppConfig(chatAppConfig);
|
||||
return agent;
|
||||
}
|
||||
|
||||
private static DatasetTool getLLMQueryTool() {
|
||||
private static DatasetTool getDatasetTool() {
|
||||
DatasetTool datasetTool = new DatasetTool();
|
||||
datasetTool.setType(AgentToolType.DATASET);
|
||||
datasetTool.setDataSetIds(Lists.newArrayList(-1L));
|
||||
|
||||
@@ -391,15 +391,12 @@ CREATE TABLE IF NOT EXISTS s2_agent
|
||||
tool_config varchar(2000) null,
|
||||
llm_config varchar(2000) null,
|
||||
chat_model_config varchar(6000) null,
|
||||
prompt_config varchar(5000) null,
|
||||
multi_turn_config varchar(2000) null,
|
||||
visual_config varchar(2000) null,
|
||||
created_by varchar(100) null,
|
||||
created_at TIMESTAMP null,
|
||||
updated_by varchar(100) null,
|
||||
updated_at TIMESTAMP null,
|
||||
enable_search int null,
|
||||
enable_memory_review int null,
|
||||
PRIMARY KEY (`id`)
|
||||
); COMMENT ON TABLE s2_agent IS 'agent information table';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user