File size: 5,922 Bytes
ea8a378
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# Agentic RAG

## Theoretical review
### What is a **Retrieval Augmented Generation (RAG)**?

Published by Meta AI in NeurIPS 2020 -> [Paper](https://research.facebook.com/publications/retrieval-augmented-generation-for-knowledge-intensive-nlp-tasks/).

**1. Overview**:
   - **Hybrid Model**: Combines the strengths of retrieval-based and generation-based models.
   - **Purpose**: Enhances LLM text generation by incorporating relevant external information, improving accuracy and context.

**2. Structure**:
   - **Retriever**: 
     - Function: Searches a large corpus (e.g., documents, articles) to find relevant information based on the input query.
     - Techniques: Uses methods like BM25, dense retrieval, or neural retrievers.
   - **Generator**: 
     - Function: Generates a response using the information retrieved.
     - Model: Typically a transformer-based model like GPT-4 or Llama.

**3. Workflow**:
   1. **Input Query**: User provides a query or prompt.
   2. **Document Retrieval**: 
      - The retriever fetches a set of relevant documents or passages.
      - These documents provide context and factual information.
   3. **Response Generation**: 
      - The generator uses the retrieved documents to produce a coherent and contextually accurate response.
      - Ensures the generated text is informed by the most relevant information available.

**4. Benefits**:
   1. **Enhanced Accuracy**: By grounding responses in real-world data, RAG models significantly improve the accuracy of generated content.
   2. **Reduced Hallucinations**: The integration of external knowledge helps mitigate the risk of generating incorrect or nonsensical responses.
   3. **Scalability**: RAG systems can handle vast amounts of data, making them suitable for enterprise-level applications.


#### **Pipeline**
![image.png](docs/images/naive_rag.jpg)


---


### What is a **Agentic-RAG**?
**1. Overview**:
   - **Enhanced RAG**: Extends RAG by adding agent-like capabilities.
   - **Purpose**: Designed to perform tasks autonomously, interacting with various tools and APIs to achieve specific goals.

**2. Structure**:
   - **Retriever**: 
     - Function: Similar to RAG, it fetches relevant documents based on the input query.
   - **Generator**: 
     - Function: Generates an initial response using the retrieved documents.
   - **Agent Module**: 
     - Function: Evaluates the generated response, cross-references it with the knowledge base, and makes corrections if discrepancies are found.

**3. Workflow**:
   1. **Input Query**: User provides a query/question/task.
   2. **Document Retrieval**: The retriever fetches relevant documents to provide context.
   3. **Initial Response Generation**: The generator creates a preliminary answer using the retrieved information.
   4. **Response Verification**:  The agent system assesses the initial response against the knowledge base to ensure accuracy.
   5. **Response Correction (if needed)**: If inaccuracies are detected, the agent system refines the response to align with verified information.


**4. Benefits**:
   1. **Improved Reliability**: The agent system's verification process ensures responses are accurate and trustworthy.
   2. **Dynamic Correction**: Enables real-time adjustments to responses, enhancing the system's adaptability to new information.
   3. **User Trust**: By providing verified answers, the system builds greater user confidence in its outputs.


#### **Pipeline**
![image.png](docs/images/AgenticRAG.png)

---

## Frameworks recommended for Agents
[LangChain](https://python.langchain.com/docs/introduction/)  
[LangGraph](https://langchain-ai.github.io/langgraph/)  
[AutoGen](https://microsoft.github.io/autogen/0.2/docs/Getting-Started)  
[SmolAgent](https://github.com/huggingface/smolagents)  
[PydanticAI](https://ai.pydantic.dev/)  
[Vector Database: Chroma](https://docs.trychroma.com/)  

## Frameworks recommended to develop user interfaces.
[Streamlit](https://docs.streamlit.io/)  
[Gradio](https://www.gradio.app/docs/python-client/introduction)  
[Chainlit](https://docs.chainlit.io/get-started/overview)  

---

## Code Examples
   - [LangGraph Agentic RAG](https://langchain-ai.github.io/langgraph/tutorials/rag/langgraph_agentic_rag/)
   - [SmolAgent](https://github.com/huggingface/smolagents/tree/main/examples)
   - [LangGraph ai agent for engineers](https://github.com/GoogleCloudPlatform/generative-ai/blob/main/workshops/ai-agents/ai_agents_for_engineers.ipynb)
   - [Agentic RAG with LangChain:](https://medium.com/@jagadeesan.ganesh/agentic-rag-with-langchain-revolutionizing-ai-with-dynamic-decision-making-ff1dee6df4ca)  

## References

1. [Video: What is Agentic RAG?](https://www.youtube.com/watch?v=0z9_MhcYvcY)
2. [Video: LangChain vs LangGraph](https://www.youtube.com/watch?v=qAF1NjEVHhY)
3. [Video: Build Your Own AI Agent System from scratch!](https://www.youtube.com/watch?v=LzG_Vkd30Kg)
4. [Course: AI Agents in LangGraph](https://www.deeplearning.ai/short-courses/ai-agents-in-langgraph/)
5. [Course: Advanced Retrieval for AI with Chroma](https://www.deeplearning.ai/short-courses/advanced-retrieval-for-ai/)
6. [Course: AI Agents in LangGraph](https://www.deeplearning.ai/short-courses/ai-agents-in-langgraph/)
7. [A Comprehensive Guide to Building Agentic RAG Systems with LangGraph](https://www.analyticsvidhya.com/blog/2024/07/building-agentic-rag-systems-with-langgraph/)
8. [leewayhertz: Agentic RAG](https://www.leewayhertz.com/agentic-rag/)
9. [Vectorize: How I finally got agentic RAG to work right](https://vectorize.io/how-i-finally-got-agentic-rag-to-work-right/)
10. [Simple Agentic RAG for Multi Vector stores with LangChain and LangGraph](https://www.metadocs.co/2024/08/20/simple-agentic-rag-for-multi-vector-stores-with-langchain-and-langgraph/)

---