JSCODE Logo
블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

[실습] Tool Service 구현

JSCODE 시니
JSCODE 시니
2026. 06. 13.
author
JSCODE 시니
category
Spring AI
createdAt
Jun 13, 2026 09:54 AM
isPublic
isPublic
series
실무에 바로 적용하는 Spring AI: Spring 서비스에 챗봇·RAG·MCP 도입하기
slug
practice-implementing-tool-service
type
post
updatedAt

✅ 1. Tool Service 구현

ToolService.java
package com.jscode.tool.service; @Service public class ToolService { private final ChatClient chatClient; public ToolService(ChatClient.Builder chatClientBuilder, Advisor[] advisors, @Value("${app.chat.default-system-prompt:}") String systemPrompt, Tools tools) { this.chatClient = chatClientBuilder .defaultSystem(systemPrompt) .defaultTools(tools) .defaultOptions(ToolCallingChatOptions.builder() .temperature(0.2).build().mutate()) .defaultAdvisors(advisors) .build(); } private ChatClient.ChatClientRequestSpec createRequest(String conversationId, Prompt prompt){ return chatClient.prompt(prompt) .advisors(advisorSpec -> advisorSpec.param(ChatMemory.CONVERSATION_ID, conversationId)); } public Flux<String> stream(String conversationId, Prompt prompt){ return createRequest(conversationId, prompt).stream().content(); } public ChatResponse call(String conversationId, Prompt prompt){ return createRequest(conversationId, prompt).call().chatResponse(); } }