본문 바로가기

전체 글53

[LangChain] Retrieval Augmented Generation(RAG) Retrieval-Augmented Generation(RAG)는 자연어 처리(NLP) 분야에서의 기술정보 검색과 생성을 통합하는 방법론 RAG 프로세스 사전 준비단계1. 도큐먼트 로드 (Document Loader): 외부 데이터 소스에서 필요한 문서를 로드하고 초기 처리를 합니다2. 텍스트 분할 (Text Splitter): 로드된 문서를 처리 가능한 작은 단위로 분할합니다.3. 임베딩 (Embedding): 각 문서 또는 문서의 일부를 벡터 형태로 변환하여, 문서의 의미를 수치화합니다.4. 벡터스토어(Vector Store) 저장: 임베딩된 벡터들을 데이터베이스에 저장합니다. 런타임 단계5. 검색기 (Retriever): 질문이 주어지면, 이와 관련된 벡터를 벡터 데이터베이스에서 검색합니다.6. 프.. 2026. 2. 8.
[LangChain] Document Loader https://wikidocs.net/233775위키독스 - 랭체인 스터디 글을 참고하여 작성되었습니다. LangChain에서는 문서 로더(Document Loader)를 사용해 다양한 형식의 데이터 파일로부터 문서로 로드하는 기능을 제공합니다. 로드한 문서는 Document 라는 타입의 객체로 로드되며 해당 데이터 구조는 page_content 에는 내용이 metadata 에는 메타데이터를 포함합니다. 예를 들어 간단한 pdf 파일을 로드하거나, Word, CSV, Excel, JSON 등을 로드하기 위한 문서 로더가 사용됩니다. 이런 다양한 확장자의 파일이 Document 라는 일관된 구조로 변경되어 load된다고 이해할 수 있습니다. 문서 로더는 load(), aload(), lazy_load(.. 2025. 12. 20.
FastAPI + PostreSql 백엔드 서버 예제 FastAPI 백엔드 서버와 PostreSql 서버를 도커 이미지로 띄워서 연결하는 간단한 예제를 정리하려고 합니다. # requirements.txtfastapiuvicorn[standard]sqlalchemypsycopg2-binarypydantic 필요 라이브러리 입니다. pip install -r requirements.txt requirements.txt에 명시되어 있는 라이브러리를 일괄 설치합니다. pip list --format=freeze > requirements.txt 가상환경에 설치되어 있는 라이브러리들을 requirements.txt에 저장합니다. # main.pyfrom fastapi import FastAPI, Depends, HTTPExceptionfrom sqlalchemy.. 2025. 12. 9.
보안을 위한 DB 테이블 설계 백엔드 개발자로서 새로운 프로젝트를 시작할 떄, 다른 분들이 어떻게 하시는지는 모르겠습니다만 저는 가장 먼저 DB 테이블 설계를 진행합니다. 서비스의 요구사항을 파악하고, 테이블 스키마를 먼저 작성해야 앞으로 어떤 API가 필요하고 코드를 어떻게 분리해야 할지 큰 그림을 보기가 편하더라구요. 예를 들어서 회원가입과 로그인이 필요한 서비스를 개발해야 한다고 가정해봅시다. 유저의 아이디와 비밀번호를 저장해야 할거고, 사이트의 요구사항에 따라 이메일, 닉네임 또는 마케팅 수신 동의 등의 정보를 저장해야겠죠. 만약 유저가 탈퇴 후 1주일이 지나야 DB에서 삭제되도록 하고 싶다면 soft delete를 위한 필드로 하나 추가해야 할거구요. 이걸 감안해서 먼저 테이블을 설계하면 아래와 같이 엔티티 객체를 만들 수 .. 2025. 11. 24.