LangServe 사용해보기
2025. 6. 25. 14:18
etc
랭체인(LangChain) 프레임워크는 LLM 애플리케이션 개발에 도움이 되는 여러 구성 요소로 이루어져 있다. 랭체인의 주요 구성 요소는 다음과 같다. 랭체인 라이브러리(LangChain Libraries): 파이썬과 자바스크립트 라이브러리를 포함하며, 다양한 컴포넌트의 인터페이스와 통합, 이 컴포넌트들을 체인과 에이전트로 결합할 수 있는 기본 런타임, 그리고 체인과 에이전트의 사용 가능한 구현이 가능. 랭체인 템플릿(LangChain Templates): 다양한 작업을 위한 쉽게 배포할 수 있는 참조 아키텍처 모음. 개발자들이 특정 작업에 맞춰 빠르게 애플리케이션을 구축할 수 있도록 돕는다. 랭서브(LangServe): 랭체인 체인을 REST API로 배포할 수 있게 하는 라이브러리. 이를 통해 개..

[RAG] 민법 챗봇 만들기 (with LangChain)
2025. 6. 23. 00:13
etc
법률적 질문에 대해 답을 주는 챗봇을 구현해보려고 한다. 이 챗봇을 만들게 된 이유는실생활과 가장 밀접하게 사용할 수 있으면서 RAG 구조의 장점을 살리기에 적합하다고 생각했기 때문이다. 법률 분야는 정답이 명확하고 판례와 조문에 근거한 설명이 요구되기 때문에,생성형 AI의 대표적인 한계인 hallucination(사실과 다른 내용을 생성하는 문제)을 완화하는 데 RAG 구조가 특히 유리하다.RAG에 대한 자세한 개념은 따로 정리하였다. 또한, 법학전문대학원협의회 사이트에서 제공하는 PDF 기반의 민법 표준판례연구자료는법률적 질문에 대해 보다 신뢰성 있는 답변을 생성하는 데 적합한 기반이 되었다. 법학전문대학원협의회 먼저 필요한 라이브러리들을 설치한다.pip install langchain ..
[RAG] 개념이해 (Retriever와 Generator, Embedding, Vector Search)
2025. 6. 16. 17:34
etc
목표: AI 분야에서 주목받고 있는 RAG(Retrieval-Augmented Generation) 기술을 학습하고, 이를 기반으로 챗봇 서비스 만들어보기 일단 나는 Spring JPA 중심의 백엔드 개발자로,AI 경험은 간단한 프롬프트 기반 API 연동이 전부이다. 그래서 AI관련 용어도 잘 모른다.그래서 이 글은 AI 초심자의 눈높이에서, RAG의 개념을 아주 쉽게 풀어가며 공부하려 한다. 🧠 RAG란?RAG (Retrieval-Augmented Generation)는 생성형 AI가 모르는데 아는 척 하는 것(hallucination)을 줄이기 위해 등장한 구조이다. 일반적인 GPT 같은 생성형 모델은 자신이 학습한 데이터만 가지고 답을 한다. 그래서 GPT에게“우리 회사 사내 문서 기반으..

EC2환경에서 환경변수 적용하기(ubuntu)
2024. 3. 28. 00:24
etc
application.yml파일에서 보안이 필요시되는 정보는 다음과같이 환경변수를 이용해서 로컬에 환경변수를 추가해줫다. 배포시에도 이 환경변수를 추가해줘야 한다. EC2인스턴스의 .bashrc 파일에서 환경변수를 추가한다. home의 ububtu로 이동해서 ls -al 명령어를 입력해보면 .bashrc 파일이 있다. 이 파일에 환경변수를 추가할 것 1. /home/ubuntu 경로에서 다음 명령어를 실행한다. nano .bashrc 그럼 다음과 같은 창이 뜬다 2. 맨 아래로 이동하여 export 명령어로 환경변수를 추가한다. export GOOGLE_CLIENT_SECRET=123123123 3. 변경사항 저장 (ctrl X -> Y -> Enter) 4. .bashrc' 파일에서 설정한 환경 변수를..

