VOLVER AL DASHBOARD

DOCUMENTACIÓN TÉCNICA

PROYECTO: KIRARA NEURAL INTERFACE v2.0

INGENIERO JEFE: Xavicraft [ ACCESO AUTORIZADO ]

ESTADO DE NÚCLEO: PRODUCCIÓN (BETA)

TECH STACK: Python Discord.py SQLite3 DeepSeek R1

1. ARQUITECTURA DEL SISTEMA

El núcleo de Kirara no es un chatbot basado en comandos estáticos; es un agente conversacional con estado persistente. El sistema utiliza una arquitectura híbrida que combina procesamiento de lenguaje natural (LLM) con una base de datos local para simular "memoria emocional".

FLUJO DE DATOS (DATA PIPELINE):

  • Input: El usuario envía un mensaje táctico en Discord.
  • Pre-Procesamiento: El bot limpia la cadena de texto e identifica el ID del usuario.
  • Consulta de Estado (DB): Se interroga a la base de datos SQLite para recuperar el nivel de "Afinidad/Humor".
  • Inferencia (AI): Se inyecta la personalidad y el historial en el buffer de memoria dinámica.
  • Ejecución: Procesamiento vía API (DeepSeek-R1) a través del canal OpenRouter.
  • Actualización: Análisis de sentimiento para ajustar la variable de afinidad en SQLite.

2. MÓDULOS DE COMPORTAMIENTO

Motor de Afinidad Dinámica

A diferencia de los bots tradicionales, Kirara reacciona según cómo la trates. Implementé un algoritmo de ajuste de humor persistente.

Humor_nuevo = Humor_actual + Δ(Sentimiento)

Persistencia: Los datos se guardan en kirara_memory.db, garantizando memoria a largo plazo (LTM).

Manejo de Errores Resiliente

Fallback específico para excepciones HTTP (ej. Error 50035). Si un usuario elimina su mensaje durante el ciclo de inferencia, el sistema redirige la respuesta al canal general, previniendo el colapso del núcleo.

Sistema de Registro Táctico

Implementación de Discord UI Views para la asignación de roles mediante RawReactionEvents.

  • Divisiones: Próxima Centauri (Exploración), Terra Prime (Defensa).
  • Visiones: Integración de elementos (Pyro, Hydro, Electro).

3. NÚCLEO DE INFERENCIA (SNIPPET)

Inyección de contexto SQLite en el System Prompt:

import os import sqlite3 from openai import AsyncOpenAI # Seguridad: Las llaves se cargan desde variables de entorno CLIENT = AsyncOpenAI(api_key=os.getenv("OPENROUTER_KEY")) async def chat_logic(user_id, user_message): # 1. Recuperar "Memoria Emocional" de la DB conn = sqlite3.connect('kirara_memory.db') cursor = conn.cursor() cursor.execute('SELECT humor FROM usuarios WHERE user_id = ?', (user_id,)) # 2. Inyectar estado en el System Prompt humor_level = cursor.fetchone() system_prompt = f"Eres Kirara. Tu nivel de humor con este usuario es: {humor_level}/100." # 3. Generar respuesta response = await CLIENT.chat.completions.create( model="deepseek-r1", messages=[ {"role": "system", "content": system_prompt}, {"role": "user", "content": user_message} ] ) return response.choices.message.content

4. EVIDENCIA ÓPTICA

Paneles de telemetría e interfaz de usuario en Discord. Click para aislar visualmente.