Skip to content

Instantly share code, notes, and snippets.

View gusdelact's full-sized avatar

Gustavo de la Cruz Tovar gusdelact

View GitHub Profile
// --------------------------------------------------
// Definición de un nodo de la lista enlazada
// --------------------------------------------------
#[derive(Debug)]
struct Nodo {
dato: u32,
siguiente: Option<Box<Nodo>>, // Enlace al siguiente nodo (o None si es el final)
}
// --------------------------------------------------

🚀 Convocatoria RustMX: Construyamos Juntos Machine Learning & AI con Rust

¡Hola rustaceans! El momento de demostrar que Rust es rápido, seguro y listo para la Inteligencia Artificial ha llegado.
Te invitamos a sumar tu talento para armar charlas, talleres y código abierto que muestren cómo Rust se conecta con el mundo de los datos y la IA de forma moderna y eficiente.

Aquí una lista de temas :


Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

Una arquitectura de agentes múltiples (multi-agent architecture) que usa RAG con grafos (Knowledge Graphs) para recuperar conocimiento se construye para que varios agentes colaboren, se especialicen y consulten un grafo semántico como fuente de memoria estructurada.


🧠 ¿Qué queremos lograr?

Un sistema donde:

  • Cada agente tiene un rol (planner, ejecutor, razonador…)

La arquitectura de un agente que utiliza RAG Graph (Retrieval-Augmented Generation + Knowledge Graph) se construye para combinar entendimiento semántico estructurado (ontología + grafo) con la generación de lenguaje natural usando LLMs. Aquí tienes una explicación detallada:


🧠 Objetivo general

Crear un agente capaz de leer documentos, construir una ontología estructurada en forma de grafo de conocimiento, y luego usarlo como fuente de recuperación semántica para responder preguntas o ejecutar tareas.


🧩 Componentes de la arquitectura

Transformar un documento de texto en un grafo de conocimiento en Neo4j implica extraer entidades y relaciones del texto, y luego estructurarlas como nodos y aristas. Aquí te dejo los pasos:


🧠 ¿Qué es lo que quieres lograr?

Pasar de esto:

“Ada Lovelace nació en Londres en 1815. Fue hija de Lord Byron.”

Implementar una ontología en Neo4j consiste en modelar los conceptos (clases), relaciones, instancias y propiedades de tu dominio en forma de grafo, aprovechando el lenguaje Cypher para construir y consultar ese conocimiento.


🧠 ¿Qué es una ontología en este contexto?

Es una forma de representar conocimiento semántico en forma de grafo, donde:

  • Clases → son nodos tipo :Clase (ej. :Persona, :Ciudad)
  • Instancias → son nodos que representan ejemplos concretos (ej. (:Persona {nombre: "Ada"}))

Neo4j es una base de datos de grafos orientada a representar y consultar datos que están altamente conectados. Es una de las herramientas más populares del mundo para trabajar con grafos nativos, ideal para modelar relaciones complejas de forma natural, rápida y escalable.

🧠 ¿Qué es una base de datos de grafos? Es una base donde los datos se almacenan como nodos (entidades) y relaciones (conexiones entre ellos), en lugar de tablas como en una base relacional.

🌐 ¿Qué hace único a Neo4j? 💡 Modelo de grafo nativo: los nodos y relaciones son parte de la estructura interna, no un emulado sobre tablas.

⚡ Consultas muy rápidas para redes densamente conectadas (donde SQL sería muy ineficiente).

🧠 ¿Qué es RAG con un grafo de conocimiento? Es un proceso en el que:

Se interpreta la pregunta

Se consulta el grafo para obtener entidades, relaciones o subgrafos relevantes

Se convierte esa información en texto (contexto)

Se alimenta al LLM para generar una respuesta mejor informada

Una base de datos de conocimiento basada en grafos es un tipo de base que almacena hechos, entidades, relaciones y reglas en forma de grafo semántico, permitiendo a las máquinas entender, razonar y consultar información como si fuera un mapa del conocimiento.


🧠 ¿Qué es una base de conocimiento?

Es una colección estructurada de conocimiento explícito, con información como:

  • Conceptos (ej. Persona, Ciudad, Enfermedad)
  • Relación entre ellos (ej. “viveEn”, “esCausaDe”, “trabajaPara”)