[SQL RAG] LangChain과 LangGraph를 활용한 지능형 데이터베이스 질의 에이전트 구축(쿼리문 RAG)
·
개념 정리 step2/AI Agent
데이터 분석이나 서비스 운영 과정에서 데이터베이스에 직접 쿼리를 날려 정보를 확인해야 하는 경우가 빈번하다. 하지만 SQL 문법에 익숙하지 않은 사용자나, 복잡한 스키마를 가진 데이터베이스의 경우 매번 쿼리를 작성하는 것이 번거로울 수 있다. 이를 해결하기 위해 거대 언어 모델(LLM)이 자연어를 SQL로 변환하고 실행 결과까지 해석해 주는 SQL RAG(Retrieval-Augmented Generation) 시스템을 구축해 보았다. 본 포스팅에서는 SQLite를 활용해 환경을 구성하고, LangChain과 LangGraph를 이용하여 스스로 판단하고 오류를 수정하며 답변하는 에이전트 구축 과정을 상세히 기록한다.1. SQLite의 특징과 활용본 프로젝트의 데이터베이스로 채택한 SQLite는 서버가 필..
[RAG 시스템 구축] 벡터 데이터베이스, 환경 여부 평가, 코드 설정 (2)
·
개념 정리 step2/AI Agent
저번 블로그에 이어 벡터 데이터베이스 구축에 대한 정리 블로그를 작성합니다. [RAG 시스템 구축] 벡터 데이터베이스부터 앙상블 리트리버까지 (1)대형 언어 모델(LLM)의 성능을 극대화하고 최신 정보를 반영하기 위한 RAG(Retrieval-Augmented Generation) 시스템의 핵심 구성 요소인 벡터 데이터베이스, 청킹 전략, 그리고 리트리버 활용법을 정리한다.pak1010pak.tistory.com1. 환각 여부를 평가하는 RAG (Self-Reflective RAG)단순히 문서를 검색하고 답변을 생성하는 것을 넘어, 검색된 문서가 질문과 관련이 있는지, 생성된 답변이 문서에 근거하고 있는지(환각 여부), 그리고 사용자의 질문을 완벽히 해결했는지를 스스로 평가하고 보완하는 고급 RAG 파이..
[RAG 시스템 구축] 벡터 데이터베이스부터 앙상블 리트리버까지 (1)
·
개념 정리 step2/AI Agent
대형 언어 모델(LLM)의 성능을 극대화하고 최신 정보를 반영하기 위한 RAG(Retrieval-Augmented Generation) 시스템의 핵심 구성 요소인 벡터 데이터베이스, 청킹 전략, 그리고 리트리버 활용법을 정리한다.1. 벡터 데이터베이스 (Vector Database)벡터 데이터베이스는 텍스트, 이미지, 오디오와 같은 비정형 데이터를 고차원 벡터(Vector) 형태로 변환하여 저장한다. 일반적인 RDBMS가 정확한 값(Keyword) 기반 검색에 특화되어 있다면, 벡터 DB는 의미적 유사성(Semantic Similarity)을 바탕으로 검색을 수행한다.핵심 원리: 코사인 유사도(Cosine Similarity), 내적(Dot Product), 유클리드 거리(Euclidean Distanc..
[공모전] Vision AI 최종 실험 개인 "연구" 블로그 (2)
·
4. [팀] 프로젝트 및 공모전/4-4 구조물 안정성 물리 추론 AI 경진대회(DACON)
2-Stage Pipeline의 이론적 기반, 실험 결과, 그리고 공모전 회고아래 블로그 상세 분석 개인 연구 블로그 1편도 있습니다. [공모전] Vision 시각화 검증 상세 분석 "개인 연구용" 블로그안녕하세요!!오늘은 지금 데이콘에서 진행중인 공모전에 대해서 제 주관적인 생각을 아주 많이 넣은(?) 연구용 블로그를 작성해보겠습니다. 이미 상위 랭킹에 속하긴 했지만 순위를 더 좁히고pak1010pak.tistory.com코랩 파일만 11번 버전 파일 생성, 로컬로도 몇 개의 파일들이 생성됐는 지 모르겠다. 처음엔 동기들과 가볍게 나가기로 했기에 욕심을 안 부렸지만 내 성격이 그게 안 되었나 보다. 오늘 결과 발표가 나왔는데 아쉽게 상위4% - 16등(전체 851명 중)에 머물렀지만, 내가 열심히 공부..
[배포] Meat-A-Eye 배포 마무리 정리 - AWS 서버 활용법 (마무리!)
·
3. 자습 & 메모(실전, 실습, 프로젝트)/3-3 배포 실전 공부
1. 주요 서버 명령어서버 운영 및 상태 모니터링을 위해 사용하는 필수 명령어입니다.기능명령어컨테이너 상태 확인docker psAI 서버 로그 확인tail -f ~/Meat-A-Eye-Service/Meat_A_Eye-aimodels/ai-server/ai_server.log백엔드 로그 확인docker logs -f meat-api-container특정 프로세스 종료pkill -f "python main.py"도커 이미지 재빌드docker compose up -d --build2. 서버 접속 및 경로 탐색서버에 접속하여 각 구성 요소의 설정 파일에 접근하는 경로입니다.SSH 접속: 할당받은 퍼블릭 IP 또는 고정 IP를 통해 터미널 접속프로젝트 최상단: cd ~/Meat-A-Eye-Service프론트엔드..
[배포] Meat-A-Eye 배포 및 트러블슈팅 진행 기록 (마지막)
·
3. 자습 & 메모(실전, 실습, 프로젝트)/3-3 배포 실전 공부
오늘은 실제 서비스 배포 완료와 트러블 슈팅 내용을 다뤄보겠습니다.1. 외부 API (KAMIS) SSL 연결 에러 해결실시간 시세 데이터를 가져오는 외부 API(KAMIS) 서버가 구형 보안 설정을 사용하여, 컨테이너 내부 통신 시SSLV3_ALERT_HANDSHAKE_FAILURE 에러가 발생했습니다. 해결 방법:코드 레벨에서 SSL 보안 수준을 낮추는 커스텀 어댑터를 적용하여 통신이 가능하도록 로직을 수정했습니다. (AI 코딩 어시스턴트 활용하여 해결)2. 깃허브 푸시 및 EC2 서버 코드 반영로컬에서 수정한 API 연동 코드를 깃허브에 푸시한 뒤, EC2 서버에서 풀(Pull)을 받아 변경 사항을 반영하고 컨테이너를 다시 빌드했습니다.# 프로젝트 폴더로 이동cd ~/Meat-A-Eye-Servic..
[배포] 데이터베이스 연결, CORS, 외부 API 보안 연결 문제 (6)
·
3. 자습 & 메모(실전, 실습, 프로젝트)/3-3 배포 실전 공부
AWS 버지니아 북부 리전으로 서비스를 이전하면서 진행한 인프라 구축 및 트러블슈팅 과정을 정리했습니다. 처음 배포를 시도하는 환경에서 발생할 수 있는 데이터베이스 연결, CORS, 외부 API 보안 연결 문제를 중심으로 기록했습니다.1. 인프라 환경 구성AWS 버지니아 북부(us-east-1) 리전에 새로운 환경을 구축했습니다.EC2: Ubuntu 기반, Docker 및 Docker Compose 설치 완료.RDS: MySQL 8.4 버전.보안 그룹: 22(SSH), 80(HTTP), 8000(API), 3306(MySQL) 인바운드 허용.2. 데이터베이스 초기화RDS 인스턴스를 새로 생성했기 때문에 테이블이 없는 빈 상태였습니다. 제공된 통합 SQL 스크립트를 사용하여 11개의 테이블을 생성하고 기초..
[배포] 백엔드, 프론트엔드 AWS EC2 환경에서 Docker로 배포 (5)
·
카테고리 없음
오늘 Meat-A-Eye 서비스의 백엔드와 프론트엔드를 AWS EC2 환경에서 Docker로 배포했습니다.트러블슈팅 과정과 최종 성공 명령어를 한 페이지로 정리합니다. 개요환경: AWS EC2 (Ubuntu 24.04 LTS)백엔드: FastAPI (Python 3.11) + RDS (MySQL)프론트엔드: Next.js 16 + Tailwind CSS핵심 도구: Docker (Containerization)명령 프롬프트 실행(cmd) -> cd 본인 .pem으로 서버 접속ls -a # 현재 상태 확인용1단계: 프로젝트 루트 설정 및 환경 변수(.env) 통합배포의 핵심은 보안과 설정의 분리입니다. 모든 중요한 키(API Key, DB 정보)를 루트 폴더(Meat-A-Eye-Service)의 .env..
[배포] AWS EC2 재가동 및 도커 배포 (4)
·
3. 자습 & 메모(실전, 실습, 프로젝트)/3-3 배포 실전 공부
이 가이드는 중지되었던 AWS 인스턴스를 다시 켜는 단계부터 도커 이미지 빌드까지의 실전 명령어를 담고 있습니다.1. 로컬 환경 준비 및 서버 접속먼저 내 컴퓨터(Windows) 터미널에서 AWS 서버로 접속을 시도합니다.1.1 키 페어 권한 설정 (최초 1회 필수)윈도우에서 .pem 키의 권한이 너무 열려 있으면 접속이 거부됩니다. 파일이 있는 폴더(C:\Pyg\Memo)에서 아래 명령어를 수행합니다.icacls "meat-a-eye-key.pem" /inheritance:ricacls "meat-a-eye-key.pem" /grant:r "%username%":"(R)"1.2 SSH 접속 실행AWS 콘솔에서 인스턴스를 [시작]한 후, 할당된 고정 IP로 접속합니다.ssh -i "meat-a-eye-k..