chore: downgrade to spring boot 3.5
All checks were successful
Deploy to OCIWP / deploy (push) Successful in 2m43s

This commit is contained in:
jade
2026-08-07 13:07:08 +09:00
parent d1f202aa9a
commit 782dee0d19
58 changed files with 111 additions and 77 deletions

View File

@@ -95,7 +95,7 @@ public class ChatController {
.user(message)
.tools((Object[]) callbacks.toArray(new ToolCallback[0])) // Spring AI 2.0 uses tools()
.options(org.springframework.ai.openai.OpenAiChatOptions.builder()
.model(selectedModel))
.model(selectedModel).build())
.stream()
.content();

View File

@@ -51,13 +51,14 @@ public class RegistryMcpToolSpecificationFactory {
McpSchema.Tool tool = McpSchema.Tool.builder()
.name(entry.getName())
.description(description(entry))
.inputSchema(inputSchema(entry))
.annotations(McpSchema.ToolAnnotations.builder()
.readOnlyHint(Boolean.TRUE.equals(entry.getReadOnlyHint()))
.destructiveHint(Boolean.TRUE.equals(entry.getDestructiveHint()))
.idempotentHint(Boolean.TRUE.equals(entry.getIdempotentHint()))
.openWorldHint(Boolean.TRUE.equals(entry.getOpenWorldHint()))
.build())
.inputSchema(toJsonSchema(inputSchema(entry)))
.annotations(new McpSchema.ToolAnnotations(
entry.getDisplayName(),
entry.getReadOnlyHint(),
entry.getDestructiveHint(),
entry.getIdempotentHint(),
entry.getOpenWorldHint(),
null))
.build();
return McpServerFeatures.SyncToolSpecification.builder()
@@ -147,6 +148,20 @@ public class RegistryMcpToolSpecificationFactory {
return schema;
}
@SuppressWarnings("unchecked")
private McpSchema.JsonSchema toJsonSchema(Map<String, Object> schema) {
return new McpSchema.JsonSchema(
String.valueOf(schema.getOrDefault("type", "object")),
schema.get("properties") instanceof Map<?, ?> properties
? (Map<String, Object>) properties : Map.of(),
schema.get("required") instanceof List<?> required
? (List<String>) required : List.of(),
schema.get("additionalProperties") instanceof Boolean additionalProperties
? additionalProperties : Boolean.TRUE,
schema.get("$defs") instanceof Map<?, ?> defs ? (Map<String, Object>) defs : Map.of(),
schema.get("definitions") instanceof Map<?, ?> definitions
? (Map<String, Object>) definitions : Map.of());
}
private String description(ToolMetadata entry) {
return entry.getDescription() == null || entry.getDescription().isBlank()
? entry.getName() + " Tool"