chore: update ChefGPT modal with current implementation details
- Replace Google Sheets with Supabase PostgreSQL for inventory management - Add RAG (Retrieval-Augmented Generation) with recipe corpus - Document hallucination prevention strategy in project description - Update tech stack: add RAG and replace Google Sheets API with Supabase - Enhance funcionalidades list to highlight RAG-based approach - Update project outcome to reflect reliability and accuracy improvements
This commit is contained in:
+76
-60
@@ -192,6 +192,7 @@
|
|||||||
Explorar Proyectos
|
Explorar Proyectos
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
|
disabled
|
||||||
class="glass px-8 py-4 rounded-xl font-bold text-lg hover:bg-white/60 dark:hover:bg-white/10 transition-colors text-slate-800 dark:text-slate-200"
|
class="glass px-8 py-4 rounded-xl font-bold text-lg hover:bg-white/60 dark:hover:bg-white/10 transition-colors text-slate-800 dark:text-slate-200"
|
||||||
>
|
>
|
||||||
Descargar CV
|
Descargar CV
|
||||||
@@ -229,8 +230,8 @@
|
|||||||
Ingeniera de telecomunicaciones y desarrolladora especializada
|
Ingeniera de telecomunicaciones y desarrolladora especializada
|
||||||
en automatización de procesos, integración de APIs y creación de
|
en automatización de procesos, integración de APIs y creación de
|
||||||
agentes basados en inteligencia artificial. Construyo sistemas
|
agentes basados en inteligencia artificial. Construyo sistemas
|
||||||
que conectan herramientas, procesan información (texto, audio,
|
que conectan herramientas, procesan información y crean flujos
|
||||||
vídeo) y crean flujos automatizados que reducen trabajo manual.
|
automatizados que reducen trabajo manual.
|
||||||
</p>
|
</p>
|
||||||
<div class="grid md:grid-cols-2 gap-4 mt-12">
|
<div class="grid md:grid-cols-2 gap-4 mt-12">
|
||||||
<div class="p-6 glass rounded-2xl">
|
<div class="p-6 glass rounded-2xl">
|
||||||
@@ -406,7 +407,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Project 3: Content Processing Automation -->
|
<!-- Project 3: Content Processing Automation -->
|
||||||
<div
|
<!-- <div
|
||||||
class="group relative flex flex-col glass rounded-3xl overflow-hidden hover:translate-y-[-8px] transition-all duration-500"
|
class="group relative flex flex-col glass rounded-3xl overflow-hidden hover:translate-y-[-8px] transition-all duration-500"
|
||||||
>
|
>
|
||||||
<div class="aspect-video relative overflow-hidden">
|
<div class="aspect-video relative overflow-hidden">
|
||||||
@@ -453,7 +454,7 @@
|
|||||||
Ver detalles
|
Ver detalles
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
@@ -632,10 +633,10 @@
|
|||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Project Modals -->
|
<!-- Project Modals -->
|
||||||
<!-- Modal 1: AI Knowledge Pipeline -->
|
<!-- Modal 1: AI Knowledge Pipeline -->
|
||||||
@@ -687,7 +688,9 @@
|
|||||||
<h3 class="text-xl font-bold text-slate-900 dark:text-white mb-3">
|
<h3 class="text-xl font-bold text-slate-900 dark:text-white mb-3">
|
||||||
Funcionalidades
|
Funcionalidades
|
||||||
</h3>
|
</h3>
|
||||||
<ul class="list-disc list-inside space-y-2 text-slate-700 dark:text-slate-300">
|
<ul
|
||||||
|
class="list-disc list-inside space-y-2 text-slate-700 dark:text-slate-300"
|
||||||
|
>
|
||||||
<li>Ingestión de múltiples tipos de contenido</li>
|
<li>Ingestión de múltiples tipos de contenido</li>
|
||||||
<li>Transcripción automática con IA</li>
|
<li>Transcripción automática con IA</li>
|
||||||
<li>Resumen inteligente y extracción de keywords</li>
|
<li>Resumen inteligente y extracción de keywords</li>
|
||||||
@@ -780,9 +783,10 @@
|
|||||||
</h3>
|
</h3>
|
||||||
<p class="text-slate-700 dark:text-slate-300 leading-relaxed">
|
<p class="text-slate-700 dark:text-slate-300 leading-relaxed">
|
||||||
Agente conversacional inteligente en Telegram que actúa como
|
Agente conversacional inteligente en Telegram que actúa como
|
||||||
asistente culinario personal. Consulta tu inventario en Google
|
asistente culinario personal. Consulta tu inventario en Supabase,
|
||||||
Sheets, entiende tus preferencias dietéticas y sugiere recetas
|
accede a un RAG especializado con recetas para evitar
|
||||||
personalizadas basadas en lo que tienes disponible.
|
alucinaciones, y sugiere platos personalizados basados en lo que
|
||||||
|
tienes disponible.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -790,10 +794,14 @@
|
|||||||
<h3 class="text-xl font-bold text-slate-900 dark:text-white mb-3">
|
<h3 class="text-xl font-bold text-slate-900 dark:text-white mb-3">
|
||||||
Funcionalidades
|
Funcionalidades
|
||||||
</h3>
|
</h3>
|
||||||
<ul class="list-disc list-inside space-y-2 text-slate-700 dark:text-slate-300">
|
<ul
|
||||||
<li>Integración bidireccional con Google Sheets</li>
|
class="list-disc list-inside space-y-2 text-slate-700 dark:text-slate-300"
|
||||||
<li>Consulta automática de inventario</li>
|
>
|
||||||
<li>Generación de recetas personalizadas con IA</li>
|
<li>Integración bidireccional con Supabase</li>
|
||||||
|
<li>Consulta automática de inventario en base de datos</li>
|
||||||
|
<li>RAG (Retrieval-Augmented Generation) con recetas verificadas</li>
|
||||||
|
<li>Prevención de alucinaciones mediante fine-tuning de prompts</li>
|
||||||
|
<li>Generación de recetas personalizadas sin alucinar</li>
|
||||||
<li>Actualización automática del inventario</li>
|
<li>Actualización automática del inventario</li>
|
||||||
<li>Conversación natural y contextual</li>
|
<li>Conversación natural y contextual</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -810,16 +818,20 @@
|
|||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
class="px-4 py-2 bg-primary/10 rounded-full text-sm font-bold text-primary"
|
class="px-4 py-2 bg-primary/10 rounded-full text-sm font-bold text-primary"
|
||||||
>Google Sheets API</span
|
>Supabase (PostgreSQL)</span
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
class="px-4 py-2 bg-primary/10 rounded-full text-sm font-bold text-primary"
|
class="px-4 py-2 bg-primary/10 rounded-full text-sm font-bold text-primary"
|
||||||
>n8n</span
|
>RAG (Retrieval)</span
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
class="px-4 py-2 bg-primary/10 rounded-full text-sm font-bold text-primary"
|
class="px-4 py-2 bg-primary/10 rounded-full text-sm font-bold text-primary"
|
||||||
>OpenAI GPT</span
|
>OpenAI GPT</span
|
||||||
>
|
>
|
||||||
|
<span
|
||||||
|
class="px-4 py-2 bg-primary/10 rounded-full text-sm font-bold text-primary"
|
||||||
|
>n8n</span
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -828,9 +840,11 @@
|
|||||||
Resultado
|
Resultado
|
||||||
</h3>
|
</h3>
|
||||||
<p class="text-slate-700 dark:text-slate-300">
|
<p class="text-slate-700 dark:text-slate-300">
|
||||||
Asistente culinario que elimina la decisión de "qué cocinar",
|
Asistente culinario robusto que elimina la decisión de "qué
|
||||||
aprendiendo preferencias y generando sugerencias en tiempo real
|
cocinar" sin generar recetas inexistentes. El RAG garantiza que
|
||||||
basadas en disponibilidad real del inventario.
|
todas las sugerencias provienen de un corpus de recetas
|
||||||
|
verificadas, proporcionando fiabilidad y personalización sin
|
||||||
|
alucinaciones de la IA.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -893,7 +907,9 @@
|
|||||||
<h3 class="text-xl font-bold text-slate-900 dark:text-white mb-3">
|
<h3 class="text-xl font-bold text-slate-900 dark:text-white mb-3">
|
||||||
Funcionalidades
|
Funcionalidades
|
||||||
</h3>
|
</h3>
|
||||||
<ul class="list-disc list-inside space-y-2 text-slate-700 dark:text-slate-300">
|
<ul
|
||||||
|
class="list-disc list-inside space-y-2 text-slate-700 dark:text-slate-300"
|
||||||
|
>
|
||||||
<li>Procesamiento de múltiples formatos multimedia</li>
|
<li>Procesamiento de múltiples formatos multimedia</li>
|
||||||
<li>Transcripción y análisis automático</li>
|
<li>Transcripción y análisis automático</li>
|
||||||
<li>Generación de títulos, descripciones y hashtags con IA</li>
|
<li>Generación de títulos, descripciones y hashtags con IA</li>
|
||||||
@@ -931,9 +947,9 @@
|
|||||||
Resultado
|
Resultado
|
||||||
</h3>
|
</h3>
|
||||||
<p class="text-slate-700 dark:text-slate-300">
|
<p class="text-slate-700 dark:text-slate-300">
|
||||||
Automatización completa de la cadena de producción de
|
Automatización completa de la cadena de producción de contenido,
|
||||||
contenido, reduciendo tiempo manual en un 90% y garantizando
|
reduciendo tiempo manual en un 90% y garantizando consistencia
|
||||||
consistencia en la calidad y el formato de publicaciones.
|
en la calidad y el formato de publicaciones.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -980,45 +996,45 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function scrollToContact() {
|
function scrollToContact() {
|
||||||
const contactSection = document.getElementById("contact");
|
const contactSection = document.getElementById("contact");
|
||||||
if (contactSection) {
|
if (contactSection) {
|
||||||
contactSection.scrollIntoView({ behavior: "smooth" });
|
contactSection.scrollIntoView({ behavior: "smooth" });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Modal functions
|
// Modal functions
|
||||||
function openModal(projectId) {
|
function openModal(projectId) {
|
||||||
const modal = document.getElementById(projectId + "-modal");
|
const modal = document.getElementById(projectId + "-modal");
|
||||||
if (modal) {
|
if (modal) {
|
||||||
modal.classList.remove("hidden");
|
modal.classList.remove("hidden");
|
||||||
document.body.style.overflow = "hidden";
|
document.body.style.overflow = "hidden";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function closeModal(projectId) {
|
function closeModal(projectId) {
|
||||||
const modal = document.getElementById(projectId + "-modal");
|
const modal = document.getElementById(projectId + "-modal");
|
||||||
if (modal) {
|
if (modal) {
|
||||||
modal.classList.add("hidden");
|
modal.classList.add("hidden");
|
||||||
document.body.style.overflow = "auto";
|
document.body.style.overflow = "auto";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Close modal with ESC key
|
// Close modal with ESC key
|
||||||
document.addEventListener("keydown", function (event) {
|
document.addEventListener("keydown", function (event) {
|
||||||
if (event.key === "Escape") {
|
if (event.key === "Escape") {
|
||||||
const modals = document.querySelectorAll(
|
const modals = document.querySelectorAll(
|
||||||
'[id$="-modal"]:not(.hidden)'
|
'[id$="-modal"]:not(.hidden)',
|
||||||
);
|
);
|
||||||
modals.forEach((modal) => {
|
modals.forEach((modal) => {
|
||||||
const projectId = modal.id.replace("-modal", "");
|
const projectId = modal.id.replace("-modal", "");
|
||||||
closeModal(projectId);
|
closeModal(projectId);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Initialize theme on page load
|
// Initialize theme on page load
|
||||||
document.addEventListener("DOMContentLoaded", initTheme);
|
document.addEventListener("DOMContentLoaded", initTheme);
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user