Commit ·
f073efc
1
Parent(s): 9a7cb3e
עדכון: הסרת RAG, הוספת ארכיטקטורה מפורטת, תיקון לינקים, שינוי שם פרויקט ל-SQL-based
Browse files- 0_preprocessing/CONTRIBUTING.md +2 -2
- 0_preprocessing/DEPLOYMENT_GUIDE.md +18 -18
- 0_preprocessing/GETTING_STARTED.txt +16 -18
- 1_frontend/app.js +1 -1
- 1_frontend/index.html +1 -1
- ARCHITECTURE.md +264 -0
- FILES_OVERVIEW.md +70 -0
- README.md +18 -14
- docker-compose.yml +1 -1
0_preprocessing/CONTRIBUTING.md
CHANGED
|
@@ -16,8 +16,8 @@ Building the image:
|
|
| 16 |
1. Update `Dockerfile` if you need to pre-bake models.
|
| 17 |
2. Build and tag:
|
| 18 |
```bash
|
| 19 |
-
docker build -t youruser/feedback-
|
| 20 |
-
docker push youruser/feedback-
|
| 21 |
```
|
| 22 |
|
| 23 |
Run on Runpod:
|
|
|
|
| 16 |
1. Update `Dockerfile` if you need to pre-bake models.
|
| 17 |
2. Build and tag:
|
| 18 |
```bash
|
| 19 |
+
docker build -t youruser/feedback-analysis:v1 .
|
| 20 |
+
docker push youruser/feedback-analysis:v1
|
| 21 |
```
|
| 22 |
|
| 23 |
Run on Runpod:
|
0_preprocessing/DEPLOYMENT_GUIDE.md
CHANGED
|
@@ -13,7 +13,7 @@ Before deploying to Runpod, ensure:
|
|
| 13 |
- [ ] Endpoints tested: Use TESTING_CHECKLIST.md or curl commands
|
| 14 |
- [ ] Git repository clean: `git status` shows no uncommitted changes
|
| 15 |
- [ ] All code committed: `git log --oneline | head -5` shows your commits
|
| 16 |
-
- [ ] Docker image builds: `docker build -t feedback-
|
| 17 |
- [ ] Requirements.txt updated: All dependencies listed
|
| 18 |
|
| 19 |
---
|
|
@@ -26,23 +26,23 @@ Before deploying to Runpod, ensure:
|
|
| 26 |
cd /Users/galbd/Desktop/personal/software/ai_agent_gov/Feedback_Analysis_RAG_Agent_runpod
|
| 27 |
|
| 28 |
# Build the image
|
| 29 |
-
docker build -t feedback-
|
| 30 |
|
| 31 |
# Verify it built
|
| 32 |
-
docker images | grep feedback-
|
| 33 |
```
|
| 34 |
|
| 35 |
**Expected output:**
|
| 36 |
```
|
| 37 |
-
REPOSITORY
|
| 38 |
-
feedback-
|
| 39 |
```
|
| 40 |
|
| 41 |
### 1.2 Test Docker Image Locally (Optional)
|
| 42 |
|
| 43 |
```bash
|
| 44 |
# Run container
|
| 45 |
-
docker run -p 8001:8000 feedback-
|
| 46 |
|
| 47 |
# In another terminal, test
|
| 48 |
curl -X POST http://localhost:8001/health
|
|
@@ -70,13 +70,13 @@ docker login
|
|
| 70 |
**2A.3 Tag and Push Image**
|
| 71 |
```bash
|
| 72 |
# Tag with your Docker Hub username
|
| 73 |
-
docker tag feedback-
|
| 74 |
|
| 75 |
# Push to Docker Hub
|
| 76 |
-
docker push galbendavids/feedback-
|
| 77 |
|
| 78 |
# Verify it's uploaded
|
| 79 |
-
# Visit https://hub.docker.com/r/YOUR_USERNAME/feedback-
|
| 80 |
```
|
| 81 |
|
| 82 |
### Option B: Private Registry (Advanced)
|
|
@@ -100,8 +100,8 @@ docker push galbendavids/feedback-rag:latest
|
|
| 100 |
|
| 101 |
1. Click **"Create New"** → **"API Endpoint Template"**
|
| 102 |
2. Fill in:
|
| 103 |
-
- **Template Name:** `feedback-
|
| 104 |
-
- **Docker Image:** `galbendavids/feedback-
|
| 105 |
- **Ports:** `8000`
|
| 106 |
- **GPU:** None (CPU-only is fine)
|
| 107 |
- **Memory:** 4GB minimum
|
|
@@ -263,13 +263,13 @@ Monitor:
|
|
| 263 |
|
| 264 |
2. **Rebuild Docker image**
|
| 265 |
```bash
|
| 266 |
-
docker build -t feedback-
|
| 267 |
-
docker tag feedback-
|
| 268 |
-
docker push galbendavids/feedback-
|
| 269 |
```
|
| 270 |
|
| 271 |
3. **Update Runpod template**
|
| 272 |
-
- Edit template image: `galbendavids/feedback-
|
| 273 |
- Save
|
| 274 |
- Restart pod with new image
|
| 275 |
|
|
@@ -380,8 +380,8 @@ If deployment has issues:
|
|
| 380 |
|
| 381 |
1. **Keep previous image tagged**
|
| 382 |
```bash
|
| 383 |
-
docker tag galbendavids/feedback-
|
| 384 |
-
docker push galbendavids/feedback-
|
| 385 |
```
|
| 386 |
|
| 387 |
2. **If new deployment fails, revert**
|
|
@@ -451,7 +451,7 @@ After successful deployment:
|
|
| 451 |
|
| 452 |
## ✅ Congratulations!
|
| 453 |
|
| 454 |
-
Your
|
| 455 |
|
| 456 |
**Summary:**
|
| 457 |
- ✅ Local validation complete
|
|
|
|
| 13 |
- [ ] Endpoints tested: Use TESTING_CHECKLIST.md or curl commands
|
| 14 |
- [ ] Git repository clean: `git status` shows no uncommitted changes
|
| 15 |
- [ ] All code committed: `git log --oneline | head -5` shows your commits
|
| 16 |
+
- [ ] Docker image builds: `docker build -t feedback-analysis:latest .` succeeds
|
| 17 |
- [ ] Requirements.txt updated: All dependencies listed
|
| 18 |
|
| 19 |
---
|
|
|
|
| 26 |
cd /Users/galbd/Desktop/personal/software/ai_agent_gov/Feedback_Analysis_RAG_Agent_runpod
|
| 27 |
|
| 28 |
# Build the image
|
| 29 |
+
docker build -t feedback-analysis:latest .
|
| 30 |
|
| 31 |
# Verify it built
|
| 32 |
+
docker images | grep feedback-analysis
|
| 33 |
```
|
| 34 |
|
| 35 |
**Expected output:**
|
| 36 |
```
|
| 37 |
+
REPOSITORY TAG IMAGE ID CREATED SIZE
|
| 38 |
+
feedback-analysis latest abc123def456 2 minutes ago 2.5GB
|
| 39 |
```
|
| 40 |
|
| 41 |
### 1.2 Test Docker Image Locally (Optional)
|
| 42 |
|
| 43 |
```bash
|
| 44 |
# Run container
|
| 45 |
+
docker run -p 8001:8000 feedback-analysis:latest
|
| 46 |
|
| 47 |
# In another terminal, test
|
| 48 |
curl -X POST http://localhost:8001/health
|
|
|
|
| 70 |
**2A.3 Tag and Push Image**
|
| 71 |
```bash
|
| 72 |
# Tag with your Docker Hub username
|
| 73 |
+
docker tag feedback-analysis:latest galbendavids/feedback-analysis:latest
|
| 74 |
|
| 75 |
# Push to Docker Hub
|
| 76 |
+
docker push galbendavids/feedback-analysis:latest
|
| 77 |
|
| 78 |
# Verify it's uploaded
|
| 79 |
+
# Visit https://hub.docker.com/r/YOUR_USERNAME/feedback-analysis
|
| 80 |
```
|
| 81 |
|
| 82 |
### Option B: Private Registry (Advanced)
|
|
|
|
| 100 |
|
| 101 |
1. Click **"Create New"** → **"API Endpoint Template"**
|
| 102 |
2. Fill in:
|
| 103 |
+
- **Template Name:** `feedback-analysis-sql`
|
| 104 |
+
- **Docker Image:** `galbendavids/feedback-analysis:latest`
|
| 105 |
- **Ports:** `8000`
|
| 106 |
- **GPU:** None (CPU-only is fine)
|
| 107 |
- **Memory:** 4GB minimum
|
|
|
|
| 263 |
|
| 264 |
2. **Rebuild Docker image**
|
| 265 |
```bash
|
| 266 |
+
docker build -t feedback-analysis:v2 .
|
| 267 |
+
docker tag feedback-analysis:v2 galbendavids/feedback-analysis:v2
|
| 268 |
+
docker push galbendavids/feedback-analysis:v2
|
| 269 |
```
|
| 270 |
|
| 271 |
3. **Update Runpod template**
|
| 272 |
+
- Edit template image: `galbendavids/feedback-analysis:v2`
|
| 273 |
- Save
|
| 274 |
- Restart pod with new image
|
| 275 |
|
|
|
|
| 380 |
|
| 381 |
1. **Keep previous image tagged**
|
| 382 |
```bash
|
| 383 |
+
docker tag galbendavids/feedback-analysis:v1 galbendavids/feedback-analysis:latest-stable
|
| 384 |
+
docker push galbendavids/feedback-analysis:latest-stable
|
| 385 |
```
|
| 386 |
|
| 387 |
2. **If new deployment fails, revert**
|
|
|
|
| 451 |
|
| 452 |
## ✅ Congratulations!
|
| 453 |
|
| 454 |
+
Your SQL-based feedback analysis agent is now live in the cloud! 🎉
|
| 455 |
|
| 456 |
**Summary:**
|
| 457 |
- ✅ Local validation complete
|
0_preprocessing/GETTING_STARTED.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
╔════════════════════════════════════════════════════════════════════════════╗
|
| 2 |
║ ║
|
| 3 |
-
║ 🚀 FEEDBACK ANALYSIS
|
| 4 |
║ ║
|
| 5 |
║ Status: ✅ PRODUCTION READY - All validation checks passing ║
|
| 6 |
║ Date: November 12, 2025 ║
|
|
@@ -11,18 +11,16 @@
|
|
| 11 |
📋 WHAT YOU HAVE
|
| 12 |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
| 13 |
|
| 14 |
-
✅ Complete
|
| 15 |
-
• Answers diverse questions
|
| 16 |
-
•
|
| 17 |
• Multi-language support (Hebrew + English)
|
| 18 |
-
•
|
| 19 |
|
| 20 |
-
✅ Production API Server (
|
| 21 |
• /health - Server status
|
| 22 |
-
• /query - Main
|
| 23 |
-
• /
|
| 24 |
-
• /sentiment - Sentiment analysis
|
| 25 |
-
• /ingest - Index rebuilding
|
| 26 |
|
| 27 |
✅ Comprehensive Documentation
|
| 28 |
• README_TESTING_GUIDE.md - Start here! (master guide)
|
|
@@ -81,7 +79,7 @@ That's it! Now:
|
|
| 81 |
└─ Build: Docker image
|
| 82 |
└─ Deploy: To Runpod
|
| 83 |
|
| 84 |
-
📊 ANALYST (Want to use the
|
| 85 |
└─ Read: QUICK_START.md
|
| 86 |
└─ Test: Using Swagger UI or curl
|
| 87 |
└─ Query: Ask in Hebrew or English
|
|
@@ -146,11 +144,11 @@ Status: ✅ ALL 7 CHECKS PASSED
|
|
| 146 |
|
| 147 |
[✅] Dependencies - 26/26 packages installed
|
| 148 |
[✅] CSV file - 9930 rows verified
|
| 149 |
-
[✅]
|
| 150 |
[✅] App imports - No errors
|
| 151 |
-
[✅] Analysis logic -
|
| 152 |
-
[✅]
|
| 153 |
-
[✅] API endpoints - All
|
| 154 |
|
| 155 |
Ready: YES ✅
|
| 156 |
Status: PRODUCTION READY
|
|
@@ -169,8 +167,8 @@ Option 1: Local Development (Now)
|
|
| 169 |
|
| 170 |
Option 2: Docker (Advanced)
|
| 171 |
───────────────────────────
|
| 172 |
-
✅ Build: docker build -t feedback-
|
| 173 |
-
✅ Run: docker run -p 8000:8000 feedback-
|
| 174 |
✅ Access: http://localhost:8000/docs
|
| 175 |
✅ Time: 2-5 minutes setup
|
| 176 |
|
|
@@ -190,7 +188,7 @@ Intent Detection
|
|
| 190 |
✅ Counts thank-yous automatically
|
| 191 |
✅ Counts complaints automatically
|
| 192 |
✅ Keyword search working
|
| 193 |
-
✅ Free-form
|
| 194 |
|
| 195 |
Multi-Language
|
| 196 |
✅ Hebrew queries answered in Hebrew
|
|
|
|
| 1 |
╔════════════════════════════════════════════════════════════════════════════╗
|
| 2 |
║ ║
|
| 3 |
+
║ 🚀 FEEDBACK ANALYSIS SQL AGENT - GETTING STARTED ║
|
| 4 |
║ ║
|
| 5 |
║ Status: ✅ PRODUCTION READY - All validation checks passing ║
|
| 6 |
║ Date: November 12, 2025 ║
|
|
|
|
| 11 |
📋 WHAT YOU HAVE
|
| 12 |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
| 13 |
|
| 14 |
+
✅ Complete SQL-Based Pipeline
|
| 15 |
+
• Answers diverse questions using SQL queries generated by LLM
|
| 16 |
+
• Automatic SQL query generation from natural language
|
| 17 |
• Multi-language support (Hebrew + English)
|
| 18 |
+
• Feedback records analyzed using SQL queries
|
| 19 |
|
| 20 |
+
✅ Production API Server (3 Endpoints)
|
| 21 |
• /health - Server status
|
| 22 |
+
• /query-sql - Main SQL-based query endpoint
|
| 23 |
+
• /history - Query history management
|
|
|
|
|
|
|
| 24 |
|
| 25 |
✅ Comprehensive Documentation
|
| 26 |
• README_TESTING_GUIDE.md - Start here! (master guide)
|
|
|
|
| 79 |
└─ Build: Docker image
|
| 80 |
└─ Deploy: To Runpod
|
| 81 |
|
| 82 |
+
📊 ANALYST (Want to use the SQL-based agent?)
|
| 83 |
└─ Read: QUICK_START.md
|
| 84 |
└─ Test: Using Swagger UI or curl
|
| 85 |
└─ Query: Ask in Hebrew or English
|
|
|
|
| 144 |
|
| 145 |
[✅] Dependencies - 26/26 packages installed
|
| 146 |
[✅] CSV file - 9930 rows verified
|
| 147 |
+
[✅] SQL Service - Ready
|
| 148 |
[✅] App imports - No errors
|
| 149 |
+
[✅] Analysis logic - SQL queries working
|
| 150 |
+
[✅] SQLService - Query endpoint working
|
| 151 |
+
[✅] API endpoints - All 3 endpoints responding
|
| 152 |
|
| 153 |
Ready: YES ✅
|
| 154 |
Status: PRODUCTION READY
|
|
|
|
| 167 |
|
| 168 |
Option 2: Docker (Advanced)
|
| 169 |
───────────────────────────
|
| 170 |
+
✅ Build: docker build -t feedback-analysis:latest .
|
| 171 |
+
✅ Run: docker run -p 8000:8000 feedback-analysis:latest
|
| 172 |
✅ Access: http://localhost:8000/docs
|
| 173 |
✅ Time: 2-5 minutes setup
|
| 174 |
|
|
|
|
| 188 |
✅ Counts thank-yous automatically
|
| 189 |
✅ Counts complaints automatically
|
| 190 |
✅ Keyword search working
|
| 191 |
+
✅ Free-form SQL-based queries working
|
| 192 |
|
| 193 |
Multi-Language
|
| 194 |
✅ Hebrew queries answered in Hebrew
|
1_frontend/app.js
CHANGED
|
@@ -752,7 +752,7 @@ function formatResponse(text) {
|
|
| 752 |
return formatted;
|
| 753 |
}
|
| 754 |
|
| 755 |
-
// formatSources function removed - no longer needed (
|
| 756 |
|
| 757 |
async function clearHistory() {
|
| 758 |
try {
|
|
|
|
| 752 |
return formatted;
|
| 753 |
}
|
| 754 |
|
| 755 |
+
// formatSources function removed - no longer needed (SQL-based approach)
|
| 756 |
|
| 757 |
async function clearHistory() {
|
| 758 |
try {
|
1_frontend/index.html
CHANGED
|
@@ -331,7 +331,7 @@
|
|
| 331 |
<div style="display: flex; gap: 16px; align-items: center;">
|
| 332 |
<div class="small" style="background: rgba(255,255,255,0.25); padding: 6px 12px; border-radius: 6px; font-weight: 600;">שרת: <span id="server-status" style="font-weight: 700; text-shadow: 0 1px 2px rgba(0,0,0,0.3);">...בדיקה</span></div>
|
| 333 |
<a href="https://github.com/galbendavids/Feedback_Analysis_RAG_Agent_runpod" target="_blank" style="color: white; text-decoration: none; font-size: 14px; padding: 6px 12px; background: rgba(255,255,255,0.2); border-radius: 6px; transition: all 0.2s;">🔗 GitHub</a>
|
| 334 |
-
<a href="https://github.com/galbendavids/Feedback_Analysis_RAG_Agent_runpod/blob/main/Gal%20Shlomo%20Ben%20David%20Ohayone_e-1.pdf" target="_blank" style="color: white; text-decoration: none; font-size: 14px; padding: 6px 12px; background: rgba(255,255,255,0.2); border-radius: 6px; transition: all 0.2s;">📄 קורות חיים</a>
|
| 335 |
</div>
|
| 336 |
</header>
|
| 337 |
|
|
|
|
| 331 |
<div style="display: flex; gap: 16px; align-items: center;">
|
| 332 |
<div class="small" style="background: rgba(255,255,255,0.25); padding: 6px 12px; border-radius: 6px; font-weight: 600;">שרת: <span id="server-status" style="font-weight: 700; text-shadow: 0 1px 2px rgba(0,0,0,0.3);">...בדיקה</span></div>
|
| 333 |
<a href="https://github.com/galbendavids/Feedback_Analysis_RAG_Agent_runpod" target="_blank" style="color: white; text-decoration: none; font-size: 14px; padding: 6px 12px; background: rgba(255,255,255,0.2); border-radius: 6px; transition: all 0.2s;">🔗 GitHub</a>
|
| 334 |
+
<a href="https://github.com/galbendavids/Feedback_Analysis_RAG_Agent_runpod/blob/main/0_preprocessing/Gal%20Shlomo%20Ben%20David%20Ohayone_e-1.pdf" target="_blank" style="color: white; text-decoration: none; font-size: 14px; padding: 6px 12px; background: rgba(255,255,255,0.2); border-radius: 6px; transition: all 0.2s;">📄 קורות חיים</a>
|
| 335 |
</div>
|
| 336 |
</header>
|
| 337 |
|
ARCHITECTURE.md
ADDED
|
@@ -0,0 +1,264 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# ארכיטקטורת המערכת - Feedback Analysis SQL-Based Agent
|
| 2 |
+
|
| 3 |
+
## סקירה כללית
|
| 4 |
+
|
| 5 |
+
המערכת היא מערכת ניתוח משובי משתמשים מבוססת SQL ו-LLM. המערכת מקבלת שאלות בשפה טבעית, יוצרת שאילתות SQL, מבצעת אותן על הנתונים, ומחזירה תשובות מפורטות.
|
| 6 |
+
|
| 7 |
+
## זרימת הנתונים - מהפרונט לאחור
|
| 8 |
+
|
| 9 |
+
### 1. Frontend (1_frontend/)
|
| 10 |
+
|
| 11 |
+
#### `index.html`
|
| 12 |
+
**תפקיד**: ממשק המשתמש הראשי
|
| 13 |
+
**סיבה לקיום**: מספק ממשק ווב אינטראקטיבי למשתמש
|
| 14 |
+
**תפקידים**:
|
| 15 |
+
- הצגת שדה קלט לשאלות
|
| 16 |
+
- הצגת תשובות, שאילתות SQL, תוצאות, וגרפים
|
| 17 |
+
- ניהול היסטוריית שאלות
|
| 18 |
+
- אנימציית loading
|
| 19 |
+
|
| 20 |
+
#### `app.js`
|
| 21 |
+
**תפקיד**: לוגיקת Frontend
|
| 22 |
+
**סיבה לקיום**: מטפל באינטראקציות המשתמש ותקשורת עם ה-Backend
|
| 23 |
+
**תפקידים**:
|
| 24 |
+
- שליחת שאלות ל-`/query-sql` endpoint
|
| 25 |
+
- הצגת תשובות וגרפים
|
| 26 |
+
- ניהול היסטוריה (טעינה ושחזור)
|
| 27 |
+
- עיבוד ויזואליזציות עם Chart.js
|
| 28 |
+
|
| 29 |
+
**זרימת נתונים**:
|
| 30 |
+
```
|
| 31 |
+
משתמש מזין שאלה → sendQuery() → POST /query-sql → קבלת תשובה → הצגה
|
| 32 |
+
```
|
| 33 |
+
|
| 34 |
+
### 2. Backend API (2_backend_llm/app/api.py)
|
| 35 |
+
|
| 36 |
+
#### `api.py`
|
| 37 |
+
**תפקיד**: FastAPI endpoints - נקודת הכניסה של ה-Backend
|
| 38 |
+
**סיבה לקיום**: מספק API RESTful לתקשורת בין Frontend ל-Backend
|
| 39 |
+
**תפקידים**:
|
| 40 |
+
- `GET /` - מחזיר את `index.html`
|
| 41 |
+
- `POST /query-sql` - מקבל שאלה, מחזיר תשובה מפורטת
|
| 42 |
+
- `GET /history` - מחזיר היסטוריית שאלות
|
| 43 |
+
- `POST /health` - בדיקת תקינות השרת
|
| 44 |
+
|
| 45 |
+
**זרימת נתונים**:
|
| 46 |
+
```
|
| 47 |
+
Frontend → POST /query-sql {query: "..."}
|
| 48 |
+
→ api.py:query_sql()
|
| 49 |
+
→ SQLFeedbackService.analyze_query()
|
| 50 |
+
→ SQLQueryResponse {summary, sql_queries, query_results, visualizations}
|
| 51 |
+
→ Frontend
|
| 52 |
+
```
|
| 53 |
+
|
| 54 |
+
**מודלים/פונקציות קרואות**:
|
| 55 |
+
- `SQLFeedbackService` - השירות הראשי לניתוח
|
| 56 |
+
- `save_history()` - שמירת היסטוריה לדיסק
|
| 57 |
+
- `load_history()` - טעינת היסטוריה מהדיסק
|
| 58 |
+
|
| 59 |
+
### 3. SQL Service (2_backend_llm/app/sql_service.py)
|
| 60 |
+
|
| 61 |
+
#### `sql_service.py`
|
| 62 |
+
**תפקיד**: הליבה של המערכת - ניתוח SQL מבוסס LLM
|
| 63 |
+
**סיבה לקיום**: מטפל בכל הלוגיקה של יצירת שאילתות SQL, ביצוען, וסינתזת תשובות
|
| 64 |
+
**תפקידים**:
|
| 65 |
+
- `analyze_query()` - הפונקציה הראשית - מנהלת את כל התהליך
|
| 66 |
+
- `_get_schema_info()` - יוצר מידע מפורט על כל השדות בטבלה
|
| 67 |
+
- `_generate_sql_queries()` - משתמש ב-LLM ליצירת שאילתות SQL
|
| 68 |
+
- `_execute_sql_queries()` - מבצע שאילתות SQL על הנתונים
|
| 69 |
+
- `_synthesize_answer()` - משתמש ב-LLM ליצירת תשובה מפורטת
|
| 70 |
+
- `_evaluate_answer_quality()` - מעריך את איכות התשובה
|
| 71 |
+
- `_generate_visualizations()` - יוצר מפרטי ויזואליזציות
|
| 72 |
+
|
| 73 |
+
**זרימת נתונים**:
|
| 74 |
+
```
|
| 75 |
+
analyze_query(query)
|
| 76 |
+
↓
|
| 77 |
+
1. _generate_sql_queries(query)
|
| 78 |
+
→ LLM (Gemini/OpenAI) מקבל: schema_info + query
|
| 79 |
+
→ מחזיר: ["SELECT ...", "SELECT ..."]
|
| 80 |
+
↓
|
| 81 |
+
2. _execute_sql_queries(sql_queries)
|
| 82 |
+
→ טוען DataFrame ל-SQLite in-memory
|
| 83 |
+
→ מבצע כל שאילתה
|
| 84 |
+
→ מחזיר: [SQLQueryResult, ...]
|
| 85 |
+
↓
|
| 86 |
+
3. _synthesize_answer(query, sql_queries, query_results)
|
| 87 |
+
→ LLM (Gemini/OpenAI) מקבל: query + sql_queries + results
|
| 88 |
+
→ מחזיר: תשובה מפורטת בעברית
|
| 89 |
+
→ (אופציונלי) _evaluate_answer_quality() + שיפור אם נדרש
|
| 90 |
+
↓
|
| 91 |
+
4. _generate_visualizations(query_results)
|
| 92 |
+
→ מנתח את התוצאות
|
| 93 |
+
→ מחזיר: [visualization_spec, ...]
|
| 94 |
+
↓
|
| 95 |
+
AnalysisResult {user_query, sql_queries, query_results, summary, visualizations}
|
| 96 |
+
```
|
| 97 |
+
|
| 98 |
+
**מודלים/פונקציות קרואות**:
|
| 99 |
+
- `LLM (Gemini/OpenAI)` - ליצירת שאילתות SQL וסינתזת תשובות
|
| 100 |
+
- `pandas.DataFrame` - לניהול הנתונים
|
| 101 |
+
- `sqlite3` - לביצוע שאילתות SQL
|
| 102 |
+
|
| 103 |
+
### 4. Data Loader (2_backend_llm/app/data_loader.py)
|
| 104 |
+
|
| 105 |
+
#### `data_loader.py`
|
| 106 |
+
**תפקיד**: טעינת נתונים מ-CSV
|
| 107 |
+
**סיבה לקיום**: מטפל בטעינת וניקוי הנתונים מהקובץ
|
| 108 |
+
**תפקידים**:
|
| 109 |
+
- `load_feedback()` - טוען CSV, בודק שדות נדרשים, מנקה נתונים
|
| 110 |
+
|
| 111 |
+
**זרימת נתונים**:
|
| 112 |
+
```
|
| 113 |
+
load_feedback()
|
| 114 |
+
→ קורא CSV מ-settings.csv_path
|
| 115 |
+
→ בודק שדות: ID, ServiceName, Level, Text
|
| 116 |
+
→ מסיר שורות עם Text ריק
|
| 117 |
+
→ מחזיר: pd.DataFrame
|
| 118 |
+
```
|
| 119 |
+
|
| 120 |
+
### 5. Config (2_backend_llm/app/config.py)
|
| 121 |
+
|
| 122 |
+
#### `config.py`
|
| 123 |
+
**תפקיד**: הגדרות מערכת
|
| 124 |
+
**סיבה לקיום**: מרכז את כל ההגדרות (API keys, נתיבי קבצים)
|
| 125 |
+
**תפקידים**:
|
| 126 |
+
- טעינת API keys מ-.env
|
| 127 |
+
- הגדרת נתיב CSV ברירת מחדל
|
| 128 |
+
- הגדרת שמות עמודות
|
| 129 |
+
|
| 130 |
+
## זרימה מלאה - דוגמה
|
| 131 |
+
|
| 132 |
+
### שאילתת משתמש: "מה הדירוג הממוצע לפי שירות?"
|
| 133 |
+
|
| 134 |
+
1. **Frontend** (`app.js`):
|
| 135 |
+
```javascript
|
| 136 |
+
sendQuery() → POST /query-sql {query: "מה הדירוג הממוצע לפי שירות?"}
|
| 137 |
+
```
|
| 138 |
+
|
| 139 |
+
2. **Backend API** (`api.py`):
|
| 140 |
+
```python
|
| 141 |
+
@app.post("/query-sql")
|
| 142 |
+
def query_sql(request: QueryRequest):
|
| 143 |
+
result = sql_svc.analyze_query(request.query)
|
| 144 |
+
save_history(result) # שמירה להיסטוריה
|
| 145 |
+
return SQLQueryResponse(...)
|
| 146 |
+
```
|
| 147 |
+
|
| 148 |
+
3. **SQL Service** (`sql_service.py`):
|
| 149 |
+
```python
|
| 150 |
+
analyze_query("מה הדירוג הממוצע לפי שירות?")
|
| 151 |
+
```
|
| 152 |
+
|
| 153 |
+
4. **שלב 1 - יצירת SQL**:
|
| 154 |
+
```python
|
| 155 |
+
_generate_sql_queries(query)
|
| 156 |
+
→ LLM מקבל: schema_info + query
|
| 157 |
+
→ LLM מחזיר: ["SELECT ServiceName, AVG(Level) as avg_rating FROM Feedback_transformed GROUP BY ServiceName"]
|
| 158 |
+
```
|
| 159 |
+
|
| 160 |
+
5. **שלב 2 - ביצוע SQL**:
|
| 161 |
+
```python
|
| 162 |
+
_execute_sql_queries(["SELECT ServiceName, AVG(Level)..."])
|
| 163 |
+
→ טוען DataFrame ל-SQLite
|
| 164 |
+
→ מבצע שאילתה
|
| 165 |
+
→ מחזיר: DataFrame עם ServiceName ו-avg_rating
|
| 166 |
+
```
|
| 167 |
+
|
| 168 |
+
6. **שלב 3 - סינתזת תשובה**:
|
| 169 |
+
```python
|
| 170 |
+
_synthesize_answer(query, sql_queries, query_results)
|
| 171 |
+
→ LLM מקבל: query + SQL + results
|
| 172 |
+
→ LLM מחזיר: "הדירוג הממוצע לפי שירות: שירות X - 4.2, שירות Y - 3.8..."
|
| 173 |
+
→ (אופציונלי) _evaluate_answer_quality() + שיפור
|
| 174 |
+
```
|
| 175 |
+
|
| 176 |
+
7. **שלב 4 - יצירת ויזואליזציות**:
|
| 177 |
+
```python
|
| 178 |
+
_generate_visualizations(query_results)
|
| 179 |
+
→ מחזיר: [{type: "bar", x: "ServiceName", y: "avg_rating", ...}]
|
| 180 |
+
```
|
| 181 |
+
|
| 182 |
+
8. **חזרה ל-Frontend**:
|
| 183 |
+
```javascript
|
| 184 |
+
קבלת תשובה → הצגת summary → הצגת גרף → עדכון היסטוריה
|
| 185 |
+
```
|
| 186 |
+
|
| 187 |
+
## מבנה הנתונים
|
| 188 |
+
|
| 189 |
+
### AnalysisResult
|
| 190 |
+
```python
|
| 191 |
+
{
|
| 192 |
+
user_query: str,
|
| 193 |
+
sql_queries: List[str],
|
| 194 |
+
query_results: List[SQLQueryResult],
|
| 195 |
+
summary: str,
|
| 196 |
+
visualizations: Optional[List[Dict]]
|
| 197 |
+
}
|
| 198 |
+
```
|
| 199 |
+
|
| 200 |
+
### SQLQueryResult
|
| 201 |
+
```python
|
| 202 |
+
{
|
| 203 |
+
query: str,
|
| 204 |
+
result: pd.DataFrame,
|
| 205 |
+
error: Optional[str]
|
| 206 |
+
}
|
| 207 |
+
```
|
| 208 |
+
|
| 209 |
+
## LLM Models בשימוש
|
| 210 |
+
|
| 211 |
+
1. **יצירת SQL** (`_generate_sql_queries`):
|
| 212 |
+
- Model: Gemini 2.0 Flash / GPT-4o-mini
|
| 213 |
+
- Input: schema_info + user_query
|
| 214 |
+
- Output: JSON עם רשימת שאילתות SQL
|
| 215 |
+
|
| 216 |
+
2. **סינתזת תשובה** (`_synthesize_answer`):
|
| 217 |
+
- Model: Gemini 2.0 Flash / GPT-4o-mini
|
| 218 |
+
- Input: user_query + sql_queries + query_results
|
| 219 |
+
- Output: תשובה מפורטת בעברית
|
| 220 |
+
|
| 221 |
+
3. **הערכת איכות** (`_evaluate_answer_quality`):
|
| 222 |
+
- Model: Gemini 2.0 Flash / GPT-4o-mini
|
| 223 |
+
- Input: user_query + answer + context
|
| 224 |
+
- Output: score (0-100) + reasoning
|
| 225 |
+
|
| 226 |
+
## Database Schema
|
| 227 |
+
|
| 228 |
+
טבלה: `Feedback_transformed` (SQLite in-memory)
|
| 229 |
+
|
| 230 |
+
שדות:
|
| 231 |
+
- ID (UUID)
|
| 232 |
+
- ServiceName (TEXT)
|
| 233 |
+
- Level (INTEGER 1-5)
|
| 234 |
+
- Text (TEXT)
|
| 235 |
+
- ReferenceNumber (INTEGER, nullable)
|
| 236 |
+
- RequestID (UUID, nullable)
|
| 237 |
+
- ProcessID (UUID, nullable)
|
| 238 |
+
- Year (INTEGER)
|
| 239 |
+
- Month (INTEGER 1-12)
|
| 240 |
+
- DayInMonth (INTEGER 1-31)
|
| 241 |
+
- DayOfWeek (TEXT: Monday-Sunday)
|
| 242 |
+
- Hour (INTEGER 0-23)
|
| 243 |
+
- DayOrNight (TEXT: 'יום'/'לילה')
|
| 244 |
+
|
| 245 |
+
## תלויות בין מודולים
|
| 246 |
+
|
| 247 |
+
```
|
| 248 |
+
Frontend (app.js)
|
| 249 |
+
↓ HTTP POST
|
| 250 |
+
API (api.py)
|
| 251 |
+
↓
|
| 252 |
+
SQL Service (sql_service.py)
|
| 253 |
+
↓
|
| 254 |
+
├─→ Data Loader (data_loader.py) - טעינת נתונים
|
| 255 |
+
├─→ Config (config.py) - הגדרות
|
| 256 |
+
└─→ LLM (Gemini/OpenAI) - יצירת SQL וסינתזת תשובות
|
| 257 |
+
```
|
| 258 |
+
|
| 259 |
+
## נקודות כניסה
|
| 260 |
+
|
| 261 |
+
1. **Frontend**: `1_frontend/index.html` - נקודת הכניסה למשתמש
|
| 262 |
+
2. **Backend**: `2_backend_llm/run.py` - מפעיל את FastAPI server
|
| 263 |
+
3. **API**: `2_backend_llm/app/api.py` - מגדיר את ה-endpoints
|
| 264 |
+
|
FILES_OVERVIEW.md
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# סקירת קבצים - הסבר על כל קובץ והסיבה לקיומו
|
| 2 |
+
|
| 3 |
+
## 0_preprocessing/ - עיבוד מקדים וקבצים משלימים
|
| 4 |
+
|
| 5 |
+
### קבצי נתונים
|
| 6 |
+
- **feedback_transformed_2.csv**: הקובץ הראשי עם כל המשובים המעובדים. מכיל את כל השדות הנדרשים (ID, ServiceName, Level, Text, Year, Month, DayInMonth, DayOfWeek, Hour, DayOrNight). **סיבה**: זהו מקור הנתונים הראשי של המערכת.
|
| 7 |
+
- **Feedback_given.csv**: קובץ נתונים מקורי (אופציונלי). **סיבה**: גיבוי/גרסה מקורית של הנתונים.
|
| 8 |
+
- **feedback_transformed.csv**: גרסה ישנה של הנתונים (אופציונלי). **סיבה**: גיבוי/גרסה קודמת.
|
| 9 |
+
|
| 10 |
+
### קבצי תכנון ותיעוד
|
| 11 |
+
- **ARCHITECTURE.md**: מסמך ארכיטקטורה מפורט. **סיבה**: תיעוד טכני של המערכת.
|
| 12 |
+
- **CONTRIBUTING.md**: הנחיות לתרומה לפרויקט. **סיבה**: תיעוד עבור מפתחים.
|
| 13 |
+
- **DEPLOYMENT_GUIDE.md**: מדריך פריסה. **סיבה**: הוראות לפריסת המערכת.
|
| 14 |
+
- **HUGGINGFACE_DEPLOYMENT.md**: מדריך פריסה ל-HuggingFace. **סיבה**: הוראות ספציפיות לפריסה ב-HuggingFace.
|
| 15 |
+
- **MIGRATION_TO_MAIN.md**: מדריך מיגרציה. **סיבה**: תיעוד תהליכי מיגרציה.
|
| 16 |
+
- **GETTING_STARTED.txt**: מדריך התחלה מהיר. **סיבה**: הוראות התחלה מהירות.
|
| 17 |
+
- **system_architecture.pdf**: תרשים ארכיטקטורה. **סיבה**: ויזואליזציה של הארכיטקטורה.
|
| 18 |
+
- **Gal Shlomo Ben David Ohayone_e-1.pdf**: קורות חיים. **סיבה**: קורות חיים של המפתח (מופיעים בלינק ב-frontend).
|
| 19 |
+
|
| 20 |
+
### סקריפטים
|
| 21 |
+
- **scripts/smoke_check.py**: בדיקת תקינות בסיסית. **סיבה**: בדיקות אוטומטיות.
|
| 22 |
+
- **scripts/__init__.py**: מאפשר import של scripts. **סיבה**: Python package structure.
|
| 23 |
+
|
| 24 |
+
### בדיקות
|
| 25 |
+
- **tests/test_analysis.py**: בדיקות יחידה. **סיבה**: בדיקות אוטומטיות של הפונקציונליות.
|
| 26 |
+
|
| 27 |
+
### אחר
|
| 28 |
+
- **VERSION**: מספר גרסה. **סיבה**: מעקב אחר גרסאות.
|
| 29 |
+
|
| 30 |
+
## 1_frontend/ - האפליקציה והחלק הפרונטי
|
| 31 |
+
|
| 32 |
+
### קבצי Frontend
|
| 33 |
+
- **index.html**: ממשק המשתמש הראשי. **סיבה**: מספק ממשק ווב אינטראקטיבי למשתמש. כולל שדה קלט, הצגת תשובות, היסטוריה, ואנימציות.
|
| 34 |
+
- **app.js**: לוגיקת Frontend. **סיבה**: מטפל בכל האינטראקציות - שליחת שאלות ל-Backend, הצגת תשובות, ניהול היסטוריה, ויצירת גרפים.
|
| 35 |
+
|
| 36 |
+
## 2_backend_llm/ - הלוגיקה והארכיטקטורה ה-LLM
|
| 37 |
+
|
| 38 |
+
### נקודת כניסה
|
| 39 |
+
- **run.py**: נקודת הכניסה להרצת השרת. **סיבה**: מפעיל את FastAPI server עם uvicorn. זה הקובץ שצריך להריץ כדי להתחיל את השרת.
|
| 40 |
+
- **app.py**: wrapper פשוט. **סיבה**: wrapper נוסף להרצת האפליקציה (אופציונלי).
|
| 41 |
+
|
| 42 |
+
### מודולי Backend (app/)
|
| 43 |
+
- **app/__init__.py**: מאפשר import של app כחבילה. **סיבה**: Python package structure.
|
| 44 |
+
- **app/api.py**: FastAPI endpoints. **סיבה**: מגדיר את כל ה-API endpoints - `/query-sql`, `/history`, `/health`. זה נקודת הכניסה של ה-Backend.
|
| 45 |
+
- **app/sql_service.py**: הליבה של המערכת. **סיבה**: מכיל את כל הלוגיקה - יצירת שאילתות SQL עם LLM, ביצוען, וסינתזת תשובות. זה הקובץ החשוב ביותר.
|
| 46 |
+
- **app/config.py**: הגדרות מערכת. **סיבה**: מרכז את כל ההגדרות - API keys, נתיבי קבצים, שמות עמודות.
|
| 47 |
+
- **app/data_loader.py**: טעינת נתונים מ-CSV. **סיבה**: מטפל בטעינת וניקוי הנתונים מהקובץ CSV.
|
| 48 |
+
|
| 49 |
+
## קבצים ברמה העליונה
|
| 50 |
+
|
| 51 |
+
### קבצי הגדרה
|
| 52 |
+
- **requirements.txt**: תלויות Python. **סיבה**: מגדיר את כל החבילות הנדרשות לפרויקט.
|
| 53 |
+
- **.env**: API keys (לא ב-git). **סיבה**: מכיל מפתחות API (Gemini/OpenAI) - לא נשמר ב-git מסיבות אבטחה.
|
| 54 |
+
- **docker-compose.yml**: הגדרות Docker Compose. **סיבה**: מאפשר הרצה של המערכת ב-Docker.
|
| 55 |
+
- **docker-compose.override.yml**: הגדרות Docker Compose מותאמות אישית. **סיבה**: override להגדרות Docker Compose.
|
| 56 |
+
- **Dockerfile**: הגדרת Docker image. **סיבה**: מגדיר איך לבנות Docker image של המערכת.
|
| 57 |
+
|
| 58 |
+
### תיעוד
|
| 59 |
+
- **README.md**: תיעוד ראשי של הפרויקט. **סיבה**: מספק סקירה כללית, הוראות התקנה, ושימוש.
|
| 60 |
+
- **ARCHITECTURE.md**: ארכיטקטורה מפורטת מהפרונט לאחור. **סיבה**: מספק הסבר מפורט על הארכיטקטורה, זרימ�� הנתונים, איזה מודל קורא לאיזה מודל, ואיך נבנית התשובה.
|
| 61 |
+
- **FILES_OVERVIEW.md**: סקירת כל הקבצים והסיבה לקיומם. **סיבה**: מספק סקירה של כל הקבצים בפרויקט והסיבה לקיומם.
|
| 62 |
+
|
| 63 |
+
### לוגים
|
| 64 |
+
- **server.log**: לוגי שרת (אם קיים). **סיבה**: רישום פעולות השרת (אופציונלי, לא נשמר ב-git).
|
| 65 |
+
|
| 66 |
+
## קבצים שנמחקו/לא רלוונטיים
|
| 67 |
+
|
| 68 |
+
- **scripts/fix_creation_date.py**: נמחק - השדה CreationDate לא קיים יותר
|
| 69 |
+
- **app/static/**: הועבר ל-1_frontend/ - ארגון מחדש של הספריה
|
| 70 |
+
|
README.md
CHANGED
|
@@ -83,20 +83,24 @@ python run.py
|
|
| 83 |
|
| 84 |
```
|
| 85 |
.
|
| 86 |
-
├──
|
| 87 |
-
│ ├──
|
| 88 |
-
│ ├──
|
| 89 |
-
│ ├──
|
| 90 |
-
│
|
| 91 |
-
|
| 92 |
-
│
|
| 93 |
-
│
|
| 94 |
-
├──
|
| 95 |
-
├──
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 96 |
├── .env # API keys (לא ב-git)
|
| 97 |
-
|
| 98 |
-
├── run.py # נקודת כניסה
|
| 99 |
-
└── ARCHITECTURE.md # מסמך ארכיטקטורה מפורט
|
| 100 |
```
|
| 101 |
|
| 102 |
## שימוש
|
|
@@ -195,7 +199,7 @@ schema_info = f"""
|
|
| 195 |
## קישורים
|
| 196 |
|
| 197 |
- **GitHub**: [https://github.com/galbendavids/Feedback_Analysis_RAG_Agent_runpod](https://github.com/galbendavids/Feedback_Analysis_RAG_Agent_runpod)
|
| 198 |
-
- **קורות חיים**: [https://github.com/galbendavids/Feedback_Analysis_RAG_Agent_runpod/blob/main/Gal%20Shlomo%20Ben%20David%20Ohayone_e-1.pdf](https://github.com/galbendavids/Feedback_Analysis_RAG_Agent_runpod/blob/main/Gal%20Shlomo%20Ben%20David%20Ohayone_e-1.pdf)
|
| 199 |
|
| 200 |
## רישיון
|
| 201 |
|
|
|
|
| 83 |
|
| 84 |
```
|
| 85 |
.
|
| 86 |
+
├── 0_preprocessing/ # עיבוד מקדים וקבצים משלימים
|
| 87 |
+
│ ├── scripts/ # סקריפטים לעיבוד נתונים
|
| 88 |
+
│ ├── tests/ # בדיקות
|
| 89 |
+
│ ├── feedback_transformed_2.csv # נתוני המשובים המעובדים (לא ב-git)
|
| 90 |
+
│ └── *.md, *.pdf # מסמכי תכנון ותיעוד
|
| 91 |
+
├── 1_frontend/ # האפליקציה והחלק הפרונטי
|
| 92 |
+
│ ├── index.html # ממשק משתמש
|
| 93 |
+
│ └── app.js # לוגיקת frontend
|
| 94 |
+
├── 2_backend_llm/ # הלוגיקה והארכיטקטורה ה-LLM
|
| 95 |
+
│ ├── app/
|
| 96 |
+
│ │ ├── api.py # FastAPI endpoints
|
| 97 |
+
│ │ ├── sql_service.py # לוגיקת SQL ו-LLM
|
| 98 |
+
│ │ ├── config.py # הגדרות
|
| 99 |
+
│ │ └── data_loader.py # טעינת נתונים מ-CSV
|
| 100 |
+
│ ├── run.py # נקודת כניסה
|
| 101 |
+
│ └── app.py # wrapper
|
| 102 |
├── .env # API keys (לא ב-git)
|
| 103 |
+
└── requirements.txt # תלויות Python
|
|
|
|
|
|
|
| 104 |
```
|
| 105 |
|
| 106 |
## שימוש
|
|
|
|
| 199 |
## קישורים
|
| 200 |
|
| 201 |
- **GitHub**: [https://github.com/galbendavids/Feedback_Analysis_RAG_Agent_runpod](https://github.com/galbendavids/Feedback_Analysis_RAG_Agent_runpod)
|
| 202 |
+
- **קורות חיים**: [https://github.com/galbendavids/Feedback_Analysis_RAG_Agent_runpod/blob/main/0_preprocessing/Gal%20Shlomo%20Ben%20David%20Ohayone_e-1.pdf](https://github.com/galbendavids/Feedback_Analysis_RAG_Agent_runpod/blob/main/0_preprocessing/Gal%20Shlomo%20Ben%20David%20Ohayone_e-1.pdf)
|
| 203 |
|
| 204 |
## רישיון
|
| 205 |
|
docker-compose.yml
CHANGED
|
@@ -5,7 +5,7 @@ services:
|
|
| 5 |
build:
|
| 6 |
context: .
|
| 7 |
dockerfile: Dockerfile
|
| 8 |
-
image: feedback-
|
| 9 |
restart: unless-stopped
|
| 10 |
env_file:
|
| 11 |
- .env
|
|
|
|
| 5 |
build:
|
| 6 |
context: .
|
| 7 |
dockerfile: Dockerfile
|
| 8 |
+
image: feedback-analysis:latest
|
| 9 |
restart: unless-stopped
|
| 10 |
env_file:
|
| 11 |
- .env
|