블로그 글
시니 선생님이 개발 블로그에 쓴 글입니다.
![[실습] RAG REST API 구현](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F37e11062-ff07-804c-ba45-fb6f6a946ce3-8e4be3d06f85ca73.webp&w=3840&q=75)
[실습] RAG REST API 구현
✅ 1. Controller 소스 코드 변경 RagChatController.java package com.jscode.chat.controller; @RestController @RequestMapping("/rag") public class Ra
[실습] RAG 챗봇 개발을 위한 로컬 환경 구축
✅ 1. 의존성 추가 // vector store implementation("org.springframework.ai:spring-ai-vector-store:2.0.0-M6") // tika Reader implementation("org.spri

Spring AI RAG 기본 설계
![[실습] RAG ETL 파이프라인 구현](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F37e11062-ff07-800e-a02a-d066abab3dfe-81f15cf7efaf6aab.webp&w=3840&q=75)
[실습] RAG ETL 파이프라인 구현
✅ 1. Extract 구현 application.yaml app: rag: documents-location-pattern: classpath:spring-ai-llm.pdf RagConfig.java package com.jscode.c

Spring AI Vector Store API
✅ 1. Spring AI Vector Store API란? 백엔드 개발을 하다 보면 관계형 DB(RDBMS)로 MySQL을 쓰다가 Oracle로 바꾸면 쿼리와 코드를 대대적으로 수정해야 했던 경험이 있을 것이다. Spring AI Vector Sto
Spring AI Prompts - 프롬프트 엔지니어링 9가지 패턴
✅ 1. Zero-Shot Prompting (제로샷 프롬프팅) 사전 정보나 예시 없이 AI에게 곧바로 질문을 던지는 가장 기본적인 방식 @AiService public interface QAService { @Prompt("이탈리아의 수도는
![[실습] CLI 챗봇 개발 환경 아키텍처 미리보기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F37e11062-ff07-80ba-a3ea-fe951a0da65d-83b48d323fef3163.webp&w=3840&q=75)
[실습] CLI 챗봇 개발 환경 아키텍처 미리보기
✅ 1. 개발 환경 아키텍처 미리보기
![[실습] Chat Memory Advisor로 메모리 기능 추가하기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F37e11062-ff07-80b0-b559-d1f7607dd849-13106741e8545b89.webp&w=3840&q=75)
[실습] Chat Memory Advisor로 메모리 기능 추가하기
✅ 1. Advisors 프로세스 사용자가 입력한 순수한 형태의 질문을 Spring AI 내부에서 처리하고 다루기 쉬운 ChatClientRequest 객체로 변환 이곳에 등록된 여러 Advisor들이 개입하여 요청 데이터를 검사하거나 변경함 Advi
![[실습] Chat Controller 구현 - call과 stream 방식의 Chat REST API](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F37e11062-ff07-80a6-aba9-ded10fc56768-3cc0fbd1b44eb077.webp&w=3840&q=75)
[실습] Chat Controller 구현 - call과 stream 방식의 Chat REST API
✅ 1. call() 메서드 생성 ChatService.java public @Nullable ChatResponse call(Prompt prompt, String conversationId){ return prepareRequest(prompt
![[실습] Structured Output Converter를 통한 쇼핑몰 CS 문의 긴급도 분류하기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F37e11062-ff07-807f-a649-db980b6cdca5-33843d400fc1c9a5.webp&w=3840&q=75)
[실습] Structured Output Converter를 통한 쇼핑몰 CS 문의 긴급도 분류하기
✅ 1. Structured Output Converter란? AI가 뱉어내는 일반 텍스트(String) 답변을, 우리 백엔드 서버에서 원하는 자바 객체로 자동 변환해주는 번역기 ✅ 2. enum, record 정의 ChatService.java //

Spring AI Prompts - Chat Options란 무엇일까?
✅ 1. Spring AI Prompts란 무엇일까? 흔히 AI에게 질문을 던질 때 하나의 긴 텍스트 문장만 보낸다고 생각하기 쉬움. 하지만 Spring AI에서 AI 모델로 전달되는 최종 형태는 문자열이 아니라 Prompt라는 전용 객체임 Promp
Metadata Filters란 무엇일까?
✅ 1. Metadata Filters란 무엇일까? Vector DB에서 유사도 검색을 할 때, 단순히 의미(벡터)만 비슷한 문서를 찾는 것이 아니라 우리가 원하는 특정 조건(메타데이터)에 맞는 문서들 속에서만 유사도를 검색하도록 대상을 좁혀주는 기