lhh737/LangChain-ReAct-Agent

基于 LangChain/LangGraph 的 ReAct Agent,结合 RAG 检索、工具调用与 Streamlit 界面,面向智能客服与报告生成场景。

LangChain ReAct 에이전트 – 추론, 도구 사용, RAG를 갖춘 AI 기반 챗봇

개요

  • LangChain과 LangGraph 위에 ReAct (Reasoning + Acting) 에이전트를 구축하는 Python 애플리케이션.
  • 지식 베이스에서 질문에 답하고, 외부 도구(날씨, 사용자 데이터, 보고서 생성)를 호출하고, 프롬프트를 동적으로 전환할 수 있으며, 내부 생각-행동-관찰 루프를 Streamlit UI에 표시합니다.

주요 기능

기능 설명
ReAct 추론 루프 에이전트가 Thought를 반복 생성하고, Action (예: 도구 호출 또는 RAG 쿼리 실행)을 결정하고, Observation을 받고, 답할 수 있을 때까지 루프.
RAG 강화 QA 로봇 청소기에 관한 문서(txt/pdf)를 DashScope 임베딩을 사용하여 Chroma 벡터 저장소에 인덱싱. 에이전트가 관련 청크를 검색하고 LLM이 요약.
멀티 도구 호출 날씨 조회, 사용자별 데이터 검색, 보고서 생성을 위한 내장 도구. 미들웨어가 사용자 의도에 따라 올바른 도구를 자동 선택.
동적 프롬프트 전환 일반 Q&A용과 보고서 생성용의 두 시스템 프롬프트 템플릿을 미들웨어가 런타임에 교체.
Streamlit 프론트엔드 대화를 표시하고, LLM 출력을 토큰 단위로 스트리밍하고, 에이전트의 내부 추론 체인을 시각화하는 웹 UI.
모듈식 YAML 기반 설계 에이전트 로직, RAG 설정, 벡터 저장소 매개변수, 프롬프트 경로가 별도의 YAML 파일에 있어 코드 변경 없이 재구성 용이.

작동 방식 (높은 수준 흐름)

  1. 사용자가 Streamlit 채팅 상자에 쿼리 입력.
  2. 미들웨어가 사용할 프롬프트 템플릿을 결정하고 ReAct 루프 시작.
  3. 에이전트가 Thought 생성 → Action (예: RAG 검색 또는 날씨 API 호출) 결정.
  4. 선택된 도구가 실행되고 Observation 반환.
  5. 단계 3-4를 에이전트가 최종 답변을 생성할 수 있을 때까지 반복하고 UI로 스트리밍.

기술 스택

  • LLM: Alibaba DashScope ChatTongyi (DashScope API 통해).
  • 에이전트 프레임워크: LangChain 0.3 + LangGraph 0.2.
  • 벡터 저장소: Chroma (영구 디스크 인덱스).
  • 임베딩 모델: DashScope 임베딩 서비스.
  • 문서 처리: PyPDF, RecursiveCharacterTextSplitter.
  • 프론트엔드: Streamlit 1.40.
  • 설정: 에이전트, RAG, 프롬프트, Chroma용 YAML 파일.

시작하기 (README에 설명됨)

# 1. 클론
git clone https://github.com/lhh737/LangChain-ReAct-Agent.git && cd LangChain-ReAct-Agent

# 2. 설치
pip install -r requirements.txt

# 3. DashScope API 키 설정
export DASHSCOPE_API_KEY="your-key"   # Windows에서는 `set DASHSCOPE_API_KEY=your-key`

# 4. 지식 베이스 구축 (첫 실행 시)
python -c "from rag.vector_store import VectorStoreService; VectorStoreService().load_document()"

# 5. UI 시작
streamlit run app.py

브라우저에서 http://localhost:8501을 열고 샘플 질문을 시도하세요:

  • "掃地機器人有哪些主要功能?" → RAG QA 트리거.
  • "如果機器人無法正常回充,該如何處理?" → 고장 진단 추론 트리거.
  • "請根據用戶數據生成一份個性化使用報告" → 보고서 생성 도구 체인 트리거.

프로젝트 구조

  • agent/ – 핵심 ReAct 로직 및 도구 정의.
  • rag/ – 벡터 저장소 처리 및 RAG 서비스.
  • model/ – LLM 및 임베딩 클라이언트 생성 팩토리.
  • config/ – 동작 제어 YAML 파일.
  • prompts/ – 원시 프롬프트 템플릿.
  • utils/ – 헬퍼 모듈 (설정 로더, 파일 처리, 로깅 등).
  • app.py – Streamlit 진입점.

사용 대상

  • 도구 사용을 포함한 ReAct 스타일 에이전트의 참조 구현을 원하는 개발자.
  • 지식 베이스 조회와 외부 데이터를 결합해야 하는 AI 지원 고객 서비스 봇을 구축하는 팀.
  • 동적 프롬프트 관리 및 RAG 통합을 위한 LangChain/LangGraph 패턴을 탐구하는 모든 사람.

라이선스: MIT (LICENSE 참조).

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트