feat: allow Chat AI to use unregistered (register=false) tools
Some checks failed
Deploy to OCIWP / deploy (push) Failing after 13m58s
Some checks failed
Deploy to OCIWP / deploy (push) Failing after 13m58s
This commit is contained in:
@@ -41,6 +41,7 @@ public class ChatController {
|
|||||||
private final ObjectMapper objectMapper;
|
private final ObjectMapper objectMapper;
|
||||||
private final RedisRegistryService registryService;
|
private final RedisRegistryService registryService;
|
||||||
private final ChatClient.Builder chatClientBuilder;
|
private final ChatClient.Builder chatClientBuilder;
|
||||||
|
private final McpRouterController mcpRouterController;
|
||||||
|
|
||||||
@PostMapping(produces = MediaType.TEXT_EVENT_STREAM_VALUE)
|
@PostMapping(produces = MediaType.TEXT_EVENT_STREAM_VALUE)
|
||||||
public SseEmitter chatStream(@RequestBody Map<String, String> request,
|
public SseEmitter chatStream(@RequestBody Map<String, String> request,
|
||||||
@@ -54,9 +55,16 @@ public class ChatController {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
List<ToolCallback> callbacks = new ArrayList<>();
|
List<ToolCallback> callbacks = new ArrayList<>();
|
||||||
for (ToolMetadata meta : registryService.getAllTools()) {
|
io.shinhanlife.dap.common.adapter.dto.JsonRpcResponse toolsResponse = mcpRouterController.listTools(null).getBody();
|
||||||
if (Boolean.TRUE.equals(meta.getVisible())) {
|
if (toolsResponse != null && toolsResponse.getResult() instanceof Map) {
|
||||||
callbacks.add(new DynamicMcpToolCallback(meta, executeService, objectMapper, effectiveTenantId));
|
Map<String, Object> resultMap = (Map<String, Object>) toolsResponse.getResult();
|
||||||
|
if (resultMap.containsKey("tools")) {
|
||||||
|
List<ToolMetadata> allTools = (List<ToolMetadata>) resultMap.get("tools");
|
||||||
|
for (ToolMetadata meta : allTools) {
|
||||||
|
if (Boolean.TRUE.equals(meta.getVisible())) {
|
||||||
|
callbacks.add(new DynamicMcpToolCallback(meta, executeService, objectMapper, effectiveTenantId));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user