Devi Sri Bandaru commited on
Commit ·
a41cb90
1
Parent(s): ee3f4ca
Update README
Browse filesRemoved outdated architecture diagram and tech stack details from README.
README.md
CHANGED
|
@@ -17,22 +17,7 @@ The system includes a custom LLM-as-a-Judge Evaluation Pipeline to continuously
|
|
| 17 |
## System Architecture
|
| 18 |
|
| 19 |
The system follows a Hybrid RAG architecture. The Agent acts as the central brain, routing user queries to the appropriate tool.
|
| 20 |
-
|
| 21 |
-
graph TD
|
| 22 |
-
User[User API Request] --> API[FastAPI Gateway]
|
| 23 |
-
API --> Agent[LangGraph Agent Router]
|
| 24 |
-
|
| 25 |
-
Agent -->|Policy Question?| RAG[Internal RAG Tool]
|
| 26 |
-
Agent -->|General Question?| Web[Web Search Tool]
|
| 27 |
-
|
| 28 |
-
RAG -->|Vector Search| FAISS[(FAISS Vector DB)]
|
| 29 |
-
Web -->|Live Search| DDG[DuckDuckGo]
|
| 30 |
-
|
| 31 |
-
FAISS --> LLM[Google Gemini 2.5]
|
| 32 |
-
DDG --> LLM
|
| 33 |
-
|
| 34 |
-
LLM --> Response[Final Answer]
|
| 35 |
-
|
| 36 |
|
| 37 |
## Key Features
|
| 38 |
|
|
@@ -64,38 +49,6 @@ The Agent correctly identifies when to look inside the PDF versus when to search
|
|
| 64 |
A generated CSV report scoring the agent's performance against ground truth data.
|
| 65 |

