Volver al portafolio
Proyectos & Demos Interactivos

KenJes ·

Todo lo que he construido en Axoloit y más allá. Habla con Raymundo y ve las demos interactivas en acción.

0
Repositorios
0
Contribuciones
0
Proyectos activos

Habla con Raymundo

Versión web del agente de IA de Axoloit. Pregúntale sobre los proyectos, tecnologías o Kenneth.

R
Raymundo
En línea · listo
llama-3.3-70b · Groq
— / — hoy

Raymundo · Axoloit

¡Hola! Soy Raymundo, el agente de IA de Axoloit. Puedo contarte sobre todos los proyectos de Kenneth: TraceTrash, RayGPT, PythonProjects, y más. También sé sobre su trayectoria en la UAEMéx, SAP ABAP y Axoloit como startup.

Escribe tu pregunta para comenzar 👇

Sugerencias:

Ve el código en acción

Visualizaciones reales de cada proyecto

TraceTrash · Simulación GPS

3 camiones de recolección en ruta simulada — Tejupilco de Hidalgo, Estado de México

En vivo
Camión 1 · Ruta Norte
Camión 2 · Ruta Centro
Camión 3 · Ruta Sur

Algoritmo Genético · Visualización

Evolución de una población resolviendo el problema del viajante (TSP)

0
Generación
Mejor distancia
0%
Mejora acumulada

AG Interactivo · Construye tu TSP

Haz clic en el canvas para colocar ciudades, ajusta parámetros y evoluciona

0
Generación
Mejor distancia
0
Ciudades

Añade 5+ ciudades · El AG usa cruce OX + mutación swap · Selección por torneo

Arquitectura RayGPT · Multi-Agente

Flujo de datos entre componentes del sistema Raymundo

Usuario WhatsApp / Desktop Orchestrator puerto 8000 core/ · Flask AI Clients Groq · GPT-4o · Ollama Llama 3.3 70B · Qwen 2.5 Research Agent puerto 8001 · BeautifulSoup Google Agent puerto 8003 · Docs/Sheets/Cal Propuesta Agent puerto 8002 · Municipios Memoria & DB SQLite · Historial Knowledge Base Vocabulario por usuario WhatsApp Bot Flask + whatsapp-web.js

Arquitectura modular de RayGPT · Ver repo completo

Snippets de código

Fragmentos reales de PythonProjects

algoritmos_geneticos/tsp_ga.py
# Algoritmo Genético — Problema del Viajante (TSP)
# PythonProjects · KenJes / Kenneth Alcalá

import random
import math

def distance(a, b):
    return math.sqrt((a[0]-b[0])**2 + (a[1]-b[1])**2)

def total_distance(route, cities):
    return sum(distance(cities[route[i]], cities[route[(i+1) % len(route)]])
               for i in range(len(route)))

def crossover(parent1, parent2):
    """Order crossover (OX)"""
    size = len(parent1)
    a, b = sorted(random.sample(range(size), 2))
    child = [-1] * size
    child[a:b] = parent1[a:b]
    remaining = [g for g in parent2 if g not in child]
    j = 0
    for i in range(size):
        if child[i] == -1:
            child[i] = remaining[j]; j += 1
    return child

def mutate(route, rate=0.02):
    """Intercambio aleatorio de dos ciudades"""
    for i in range(len(route)):
        if random.random() < rate:
            j = random.randint(0, len(route)-1)
            route[i], route[j] = route[j], route[i]
    return route

def evolve(population, cities, elite=5):
    scored = sorted(population, key=lambda r: total_distance(r, cities))
    next_gen = scored[:elite]
    while len(next_gen) < len(population):
        p1, p2 = random.choices(scored[:20], k=2)
        child = mutate(crossover(p1, p2))
        next_gen.append(child)
    return next_gen