{"repo":"kyopark2014/agentic-rag","free":true,"listed":false,"github":"https://github.com/kyopark2014/agentic-rag","clone":"git clone https://github.com/kyopark2014/agentic-rag.git","description":"It shows how to realize agentic RAG.","language":"Python","stars":30,"topics":["agentic-rag","aws","rag","streamlit","workflow"],"license":"Apache-2.0","category":"ai-agents","readme_excerpt":"Agentic RAG 구현하기 여기에서는 RAG의 성능 향상 기법인 Agentic RAG, Corrective RAG, Self RAG를 구현하는 방법을 설명합니다. 또한 RAG의 데이터 수집에 필요한 PDF의 header/footer의 처리, 이미지의 추출 및 분석과 함께 contextual retrieval을 활용하는 방법을 설명합니다. 이를 통해서 생성형 AI 애플리케이션을 위한 데이터를 효과적으로 수집하여 활용할 수 있습니다. 여기서는 오픈소스 LLM Framework인 LangGraph을 이용하고, 구현된 workflow들은 Streamlit을 이용해 개발 및 테스트를 수행할 수 있습니다. AWS CDK를 이용하고 한번에 배포할 수 있고, CloudFront - ALB 구조를 이용해 HTTPS로 안전하게 접속할 수 있습니다. System Architecture 전체적인 architecture는 아래와 같습니다. Streamlit이 설치된 EC2는 private subnet에 있고, CloudFront-ALB를 이용해 외부와 연결됩니다. RAG는 OpenSearch를 활용하고 있습니다. 인터넷 검색은 tavily를 사용하고 날씨 API를 추가로 활용합니다. 여기에서는 Lambda-Document를 이용해 입력된 문서를 parsing하여 OpenSearch에 push합니다. 이를 위한 event driven 방식의 데이터 처리 방식은 아래와 같습니다. 상세 구현 Agentic workflow (tool use)는 아래와 같이 구현할 수 있습니다. 상세한 내용은 chat.py을 참조합니다. Basic Chat 일반적인 대화는 아래와 같이 stream으로 결과를 얻을 수 있습니다. 여기에서는 LangChain의 ChatBedrock을 이용합니다. Model ID로 사용할 모델을 지정합니다. 아래 예제에서는 Nova Pro의 모델명인 \"us.amazon.nova-pro-v1:0\"을 활용하고 있습니다. Nova 모델는 동급 모델대비 빠르고, 높은 가성비와 함께 훌륭한 멀티모달 성능을 가지고 있습니다. 만약 Claude Sonnet 3.5을 사용한 다면 \"anthropic.claude-3-5-sonnet-20240620-v1:0\"을 입력합니다. Basic RAG 여기에서는 RAG 구현을 위하여 OpenSearch를 이용합니다. LangChain의 OpenSearchVectorSearch을 이용하여 관련된 문서를 가져옵니다. 얻어온 문서가 적절한지를 판단하기 위하여 아래와 같이 prompt를 이용해 관련도를 평가하고 structured output을 이용해 관련도를 평가합니다. 이후 아래와 같이 RAG를 활용하여 원하는 응답을 얻습니다. RAG의 성능 향상 방법 Hiearchical Chunking (Parent-Child Chunking) 문서를 크기에 따라 parent chunk와 child chunk로 나누어서 child chunk를 찾은 후에 LLM의 context에는 parent chunk를 사용하면, 검색의 정확도는 높이고 충분한 ","default_branch":null,"files":null,"tree":[],"storefront":"/r/kyopark2014","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/kyopark2014/agentic-rag/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}