Spaces:
Runtime error
Runtime error
Upload folder using huggingface_hub
Browse files- README.md +100 -6
- app.py +286 -0
- data/embeddings/image_embedding_500.safetensors +3 -0
- data/embeddings/image_text_embeddings_500.safetensors +3 -0
- data/embeddings/text_embeddings_500.safetensors +3 -0
- data/recipes/image_paths.txt +500 -0
- data/recipes/metadata.json +0 -0
- data/recipes/recipes_markdown.txt +0 -0
- models/__pycache__/model_loader.cpython-312.pyc +0 -0
- models/model_loader.py +47 -0
- requirements.txt +7 -0
- utils/__pycache__/search.cpython-312.pyc +0 -0
- utils/__pycache__/visualization.cpython-312.pyc +0 -0
- utils/search.py +104 -0
- utils/visualization.py +39 -0
README.md
CHANGED
|
@@ -1,12 +1,106 @@
|
|
| 1 |
---
|
| 2 |
-
title: Multimodal Recipe
|
| 3 |
-
emoji:
|
| 4 |
-
colorFrom:
|
| 5 |
-
colorTo:
|
| 6 |
sdk: gradio
|
| 7 |
-
sdk_version:
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
---
|
| 11 |
|
| 12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
title: Multimodal Recipe RAG
|
| 3 |
+
emoji: 🍳
|
| 4 |
+
colorFrom: red
|
| 5 |
+
colorTo: pink
|
| 6 |
sdk: gradio
|
| 7 |
+
sdk_version: 4.44.1
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
| 10 |
+
license: apache-2.0
|
| 11 |
+
tags:
|
| 12 |
+
- multimodal
|
| 13 |
+
- rag
|
| 14 |
+
- recipe-search
|
| 15 |
+
- nvidia-nemotron
|
| 16 |
+
- computer-vision
|
| 17 |
+
- food
|
| 18 |
---
|
| 19 |
|
| 20 |
+
# 🍳 Multimodal Recipe RAG System
|
| 21 |
+
|
| 22 |
+
Search **500 recipes** using text queries across images and documents with three powerful search modes:
|
| 23 |
+
|
| 24 |
+
- 🖼️ **Image**: Visual similarity search (find similar-looking dishes)
|
| 25 |
+
- 📝 **Text**: Semantic text search (find by ingredients, instructions, reviews)
|
| 26 |
+
- 🎨 **Image+Text**: Combined multimodal search (best of both worlds)
|
| 27 |
+
|
| 28 |
+
## 🔧 Technology
|
| 29 |
+
|
| 30 |
+
**Models:**
|
| 31 |
+
- Embedding: [nvidia/llama-nemotron-embed-vl-1b-v2](https://huggingface.co/nvidia/llama-nemotron-embed-vl-1b-v2)
|
| 32 |
+
- Reranking: [nvidia/llama-nemotron-rerank-vl-1b-v2](https://huggingface.co/nvidia/llama-nemotron-rerank-vl-1b-v2)
|
| 33 |
+
|
| 34 |
+
**Dataset:** [TurkishCodeMan/recipe-synthetic-images-10k](https://huggingface.co/datasets/TurkishCodeMan/recipe-synthetic-images-10k)
|
| 35 |
+
|
| 36 |
+
**Embeddings:**
|
| 37 |
+
- Image: 2048-dim visual embeddings
|
| 38 |
+
- Text: 2048-dim semantic embeddings
|
| 39 |
+
- Image+Text: 2048-dim multimodal embeddings
|
| 40 |
+
|
| 41 |
+
## 💡 Usage
|
| 42 |
+
|
| 43 |
+
1. Enter your search query (e.g., "chocolate cake", "healthy breakfast")
|
| 44 |
+
2. Choose search modality (Image/Text/Image+Text)
|
| 45 |
+
3. Optionally enable reranking for better results
|
| 46 |
+
4. Click Search!
|
| 47 |
+
|
| 48 |
+
## 🎯 Example Queries
|
| 49 |
+
|
| 50 |
+
**Image Mode:**
|
| 51 |
+
- "recipes with steak"
|
| 52 |
+
- "chocolate desserts"
|
| 53 |
+
- "colorful salads"
|
| 54 |
+
|
| 55 |
+
**Text Mode:**
|
| 56 |
+
- "healthy breakfast ideas"
|
| 57 |
+
- "vegetarian meals with pasta"
|
| 58 |
+
- "quick dinner under 30 minutes"
|
| 59 |
+
|
| 60 |
+
**Image+Text Mode (Recommended):**
|
| 61 |
+
- "creamy pasta dishes"
|
| 62 |
+
- "spicy chicken recipes"
|
| 63 |
+
- "fresh summer salads"
|
| 64 |
+
|
| 65 |
+
## ⚡ Performance
|
| 66 |
+
|
| 67 |
+
- Average search time: ~1-2 seconds
|
| 68 |
+
- With reranking: ~2-3 seconds
|
| 69 |
+
- GPU recommended for optimal performance
|
| 70 |
+
|
| 71 |
+
## 🏗️ Architecture
|
| 72 |
+
Query → Embedding Model → Similarity Search → [Optional Reranking] → Top Results
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
|
| 76 |
+
## 📊 Dataset
|
| 77 |
+
|
| 78 |
+
500 recipes from TurkishCodeMan/recipe-synthetic-images-10k:
|
| 79 |
+
- Recipe images (PNG)
|
| 80 |
+
- Full recipe text (markdown)
|
| 81 |
+
- Ingredients, steps, nutrition info
|
| 82 |
+
- User reviews
|
| 83 |
+
|
| 84 |
+
## 🙏 Credits
|
| 85 |
+
|
| 86 |
+
Built with:
|
| 87 |
+
- NVIDIA Nemotron models
|
| 88 |
+
- Hugging Face Transformers
|
| 89 |
+
- Gradio for UI
|
| 90 |
+
|
| 91 |
+
# Yemek temalı
|
| 92 |
+
colorFrom: red
|
| 93 |
+
colorTo: pink
|
| 94 |
+
|
| 95 |
+
# Alternatifler
|
| 96 |
+
colorFrom: yellow
|
| 97 |
+
colorTo: red
|
| 98 |
+
|
| 99 |
+
colorFrom: purple
|
| 100 |
+
colorTo: pink
|
| 101 |
+
|
| 102 |
+
colorFrom: blue
|
| 103 |
+
colorTo: indigo
|
| 104 |
+
|
| 105 |
+
colorFrom: green
|
| 106 |
+
colorTo: blue
|
app.py
ADDED
|
@@ -0,0 +1,286 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import gradio as gr
|
| 2 |
+
import torch
|
| 3 |
+
from safetensors.torch import load_file
|
| 4 |
+
from pathlib import Path
|
| 5 |
+
import json
|
| 6 |
+
from functools import lru_cache
|
| 7 |
+
|
| 8 |
+
# Import utilities
|
| 9 |
+
from models.model_loader import load_embed_model, load_rerank_model
|
| 10 |
+
from utils.search import search_embeddings, rerank_results
|
| 11 |
+
from utils.visualization import plot_results
|
| 12 |
+
|
| 13 |
+
# ============================================================================
|
| 14 |
+
# Data Loading Functions
|
| 15 |
+
# ============================================================================
|
| 16 |
+
|
| 17 |
+
@lru_cache(maxsize=1)
|
| 18 |
+
def load_metadata(metadata_path: str = "data/recipes/metadata.json") -> dict:
|
| 19 |
+
"""Load metadata.json (cached)."""
|
| 20 |
+
with open(metadata_path, "r", encoding="utf-8") as f:
|
| 21 |
+
return json.load(f)
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
def get_recipes_and_paths(metadata_path: str = "data/recipes/metadata.json"):
|
| 25 |
+
"""Load recipes, image paths, and full data."""
|
| 26 |
+
print("📋 Loading metadata...")
|
| 27 |
+
metadata = load_metadata(metadata_path)
|
| 28 |
+
recipes = metadata["recipes"]
|
| 29 |
+
|
| 30 |
+
all_recipes_markdown = [r["markdown"] for r in recipes]
|
| 31 |
+
all_image_paths = [r["image_path"] for r in recipes]
|
| 32 |
+
|
| 33 |
+
print(f"✅ Loaded {len(recipes)} recipes")
|
| 34 |
+
return all_recipes_markdown, all_image_paths, recipes
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
# ============================================================================
|
| 38 |
+
# Load Models & Data (once at startup)
|
| 39 |
+
# ============================================================================
|
| 40 |
+
|
| 41 |
+
print("🔄 Loading models...")
|
| 42 |
+
embed_model, embed_device = load_embed_model()
|
| 43 |
+
rerank_model, rerank_processor, rerank_device = load_rerank_model()
|
| 44 |
+
|
| 45 |
+
print("📦 Loading embeddings...")
|
| 46 |
+
|
| 47 |
+
# Load Image embeddings
|
| 48 |
+
print(" - Loading image embeddings...")
|
| 49 |
+
image_embeddings = load_file("data/embeddings/image_embedding_500.safetensors")["image_embeddings_500"]
|
| 50 |
+
print(f" ✅ Image embeddings shape: {image_embeddings.shape}")
|
| 51 |
+
|
| 52 |
+
# Load Text embeddings
|
| 53 |
+
print(" - Loading text embeddings...")
|
| 54 |
+
text_embeddings = load_file("data/embeddings/text_embeddings_500.safetensors")["text_embeddings_500"]
|
| 55 |
+
print(f" ✅ Text embeddings shape: {text_embeddings.shape}")
|
| 56 |
+
|
| 57 |
+
# Load Image+Text embeddings
|
| 58 |
+
print(" - Loading image+text embeddings...")
|
| 59 |
+
image_text_embeddings = load_file("data/embeddings/image_text_embeddings_500.safetensors")["image_text_embeddings"]
|
| 60 |
+
print(f" ✅ Image+Text embeddings shape: {image_text_embeddings.shape}")
|
| 61 |
+
|
| 62 |
+
print("📋 Loading recipe data...")
|
| 63 |
+
all_recipes, all_image_paths, full_recipes = get_recipes_and_paths()
|
| 64 |
+
|
| 65 |
+
print("\n✅ System ready!")
|
| 66 |
+
print(f" 📚 Recipes loaded: {len(all_recipes)}")
|
| 67 |
+
print(f" 🖼️ Images loaded: {len(all_image_paths)}")
|
| 68 |
+
print(f" 📊 Embeddings:")
|
| 69 |
+
print(f" - Image: {image_embeddings.shape}")
|
| 70 |
+
print(f" - Text: {text_embeddings.shape}")
|
| 71 |
+
print(f" - Image+Text: {image_text_embeddings.shape}")
|
| 72 |
+
|
| 73 |
+
# ============================================================================
|
| 74 |
+
# Gradio Interface
|
| 75 |
+
# ============================================================================
|
| 76 |
+
|
| 77 |
+
def search_and_display(
|
| 78 |
+
query: str,
|
| 79 |
+
modality: str,
|
| 80 |
+
use_rerank: bool,
|
| 81 |
+
num_results: int = 3
|
| 82 |
+
):
|
| 83 |
+
"""Main search function."""
|
| 84 |
+
|
| 85 |
+
if not query.strip():
|
| 86 |
+
return None, {"error": "Please enter a search query"}
|
| 87 |
+
|
| 88 |
+
# Select embeddings and documents based on modality
|
| 89 |
+
if modality == "Image":
|
| 90 |
+
embeddings = image_embeddings
|
| 91 |
+
documents = [""] * len(all_image_paths) # Empty for image-only
|
| 92 |
+
search_modality = "image"
|
| 93 |
+
elif modality == "Text":
|
| 94 |
+
embeddings = text_embeddings
|
| 95 |
+
documents = all_recipes
|
| 96 |
+
search_modality = "text"
|
| 97 |
+
else: # Image+Text
|
| 98 |
+
embeddings = image_text_embeddings
|
| 99 |
+
documents = all_recipes
|
| 100 |
+
search_modality = "image_text"
|
| 101 |
+
|
| 102 |
+
print(f"\n🔍 Searching with modality: {modality}")
|
| 103 |
+
print(f" Embeddings shape: {embeddings.shape}")
|
| 104 |
+
print(f" Query: {query[:50]}...")
|
| 105 |
+
|
| 106 |
+
# Initial search
|
| 107 |
+
results = search_embeddings(
|
| 108 |
+
query=query,
|
| 109 |
+
query_image=None,
|
| 110 |
+
model=embed_model,
|
| 111 |
+
embeddings=embeddings,
|
| 112 |
+
documents=documents,
|
| 113 |
+
image_paths=all_image_paths,
|
| 114 |
+
top_k=20,
|
| 115 |
+
modality=search_modality
|
| 116 |
+
)
|
| 117 |
+
|
| 118 |
+
print(f" ✅ Found {len(results)} results")
|
| 119 |
+
|
| 120 |
+
# Optional reranking (only for image/image_text modalities)
|
| 121 |
+
if use_rerank and modality != "Text":
|
| 122 |
+
print(f" 🎯 Reranking top {min(10, len(results))} results...")
|
| 123 |
+
results = rerank_results(
|
| 124 |
+
query=query,
|
| 125 |
+
results=results,
|
| 126 |
+
rerank_model=rerank_model,
|
| 127 |
+
rerank_processor=rerank_processor,
|
| 128 |
+
device=rerank_device,
|
| 129 |
+
top_k=min(10, len(results))
|
| 130 |
+
)
|
| 131 |
+
print(f" ✅ Reranking complete")
|
| 132 |
+
|
| 133 |
+
# Add full recipe details to results
|
| 134 |
+
for i, result in enumerate(results[:num_results]):
|
| 135 |
+
# Find matching recipe index
|
| 136 |
+
img_path = result.get("image_path")
|
| 137 |
+
if img_path:
|
| 138 |
+
try:
|
| 139 |
+
idx = all_image_paths.index(img_path)
|
| 140 |
+
result["recipe_details"] = {
|
| 141 |
+
"name": full_recipes[idx]["name"],
|
| 142 |
+
"description": full_recipes[idx]["description"][:200] + "...",
|
| 143 |
+
"tags": full_recipes[idx]["tags"][:5],
|
| 144 |
+
"ingredients_count": len(full_recipes[idx]["ingredients"]),
|
| 145 |
+
"steps_count": len(full_recipes[idx]["steps"]),
|
| 146 |
+
}
|
| 147 |
+
except (ValueError, IndexError):
|
| 148 |
+
pass
|
| 149 |
+
|
| 150 |
+
# Visualize
|
| 151 |
+
if modality != "Text":
|
| 152 |
+
output_img = plot_results(results, query, num_images=num_results)
|
| 153 |
+
return output_img, results[:num_results]
|
| 154 |
+
else:
|
| 155 |
+
# For text-only, return formatted text
|
| 156 |
+
text_output = "\n\n".join([
|
| 157 |
+
f"**Rank {r['rank']}** (Score: {r['score']:.4f})\n{r.get('text', '')[:500]}..."
|
| 158 |
+
for r in results[:num_results]
|
| 159 |
+
])
|
| 160 |
+
return None, results[:num_results]
|
| 161 |
+
|
| 162 |
+
|
| 163 |
+
# ============================================================================
|
| 164 |
+
# Gradio UI
|
| 165 |
+
# ============================================================================
|
| 166 |
+
|
| 167 |
+
with gr.Blocks(title="🍳 Multimodal Recipe Search", theme=gr.themes.Soft()) as demo:
|
| 168 |
+
gr.Markdown(
|
| 169 |
+
"""
|
| 170 |
+
# 🍳 Multimodal Recipe RAG System
|
| 171 |
+
Search **500 recipes** using text queries across images and documents.
|
| 172 |
+
|
| 173 |
+
**Three Search Modes:**
|
| 174 |
+
- 🖼️ **Image**: Visual similarity search (find similar-looking dishes)
|
| 175 |
+
- 📝 **Text**: Semantic text search (find by ingredients, instructions, reviews)
|
| 176 |
+
- 🎨 **Image+Text**: Combined multimodal search (best of both worlds)
|
| 177 |
+
|
| 178 |
+
Powered by **NVIDIA Nemotron Embed-VL** and **Rerank-VL** models.
|
| 179 |
+
"""
|
| 180 |
+
)
|
| 181 |
+
|
| 182 |
+
with gr.Row():
|
| 183 |
+
with gr.Column(scale=1):
|
| 184 |
+
query_input = gr.Textbox(
|
| 185 |
+
label="🔍 Search Query",
|
| 186 |
+
placeholder="e.g., 'chocolate cake recipe', 'healthy breakfast', 'pasta with tomatoes'",
|
| 187 |
+
lines=2
|
| 188 |
+
)
|
| 189 |
+
|
| 190 |
+
modality_radio = gr.Radio(
|
| 191 |
+
choices=["Image", "Text", "Image+Text"],
|
| 192 |
+
value="Image+Text", # ✅ Default to Image+Text
|
| 193 |
+
label="📊 Search Modality",
|
| 194 |
+
info="Choose how to search: visual, text, or combined"
|
| 195 |
+
)
|
| 196 |
+
|
| 197 |
+
rerank_check = gr.Checkbox(
|
| 198 |
+
label="🎯 Use Reranking (Cross-Encoder)",
|
| 199 |
+
value=True,
|
| 200 |
+
info="Rerank top results for better accuracy (adds ~1-2s)"
|
| 201 |
+
)
|
| 202 |
+
|
| 203 |
+
num_results_slider = gr.Slider(
|
| 204 |
+
minimum=1,
|
| 205 |
+
maximum=5,
|
| 206 |
+
value=3,
|
| 207 |
+
step=1,
|
| 208 |
+
label="📈 Number of Results to Display"
|
| 209 |
+
)
|
| 210 |
+
|
| 211 |
+
search_btn = gr.Button("🚀 Search", variant="primary", size="lg")
|
| 212 |
+
|
| 213 |
+
# Add info box
|
| 214 |
+
gr.Markdown(
|
| 215 |
+
"""
|
| 216 |
+
**💡 Tips:**
|
| 217 |
+
- Use **Image** for visual similarity (e.g., "desserts with chocolate")
|
| 218 |
+
- Use **Text** for ingredient/instruction search (e.g., "vegetarian pasta")
|
| 219 |
+
- Use **Image+Text** for best overall results
|
| 220 |
+
"""
|
| 221 |
+
)
|
| 222 |
+
|
| 223 |
+
with gr.Column(scale=2):
|
| 224 |
+
output_image = gr.Image(label="🖼️ Top Recipe Results", type="pil")
|
| 225 |
+
output_json = gr.JSON(label="📋 Detailed Results")
|
| 226 |
+
|
| 227 |
+
# Examples for each modality
|
| 228 |
+
with gr.Accordion("💡 Example Queries", open=False):
|
| 229 |
+
gr.Examples(
|
| 230 |
+
examples=[
|
| 231 |
+
# Image searches
|
| 232 |
+
["recipes with steak", "Image", True, 3],
|
| 233 |
+
["chocolate desserts", "Image", True, 3],
|
| 234 |
+
["colorful salads", "Image", False, 4],
|
| 235 |
+
|
| 236 |
+
# Text searches
|
| 237 |
+
["healthy breakfast ideas", "Text", False, 5],
|
| 238 |
+
["vegetarian meals with pasta", "Text", False, 3],
|
| 239 |
+
["quick dinner under 30 minutes", "Text", False, 4],
|
| 240 |
+
|
| 241 |
+
# Image+Text searches (best results)
|
| 242 |
+
["creamy pasta dishes", "Image+Text", True, 3],
|
| 243 |
+
["spicy chicken recipes", "Image+Text", True, 3],
|
| 244 |
+
["fresh summer salads", "Image+Text", True, 4],
|
| 245 |
+
],
|
| 246 |
+
inputs=[query_input, modality_radio, rerank_check, num_results_slider],
|
| 247 |
+
label="Try these examples"
|
| 248 |
+
)
|
| 249 |
+
|
| 250 |
+
# Footer
|
| 251 |
+
gr.Markdown(
|
| 252 |
+
"""
|
| 253 |
+
---
|
| 254 |
+
### 🔧 Technical Details
|
| 255 |
+
|
| 256 |
+
**Models:**
|
| 257 |
+
- 🔍 Embedding: [nvidia/llama-nemotron-embed-vl-1b-v2](https://huggingface.co/nvidia/llama-nemotron-embed-vl-1b-v2)
|
| 258 |
+
- 🎯 Reranking: [nvidia/llama-nemotron-rerank-vl-1b-v2](https://huggingface.co/nvidia/llama-nemotron-rerank-vl-1b-v2)
|
| 259 |
+
|
| 260 |
+
**Dataset:** [TurkishCodeMan/recipe-synthetic-images-10k](https://huggingface.co/datasets/TurkishCodeMan/recipe-synthetic-images-10k) (500 recipes)
|
| 261 |
+
|
| 262 |
+
**Embeddings:**
|
| 263 |
+
- Image: 2048-dim visual embeddings
|
| 264 |
+
- Text: 2048-dim semantic embeddings
|
| 265 |
+
- Image+Text: 2048-dim multimodal embeddings
|
| 266 |
+
"""
|
| 267 |
+
)
|
| 268 |
+
|
| 269 |
+
# Connect button
|
| 270 |
+
search_btn.click(
|
| 271 |
+
fn=search_and_display,
|
| 272 |
+
inputs=[query_input, modality_radio, rerank_check, num_results_slider],
|
| 273 |
+
outputs=[output_image, output_json]
|
| 274 |
+
)
|
| 275 |
+
|
| 276 |
+
# ============================================================================
|
| 277 |
+
# Launch
|
| 278 |
+
# ============================================================================
|
| 279 |
+
|
| 280 |
+
if __name__ == "__main__":
|
| 281 |
+
demo.launch(
|
| 282 |
+
server_name="0.0.0.0",
|
| 283 |
+
server_port=7860,
|
| 284 |
+
share=False,
|
| 285 |
+
show_error=True
|
| 286 |
+
)
|
data/embeddings/image_embedding_500.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a366abc42f85236e8f4c0b2a666287423d338faa96802588ba43bf540838ca9d
|
| 3 |
+
size 2048096
|
data/embeddings/image_text_embeddings_500.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:5e4337f252a59f49fb43d7dbff6b248555b42a552ab2e3fdf39568e06ee2572a
|
| 3 |
+
size 2048096
|
data/embeddings/text_embeddings_500.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1e7fc814f53f03e5b53227261c26d0d08c2cf0f62c2d9154a33b2438372314b9
|
| 3 |
+
size 2048096
|
data/recipes/image_paths.txt
ADDED
|
@@ -0,0 +1,500 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/298040_v000.png
|
| 2 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/355130_v000.png
|
| 3 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/434212_v000.png
|
| 4 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/373812_v000.png
|
| 5 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/167729_v000.png
|
| 6 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/371048_v000.png
|
| 7 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/134711_v000.png
|
| 8 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/354371_v000.png
|
| 9 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/189399_v000.png
|
| 10 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/376622_v000.png
|
| 11 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/367843_v000.png
|
| 12 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/40247_v000.png
|
| 13 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/310_v000.png
|
| 14 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/250967_v000.png
|
| 15 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/144236_v000.png
|
| 16 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/370885_v000.png
|
| 17 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/285159_v000.png
|
| 18 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/124235_v000.png
|
| 19 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/195854_v000.png
|
| 20 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/287548_v000.png
|
| 21 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/109481_v000.png
|
| 22 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/386901_v000.png
|
| 23 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/198884_v000.png
|
| 24 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/315848_v000.png
|
| 25 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/213437_v000.png
|
| 26 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/476124_v000.png
|
| 27 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/96988_v000.png
|
| 28 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/230509_v000.png
|
| 29 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/74392_v000.png
|
| 30 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/137144_v000.png
|
| 31 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/497916_v000.png
|
| 32 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/151886_v000.png
|
| 33 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/135238_v000.png
|
| 34 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/187484_v000.png
|
| 35 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/370066_v000.png
|
| 36 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/122219_v000.png
|
| 37 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/186166_v000.png
|
| 38 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/101141_v000.png
|
| 39 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/129459_v000.png
|
| 40 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/41609_v000.png
|
| 41 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/130943_v000.png
|
| 42 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/114434_v000.png
|
| 43 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/24799_v000.png
|
| 44 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/242531_v000.png
|
| 45 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/483325_v000.png
|
| 46 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/246601_v000.png
|
| 47 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/123718_v000.png
|
| 48 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/251755_v000.png
|
| 49 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/44079_v000.png
|
| 50 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/111535_v000.png
|
| 51 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/315678_v000.png
|
| 52 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/104832_v000.png
|
| 53 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/266037_v000.png
|
| 54 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/87689_v000.png
|
| 55 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/169480_v000.png
|
| 56 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/403591_v000.png
|
| 57 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/240036_v000.png
|
| 58 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/274072_v000.png
|
| 59 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/353740_v000.png
|
| 60 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/27559_v000.png
|
| 61 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/163827_v000.png
|
| 62 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/292117_v000.png
|
| 63 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/121471_v000.png
|
| 64 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/195594_v000.png
|
| 65 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/157688_v000.png
|
| 66 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/226245_v000.png
|
| 67 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/144725_v000.png
|
| 68 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/152371_v000.png
|
| 69 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/110113_v000.png
|
| 70 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/111774_v000.png
|
| 71 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/104297_v000.png
|
| 72 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/182647_v000.png
|
| 73 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/291262_v000.png
|
| 74 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/292385_v000.png
|
| 75 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/361604_v000.png
|
| 76 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/474258_v000.png
|
| 77 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/11595_v000.png
|
| 78 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/25168_v000.png
|
| 79 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/240605_v000.png
|
| 80 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/302972_v000.png
|
| 81 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/71031_v000.png
|
| 82 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/290745_v000.png
|
| 83 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/457033_v000.png
|
| 84 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/229984_v000.png
|
| 85 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/215542_v000.png
|
| 86 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/276976_v000.png
|
| 87 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/271749_v000.png
|
| 88 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/135223_v000.png
|
| 89 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/93063_v000.png
|
| 90 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/166972_v000.png
|
| 91 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/221780_v000.png
|
| 92 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/88812_v000.png
|
| 93 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/67905_v000.png
|
| 94 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/102423_v000.png
|
| 95 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/51184_v000.png
|
| 96 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/19402_v000.png
|
| 97 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/206583_v000.png
|
| 98 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/29290_v000.png
|
| 99 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/37911_v000.png
|
| 100 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/73859_v000.png
|
| 101 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/399828_v000.png
|
| 102 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/309756_v000.png
|
| 103 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/197782_v000.png
|
| 104 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/42547_v000.png
|
| 105 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/249323_v000.png
|
| 106 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/480335_v000.png
|
| 107 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/390251_v000.png
|
| 108 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/144256_v000.png
|
| 109 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/215251_v000.png
|
| 110 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/105466_v000.png
|
| 111 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/88089_v000.png
|
| 112 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/72552_v000.png
|
| 113 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/153126_v000.png
|
| 114 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/50395_v000.png
|
| 115 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/240216_v000.png
|
| 116 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/40325_v000.png
|
| 117 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/343222_v000.png
|
| 118 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/123966_v000.png
|
| 119 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/207389_v000.png
|
| 120 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/153600_v000.png
|
| 121 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/100637_v000.png
|
| 122 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/84249_v000.png
|
| 123 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/249168_v000.png
|
| 124 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/7029_v000.png
|
| 125 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/276013_v000.png
|
| 126 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/57607_v000.png
|
| 127 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/151176_v000.png
|
| 128 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/78834_v000.png
|
| 129 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/213028_v000.png
|
| 130 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/147458_v000.png
|
| 131 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/117333_v000.png
|
| 132 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/39985_v000.png
|
| 133 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/123855_v000.png
|
| 134 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/321948_v000.png
|
| 135 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/119495_v000.png
|
| 136 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/187009_v000.png
|
| 137 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/106056_v000.png
|
| 138 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/170794_v000.png
|
| 139 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/253736_v000.png
|
| 140 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/356106_v000.png
|
| 141 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/41463_v000.png
|
| 142 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/22575_v000.png
|
| 143 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/157841_v000.png
|
| 144 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/45980_v000.png
|
| 145 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/116741_v000.png
|
| 146 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/356769_v000.png
|
| 147 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/218098_v000.png
|
| 148 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/471040_v000.png
|
| 149 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/188331_v000.png
|
| 150 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/109238_v000.png
|
| 151 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/141730_v000.png
|
| 152 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/137224_v000.png
|
| 153 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/430334_v000.png
|
| 154 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/95365_v000.png
|
| 155 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/78031_v000.png
|
| 156 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/251020_v000.png
|
| 157 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/258829_v000.png
|
| 158 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/378218_v000.png
|
| 159 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/84886_v000.png
|
| 160 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/134312_v000.png
|
| 161 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/117483_v000.png
|
| 162 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/391283_v000.png
|
| 163 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/369495_v000.png
|
| 164 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/221832_v000.png
|
| 165 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/422807_v000.png
|
| 166 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/75366_v000.png
|
| 167 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/329370_v000.png
|
| 168 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/121051_v000.png
|
| 169 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/173268_v000.png
|
| 170 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/177558_v000.png
|
| 171 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/435046_v000.png
|
| 172 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/202941_v000.png
|
| 173 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/64472_v000.png
|
| 174 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/43480_v000.png
|
| 175 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/25198_v000.png
|
| 176 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/8882_v000.png
|
| 177 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/221028_v000.png
|
| 178 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/85258_v000.png
|
| 179 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/134496_v000.png
|
| 180 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/220858_v000.png
|
| 181 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/2878_v000.png
|
| 182 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/187366_v000.png
|
| 183 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/114797_v000.png
|
| 184 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/293366_v000.png
|
| 185 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/53234_v000.png
|
| 186 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/265351_v000.png
|
| 187 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/300705_v000.png
|
| 188 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/69090_v000.png
|
| 189 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/91829_v000.png
|
| 190 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/67023_v000.png
|
| 191 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/329227_v000.png
|
| 192 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/18584_v000.png
|
| 193 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/113013_v000.png
|
| 194 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/415970_v000.png
|
| 195 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/168780_v000.png
|
| 196 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/426948_v000.png
|
| 197 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/155629_v000.png
|
| 198 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/19155_v000.png
|
| 199 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/84486_v000.png
|
| 200 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/58617_v000.png
|
| 201 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/496213_v000.png
|
| 202 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/48822_v000.png
|
| 203 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/63706_v000.png
|
| 204 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/55274_v000.png
|
| 205 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/77231_v000.png
|
| 206 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/238625_v000.png
|
| 207 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/368427_v000.png
|
| 208 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/159923_v000.png
|
| 209 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/116202_v000.png
|
| 210 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/113296_v000.png
|
| 211 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/390256_v000.png
|
| 212 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/56978_v000.png
|
| 213 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/312671_v000.png
|
| 214 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/188116_v000.png
|
| 215 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/278890_v000.png
|
| 216 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/108020_v000.png
|
| 217 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/235113_v000.png
|
| 218 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/95236_v000.png
|
| 219 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/230255_v000.png
|
| 220 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/64991_v000.png
|
| 221 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/150946_v000.png
|
| 222 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/337211_v000.png
|
| 223 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/384977_v000.png
|
| 224 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/362622_v000.png
|
| 225 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/123980_v000.png
|
| 226 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/204489_v000.png
|
| 227 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/121461_v000.png
|
| 228 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/101403_v000.png
|
| 229 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/287921_v000.png
|
| 230 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/59353_v000.png
|
| 231 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/51722_v000.png
|
| 232 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/247780_v000.png
|
| 233 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/173076_v000.png
|
| 234 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/201776_v000.png
|
| 235 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/88562_v000.png
|
| 236 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/235534_v000.png
|
| 237 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/184891_v000.png
|
| 238 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/29407_v000.png
|
| 239 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/117194_v000.png
|
| 240 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/169648_v000.png
|
| 241 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/15420_v000.png
|
| 242 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/8817_v000.png
|
| 243 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/424532_v000.png
|
| 244 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/124413_v000.png
|
| 245 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/87395_v000.png
|
| 246 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/31311_v000.png
|
| 247 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/176443_v000.png
|
| 248 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/363253_v000.png
|
| 249 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/203028_v000.png
|
| 250 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/188761_v000.png
|
| 251 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/101009_v000.png
|
| 252 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/306594_v000.png
|
| 253 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/505768_v000.png
|
| 254 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/199638_v000.png
|
| 255 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/66436_v000.png
|
| 256 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/423809_v000.png
|
| 257 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/179070_v000.png
|
| 258 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/150202_v000.png
|
| 259 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/180569_v000.png
|
| 260 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/254206_v000.png
|
| 261 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/105452_v000.png
|
| 262 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/147780_v000.png
|
| 263 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/180850_v000.png
|
| 264 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/96877_v000.png
|
| 265 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/28622_v000.png
|
| 266 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/206176_v000.png
|
| 267 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/482874_v000.png
|
| 268 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/140057_v000.png
|
| 269 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/4765_v000.png
|
| 270 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/450939_v000.png
|
| 271 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/306773_v000.png
|
| 272 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/261888_v000.png
|
| 273 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/335240_v000.png
|
| 274 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/122801_v000.png
|
| 275 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/212733_v000.png
|
| 276 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/218390_v000.png
|
| 277 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/443988_v000.png
|
| 278 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/66038_v000.png
|
| 279 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/215902_v000.png
|
| 280 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/68118_v000.png
|
| 281 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/24747_v000.png
|
| 282 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/269311_v000.png
|
| 283 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/215952_v000.png
|
| 284 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/108123_v000.png
|
| 285 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/404343_v000.png
|
| 286 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/64854_v000.png
|
| 287 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/31062_v000.png
|
| 288 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/10397_v000.png
|
| 289 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/258364_v000.png
|
| 290 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/19341_v000.png
|
| 291 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/173837_v000.png
|
| 292 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/85522_v000.png
|
| 293 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/400815_v000.png
|
| 294 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/318050_v000.png
|
| 295 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/26459_v000.png
|
| 296 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/347784_v000.png
|
| 297 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/146220_v000.png
|
| 298 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/73596_v000.png
|
| 299 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/59043_v000.png
|
| 300 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/382457_v000.png
|
| 301 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/178528_v000.png
|
| 302 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/107235_v000.png
|
| 303 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/93643_v000.png
|
| 304 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/396736_v000.png
|
| 305 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/117447_v000.png
|
| 306 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/393035_v000.png
|
| 307 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/38145_v000.png
|
| 308 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/258564_v000.png
|
| 309 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/119111_v000.png
|
| 310 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/186291_v000.png
|
| 311 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/80130_v000.png
|
| 312 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/286178_v000.png
|
| 313 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/193601_v000.png
|
| 314 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/420392_v000.png
|
| 315 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/83261_v000.png
|
| 316 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/37377_v000.png
|
| 317 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/390451_v000.png
|
| 318 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/120817_v000.png
|
| 319 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/209061_v000.png
|
| 320 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/488901_v000.png
|
| 321 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/148083_v000.png
|
| 322 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/120220_v000.png
|
| 323 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/66032_v000.png
|
| 324 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/171576_v000.png
|
| 325 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/254048_v000.png
|
| 326 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/208686_v000.png
|
| 327 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/413493_v000.png
|
| 328 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/214525_v000.png
|
| 329 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/30358_v000.png
|
| 330 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/148600_v000.png
|
| 331 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/331853_v000.png
|
| 332 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/303245_v000.png
|
| 333 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/310386_v000.png
|
| 334 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/140779_v000.png
|
| 335 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/503292_v000.png
|
| 336 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/180804_v000.png
|
| 337 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/250026_v000.png
|
| 338 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/79278_v000.png
|
| 339 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/91711_v000.png
|
| 340 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/75412_v000.png
|
| 341 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/257211_v000.png
|
| 342 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/68688_v000.png
|
| 343 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/243665_v000.png
|
| 344 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/327999_v000.png
|
| 345 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/53842_v000.png
|
| 346 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/143884_v000.png
|
| 347 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/128838_v000.png
|
| 348 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/127080_v000.png
|
| 349 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/173390_v000.png
|
| 350 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/159270_v000.png
|
| 351 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/254593_v000.png
|
| 352 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/59761_v000.png
|
| 353 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/42247_v000.png
|
| 354 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/140660_v000.png
|
| 355 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/139975_v000.png
|
| 356 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/389443_v000.png
|
| 357 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/111588_v000.png
|
| 358 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/228819_v000.png
|
| 359 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/16399_v000.png
|
| 360 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/445018_v000.png
|
| 361 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/144056_v000.png
|
| 362 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/273998_v000.png
|
| 363 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/118880_v000.png
|
| 364 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/215141_v000.png
|
| 365 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/53039_v000.png
|
| 366 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/186161_v000.png
|
| 367 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/330185_v000.png
|
| 368 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/198616_v000.png
|
| 369 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/130078_v000.png
|
| 370 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/26987_v000.png
|
| 371 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/330504_v000.png
|
| 372 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/214564_v000.png
|
| 373 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/353331_v000.png
|
| 374 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/324254_v000.png
|
| 375 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/147818_v000.png
|
| 376 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/57875_v000.png
|
| 377 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/93187_v000.png
|
| 378 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/43454_v000.png
|
| 379 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/216016_v000.png
|
| 380 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/57664_v000.png
|
| 381 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/156657_v000.png
|
| 382 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/107170_v000.png
|
| 383 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/81431_v000.png
|
| 384 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/287112_v000.png
|
| 385 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/311319_v000.png
|
| 386 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/168150_v000.png
|
| 387 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/125849_v000.png
|
| 388 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/138082_v000.png
|
| 389 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/169050_v000.png
|
| 390 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/456326_v000.png
|
| 391 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/20545_v000.png
|
| 392 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/220229_v000.png
|
| 393 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/196058_v000.png
|
| 394 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/134481_v000.png
|
| 395 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/47651_v000.png
|
| 396 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/372406_v000.png
|
| 397 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/316257_v000.png
|
| 398 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/253362_v000.png
|
| 399 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/45756_v000.png
|
| 400 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/68491_v000.png
|
| 401 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/187433_v000.png
|
| 402 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/236082_v000.png
|
| 403 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/194908_v000.png
|
| 404 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/205760_v000.png
|
| 405 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/239838_v000.png
|
| 406 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/438574_v000.png
|
| 407 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/70847_v000.png
|
| 408 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/357226_v000.png
|
| 409 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/178648_v000.png
|
| 410 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/511941_v000.png
|
| 411 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/369334_v000.png
|
| 412 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/159839_v000.png
|
| 413 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/26714_v000.png
|
| 414 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/369772_v000.png
|
| 415 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/187790_v000.png
|
| 416 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/41039_v000.png
|
| 417 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/8823_v000.png
|
| 418 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/181188_v000.png
|
| 419 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/392344_v000.png
|
| 420 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/202744_v000.png
|
| 421 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/106986_v000.png
|
| 422 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/456282_v000.png
|
| 423 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/192509_v000.png
|
| 424 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/155496_v000.png
|
| 425 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/167834_v000.png
|
| 426 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/44272_v000.png
|
| 427 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/17649_v000.png
|
| 428 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/24420_v000.png
|
| 429 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/131054_v000.png
|
| 430 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/41979_v000.png
|
| 431 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/251687_v000.png
|
| 432 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/123977_v000.png
|
| 433 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/185327_v000.png
|
| 434 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/60192_v000.png
|
| 435 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/327904_v000.png
|
| 436 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/214733_v000.png
|
| 437 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/153046_v000.png
|
| 438 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/67046_v000.png
|
| 439 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/166609_v000.png
|
| 440 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/27617_v000.png
|
| 441 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/457044_v000.png
|
| 442 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/214576_v000.png
|
| 443 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/263209_v000.png
|
| 444 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/392730_v000.png
|
| 445 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/493087_v000.png
|
| 446 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/108409_v000.png
|
| 447 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/27871_v000.png
|
| 448 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/225023_v000.png
|
| 449 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/222751_v000.png
|
| 450 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/85686_v000.png
|
| 451 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/15982_v000.png
|
| 452 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/370567_v000.png
|
| 453 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/273212_v000.png
|
| 454 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/101155_v000.png
|
| 455 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/139704_v000.png
|
| 456 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/44459_v000.png
|
| 457 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/115415_v000.png
|
| 458 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/234292_v000.png
|
| 459 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/143644_v000.png
|
| 460 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/74086_v000.png
|
| 461 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/82122_v000.png
|
| 462 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/121423_v000.png
|
| 463 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/138409_v000.png
|
| 464 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/191239_v000.png
|
| 465 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/173201_v000.png
|
| 466 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/110452_v000.png
|
| 467 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/53182_v000.png
|
| 468 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/270387_v000.png
|
| 469 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/264011_v000.png
|
| 470 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/259708_v000.png
|
| 471 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/322906_v000.png
|
| 472 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/106942_v000.png
|
| 473 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/11458_v000.png
|
| 474 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/98859_v000.png
|
| 475 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/229351_v000.png
|
| 476 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/35252_v000.png
|
| 477 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/225178_v000.png
|
| 478 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/144778_v000.png
|
| 479 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/15895_v000.png
|
| 480 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/382325_v000.png
|
| 481 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/264179_v000.png
|
| 482 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/365705_v000.png
|
| 483 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/224909_v000.png
|
| 484 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/69868_v000.png
|
| 485 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/133480_v000.png
|
| 486 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/62515_v000.png
|
| 487 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/13940_v000.png
|
| 488 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/118677_v000.png
|
| 489 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/260781_v000.png
|
| 490 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/113203_v000.png
|
| 491 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/262230_v000.png
|
| 492 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/269611_v000.png
|
| 493 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/75660_v000.png
|
| 494 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/136330_v000.png
|
| 495 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/234849_v000.png
|
| 496 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/214514_v000.png
|
| 497 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/118906_v000.png
|
| 498 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/258497_v000.png
|
| 499 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/275256_v000.png
|
| 500 |
+
/home/huseyina/code_mode/rag/multimodal_rag/2026-01-21-17-40-recipe_to_pdf_and_image_outputs/images/38461_v000.png
|
data/recipes/metadata.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
data/recipes/recipes_markdown.txt
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
models/__pycache__/model_loader.cpython-312.pyc
ADDED
|
Binary file (2.09 kB). View file
|
|
|
models/model_loader.py
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
from transformers import AutoModel, AutoModelForSequenceClassification, AutoProcessor, AutoConfig
|
| 3 |
+
from functools import lru_cache
|
| 4 |
+
|
| 5 |
+
@lru_cache(maxsize=2)
|
| 6 |
+
def load_embed_model(model_path: str = "nvidia/llama-nemotron-embed-vl-1b-v2"):
|
| 7 |
+
"""Load embedding model (cached)."""
|
| 8 |
+
device = "cuda" if torch.cuda.is_available() else "cpu"
|
| 9 |
+
|
| 10 |
+
config = AutoConfig.from_pretrained(model_path, trust_remote_code=True)
|
| 11 |
+
config._attn_implementation = "sdpa"
|
| 12 |
+
if hasattr(config, 'llm_config'):
|
| 13 |
+
config.llm_config._attn_implementation = "sdpa"
|
| 14 |
+
|
| 15 |
+
model = AutoModel.from_pretrained(
|
| 16 |
+
model_path,
|
| 17 |
+
config=config,
|
| 18 |
+
torch_dtype=torch.bfloat16,
|
| 19 |
+
device_map="auto",
|
| 20 |
+
trust_remote_code=True,
|
| 21 |
+
).eval()
|
| 22 |
+
|
| 23 |
+
return model, device
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
@lru_cache(maxsize=2)
|
| 27 |
+
def load_rerank_model(model_path: str = "nvidia/llama-nemotron-rerank-vl-1b-v2"):
|
| 28 |
+
"""Load reranking model (cached)."""
|
| 29 |
+
device = "cuda" if torch.cuda.is_available() else "cpu"
|
| 30 |
+
|
| 31 |
+
model = AutoModelForSequenceClassification.from_pretrained(
|
| 32 |
+
model_path,
|
| 33 |
+
torch_dtype=torch.bfloat16,
|
| 34 |
+
trust_remote_code=True,
|
| 35 |
+
attn_implementation="eager",
|
| 36 |
+
device_map="auto"
|
| 37 |
+
).eval()
|
| 38 |
+
|
| 39 |
+
processor = AutoProcessor.from_pretrained(
|
| 40 |
+
model_path,
|
| 41 |
+
trust_remote_code=True,
|
| 42 |
+
max_input_tiles=6,
|
| 43 |
+
use_thumbnail=True,
|
| 44 |
+
rerank_max_length=2048
|
| 45 |
+
)
|
| 46 |
+
|
| 47 |
+
return model, processor, device
|
requirements.txt
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
gradio>=4.0.0
|
| 2 |
+
torch>=2.0.0
|
| 3 |
+
transformers>=4.35.0
|
| 4 |
+
safetensors>=0.4.0
|
| 5 |
+
Pillow>=10.0.0
|
| 6 |
+
matplotlib>=3.7.0
|
| 7 |
+
datasets>=2.14.0
|
utils/__pycache__/search.cpython-312.pyc
ADDED
|
Binary file (4.48 kB). View file
|
|
|
utils/__pycache__/visualization.cpython-312.pyc
ADDED
|
Binary file (1.95 kB). View file
|
|
|
utils/search.py
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
from typing import List, Dict, Optional
|
| 3 |
+
from PIL import Image
|
| 4 |
+
|
| 5 |
+
def l2_normalize(x: torch.Tensor, eps: float = 1e-12) -> torch.Tensor:
|
| 6 |
+
"""L2 normalization."""
|
| 7 |
+
return x / (torch.norm(x, dim=-1, p=2, keepdim=True) + eps)
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
def search_embeddings(
|
| 11 |
+
query: str,
|
| 12 |
+
query_image: Optional[Image.Image],
|
| 13 |
+
model,
|
| 14 |
+
embeddings: torch.Tensor,
|
| 15 |
+
documents: List[str],
|
| 16 |
+
image_paths: List[str],
|
| 17 |
+
top_k: int = 20,
|
| 18 |
+
modality: str = "image"
|
| 19 |
+
) -> List[Dict]:
|
| 20 |
+
"""
|
| 21 |
+
Search embeddings using query.
|
| 22 |
+
|
| 23 |
+
Returns:
|
| 24 |
+
List of dicts with 'image_path', 'text', 'rank', 'score'
|
| 25 |
+
"""
|
| 26 |
+
device = next(model.parameters()).device
|
| 27 |
+
|
| 28 |
+
# Encode query
|
| 29 |
+
with torch.inference_mode():
|
| 30 |
+
if query_image and query:
|
| 31 |
+
query_emb = model.encode_documents(images=[query_image], texts=[query])
|
| 32 |
+
elif query:
|
| 33 |
+
query_emb = model.encode_queries([query])
|
| 34 |
+
else:
|
| 35 |
+
query_emb = model.encode_documents(images=[query_image])
|
| 36 |
+
|
| 37 |
+
# Compute similarity
|
| 38 |
+
cos_sim = l2_normalize(query_emb.to(device)) @ l2_normalize(embeddings.to(device)).T
|
| 39 |
+
cos_sim_flat = cos_sim.flatten()
|
| 40 |
+
sorted_indices = torch.argsort(cos_sim_flat, descending=True)
|
| 41 |
+
|
| 42 |
+
# Format results
|
| 43 |
+
results = []
|
| 44 |
+
for rank, idx in enumerate(sorted_indices[:top_k], 1):
|
| 45 |
+
doc_idx = idx.item()
|
| 46 |
+
score = cos_sim_flat[doc_idx].item()
|
| 47 |
+
|
| 48 |
+
result = {
|
| 49 |
+
"rank": rank,
|
| 50 |
+
"score": score,
|
| 51 |
+
"image_path": image_paths[doc_idx] if modality != "text" else None,
|
| 52 |
+
"text": documents[doc_idx] if modality != "image" else None
|
| 53 |
+
}
|
| 54 |
+
results.append(result)
|
| 55 |
+
|
| 56 |
+
return results
|
| 57 |
+
|
| 58 |
+
|
| 59 |
+
def rerank_results(
|
| 60 |
+
query: str,
|
| 61 |
+
results: List[Dict],
|
| 62 |
+
rerank_model,
|
| 63 |
+
rerank_processor,
|
| 64 |
+
device: str,
|
| 65 |
+
top_k: int = 10
|
| 66 |
+
) -> List[Dict]:
|
| 67 |
+
"""
|
| 68 |
+
Rerank top results using cross-encoder.
|
| 69 |
+
|
| 70 |
+
Returns:
|
| 71 |
+
Reranked list of results
|
| 72 |
+
"""
|
| 73 |
+
from transformers.image_utils import load_image
|
| 74 |
+
|
| 75 |
+
# Prepare examples
|
| 76 |
+
examples = []
|
| 77 |
+
for result in results[:top_k]:
|
| 78 |
+
img = load_image(result["image_path"])
|
| 79 |
+
examples.append({
|
| 80 |
+
"question": query,
|
| 81 |
+
"doc_text": result.get("text", ""),
|
| 82 |
+
"doc_image": img
|
| 83 |
+
})
|
| 84 |
+
|
| 85 |
+
# Process batch
|
| 86 |
+
batch = rerank_processor.process_queries_documents_crossencoder(examples)
|
| 87 |
+
batch = {k: v.to(device) if isinstance(v, torch.Tensor) else v for k, v in batch.items()}
|
| 88 |
+
|
| 89 |
+
# Get logits
|
| 90 |
+
with torch.no_grad():
|
| 91 |
+
outputs = rerank_model(**batch, return_dict=True)
|
| 92 |
+
|
| 93 |
+
logits = outputs.logits.squeeze(-1)
|
| 94 |
+
rerank_indices = torch.argsort(logits, descending=True)
|
| 95 |
+
|
| 96 |
+
# Reorder results
|
| 97 |
+
reranked = []
|
| 98 |
+
for new_rank, idx in enumerate(rerank_indices, 1):
|
| 99 |
+
old_result = results[idx.item()]
|
| 100 |
+
old_result["rank"] = new_rank
|
| 101 |
+
old_result["score"] = logits[idx].item()
|
| 102 |
+
reranked.append(old_result)
|
| 103 |
+
|
| 104 |
+
return reranked
|
utils/visualization.py
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import matplotlib.pyplot as plt
|
| 2 |
+
from typing import List, Dict
|
| 3 |
+
import io
|
| 4 |
+
from PIL import Image
|
| 5 |
+
|
| 6 |
+
def plot_results(results: List[Dict], query: str, num_images: int = 3) -> Image.Image:
|
| 7 |
+
"""
|
| 8 |
+
Plot search results as image grid.
|
| 9 |
+
|
| 10 |
+
Returns:
|
| 11 |
+
PIL Image of the plot
|
| 12 |
+
"""
|
| 13 |
+
fig, axes = plt.subplots(1, num_images, figsize=(20, 7))
|
| 14 |
+
if num_images == 1:
|
| 15 |
+
axes = [axes]
|
| 16 |
+
|
| 17 |
+
fig.suptitle(f"🔍 Query: {query}", fontsize=18, fontweight='bold')
|
| 18 |
+
|
| 19 |
+
for i, ax in enumerate(axes):
|
| 20 |
+
if i < len(results):
|
| 21 |
+
result = results[i]
|
| 22 |
+
img = plt.imread(result["image_path"])
|
| 23 |
+
ax.imshow(img)
|
| 24 |
+
ax.set_title(
|
| 25 |
+
f"Rank {result['rank']} | Score: {result['score']:.4f}",
|
| 26 |
+
fontsize=14
|
| 27 |
+
)
|
| 28 |
+
ax.axis('off')
|
| 29 |
+
|
| 30 |
+
plt.tight_layout()
|
| 31 |
+
|
| 32 |
+
# Convert to PIL Image
|
| 33 |
+
buf = io.BytesIO()
|
| 34 |
+
plt.savefig(buf, format='png', bbox_inches='tight', dpi=100)
|
| 35 |
+
buf.seek(0)
|
| 36 |
+
img_pil = Image.open(buf)
|
| 37 |
+
plt.close()
|
| 38 |
+
|
| 39 |
+
return img_pil
|