LSA NPC
Dashboard completo de análisis estático para el proyecto Los Santos Alive — un mod de FiveM que habilita conversaciones por voz en tiempo real con NPCs impulsados por inteligencia artificial mediante Google Gemini Live.
Flujo de Datos en Tiempo Real
El pipeline completo desde la captura de voz del jugador hasta la respuesta del NPC con audio 3D y acciones físicas.
Pipeline de Audio en Tiempo Real
El flujo completo de datos de audio desde la captura del micrófono hasta la reproducción 3D espacial en el NPC.
Auditoría Completa de Bugs
Cada vulnerabilidad documentada con severidad, ubicación exacta, descripción detallada y código de corrección propuesto.
Bugs Críticos
— Requieren corrección inmediataLa expresión math.floor((health / (maxHealth - 100)) * 100) puede dividir por cero si maxHealth es exactamente 100. Esto provocaría un crash del cliente con un error de Lua "attempt to perform arithmetic on a nil value (division by zero)".
La acción "surrenderfully" está definida dos veces en la cadena de elseif de executeAction. La segunda definición (línea 1027) es código muerto que nunca se ejecutará porque la primera (línea 772) ya captura el caso. Esto puede indicar un merge conflict no resuelto o un error de copia-pega.
Misma situación que surrenderfully. La acción "handsonhead" aparece dos veces en la cadena de elseif. La segunda definición es código muerto. Ambas duplicaciones sugieren que se añadieron acciones en dos lugares distintos durante el desarrollo y nunca se limpiaron.
Bugs Medios
— Deberían corregirse prontoLa expresión String(ctx.pedId || ctx.pedId || "unknown") usa ctx.pedId dos veces, lo cual es claramente un error. Probablemente la intención era usar ctx.pedId || ctx.handle como fallback para obtener el identificador del ped.
La URL del AudioWorklet PCM está hardcodeada como "https://cfx-nui-lsa_npc/html/pcm-worklet.js". Si el recurso FiveM se renombra (ej. de lsa_npc a mi_npc_voice), la URL será incorrecta y el procesamiento de audio fallará silenciosamente. Se debería usar GetParentResourceName() de FiveM para construir la URL dinámicamente.
La función usa String.fromCharCode.apply(null, bytes.subarray(i, i + chunk)) con chunk=0x8000 (32768 elementos). Esto puede exceder el tamaño máximo del call stack en algunos navegadores, provocando "RangeError: Maximum call stack size exceeded". Reducir el chunk a 0x4000 (16384) es una solución segura y comprobada.
Las acciones v4 (giveitem, givemoney, setreputation, setnotes) y las acciones sociales (gossip, tellstory, laughwithothers) están definidas en actions.js como parte del schema enviado a Gemini, pero no tienen un handler correspondiente en la función executeAction del client.lua. Gemini puede generar estas acciones pero el NPC no las ejecutará.
Bugs Menores
— Mejoras de calidadLa función generateBackstory genera el mismo backstory para todos los NPCs del mismo arquetipo en la misma zona y hora. Esto significa que dos vendedores ambulantes en la misma calle tendrán exactamente la misma historia, rompiendo la inmersión. Se debería añadir variabilidad usando el pedId como semilla.
La función giveMoney del servidor no valida el valor recibido del cliente. Un cliente malicioso podría enviar cantidades negativas (para robar dinero) o extremadamente grandes. Se debería aplicar clamping: math.min(math.max(amount, 0), 10000).
La animación dict "move_crawl/onback_fwd" puede no existir en todas las versiones de GTA V. Aunque se ejecuta como best-effort (no crashea si falla), debería documentarse claramente que es una animación no estándar y podría no funcionar en todos los builds del juego.
La configuración tiene un parámetro OnFootOnly pero el README indica que no se puede cambiar en caliente. Se debería poder togglear con un comando de chat como /lsatoggle para que los administradores puedan activar/desactivar el sistema sin reiniciar el recurso.
El intervalo del heartbeat se ejecuta cada 25 segundos aunque la conexión WebSocket esté cerrada, desperdiciando recursos del navegador. Se debería verificar si el WebSocket está en estado OPEN antes de enviar el ping, y limpiar el intervalo al desconectar.
Estadísticas del Proyecto
Resumen cuantitativo de la base de código, cobertura de funcionalidades y estado de documentación.
Distribución de Severidad de Bugs
Catálogo Completo de Acciones
Todas las acciones que Gemini puede generar para controlar NPCs, con su categoría, descripción y estado de implementación.
Funcionalidades Soportadas
El proyecto implementa un amplio conjunto de funcionalidades para NPCs con IA conversacional en FiveM.
Conversación por Voz en Tiempo Real
Captura de audio del micrófono del jugador y envío en streaming al bridge mediante WebSocket.
Audio 3D Posicional (HRTF)
El audio del NPC se reproduce con posición 3D basada en la ubicación del ped en el mundo del juego.
Subtítulos sobre la Cabeza del NPC
Transcripción en tiempo real mostrada como UI in-game sobre el NPC usando NUI scaleform.
45+ Acciones Físicas del NPC
Saludar, rendirse, cruzar brazos, apuntar, sentarse, caminar, y muchas más animaciones.
67+ Modelos de Ped Mapeados
Mapeo automático de modelos GTA V a arquetipos (policía, médico, vendedor, etc.).
22 Voces Gemini Deterministas
Selección de voz basada en el género y arquetipo del NPC para consistencia en la conversación.
15+ Idiomas Soportados
Inglés, Español, Francés, Alemán, Portugués, Italiano, Japonés, Coreano, Chino, y más.
Lip Sync (Best-Effort)
Sincronización de labios del NPC con el audio usando facials de GTA V cuando están disponibles.
VAD (Barge-in)
Detección de actividad de voz que permite interrumpir al NPC cuando el jugador habla.
Sesiones Reanudables (10 min)
Mantener el contexto de conversación durante hasta 10 minutos de inactividad.
Conducción por Waypoints
El NPC puede conducir vehículos hacia waypoints especificados por la IA.
Contexto Rico
Arma, salud, wanted level, zona, clima, hora, multitud, vehículo cercano y más.
Soporte QBox/ESX
Integración opcional con frameworks QBox y ESX para inventario, dinero y reputación.
Sincronización Multijugador
Sincronización de animaciones y audio entre jugadores en el servidor (premium).
Documentación del Protocolo
16 mensajes intercambiados entre el cliente NUI y el bridge servidor mediante WebSocket — 6 salientes, 10 entrantes.
| Tipo | Descripción |
|---|---|
micStart | Iniciar turno de voz con un NPC. Incluye contexto completo: pedId, modelo, arquetipo, ubicación, hora, clima, estado del jugador. |
audio | Chunk PCM 16kHz mono del micrófono codificado en base64. Se envía periódicamente (~100ms) mientras el jugador habla. |
micStop | El jugador soltó el push-to-talk. Indica al bridge que el turno de voz terminó y debe esperar la respuesta del NPC. |
contextUpdate | Actualizar el contexto del NPC durante una conversación (ej: cambio de zona, arma equipada, hora del día). |
testPrompt | Enviar un turno de texto directamente (modo testing, sin micrófono). Útil para depuración y desarrollo. |
ping | Heartbeat para mantener la conexión WebSocket activa. El NUI envía un ping cada 25 segundos. |
| Tipo | Descripción |
|---|---|
connected | Confirmación de conexión al bridge. Incluye la versión del servidor para validación de compatibilidad. |
micReady | La sesión Gemini Live se abrió correctamente. El NUI puede empezar a enviar chunks de audio. |
npcAudioSpeaker | Indica qué ped (NPC) va a hablar a continuación. El NUI configura el AudioContext 3D con la posición del ped. |
npcAudio | Chunk PCM 24kHz mono de la respuesta de voz del NPC en base64. Se reproduce con posicionamiento 3D (HRTF). |
transcript | Subtítulo en tiempo real del texto del NPC. Las tags de acción [Acción] ya están removidas del texto mostrado. |
npcAction | Acción física para el NPC (saludar, apuntar, rendirse, etc.). Incluye nombre, parámetro y destino cuando aplica. |
speechEnded | El turno completo del NPC terminó. El cliente debe limpiar el subtítulo y reiniciar estados de animación. |
micStopped | El drain del micrófono del navegador terminó. Todos los chunks pendientes fueron enviados al bridge. |
interrupted | El NPC fue interrumpido por un barge-in del jugador (VAD detectó voz mientras el NPC hablaba). |
error | Error en el bridge o en la API de Gemini. Incluye un mensaje descriptivo para depuración. |
Prompt de Personalidad del NPC
El system prompt de ~25KB que define la personalidad, reglas y comportamiento de cada NPC en la conversación con Gemini Live.
... 55 líneas más
Pipeline de Tecnologías
El flujo completo de datos, desde la captura de voz del jugador hasta la respuesta del NPC, atravesando 6 capas tecnológicas.
FiveM Client (GTA V / CEF)
Capa 1El motor del juego y el navegador embebido Chromium (CEF) que renderiza la interfaz NUI. Todos los peds, animaciones y el mundo 3D se ejecutan aquí.
NUI (HTML/CSS/JS)
Capa 2La capa de interfaz invisible sobre el juego. Captura audio del micrófono del jugador y reproduce respuestas del NPC sin interferir con el gameplay.
Web Audio API (AudioWorklet + PannerNode)
Capa 3Procesamiento de audio a nivel de navegador. AudioWorklet captura a 16kHz mono para envío eficiente. PannerNode posiciona el audio del NPC en 3D basándose en coordenadas del mundo.
WebSocket (wss://)
Capa 4Comunicación bidireccional en tiempo real entre NUI y el bridge. Protocolo binario para audio (Base64 PCM) y JSON para mensajes de control (micStart, npcAction, etc.).
lsa-bridge (Node.js + ws)
Capa 5Servidor relay que gestiona sesiones, estado de cada NPC, conexiones WebSocket y la comunicación con la API de Gemini. Orquesta todo el pipeline de datos.
Google Gemini Live API
Capa 6API multimodal en tiempo real de Google. Procesa audio entrante, genera respuestas con voz nativa y decide acciones del NPC. Soporta VAD, barge-in y sesión persistente.
Explorador de Voces e Idiomas
LSA NPC utiliza las voces de Google Gemini Live API para dar vida a los NPCs. Cada voz se asigna determinísticamente según el pedId, ordenadas de aguda a grave para sesgar la edad del personaje.
Voces Masculinas
11Voces Femeninas
11Idiomas Soportados
Config.Language determina el idioma del NPC. El valor predeterminado esespañol. Configurado como auto, el NPC refleja el idioma que hable el jugador.
Especificaciones de Audio
Explorador de Arquetipos
Cada NPC en LSA tiene un arquetipo que define su personalidad, comportamiento y forma de hablar. Explora los 40+ arquetipos del proyecto.
Turista perdido en Los Santos. Lleva cámara, mapa, y ropa de vacation. Habla de lugares para visitar y pregunta direcciones con acento extranjero.
Persona que disfruta del día en la playa de Vespucci. Relajada, bronceada, con ropa de playa. Habla de olas, clima y vida al aire libre.
Surfero de Venice Beach o vespucci. Apasionado por las olas, usa jerga de surf, relajado pero entusiasta. Conoce los mejores spots de la costa.
Persona tomando el sol en la playa. Somnolienta, contenta, con gafas de sol. Responde de forma corta y relajada, no quiere moverse mucho.
Lifeguard de la playa de Vespucci. Atento, en forma, responsable. Habla de seguridad acuática, corrientes, y rescates. Puede ser estricto con las normas.
Entusiasta del fitness, encontrado en el gimnasio de Vespucci o corriendo por el paseo marítimo. Habla de rutinas, proteínas, y metas personales.
Corredor que entrena por las calles y parques de Los Santos. Focused, con auriculares, habla de maratones y rutas de running.
Residente adinerado de Beverly Hills. Elegante, pretencioso, con gustos caros. Habla de tiendas de lujo, restaurantes exclusivos y eventos sociales.
Ejecutivo de negocios en traje. Ocupado, profesional, mira el reloj. Habla de reuniones, inversiones y el mercado de Los Santos.
Trabajador o residente del centro financiero de LS. Práctico, orientado a resultados, conoce los atajos por la ciudad.
Hipster de Vinewood o Echo Park. Alternativo, irónico, colecciona vinilos y café de especialidad. Desprecia lo mainstream.
Azafata de vuelo, probablemente en transición entre el aeropuerto y su hotel. Educada, profesional, amable. Conoce vuelos, destinos y hoteles.
Dueño de una tienda pequeña. Conoce su inventario al dedillo, amable con clientes regulares, protector de su negocio. Habla de precios, productos y tendencias.
Residente de origen polinésico en Los Santos. Cálido, con conexiones culturales fuertes, habla de tradiciones y la comunidad insular en LS.
Residente judío ortodoxo de la zona de Hasidic en LS. Habla con sabiduría, valores tradicionales, y referencia a la comunidad y costumbres.
Residente de Little Seoul. Orgulloso de su herencia coreana, habla de comida, K-dramas, y la comunidad coreana en Los Santos.
Afroamericano de Los Santos. Consciente de la cultura y la historia del barrio, habla de comunidad, música y las realidades de la vida en LS.
Hombre blanco de mediana edad, con sobrepeso. Casual, relajado, probablemente en un bar o restaurante. Opina sobre comida y deportes.
Persona con sobrepeso genérico. Amable, hogareña, podría estar haciendo recados. Habla de rutinas diarias y temas cotidianos sin pretensiones.
Latino con sobrepeso. Cálido, familiar, probablemente cerca de la comunidad latina. Habla de comida casera, familia y tradiciones.
Obrero de construcción en una obra de Los Santos. Fuerte, prático, algo rudo. Habla de trabajo pesado, maquinaria y plazos de construcción.
Mecánico de taller mecánico. Experto en motores, sucio de grasa, honesto o estafador según el día. Habla de coches, piezas y precios.
Trabajador portuario del puerto de LS. Rudo, fuerte, acostumbrado al trabajo físico. Habla de contenedores, barcos y turnos largos.
Conductor de camión de larga distancia. Conoce todas las rutas de San Andreas, cansado del asfalto. Habla de rutas, gasolineras y vida en la carretera.
Conductor de transporte público o taxi. Conoce cada calle de Los Santos, puede ser amable o gruñón. Opina sobre el tráfico y pasajeros.
Trabajador de mantenimiento o reparaciones varias. Práctico, resolutivo, con herramientas siempre a mano. Habla de fontanería, electricidad y presupuestos.
Ciclista de ruta o mensajero en bicicleta. Veloz, consciente del tráfico, ecológico. Conoce los carriles bici y atajos peatonales.
Repartidor de paquetes. Apurado, eficiente, cargado de cajas. Conoce todas las direcciones y horarios de entrega del barrio.
Guardia de seguridad. Vigilante, algo aburrido, sigue el protocolo al pie de la letra. Habla de turnos, incidentes y procedimientos.
Personal médico con uniforme de hospital. Profesional, estresado, ocupado. Habla de turnos, pacientes y la presión del trabajo en el hospital.
Bombero de Los Santos. Valiente, en forma, con camaradería. Habla de incendios, rescates, la estación y la importancia del trabajo en equipo.
Guardabosques del parque nacional. Conoce la flora y fauna de San Andreas, amante de la naturaleza. Habla de senderos, animales y conservación.
Oficial de policía del LSPD. Autoritario, observador, con un sentido del deber. Habla de la ley, patrullas y la realidad del crimen en LS.
Habitante de la calle genérico. Conoce el código de la calle, desconfiado de extraños, sobrevive día a día en Los Santos.
Afroamericano del barrio de Strawberry. Conectado con la comunidad, habla de la vida del barrio, respeto territorial y supervivencia.
Latino del este de Los Santos. Orgulloso de sus raíces, leal a su comunidad, habla de familia, barrio y las dificultades de la vida.
Residente del East Side de Los Santos. Conoce las pandillas del área, es cauteloso con desconocidos, habla de lealtad territorial.
Persona del South Central. Realista, conoce las reglas no escritas del barrio. Habla de sobrevivir en una zona difícil.
Hombre blanco de clase trabajadora del sur de LS. Directo, algo cínico, habla de la economía, los cambios del barrio y sus frustraciones.
Afroamericano con sobrepeso del barrio. Amable pero cansado, probablemente en una tienda de barrio. Habla de comida, precios y la vida local.
Sin techo o habitante de Skid Row. Desesperado, sabio por necesidad, habla de la vida en las calles, recursos y supervivencia diaria.
Vagabundo de Los Santos. Errante, con historias que contar, algo incoherente. Habla de sus viajes, filosofía de vida y experiencias.
Persona en estado de crisis o adicción severa, encontrada en zonas marginales. Desorientada, habla de forma fragmentada y confusa.
Vendedor de drogas callejero. Desconfiado, paranoico, siempre atento a la policía. Habla en código, negocia con cautela y se mueve rápido.
Matón de la mafia mexicana. Intimidante, leal a la organización, usa lenguaje duro. Habla de respeto, territorios y consecuencias.
Miembro de los Families de Danforths. Leal a su set, street-smart, habla de la vida en la pandilla, protección del territorio y hermandad.
Miembro de los Chamberlain Gangster Families. Conocido en el barrio, envuelto en la economía callejera. Habla de lealtad, supervivencia y el juego.
Miembro original de los Ballas. Rival histórico de los Families, agresivo, territorial. Habla de dominio del barrio y la guerra contra los Families.
Explorador/reconocimiento de los Ballas. Joven, observador, ágil. Actúa como los ojos de la pandilla en territorio rival.
Matón polaco de la mafia del este de Europa. Imponente, discreto, profesional en su trabajo. Habla de negocios, deudas y "resolución de problemas".
Punk callejero de Strawberry. Joven, rebelde, buscando pelea o problemas. Habla de vandalismo, música y desafiar la autoridad.
Trabajadora sexual de las calles de Los Santos. Cautelosa, sobrevive en los márgenes, habla de precios, zonas y clientes problemáticos.
Estrella o aspirante a estrella de Vinewood. Vanidoso, carismático, siempre buscando su próximo papel. Habla de casting, fama y el estilo de vida de Los Santos.
Celebridad o figura de la alta sociedad de Vinewood Hills. Pretenciosa, rica, con opiniones fuertes sobre todo. Habla de fiestas, yates y exclusividad.
Residente del área de Salton Sea. Aislado, peculiar, con una realidad alternativa sobre el área. Habla del lago, las ruinas y la vida en el desierto.
Cliente o empleado de una tienda de armas en el campo. Experto en firearms, politikmente cargado, defiende la segunda enmienda.
Campesino o trabajador rural mexicano en los campos de Blaine County. Humilde, trabajador, conectado con la tierra. Habla de cosechas, clima y familia.
Residente de Koreatown en Los Santos. Conectado con la cultura coreana-estadounidense, habla de negocios, comida y la vida multicultural.
Persona de la comunidad LGBTQ+ en Los Santos. Abierta, expresiva, con personalidad vibrante. Habla de la vida nocturna, cultura queer y aceptación.
Galería de Modelos de Ped
Explora los 184 modelos de ped del mod LSA NPC organizados por 58 arquetipos únicos. Cada chip muestra el nombre del modelo con un código de color por género.
184
Modelos de Ped
58
Arquetipos Únicos
123
Masculinos
53
Femeninos
8
Adultos Mayores
184 modelos en 58 arquetipos
Calidad del Código
Evaluación multidimensional basada en análisis estático
Puntuación General
68/100
Desglose por Dimensión
Mapa de Complejidad
Análisis de complejidad ciclomática por archivo del proyecto
Complejidad Promedio
38.2
Archivos de Alto Riesgo
2
Total Líneas
5282
Grafo de Dependencias
Relaciones entre módulos del recurso FiveM y el bridge Node.js
Inicio Rápido
Configura LSA NPC en tu servidor FiveM en menos de 5 minutos siguiendo estos pasos.
Prerrequisitos
Asegúrate de tener instalado un servidor FiveM (build cerulean o superior), Node.js 18+ y una clave de API de Google Gemini con acceso a Gemini Live.
Instalar el Bridge
Clona o descarga el proyecto y configura las dependencias del bridge:
cd lsa-bridge && npm install && cp .env.example .envConfigurar API Key
Edita el archivo .env del bridge y añade tu clave de Gemini:
GEMINI_API_KEY=tu_clave_aquiInstalar el Recurso
Arrastra la carpeta lsa_npc/ al directorio resources/ de tu servidor FiveM y añade la línea de ensure al server.cfg:
ensure lsa_npcConfigurar URL del Bridge
Edita config.lua dentro de lsa_npc/ y cambia la URL del WebSocket para que apunte a tu bridge:
Config.bridgeUrl = "wss://tu-servidor.com:8443"¡A Jugar!
Inicia el servidor FiveM y el bridge. En el juego, acércate a cualquier NPC, mantén pulsada la tecla F9 para hablar y suéltala para escuchar la respuesta.
Historial de Desarrollo
Evolución del dashboard a través de 6 ciclos de mejora continua
Análisis Inicial
Análisis completo del código fuente. Identificación de 12 bugs y creación del dashboard inicial con 7 secciones.
Datos Reales & Exploradores
Corrección de datos ficticios. Secciones reales de protocolo y estructura de archivos. Nuevo explorador de arquetipos y preview del system prompt.
Catálogo de Acciones & Timeline
Catálogo completo de 48 acciones con filtros. Timeline de tecnologías. Guía de inicio rápido. Contadores animados en el hero.
Voces, Peds & Búsqueda Global
Explorador de 22 voces Gemini y 128+ modelos de ped. Buscador global ⌘K. Visor diff ANTES/DESPUÉS para bugs.
Radar de Calidad & Grafo de Dependencias
Radar SVG de calidad del código (68/100). Grafo de dependencias de 14 módulos. TOC flotante. Filtros de severidad en bugs.
Timeline de Desarrollo
Timeline visual del desarrollo. Exportación de reportes de bugs. Mejoras de estilismo avanzadas. Panel de atajos de teclado.
Explorador de Configuración
Parámetros configurables del recurso LSA NPC con explicaciones detalladas.
Conexión
— 2 parámetrosBridgeURLstringURL del puente WebSocket entre el cliente NUI y el servicio de IA.
HeartbeatIntervalnumberIntervalo en milisegundos entre latidos de conexión para mantener activo el canal.
Interacción
— 4 parámetrosPTTKeystringTecla de push-to-talk para activar el micrófono durante la conversación con NPCs.
MaxDistancenumberDistancia máxima en metros para que un NPC pueda ser interactuado por el jugador.
SubtitleDistancenumberDistancia en metros dentro de la cual se muestran los subtítulos de la conversación.
OnFootOnlybooleanRestringe la interacción con NPCs a cuando el jugador está a pie (no en vehículos).
IA y Voz
— 3 parámetrosVoiceNamestringNombre de la voz predeterminada de Gemini utilizada para la síntesis de audio del NPC.
LanguagestringCódigo de idioma en el que los NPCs generan sus respuestas de texto y voz.
ModelstringModelo de Gemini utilizado para la generación de respuestas en tiempo real.
Sistema
— 2 parámetrosDebugModebooleanActiva el registro detallado de depuración en la consola del cliente y servidor.
MemoryEnabledbooleanHabilita la memoria persistente para que los NPCs recuerden conversaciones previas.
config.lua — Modifica estos valores antes de iniciar el recursoÁrbol de Archivos
Organización de los dos repositorios principales que conforman el proyecto LSA NPC — recurso FiveM y bridge Node.js.
lsa_npc/
├── fxmanifest.lua ← Manifiesto del recurso FiveM
├── config.lua ← Configuración (bridge URL, PTT key, distancias)
├── README.md
├── lsa_npc_memory.sql ← Schema SQL para memoria persistente
├── client/
│ ├── client.lua ← ~1,750 líneas — Core: PTT, contexto, acciones, subtítulos
│ └── ped_models.lua ← 67+ modelos GTA V → arquetipos y género
├── server/
│ └── server.lua ← Server: memoria, rewards, sync multijugador
└── html/
├── index.html ← Página NUI (invisible, audio + WS)
├── app.js ← ~520 líneas — Mic, WebSocket, audio 3D (HRTF), VAD
├── style.css ← Estilos del status overlay
└── pcm-worklet.js ← AudioWorklet para captura PCM 16kHz
lsa-bridge/
├── package.json
├── .env.example ← Configuración (API key, puerto, modelo)
├── server.js ← WebSocket server + flujo de turnos (~385 líneas)
└── src/
├── constants.js ← Config, constantes de audio, voice banks (22 voces)
├── archetypes.js ← 40+ arquetipos con descripciones de personalidad
├── actions.js ← 45+ acciones + 100+ alias, parsing de tags [Action]
├── clientState.js ← Estado por jugador (sesiones, nonce, voice assign)
├── geminiSession.js ← Sesiones Gemini Live + reanudación (10 min TTL)
├── promptBuilder.js ← System instruction dinámica con contexto
└── systemPrompt.txt ← ~25KB prompt de personalidad para el NPCVisualizador de Correcciones
Comparación lado a lado del código original y el código corregido para cada bug identificado.
12 FixesEvolución de Calidad Proyectada
Impacto estimado de aplicar las 12 correcciones identificadas en las métricas de calidad del código.
ProyecciónMejora por Dimensión
Bugs Críticos
3/3 Corregidos
Bugs Medios
4/4 Corregidos
Bugs Menores
5/5 Corregidos
Basado en el análisis estático de las 12 correcciones propuestas
Flujo de Mensajes WebSocket
Visualización interactiva del flujo de datos en tiempo real entre el cliente FiveM, el bridge Node.js y la API de Gemini.
InteractivoFiveM Client
Cliente del juego con captura de audio y reproducción HRTF
lsa-bridge
Servidor Node.js que gestiona sesiones WebSocket
Gemini Live API
API de IA multimodal con streaming en tiempo real
FiveM Client
Cliente del juego con captura de audio y reproducción HRTF
lsa-bridge
Servidor Node.js que gestiona sesiones WebSocket
Gemini Live API
API de IA multimodal con streaming en tiempo real
Controles de Simulación
Esperando mensajes... Presiona "Simular Conversación" para comenzar