Skip to content

UpstageAILab6/upstageailab-nlp-langchainpjt-langchain-4

 
 

Repository files navigation

Review Assignment Due Date

LangChain 프로젝트 (예시)

LangChain과 Upstage Embedding을 활용하여, 여러 문서(PDF, 크롤링, Python 코드)를 기반으로 대화형 질의응답 시스템을 구축한 프로젝트입니다.

RAG(Retrieval-Augmented Generation) 구조와 LangServe API 구조를 활용해 실시간 질의응답 서비스 형태로 통합했습니다.

  • 프로젝트 기간: 2025.04.02 ~ 2025.04.08
  • 주제: LangChain 기반 문서 검색 + Q&A 자동화 시스템

팀원 소개

이름 역할 GitHub 담당 기능
김태홍 팀장 / 역할 GitHub 링크 LangChain 통합, FastAPI 백엔드 구성, API 설계 및 구조화
김연준 역할 GitHub 링크 CI/CD 파이프라인 구축, 도커화, 로컬/클라우드 환경 구성
박정은 역할 GitHub 링크 문서 임베딩 처리, 벡터 DB 구축, LLM 파인튜닝
이해울 역할 [GitHub 링크] 데이터 수집, 전처리, DVC 및 S3 데이터 관리

파이프라인 워크플로우

LangChain 기반 문서 QA 시스템의 구축 및 운영을 위한 파이프라인입니다.

1. 비즈니스 문제 정의

  • 복잡한 문서에서 원하는 정보를 쉽게 찾을을 수 있는 자동 질의응답 시스템 필요
  • 내부 지식베이스 활용 극대화
  • 목표 KPI: 응답 정확도 향상, 사용자 피드백 만족도 확보

2. 데이터 수집 및 전처리

  • .pkl 형태로 정제된 문서 데이터 사용
  • 카테고리별로 문서를 불러와 Markdown 또는 Python 코드 등 형식에 맞게 청크 분할
  • LangChain의 TextSplitter 활용

3. 벡터화 및 툴 생성

  • Upstage Embedding 기반으로 FAISS 벡터스토어 생성
  • 카테고리별 벡터스토어를 기반으로 LangChain Tool 자동 생성
  • DuckDuckGo Tool과 통합하여 최신 정보 검색도 가능

4. LLM 및 RAG 파이프라인 구성

  • ChatUpstage 모델 기반 LLM 응답 처리
  • LangChain의 Tool Calling Agent 사용
  • 사용자 입력과 대화 히스토리를 기반으로 실행기 구성성

5. API 제공 및 실행 환경

  • FastAPI + LangServe 조합으로 RAG 응답 API 제공
  • /upstage_chain 엔드포인트로 agent 노출
  • 로컬 환경 또는 EC2 등 서버에서도 동일하게 구동 가능

프로젝트 실행 방법

본 프로젝트는 웹 서비스 형태로 배포하지 않아도 되며,
로컬 환경 또는 클라우드 인스턴스에서 터미널 기반으로 실행 가능합니다.

# 1. 프로젝트 클론
git clone https://github.com/UpstageAILab6/upstageailab-nlp-langchainpjt-langchain-4.git
cd upstageailab-nlp-langchainpjt-langchain-4

# 2. 가상환경 설정 및 패키지 설치
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt

# 3. .env 환경 변수 설정
UPSTAGE_API_KEY=your-upstage-key
LANGSMITH_TRACING=true
LANGSMITH_ENDPOINT="https://api.smith.langchain.com"
LANGSMITH_API_KEY=your-langsmith-key
LANGSMITH_PROJECT="rag-project"
# 4. FastAPI 서버 실행
uvicorn main:app --reload --port 30032

# 5. Streamlit ui 실행
streamlit run rag_st.py

활용 장비 및 사용 툴

협업 툴

  • 소스 관리: GitHub
  • 프로젝트 관리: GitHub
  • 커뮤니케이션: Slack
  • 버전 관리: Git

사용 도구

  • LLM 통합: LangChain, Upstage API
  • 실험 관리: Langsmith

강사님 피드백 및 프로젝트 회고

프로젝트 진행 중 담당 강사님과의 피드백 세션을 통해 얻은 주요 인사이트는 다음과 같습니다.

📌 1차 피드백 (2025.04.02)

  • LangChain, RAG 학습 부족
    → 전체적으로 LangChain과 RAG 선행이 되어있지 않아서 일단 강의를 보고 개념을 이해하는 시간을 가지기.

📌 2차 피드백 (2025.04.03)

  • 주제 빨리 정하기
  • Native RAG 코드에서 프로젝트 데이터로 바꿔서 결과보기
  • 금요일(내일)에는 코드 보면서 멘토링 진행 예정

📌 3차 피드백 (2025.04.04)

  • 기존 NativeRAG에서 발전 가능성 찾아보기
    → Advanced RAG 기법 알아보기.
  • GitHub repository 모든 팀원이 Contributor가 되기
  • 마지막 발표 출력형태는 streamlit 데모 형태

📌 4차 피드백 (2025.04.07)

  • 코드 Class로 구현하기
  • LLM을 통한 프롬프팅으로 의도 분석하는 프로세스 구현하기
  • Embedding, Retriever 방식 수정해보기
  • 코드 return 형식도 볼 수 있게 코드 깔끔하게 정리하기
  • GitHub test 코드들은 폴더에 넣어서 정리하기
  • 프롬프트를 풍부하게 작성(순서대로 답변해줘 등)
  • ReAct 프롬프트 구현(agent 만들 때 사용)

About

upstage-ai-lab-6-upstageailab-nlp-langchainpjt-UpstageAILab6-LangChainPJT-Template created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 89.5%
  • Python 10.5%