Farzad-R/Advanced-QA-and-RAG-Series
요약
다양한 데이터베이스(VectorDB, GraphDB, SQL 등)를 활용한 고급 RAG 및 질의응답 시스템 구현 가이드를 제공하는 저장소입니다. LangGraph를 이용한 에이전트형 고객 지원 시스템 구축을 포함하여, 최신 RAG 기법들을 실무적인 관점에서 다룹니다.
핵심 포인트
- VectorDB, GraphDB, SQL 등 다양한 데이터 소스 활용법 제공
- CRAG, Self-RAG, Agentic RAG 등 8가지 최신 RAG 전략 수록
- LangGraph를 활용한 복잡한 에이전트 워크플로우 구축 예시 포함
- 데이터베이스 보안을 위한 읽기 전용 권한 사용 권장
이 저장소는 다양한 데이터베이스(VectorDB, GraphDB, SQLite, CSV, XLSX 등)를 활용한 검색 증강 생성 (RAG) 및 질의응답 (Q&A)을 위한 고급 LLM 기반 챗봇을 포함하고 있습니다. 이 저장소는 각 프로젝트에 대해 AzureOpenAI 및 OpenAI API를 모두 사용하는 방법에 대한 가이드를 제공합니다. 각 프로젝트에는 모든 세부 사항을 설명하는 YouTube 영상이 함께 제공됩니다. 영상 링크는 각 섹션에 포함되어 있습니다.
- RAG-Evolution-8-SOTA-Techniques
- LangGraph_1o1_Agentic_Customer_Support
- AgentGraph-Intelligent-Q&A-and-RAG-System
- Q&A-and-RAG-with-SQL-and-TabularData
- KnowledgeGraph-Q&A-and-RAG-with-TabularData
Project-folder
├── README.md <- 이 프로젝트를 사용하는 개발자를 위한 최상위 README.
├── HELPER.md <- 프로젝트 실행 시 유용할 수 있는 추가 정보 포함.
...
참고: 이것은 프로젝트의 일반적인 구조이지만, 각 프로젝트의 특정 요구 사항에 따라 약간의 변경이 있을 수 있습니다.
주요 참고 사항 1: 모든 프로젝트는 OpenAI 모델을 사용합니다.
주요 참고 사항 2: LLM 에이전트를 사용하여 데이터베이스와 상호작용할 때, 정보가 풍부한 컬럼(Column) 이름은 에이전트가 데이터베이스를 더 쉽게 탐색하는 데 도움이 될 수 있습니다.
주요 참고 사항 3: LLM 에이전트를 사용하여 민감한 데이터베이스와 상호작용할 때는 데이터베이스에 쓰기(WRITE) 권한을 사용하지 않도록 주의하십시오. 읽기(READ) 권한만 사용하고 범위를 제한하십시오. 그렇지 않으면 사용자가 데이터를 조작할 수 있습니다 (예: 체인에 데이터를 삭제하도록 요청).
주요 참고 사항 4: Python용 Pandas, SQL, Cypher와 같은 데이터베이스 쿼리 언어에 익숙해지면 더 나은 질문을 던지고 그래프 에이전트와 더 풍부한 상호작용을 할 수 있는 능력이 향상될 수 있습니다.
전략:
| 기법 (Technique) | 추가되는 기능 | 전형적인 이점 |
|---|---|---|
| 메모리가 포함된 단순 RAG (Simple RAG w/ Memory) | 세션/사용자 컨텍스트 회상 | 개인화 및 일관성 |
| 교정형 RAG (Corrective RAG, CRAG) | 검색된 문서 등급 평가, 품질이 낮을 경우 재검색 | 불완전한 코퍼스(Corpora)에서의 신뢰성 |
| 적응형 RAG (Adaptive RAG) | 쿼리 복잡도에 따라 검색 깊이 조절 | 효율성 및 응답성 |
| Self-RAG | 성찰(Reflect), 검색 여부 결정, 주장 검증 | 사실적 견고함 |
| 퓨전 RAG (Fusion RAG) | 다중 검색 + 결과 융합 | 고립된 소스(Siloed sources)에 대한 커버리지 |
| 추측형 RAG (Speculative RAG) | 소형 모델이 초안 작성, 대형 모델이 검증 | 대규모 환경에서의 속도 및 비용 제어 |
| 에이전트형 RAG (Agentic RAG) | 플래너/연구자/합성기 (+ 도구) | 다단계 추론 및 도구 활용 |
| HyDE | 가설적 답변 생성 → 임베딩(Embedding) → 검색 | 제로샷 회상(Zero-shot recall), 독특한 문구 대응 |
YouTube 동영상: Link
LangGraph_1o1_Agentic_Customer_Support는 LangGraph를 사용하여 어떻게 복잡한 시스템을 구축할 수 있는지 보여주기 위해 설계된 프로젝트입니다. 이 프로젝트에서 우리는 Swiss Airlines를 위한 에이전트형 고객 서비스 챗봇을 네 가지 다른 버전으로 제작하며, 각 단계에서 발생하는 일반적인 실무 과제들을 해결합니다. 이 시스템은 검색 증강 생성 (RAG), 웹 검색, 여행 계획을 포함한 18개의 도구를 통해 광범위한 작업을 지원합니다.
주요 특징:
- 시스템 설계: LangGraph를 사용하여 복잡한 시스템을 구축하기 위한 안정적이고 효과적인 전략을 보여줍니다.
- 데이터베이스 상호작용: SQL 데이터베이스에서 데이터를 쓰고, 정제하고, 업데이트하는 것과 같은 민감한 작업을 관리하는 방법을 제공합니다.
- 워크플로우 통합: 웹 검색, SQL 데이터베이스 작업, 벡터 데이터베이스 기반의 RAG를 포함한 여러 워크플로우를 하나의 원활한 시스템으로 결합합니다.
- 설계 전략: 과제를 해결하고 시스템 성능을 최적화하기 위한 다양한 전략을 탐구합니다.
YouTube 동영상: Link
이 프로젝트는 여러 데이터베이스와 상호작용하고 다양한 도구를 활용할 수 있는 대규모 언어 모델 (LLMs) 기반의 에이전트 시스템 (agentic system)을 구축하는 방법을 보여줍니다. 특히 대규모 데이터베이스를 효율적으로 쿼리하기 위한 SQL 에이전트 (SQL agents)의 활용을 강조합니다. 이 프로젝트에 사용된 주요 프레임워크로는 OpenAI, LangChain, LangGraph, LangSmith, 그리고 Gradio가 있습니다. 최종 결과물은 이러한 작업들을 수행하도록 설계된 엔드 투 엔드 (end-to-end) 챗봇이며, 에이전트의 성능을 모니터링하기 위해 LangSmith가 사용됩니다.
주요 기능:
- RAG를 통한 비정형 데이터 처리 및 SQL 에이전트를 통한 정형 데이터 처리.
- 필요 시 내장된 웹 검색 기능 활용.
- 각 작업에 가장 적합한 도구를 자동으로 선택.
- 대규모 데이터베이스에 대해 확장 가능.
- 여러 데이터베이스에 쉽게 연결.
YouTube 동영상: Link
Q&A-and-RAG-with-SQL-and-TabularData
는 GPT 3.5, Langchain, SQLite, 그리고 ChromaDB를 활용하여 사용자가 자연어를 통해 SQL 데이터베이스, CSV, XLSX 파일과 상호작용(질의응답 및 RAG 수행)할 수 있도록 하는 챗봇 프로젝트입니다.
주요 기능:
- SQL 데이터와 채팅.
- 전처리된 CSV 및 XLSX 데이터와 채팅.
- 사용자 인터페이스와의 상호작용 중 업로드된 CSV 및 XLSX 파일과 채팅.
- 표 형식 데이터셋 (Tabular datasets)을 활용한 RAG.
데이터베이스:
YouTube 동영상: Link
KnowledgeGraph-Q&A-and-RAG-with-TabularData
는 지식 그래프 (knowledge graph), GPT 3.5, Langchain 그래프 에이전트 (graph agent), 그리고 Neo4j 그래프 데이터베이스를 활용하여 사용자가 자연어를 통해 표 형식 데이터베이스 (CSV, XLSX 등)와 상호작용(질의응답 및 RAG 수행)할 수 있도록 하는 챗봇 프로젝트입니다. 또한 이 프로젝트는 LLMs를 활용하여 비정형 데이터로부터 지식 그래프를 구축하는 접근 방식도 보여줍니다.
주요 기능:
- 표 형식 데이터로부터 생성된 그래프 데이터베이스 (graphDB)와 채팅.
- 표 형식 데이터로부터 생성된 그래프 데이터베이스 (graphDB)를 활용한 RAG.
데이터베이스:
YouTube 동영상: Link
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기