1. 개요LangChain 기반의 RAG(Retrieval-Augmented Generation) 시스템에서는 정보 수집, 저장, 검색, 응답 생성을 위해 다음 세 가지 핵심 개념을 사용한다:Collection: 문서들의 저장소 역할 (ChromaDB 단위)Document: 실제 본문 콘텐츠와 메타데이터를 담은 객체Metadata: Document에 붙는 부가 정보로, 필터링과 분류에 사용됨이 문서는 각 개념의 정의와 역할, 그리고 Document와 Metadata의 차이점까지 포함하여 설명한다.2. 주요 개념 설명2.1 Collection (컬렉션)정의: 관련된 Document들을 저장하는 단위. ChromaDB에서 폴더처럼 역할함.사용 목적: 주제별로 분리된 문서 관리를 통해 검색 범위를 지정 가능...
1. RDB와 벡터DB의 의미와 차이1.1 관계형 데이터베이스(RDB, Relational Database)구조: 정형화된 테이블 기반의 데이터 저장소주요 특징:데이터를 행(Row)과 열(Column) 형태로 저장SQL을 이용한 질의(Query) 수행스키마(데이터 구조)를 미리 정의해야 함정합성(ACID, Atomicity, Consistency, Isolation, Durability) 보장사용 예시: MySQL, PostgreSQL, Oracle, MSSQL1.2 벡터 데이터베이스(Vector Database)구조: 비정형 데이터를 고차원 벡터로 변환하여 저장주요 특징:의미 기반 검색(Semantic Search) 가능거리 기반 유사도 검색(KNN, ANN, FAISS 등) 활용데이터 정형화 필요 없..
PDF 문서 로드 및 처리def load_pdf(): """PDF 문서 로드""" if not PDF_PATH or not os.path.exists(PDF_PATH): raise FileNotFoundError(f"PDF 파일을 찾을 수 없습니다: {PDF_PATH}") print("PDF 파일 로드 중...") return PyMuPDFLoader(PDF_PATH).load()기술 설명:PyMuPDFLoader: LangChain에서 제공하는 PDF 로더로, PDF 파일을 텍스트 형태로 추출예외 처리: 파일이 없는 경우를 대비한 FileNotFoundError 처리PDF 문서 벡터화 및 저장def create_pdf_vectorstore(): """PDF 문서를..
1. BM25 키워드 검색 (Lexical Search)BM25 키워드 검색은 Lexical Search(어휘 검색) 방식 중 하나로, 문서의 단어 빈도와 희귀도를 기반으로 검색 결과를 랭킹하는 알고리즘.Lexical Search는 문서 내 단어(lexicon)의 정확한 매칭을 기반으로 검색을 수행하는 방식.BM25 키워드 검색의 특징정확한 단어 매칭을 기반으로 검색단순 TF-IDF보다 검색 성능이 향상됨짧은 문서와 긴 문서를 균형 있게 평가 (문서 길이 보정)Elasticsearch, Solr 등 주요 검색 엔진에서 기본 알고리즘으로 사용됨데이터 양이 많을수록 검색 성능이 향상됨한계점동의어나 의미적으로 유사한 단어를 인식하지 못함. (예: "AI"와 "인공지능"을 다르게 인식) 자연어 의미를 이해하지 ..
자료를 ai에게 주고 일을 시키면 60퍼센트 정도의 원하는 답변을 받는다면 LAG를 사용하면 80퍼센트까지 끌어올릴 수 있어서 사용한다고 한다. 그리고 항상 염려하는 할루시네이션의 확률이 DB기반으로 나와서 대폭 감소하는 이점이 있다고 한다. 또한 ai를 사용하면 업무가 엄청 편리해지는 대신 해당 ai 회사에 회사 내부 자료가 저장될 수 있는 위험이 따르는데 해당 기술을 사용하면 DB를 자체적으로 사용하고 질문만 쓸 수 있어서 좋다고 한다. 결국 좀 더 신뢰성있는 더 좋은 품질, 나만의 챗봇을 위해 공부해야하는 것 같다.
Git 협업 시 자주 사용하는 명령어 정리1. 브랜치 관련새 브랜치 생성 후 이동git checkout -b 브랜치이름git switch -c 브랜치이름 # 최신 Git에서 권장브랜치 이동git checkout 브랜치이름git switch 브랜치이름 # 최신 Git에서 권장로컬 브랜치 목록 확인git branch원격 브랜치 목록 확인git branch -r모든 브랜치 목록(로컬 + 원격) 확인git branch -a브랜치 삭제 (로컬)git branch -d 브랜치이름 # 병합된 브랜치만 삭제 가능git branch -D 브랜치이름 # 강제 삭제브랜치 삭제 (원격)git push origin --delete 브랜치이름2. 원격 저장소 관련원격 저장소 정보 확인git remote -v원격 저장소 추..