[feature][headless-chat]Introduce ChatApp to support more flexible chat model config.#1739

This commit is contained in:
jerryjzhang
2024-10-12 11:51:37 +08:00
parent 4408bf4325
commit 2717a1603c
25 changed files with 220 additions and 175 deletions

View File

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

View File

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