Github Actions를 통한 배포 자동화 3
2024. 3. 4. 20:43
etc
멋쟁이 프로젝트때 배포 자동화를 끝내지 못했는데 이번에 새로운 프로젝트를 하면서 배포 자동화를 하게 되었당 이전 방법은 거의 동일하게 진행하여 main 브랜치에 push 시 S3에 빌드된 파일이 올라갈 수 있도록 하였다. 이제 이 빌드파일을 진짜 배포하고 실행해 볼 것이다. 먼저 프로젝트의 루트 경로에 appspec.yml을 작성해주어야 한다. 이 파일은 Code deploy가 수행할 일들을 작성하는 곳이다. 공식 메뉴얼을 참고하여 작성하면 좋을 것 같다. 공식 메뉴얼 AppSpec '후크' 섹션 - AWS CodeDeploy 배포의 시작 DownloadBundle, 설치 BlockTrafficAllowTraffic, 및 종료 이벤트는 스크립팅할 수 없으므로 이 다이어그램에서 회색으로 표시됩니다. 하지만..

Github Actions를 통한 배포 자동화
2023. 7. 28. 18:05
etc
GitHub Actions는 Github가 공식적으로 제공하는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD 플랫폼이다. 레포지토리에서 Pull Request 나 push 같은 이벤트를 트리거로 GitHub 작업 워크플로우(Workflow)를 구성할 수 있다. 📌워크플로우 하나 이상의 작업이 실행되는 자동화 프로세스 각 작업은 자체 가상 머신 또는 컨테이너 내부에서 실행된다. .yml(혹은.yaml) 파일에 의해 구성되며, 테스트, 배포 등 기능에 따라 여러 개의 워크플로우도 만들 수 있다. 생성된 워크플로우는.github/workflows 디렉토리 이하에 위치하게 된다. 📌Github Actions를 통한 배포 Flow 📌Github Actions 설정 파일(.yml)에 따라 Gith..

[프로젝트] redis 적용
2023. 6. 23. 20:58
etc
yata project에서는 Github에서 클론받자마자 바로 사용할 수 있는 환경을 맞추기 위해 외부환경에 의존X => 외부 캐시 JWT 로그아웃 구현을 위해 redis를 사용 외부환경에 구속받지 않기 위해 embedded redis 사용 다음 세 가지를 사용 📌Spring Data Redis Redis를 JPA Repository를 이용하듯이 인터페이스를 제공하는 스프링 모듈 CrudRepository를 지원하기 때문에 좀 더 직관적으로 사용 가능 📌Lettuce Redis Java Client 현재 (Spring Boot 2.0.2) Spring Data Redis에서 공식지원하는 Client 📌Embedded Redis H2와 같은 내장 Redis 데몬 이를 이용하면 외부 Redis 서버를 설치하..
NoSQL과 RDBMS의 차이
2023. 6. 21. 14:20
etc
NoSQL과 RDBMS의 차이 DB 어플리케이션으로 RDBMS(Relational DataBase Management System)이 널리 쓰이고 있지만, 대용량 데이터 저장, 비정형 데이터 저장, 빠른 응답시간 등의 새로운 요구사항에 기존 RDBMS만으론 대응하기 어려울 때가 있다. 그래서 RDBMS와 차별적인 데이터베이스 관리 툴인 NoSql이 등장했다. 📌RDBMS vs. NoSQL RDBMS -> 2차원의 행과 열로 데이터의 관계를 관리하는 데이터베이스(테이블) 장점 : 스키마에 맞추어 데이터를 관리하기 때문에 데이터의 정합성(어떤 데이터들이 값이 서로 일치하는 상태)을 보장 단점 : 시스템이 커질수록 쿼리가 복잡해지고 성능이 저하되며, 수평적 확장이 어렵다. NoSQL ->RDBMS가 비대해짐에..

Redis란
2023. 6. 19. 19:15
etc
Redis Redis(Remote Dictionary Server)는 가장 인기있는 Key-value Store 중 하나이다. 데이터 저장소하면 보통 MySQL이나 PostgreSQL, MariaDB, Oracle 같은 RDBMS를 많이 떠올릴텐데 이러한 RDBMS와 달리 Redis는 NoSQL이다. 이 둘의 차이는 무엇일까? 다음 포스팅에 자세히 적어놓았다. https://develoyummer.tistory.com/99 NoSQL과 RDBMS의 차이 NoSQL과 RDBMS의 차이 DB 어플리케이션으로 RDBMS(Relational DataBase Management System)이 널리 쓰이고 있지만, 대용량 데이터 저장, 비정형 데이터 저장, 빠른 응답시간 등의 새로운 요구사항에 기존 RDBMS만으..