- AI발전에 따라 사용자 경험의 개인화 요구 증가
- 현대 기업들은 LLM(대형 언어 모델) 활용 능력을 요구함
- 다양한 openAPI를 프로젝트에 적용하는 것으로 API 활용 경험을 향상
- Spring AI를 사용하여 AI의 기초를 학습하고 Spring에서 AI활용한 프로그램을 구현하는 능력을 기른다
- 생성형 AI에서 사용되는 벡터 임베딩의 개념을 이해하고 벡터 데이터베이스 활용 능력을 기른다
- 각 팀원별 카테고리를 선정하여 특정 분야에 특화된 생성형 AI를 활용한 서비스 구현
- RAG, LangGraph, MCP 서버 사용
- 항공권 검색, 데이트코스 검색, 경로 검색, 경로 상의 지하철 혼잡도 검색, 목적지 인근 주차장 검색 등등
- 테스트용도의 공용 LLM 런타임 서버 구현
- 사용자 응답과 그에 따른 응답을 지도에 표시하는 프론트엔드를 AI 툴을 사용하여 구현
- 스프링 액츄에이터와 그라파나 연동하여 유사도, 응답시간, 토큰 사용량 등 모니터링
- 팀원별로 구현한 LangGraph를 단계별로 테스트하는 테스트 코드 작성
- MCP 서버 분리
- 현대 기업들은 LLM(대형 언어 모델) 및 생성형 AI에 대한 실제 활용 능력을 요구
- 다양한 Open API를 실제 프로젝트에 적용하며 API 연동 및 활용 능력 강화 가능
- 역할: 어드바이저/툴 설계 및 구현, 임베딩 파이프라인 구축, 인증 및 토큰 관리, 데이터 수집 및 최적화 전반
- 개발 언어 및 프레임워크: Java, Spring Boot, Spring AI
- 벡터 검색 및 위치 필터링: PostgreSQL + pgvector, Redis GEO
- 챗 모델 및 임베딩: OpenAI GPT-4o (chat), nomic-embed-text (embedding)
- 외부 API: Google Places, Kakao Map, Tmap
- 모니터링 및 분석: Spring Actuator, Prometheus, Grafana
- Spring AI 문서 부정확 → deprecated된 CallAroundAdvisor 대신 CallAdvisor로 직접 구현, 테스트 기반 구조 구성
- pgvector 거리 필터 미지원 → Redis GEO를 통해 반경 내 후보 필터링 후 유사도 검색 수행
- 유사도 정확도 문제 → 임베딩 문장 품질 개선 및 사용자 질문 패턴 반영한 맞춤형 임베딩 설계
- 리뷰 없는 장소가 추천되는 문제 → “리뷰 없음” 문구 제외 및 리뷰 요약 정제 로직 적용
- 사용자 질문 분석 → 어드바이저 체인으로 intent/location/mood 추출
- 적절한 툴 자동 선택 및 실행 (유사도 검색, 주차장 탐색, 경로 안내 등)
- 대화 저장 구조 설계: ChatMemory를 확장하여 사용자별 대화 흐름 및 토큰 사용량 저장
- ngrok으로 임베딩 서버 외부 공유, GPU 서버 실험 → 네트워크 병목 문제 분석
- Grafana로 프롬프트 길이에 따른 토큰 비용 및 지연 시간 분석 → 프롬프트 최적화 유도
- 매주 지식 공유 문서화 및 코드 리뷰를 통한 공통 로직 개선