|
| 66 |
|
| 67 |
-
## Tech Stack
|
| 68 |
-
|
| 69 |
-
Component | Technology | Reason for Choice | LLM | Google Gemini 2.5 Flash | High speed, massive context window, and generous free tier | Orchestration
|
| 70 |
-
|
| 71 |
-
LangGraph
|
| 72 |
-
|
| 73 |
-
State-of-the-art framework for building stateful, loop-based agents.
|
| 74 |
-
|
| 75 |
-
Backend
|
| 76 |
-
|
| 77 |
-
FastAPI
|
| 78 |
-
|
| 79 |
-
Async-native performance, standard for modern ML microservices.
|
| 80 |
-
|
| 81 |
-
Vector DB
|
| 82 |
-
|
| 83 |
-
FAISS (CPU)
|
| 84 |
-
|
| 85 |
-
Lightweight, local, and efficient for document-scale retrieval.
|
| 86 |
-
|
| 87 |
-
Embeddings
|
| 88 |
-
|
| 89 |
-
HuggingFace (MiniLM)
|
| 90 |
-
|
| 91 |
-
Runs locally on CPU, ensuring data privacy and zero API costs.
|
| 92 |
-
|
| 93 |
-
Evaluation
|
| 94 |
-
|
| 95 |
-
Custom LLM-as-a-Judge
|
| 96 |
-
|
| 97 |
-
Removes dependency on bloated libraries; provides transparent scoring.
|
| 98 |
-
|
| 99 |
## Setup & Installation
|
| 100 |
|
| 101 |
- Prerequisites
|
|
@@ -108,43 +61,43 @@ Removes dependency on bloated libraries; provides transparent scoring.
|
|
| 108 |
|
| 109 |
1. Clone the Repository
|
| 110 |
|
| 111 |
-
git clone [https://github.com/Devisri-B/Agentic_RAG_Knowledge_Search.git](https://github.com/Devisri-B/Agentic_RAG_Knowledge_Search.git)
|
| 112 |
|
| 113 |
|
| 114 |
2. Configure Environment
|
| 115 |
|
| 116 |
-
Create a .env file in the root directory:
|
| 117 |
-
|
| 118 |
-
```GOOGLE_API_KEY=your_actual_api_key_here```
|
| 119 |
|
| 120 |
|
| 121 |
3. Option A: Run Locally (Python)
|
| 122 |
|
| 123 |
-
Install Dependencies:
|
| 124 |
-
|
| 125 |
-
```pip install -r requirements.txt```
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
Run the Application:
|
| 129 |
-
|
| 130 |
-
```python -m src.main```
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
The API will be available at http://localhost:8000/docs.
|
| 134 |
|
| 135 |
4. Option B: Run with Docker
|
| 136 |
|
| 137 |
-
Build the Image:
|
| 138 |
-
|
| 139 |
-
```docker build -t agentic-rag-app .```
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
Run the Container:
|
| 143 |
-
|
| 144 |
-
```docker run -p 8000:8000 --env-file .env agentic-rag-app```
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
This isolates the application and ensures it runs consistently on any machine.
|
| 148 |
|
| 149 |
## Running Evaluations
|
| 150 |
|
|
@@ -165,17 +118,17 @@ This will:
|
|
| 165 |
|
| 166 |
## API Reference
|
| 167 |
|
| 168 |
-
Endpoint: ```POST /chat```
|
| 169 |
|
| 170 |
Request:
|
| 171 |
|
| 172 |
-
```{
|
| 173 |
-
|
| 174 |
-
}```
|
| 175 |
|
| 176 |
|
| 177 |
Response:
|
| 178 |
|
| 179 |
-
```{
|
| 180 |
-
"response": "
|
| 181 |
-
}```
|
|
|
|
| 17 |
## System Architecture
|
| 18 |
|
| 19 |
The system follows a Hybrid RAG architecture. The Agent acts as the central brain, routing user queries to the appropriate tool.
|
| 20 |
+

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
|
| 22 |
## Key Features
|
| 23 |
|
|
|
|
| 49 |
A generated CSV report scoring the agent's performance against ground truth data.
|
| 50 |

|
| 51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
## Setup & Installation
|
| 53 |
|
| 54 |
- Prerequisites
|
|
|
|
| 61 |
|
| 62 |
1. Clone the Repository
|
| 63 |
|
| 64 |
+
git clone [https://github.com/Devisri-B/Agentic_RAG_Knowledge_Search.git](https://github.com/Devisri-B/Agentic_RAG_Knowledge_Search.git)
|
| 65 |
|
| 66 |
|
| 67 |
2. Configure Environment
|
| 68 |
|
| 69 |
+
Create a .env file in the root directory:
|
| 70 |
+
|
| 71 |
+
```GOOGLE_API_KEY=your_actual_api_key_here```
|
| 72 |
|
| 73 |
|
| 74 |
3. Option A: Run Locally (Python)
|
| 75 |
|
| 76 |
+
Install Dependencies:
|
| 77 |
+
|
| 78 |
+
```pip install -r requirements.txt```
|
| 79 |
+
|
| 80 |
+
|
| 81 |
+
Run the Application:
|
| 82 |
+
|
| 83 |
+
```python -m src.main```
|
| 84 |
+
|
| 85 |
+
|
| 86 |
+
The API will be available at http://localhost:8000/docs.
|
| 87 |
|
| 88 |
4. Option B: Run with Docker
|
| 89 |
|
| 90 |
+
Build the Image:
|
| 91 |
+
|
| 92 |
+
```docker build -t agentic-rag-app .```
|
| 93 |
+
|
| 94 |
+
|
| 95 |
+
Run the Container:
|
| 96 |
+
|
| 97 |
+
```docker run -p 8000:8000 --env-file .env agentic-rag-app```
|
| 98 |
+
|
| 99 |
+
|
| 100 |
+
This isolates the application and ensures it runs consistently on any machine.
|
| 101 |
|
| 102 |
## Running Evaluations
|
| 103 |
|
|
|
|
| 118 |
|
| 119 |
## API Reference
|
| 120 |
|
| 121 |
+
Endpoint: ```POST /chat``` click on Try it out button. In the Request body enter your query and click on Execute.
|
| 122 |
|
| 123 |
Request:
|
| 124 |
|
| 125 |
+
```{```
|
| 126 |
+
``` "query": "What are the termination conditions in the policy?"```
|
| 127 |
+
```}```
|
| 128 |
|
| 129 |
|
| 130 |
Response:
|
| 131 |
|
| 132 |
+
```{```
|
| 133 |
+
```"response": "The termination conditions vary depending on the type of treaty or function.\n\nFor provisional application of a multilateral treaty, termination can occur:\n* By reasonable notice from the newly independent State, party, or contracting State, followed by the expiration of the notice.\n* For treaties mentioned in Article 17, paragraph 3, by reasonable notice from the newly independent State or all parties/contracting States, followed by the expiration of the notice.\n\nFor provisional application of a bilateral treaty, termination can occur by reasonable notice of termination.\n\nThe functions of a head of delegation or other diplomatic staff can end upon notification of their termination by the sending State to the Organization or conference.\n\nA treaty can become void and terminate under Article 64 if it conflicts with a peremptory norm of general international law. In such cases, parties are released from further obligations, but rights, obligations, or legal situations created prior to termination may be maintained if they don't conflict with the new peremptory norm.\n\nRegarding the general termination of or withdrawal from a treaty:\n* It can happen in conformity with the treaty's provisions.\n* It can happen at any time by consent of all parties after consultation with other contracting States.\n\nA multilateral treaty does not terminate solely because the number of parties falls below the number necessary for its entry into force, unless the treaty specifies otherwise."```
|
| 134 |
+
```}```
|