refs #735: add few-shot NL2SQL MCP tool
This commit is contained in:
@@ -37,7 +37,10 @@ class McpSseServiceTest {
|
||||
"테스트 질문에 사용할 예제 SQL을 조회합니다.",
|
||||
"oracle.select_ai.test_qa_vector_store",
|
||||
"테스트 예제 SQL 저장",
|
||||
"테스트 예제 SQL을 저장합니다."
|
||||
"테스트 예제 SQL을 저장합니다.",
|
||||
"oracle.select_ai.test_fewshot_nl2sql",
|
||||
"테스트 Few-shot NL2SQL",
|
||||
"테스트 Few-shot 검색 및 실행 도구입니다."
|
||||
),
|
||||
qaVectorService
|
||||
);
|
||||
@@ -47,7 +50,7 @@ class McpSseServiceTest {
|
||||
ObjectNode response = service.handle("default", request(1, "tools/list"));
|
||||
|
||||
var tools = response.path("result").path("tools");
|
||||
assertThat(tools).hasSize(4);
|
||||
assertThat(tools).hasSize(5);
|
||||
var selectAi = tools.get(0);
|
||||
assertThat(selectAi.path("name").asText()).isEqualTo("oracle.select_ai.test_data_text2sql");
|
||||
assertThat(selectAi.path("description").asText()).contains("SGMP_POC_OCI_GPT54MINI");
|
||||
@@ -82,6 +85,11 @@ class McpSseServiceTest {
|
||||
assertThat(vectorStore.path("inputSchema").path("required"))
|
||||
.extracting(node -> node.asText())
|
||||
.contains("question", "answerSql");
|
||||
|
||||
var fewShot = tools.get(4);
|
||||
assertThat(fewShot.path("name").asText())
|
||||
.isEqualTo("oracle.select_ai.test_fewshot_nl2sql");
|
||||
assertThat(fewShot.path("description").asText()).contains("Few-shot");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -128,6 +136,24 @@ class McpSseServiceTest {
|
||||
.contains("RESULT");
|
||||
}
|
||||
|
||||
@Test
|
||||
void callsDedicatedFewShotNl2SqlToolWithGeneratedSqlAndExecutionResult() {
|
||||
ObjectNode request = request(7, "tools/call");
|
||||
ObjectNode params = (ObjectNode) request.putObject("params");
|
||||
params.put("name", "oracle.select_ai.test_fewshot_nl2sql");
|
||||
params.putObject("arguments").put("prompt", "카제나 AU를 조회해 줘");
|
||||
|
||||
ObjectNode response = service.handle("default", request, "user-bearer");
|
||||
|
||||
assertThat(response.path("result").path("isError").asBoolean()).isFalse();
|
||||
String payload = response.path("result").path("content").get(0).path("text").asText();
|
||||
assertThat(payload)
|
||||
.contains("oracle.select_ai.test_fewshot_nl2sql")
|
||||
.contains("SHOWSQL_AND_EXECUTED")
|
||||
.contains("generatedSql")
|
||||
.contains("READ_ONLY_EXECUTED");
|
||||
}
|
||||
|
||||
@Test
|
||||
void returnsToolLevelDeniedResultWhenVpdTokenIsMissing() {
|
||||
ObjectNode request = request(3, "tools/call");
|
||||
|
||||
Reference in New Issue
Block a user