[Spring] DeepL을 이용한 번역 기능 추가하기
·
Spring
DeepL 번역대표적인 번역 API로는 Google Translate API, Microsoft Azure Translator, 그리고 최근 많이 사용되는 DeepL API가 있다.솔직히, 아직까지는 DeepL이 다른 번역 API들보다 더 우수한 번역 결과를 보여주는 것 같다. 이번 시간에는 DeepL API를 스프링 부트에 적용하여 번역 기능을 추가해보자.  DeepL API Key 발급우선 아래 사이트로 접속한다.  DeepL Pro | 텍스트, Word 및 기타 문서를 안전하게 번역하세요빠르고 정확하며 안전한 번역. 개인 및 팀 사용자용 DeepL Pro.www.deepl.com  회원가입을 한 후에, 위 화면에서 DeepL API Free 플랜을 신청한다.위와 같은 화면이 나오는데, 요금이 발생..
[Spring AI] Vector Store와 RAG를 이용한 할루시네이션 방지
·
Spring
주의: 해당 포스팅 진행시, embedding된 데이터에 대한 질문을 OpenAI의 GPT-4 모델을 사용하여 처리할 때마다 약 0.01달러의 비용이 발생합니다. AI 할루시네이션(Hallucination)지난 포스팅([Spring AI] 챗봇 만들기 (Kotlin))에서 AI가 `이수재`라는 사람에 대한 정보를 보유하고 있지 않음에도 불구하고, 존재하지 않는 정보를 생성했다. 이는 할루시네이션이라고 불리며, AI가 학습한 데이터 내에서 명확한 답을 찾지 못하거나 관련 정보가 부족할 때, 추론을 통해 그럴듯한 답을 만들어내는 현상이다.  실제 프로젝트 진행 중, AI에서 할루시네이션이 발생하는 경우는 주로 AI가 정확한 정보에 접근하지 못하거나 불완전한 데이터를 기반으로 추론할 때 나타난다. 특히, 사내..
[Spring AI] 챗봇 만들기 (Kotlin)
·
Spring
이전 포스팅([Spring AI] 준비 (기본 개념, OpenAI API Key, 크레딧 충전))을 참고하여 비밀키와 크레딧 구입까지 완료했다면, 이제 본격적으로 OpenAI를 활용한 챗봇을 만들어보자. 전체 파일 구조build.gradle.ktsplugins { kotlin("jvm") version "1.9.25" kotlin("plugin.spring") version "1.9.25" id("org.springframework.boot") version "3.3.3" id("io.spring.dependency-management") version "1.1.6"}group = "org.example"version = "0.0.1-SNAPSHOT"java { toolchai..
[Spring AI] 준비 (기본 개념, OpenAI API Key, 크레딧 충전)
·
Spring
스프링 AI란?Spring AI는 인공지능(AI) 기능을 Spring 애플리케이션에 통합하기 위한 라이브러리이다. 기존에는 거의 파이썬으로만 AI를 활용했지만, 이제 Spring AI를 통해 Java에서도 AI를 활용할 수 있다. 기본 개념 (더보기를 눌러주세요)더보기모델AI 모델은 텍스트, 이미지, 오디오 등 다양한 입력을 처리하여 결과를 생성하는 알고리즘이다. Spring AI는 언어, 이미지, 오디오 입력과 출력을 지원하며, 임베딩(Embeddings)도 지원하여 더 고급 사용 사례를 처리할 수 있게 한다. GPT 같은 모델은 사전 훈련된 모델로, 일반적으로 사용자가 특별한 기계 학습 배경 없이도 활용할 수 있는 장점이 있다.프롬프트(Prompt)프롬프트는 AI 모델에 원하는 출력을 유도하기 위해 ..
[스프링 시큐리티] WebSecurityConfigurerAdapter deprecated 대응
·
Spring
WebSecurityConfigurerAdapter is deprecatedSpring Security 6.0 버전 기준으로 WebSecurityConfigurerAdapter를 완전 사용할 수 없게 됐다.기존 WebSecurityConfigurerAdapter를 상속 후에, configure 메소드를 오버라이딩 하는 방식은 deprecated 됐다. 대신 개발자가 직접 component-based security 설정을 할 수 있도록 변경되었다. 즉 커스텀 할 설정들을 @Bean으로 등록하여 사용한다.HttpSecurity 설정// 변경된 방식 (filterChain을 사용)@Configurationpublic class SecurityConfiguration { @Bean public Se..
[스프링 시큐리티] AuthenticationManager, AuthenticationProvider
·
Spring
※ 이 글은 정수원님의 스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security 강의를 수강하면서 학습한 내용을 정리한 글입니다. 일부 강의 내용을 인용하였으며, 문제가 될 시 인용 부분을 수정 또는 삭제하겠습니다. AuthenticationManager인증 처리하는 filter로부터 인증처리를 지시받는 첫번째 클래스.ID와 Password를 Authentication 인증 객체에 저장하고 이 객체를 AuthenticationManager에게 전달한다. 이 인증에 대해 관리를 하게 된다.AuthenticationManager 인터페이스를 실제로 구현한 것이 ProviderManager. 이 AuthenticationManager 인터페이스를 구현하면 커스텀 ProviderM..