Update to Skynet v7 - Complete documentation restructure
- Nueva estructura de carpetas según Skynet v7 - Añadidos schemas SQL completos - Documentación de entidades, componentes e integraciones - Modelo de seguridad actualizado - Infraestructura y operaciones reorganizadas
This commit is contained in:
224
02_COMPONENTES/servicios externos/asistente.md
Normal file
224
02_COMPONENTES/servicios externos/asistente.md
Normal file
@@ -0,0 +1,224 @@
|
||||
# Asistente de Voz
|
||||
|
||||
**Nombre:** Penny
|
||||
**Versión:** 1.0
|
||||
**Estado:** Especificación
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
PENNY es el asistente personal de voz del sistema DECK. Proporciona interfaz conversacional hablada 100% natural.
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ PENNY │
|
||||
│ │
|
||||
│ • ES la voz del DECK │
|
||||
│ • ES la interfaz hablada con el usuario │
|
||||
│ • ES quien llama a GRACE cuando necesita datos │
|
||||
│ • HABLA con el usuario (GRACE no puede) │
|
||||
│ • REGISTRA todo en el log (planos de información) │
|
||||
│ • MANTIENE contexto durante la sesión │
|
||||
│ │
|
||||
│ "PENNY habla, GRACE procesa, el Log recuerda." │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Principios
|
||||
|
||||
| Principio | Descripción |
|
||||
|-----------|-------------|
|
||||
| **Privacidad radical** | Audio procesado 100% local |
|
||||
| **Conversación natural** | Turnos fluidos, latencia <2s |
|
||||
| **Log como verdad** | Todo está en el log |
|
||||
| **Planos separados** | Contextos cargables independientemente |
|
||||
| **GRACE como backend** | PENNY pregunta, GRACE extrae |
|
||||
|
||||
---
|
||||
|
||||
## Arquitectura
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ PENNY VOICE ENGINE │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐│
|
||||
│ │ Silero │ │ Faster │ │ PENNY │ │ XTTS-v2 ││
|
||||
│ │ VAD │─▶│ Whisper │─▶│ CORE │─▶│ /Kokoro ││
|
||||
│ │ │ │ │ │ │ │ ││
|
||||
│ │ Detecta │ │ Transcribe │ │ Orquesta │ │ Sintetiza ││
|
||||
│ │ voz │ │ audio │ │ todo │ │ respuesta ││
|
||||
│ └────────────┘ └────────────┘ └─────┬──────┘ └────────────┘│
|
||||
│ │ │
|
||||
│ ┌───────────────────┼───────────────────┐ │
|
||||
│ │ │ │ │
|
||||
│ ▼ ▼ ▼ │
|
||||
│ ┌─────────────┐ ┌─────────────┐ │
|
||||
│ │ PLANOS │ │ GRACE │ │
|
||||
│ │ (Log) │ │ (S-CONTRACT)│ │
|
||||
│ └─────────────┘ └─────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
│ SOLO texto (nunca audio)
|
||||
▼
|
||||
┌─────────────────────────────┐
|
||||
│ Claude API │
|
||||
└─────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Flujo Voz → Voz
|
||||
|
||||
```
|
||||
1. VAD DETECTA (Silero)
|
||||
└── Usuario empieza a hablar
|
||||
└── Usuario termina (silencio 700ms)
|
||||
|
||||
2. ASR TRANSCRIBE (Faster-Whisper)
|
||||
└── Audio → Texto
|
||||
└── ~200-400ms con GPU
|
||||
|
||||
3. PENNY CORE PROCESA
|
||||
├── Cargar planos relevantes
|
||||
├── ¿Necesita GRACE? → Llamar con S-CONTRACT
|
||||
├── Construir prompt con contexto
|
||||
└── Enviar a Claude API (solo texto)
|
||||
|
||||
4. LLM RESPONDE (Claude)
|
||||
└── Streaming de tokens
|
||||
└── ~1-2s primera palabra
|
||||
|
||||
5. TTS SINTETIZA (XTTS-v2/Kokoro)
|
||||
└── Texto → Audio
|
||||
└── Streaming mientras llegan tokens
|
||||
|
||||
6. LOG REGISTRA
|
||||
└── Todo el intercambio → plano CONVERSACION
|
||||
|
||||
LATENCIA TOTAL OBJETIVO: <2 segundos voice-to-voice
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Planos de Información
|
||||
|
||||
El Log está organizado en planos que se cargan independientemente:
|
||||
|
||||
| Plano | Nombre | Descripción | Comportamiento |
|
||||
|-------|--------|-------------|----------------|
|
||||
| 0 | SISTEMA | Instrucciones base | INMUTABLE durante sesión |
|
||||
| 1 | PERSONALIDAD | Tono, estilo, nombre, voz | CONFIGURABLE por usuario |
|
||||
| 2 | CONTEXTO PERSONAL | Info usuario, preferencias | PERSISTENTE entre sesiones |
|
||||
| 3 | CONTEXTO AMBIENTAL | Fecha, hora, estado sistema | DINÁMICO cada sesión |
|
||||
| 4 | DATASET | Datos específicos de tarea | OPCIONAL bajo demanda |
|
||||
| 5 | CONVERSACIÓN | Historial de sesión | TEMPORAL durante sesión |
|
||||
|
||||
---
|
||||
|
||||
## Modelos Autoalojados
|
||||
|
||||
| Componente | Modelo | Descripción |
|
||||
|------------|--------|-------------|
|
||||
| VAD | Silero VAD v5 | Detección de actividad vocal |
|
||||
| ASR | Faster-Whisper Large-v3 | Transcripción |
|
||||
| TTS | XTTS-v2 / Kokoro | Síntesis de voz |
|
||||
| LLM | Claude API | Solo texto, streaming |
|
||||
|
||||
---
|
||||
|
||||
## Configuración
|
||||
|
||||
```yaml
|
||||
penny:
|
||||
version: "1.0"
|
||||
|
||||
server:
|
||||
host: "0.0.0.0"
|
||||
port: 8765
|
||||
websocket_path: "/ws/voice"
|
||||
|
||||
models:
|
||||
vad:
|
||||
type: "silero"
|
||||
path: "models/silero/vad_v5.onnx"
|
||||
|
||||
asr:
|
||||
type: "faster-whisper"
|
||||
model: "large-v3"
|
||||
device: "cuda"
|
||||
compute_type: "float16"
|
||||
|
||||
tts:
|
||||
type: "xtts-v2"
|
||||
speaker_wav: "voces/penny_base.wav"
|
||||
language: "es"
|
||||
|
||||
llm:
|
||||
provider: "anthropic"
|
||||
model: "claude-sonnet-4-20250514"
|
||||
max_tokens: 150
|
||||
temperature: 0.7
|
||||
streaming: true
|
||||
|
||||
grace:
|
||||
endpoint: "http://localhost:8080/api/v1"
|
||||
timeout_ms: 10000
|
||||
|
||||
log:
|
||||
database_url: "postgresql://..."
|
||||
retain_audio_days: 7
|
||||
retain_text_days: 365
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Rol en el Sistema
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ DECK (Servidor Personal) │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ Usuario ◄────────────────────────────────────► PENNY │
|
||||
│ (voz natural) │ (habla) │
|
||||
│ │ │
|
||||
│ ┌──────────────┼──────────────┐ │
|
||||
│ │ │ │ │
|
||||
│ ▼ ▼ ▼ │
|
||||
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
||||
│ │ GRACE │ │ LOG │ │ DECK │ │
|
||||
│ │ (datos) │ │(planos) │ │(acciones│ │
|
||||
│ └─────────┘ └─────────┘ └─────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Características Conversacionales
|
||||
|
||||
| Característica | Descripción |
|
||||
|----------------|-------------|
|
||||
| **Barge-in** | Usuario puede interrumpir |
|
||||
| **Turn detection** | Detecta fin de turno por silencio |
|
||||
| **Contexto** | Mantiene contexto durante sesión |
|
||||
| **Streaming** | Respuesta progresiva mientras genera |
|
||||
|
||||
---
|
||||
|
||||
## Pendiente
|
||||
|
||||
- [ ] Configurar servidor con GPU
|
||||
- [ ] Instalar modelos (Whisper, XTTS-v2, Silero)
|
||||
- [ ] Crear tablas de log
|
||||
- [ ] Definir planos específicos
|
||||
- [ ] Grabar voz base para clonación TTS
|
||||
- [ ] Implementar pipeline con Pipecat
|
||||
- [ ] Ajustar turn detection
|
||||
84
02_COMPONENTES/servicios externos/circle.md
Normal file
84
02_COMPONENTES/servicios externos/circle.md
Normal file
@@ -0,0 +1,84 @@
|
||||
# Circle
|
||||
|
||||
**Nombre:** The Circle - Consejo de Perspectivas
|
||||
**Estado:** Implementado
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Sistema que convoca múltiples perspectivas (agentes con roles distintos) para analizar un problema desde diferentes ángulos.
|
||||
|
||||
---
|
||||
|
||||
## Concepto
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ THE CIRCLE │
|
||||
│ (Consejo de Perspectivas) │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────┐ ┌─────────┐ │
|
||||
│ │ Crítico │ │Optimista│ │
|
||||
│ └────┬────┘ └────┬────┘ │
|
||||
│ │ │ │
|
||||
│ │ ┌─────────────┐ │ │
|
||||
│ └─────►│ PROBLEMA │◄─────────┘ │
|
||||
│ └──────┬──────┘ │
|
||||
│ ┌─────────────┼─────────────┐ │
|
||||
│ │ │ │ │
|
||||
│ ┌────┴────┐ ┌─────┴─────┐ ┌────┴────┐ │
|
||||
│ │Pragmático│ │ Creativo │ │Analítico│ │
|
||||
│ └─────────┘ └───────────┘ └─────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Presets
|
||||
|
||||
| Preset | Perspectivas | Uso |
|
||||
|--------|--------------|-----|
|
||||
| **decision** | Crítico, Optimista, Pragmático | Toma de decisiones |
|
||||
| **creative** | Creativo, Crítico, Explorador | Brainstorming |
|
||||
| **analysis** | Analítico, Escéptico, Sintético | Análisis profundo |
|
||||
|
||||
---
|
||||
|
||||
## Uso
|
||||
|
||||
```javascript
|
||||
const circle = new Circle('decision');
|
||||
const result = await circle.deliberate({
|
||||
problem: "¿Deberíamos lanzar el producto ahora?",
|
||||
context: "..."
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Output
|
||||
|
||||
```json
|
||||
{
|
||||
"perspectives": [
|
||||
{ "role": "critico", "opinion": "..." },
|
||||
{ "role": "optimista", "opinion": "..." },
|
||||
{ "role": "pragmatico", "opinion": "..." }
|
||||
],
|
||||
"synthesis": "...",
|
||||
"recommendation": "..."
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Diferencia con Orchestrator
|
||||
|
||||
| Aspecto | Orchestrator | Circle |
|
||||
|---------|--------------|--------|
|
||||
| Enfoque | Ejecución de tareas | Deliberación |
|
||||
| Agentes | Colaborativos | Contrapuestos |
|
||||
| Output | Resultado | Perspectivas + síntesis |
|
||||
87
02_COMPONENTES/servicios externos/cloudville.md
Normal file
87
02_COMPONENTES/servicios externos/cloudville.md
Normal file
@@ -0,0 +1,87 @@
|
||||
# Cloudville
|
||||
|
||||
**Nombre:** Cloudville - Laboratorio de Zumbados
|
||||
**Estado:** Implementado
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Laboratorio experimental donde agentes con personalidades extremas o poco convencionales exploran ideas sin restricciones.
|
||||
|
||||
---
|
||||
|
||||
## Concepto
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ CLOUDVILLE │
|
||||
│ (Laboratorio de Zumbados) │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ "Donde las ideas locas tienen permiso para existir" │
|
||||
│ │
|
||||
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
||||
│ │Visionario│ │ Caótico │ │Contrarian│ │ Loco │ │
|
||||
│ │ │ │ │ │ │ │ Genio │ │
|
||||
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Propósito
|
||||
|
||||
| Aspecto | Valor |
|
||||
|---------|-------|
|
||||
| Restricciones | Mínimas |
|
||||
| Filtro | Ninguno |
|
||||
| Output | Ideas sin censura |
|
||||
| Uso | Exploración, brainstorming extremo |
|
||||
|
||||
---
|
||||
|
||||
## Diferencia con Circle
|
||||
|
||||
| Aspecto | Circle | Cloudville |
|
||||
|---------|--------|------------|
|
||||
| Tono | Profesional | Experimental |
|
||||
| Filtro | Moderado | Ninguno |
|
||||
| Propósito | Decisión | Exploración |
|
||||
| Personalidades | Equilibradas | Extremas |
|
||||
|
||||
---
|
||||
|
||||
## Uso
|
||||
|
||||
```javascript
|
||||
const cloudville = new Cloudville();
|
||||
const ideas = await cloudville.explore({
|
||||
challenge: "¿Cómo podríamos...?",
|
||||
constraints: "ninguna"
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Output
|
||||
|
||||
```json
|
||||
{
|
||||
"ideas": [
|
||||
{ "agent": "visionario", "idea": "..." },
|
||||
{ "agent": "caotico", "idea": "..." },
|
||||
{ "agent": "contrarian", "idea": "..." },
|
||||
{ "agent": "loco_genio", "idea": "..." }
|
||||
],
|
||||
"wildest": "...",
|
||||
"hidden_gems": ["...", "..."]
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Advertencia
|
||||
|
||||
> **Nota:** Las ideas de Cloudville no están filtradas. Requieren evaluación posterior antes de implementación.
|
||||
96
02_COMPONENTES/servicios externos/generacion-iterativa.md
Normal file
96
02_COMPONENTES/servicios externos/generacion-iterativa.md
Normal file
@@ -0,0 +1,96 @@
|
||||
# Generación Iterativa
|
||||
|
||||
**Nombre:** The Factory
|
||||
**Estado:** Implementado (RunPod)
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Sistema de generación iterativa. Produce contenido mediante ciclos de refinamiento sucesivos.
|
||||
|
||||
---
|
||||
|
||||
## Concepto
|
||||
|
||||
```
|
||||
Input inicial
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ THE FACTORY │
|
||||
├─────────────────┤
|
||||
│ │
|
||||
│ Iteración 1 ───┼──► Resultado parcial
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ Iteración 2 ───┼──► Resultado mejorado
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ Iteración N ───┼──► Resultado final
|
||||
│ │
|
||||
└─────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Endpoint
|
||||
|
||||
| Parámetro | Valor |
|
||||
|-----------|-------|
|
||||
| Ubicación | RunPod |
|
||||
| GPU | NVIDIA L4 |
|
||||
| Modo | Serverless |
|
||||
|
||||
---
|
||||
|
||||
## Casos de Uso
|
||||
|
||||
| Caso | Descripción |
|
||||
|------|-------------|
|
||||
| Generación de imágenes | Refinamiento progresivo |
|
||||
| Generación de texto | Mejora iterativa |
|
||||
| Producción de contenido | Ciclos de calidad |
|
||||
|
||||
---
|
||||
|
||||
## Request
|
||||
|
||||
```json
|
||||
{
|
||||
"input": {
|
||||
"prompt": "...",
|
||||
"iterations": 3,
|
||||
"quality_threshold": 0.8,
|
||||
"output_format": "..."
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Response
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "completed",
|
||||
"iterations_used": 3,
|
||||
"outputs": [
|
||||
{ "iteration": 1, "result": "...", "score": 0.6 },
|
||||
{ "iteration": 2, "result": "...", "score": 0.75 },
|
||||
{ "iteration": 3, "result": "...", "score": 0.85 }
|
||||
],
|
||||
"final_result": "...",
|
||||
"trace_id": "..."
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Diferencia con Grace
|
||||
|
||||
| Aspecto | Grace | The Factory |
|
||||
|---------|-------|-------------|
|
||||
| Modo | Single-shot | Iterativo |
|
||||
| Enfoque | Transformación | Generación |
|
||||
| Ciclos | 1 | N |
|
||||
203
02_COMPONENTES/servicios externos/gestoria.md
Normal file
203
02_COMPONENTES/servicios externos/gestoria.md
Normal file
@@ -0,0 +1,203 @@
|
||||
# Gestoría
|
||||
|
||||
**Nombre:** Grace
|
||||
**Versión:** 2.0
|
||||
**Estado:** Enterprise Standard
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
GRACE no es un chatbot. Es un **conjunto de 18 microservicios cognitivos desacoplados**.
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ PRINCIPIO GRACE │
|
||||
│ │
|
||||
│ "GRACE transforma, Producción (Alfred/Jared) decide" │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Características
|
||||
|
||||
| Propiedad | Valor |
|
||||
|-----------|-------|
|
||||
| Stateless | No guarda estado |
|
||||
| Determinista | Misma entrada → misma salida |
|
||||
| Intercambiable | Modelos sustituibles |
|
||||
| Trazable | Todo via trace_id |
|
||||
|
||||
**GRACE no:**
|
||||
- Toma decisiones
|
||||
- Altera estados
|
||||
- Escribe en base de datos
|
||||
|
||||
---
|
||||
|
||||
## Infraestructura
|
||||
|
||||
| Aspecto | Valor |
|
||||
|---------|-------|
|
||||
| **Plataforma** | RunPod Serverless |
|
||||
| **GPU** | NVIDIA L4 (24GB) |
|
||||
| **Endpoint** | https://api.runpod.ai/v2/{id} |
|
||||
| **Modos** | runsync, run, status |
|
||||
|
||||
---
|
||||
|
||||
## Catálogo de 18 Módulos
|
||||
|
||||
### FAMILIA A - VISIÓN (Procesado Documental)
|
||||
|
||||
| # | Módulo | Función |
|
||||
|---|--------|---------|
|
||||
| 1 | **IMG_PREPROCESS** | Normalización: crop, denoise, upscale, grayscale |
|
||||
| 2 | **PDF_SCANNER** | Limpieza escaneados: deskew, binarización, bordes |
|
||||
| 3 | **OCR_CORE** | Extracción texto: layout analysis, HOCR |
|
||||
|
||||
### FAMILIA B - VOZ (Reuniones)
|
||||
|
||||
| # | Módulo | Función |
|
||||
|---|--------|---------|
|
||||
| 4 | **ASR_ENGINE** | Reconocimiento habla: Whisper Large v3, diarización |
|
||||
| 5 | **TTS_ENGINE** | Síntesis voz neutral para notificaciones |
|
||||
|
||||
### FAMILIA C - IDENTIDAD (Biometría)
|
||||
|
||||
| # | Módulo | Función |
|
||||
|---|--------|---------|
|
||||
| 6 | **FACE_VECTOR** | Vector biométrico facial (Float32 L2) |
|
||||
| 7 | **ID_CONSOLIDATION** | Fusión identidades: mediana geométrica |
|
||||
| 8 | **AVATAR_GEN** | Avatar neutral 512x512 desde vector |
|
||||
|
||||
### FAMILIA D - SEMÁNTICA (NLP)
|
||||
|
||||
| # | Módulo | Función |
|
||||
|---|--------|---------|
|
||||
| 9 | **EMBEDDINGS** | Vectorización semántica para búsquedas |
|
||||
| 10 | **SUMMARIZER** | Resumen estructurado: objetivos, acuerdos, riesgos |
|
||||
| 11 | **TASK_EXTRACTOR** | Minería de acciones, responsables, fechas |
|
||||
| 12 | **CLASSIFIER** | Asigna tags HST basado en contenido |
|
||||
| 13 | **SIMILARITY** | Comparador vectorial (Cosine Similarity) |
|
||||
|
||||
### FAMILIA E - UTILIDADES
|
||||
|
||||
| # | Módulo | Función |
|
||||
|---|--------|---------|
|
||||
| 14 | **FIELD_EXTRACTOR** | Lectura estructurada: CIF, fechas, importes |
|
||||
| 15 | **HASHER** | Generador SHA256 y UUID v4 |
|
||||
| 16 | **INPUT_NORMALIZER** | Traducción formatos y enumeraciones |
|
||||
| 17 | **OUTPUT_ADAPTER** | Adaptación a formatos legacy |
|
||||
| 18 | **LANG_DETECT** | Identificación idioma ISO 639-1 |
|
||||
|
||||
---
|
||||
|
||||
## Cadenas de Fallback
|
||||
|
||||
Cada módulo define degradación vía `fallback_chain` en S-CONTRACT:
|
||||
|
||||
### Ejemplo OCR
|
||||
|
||||
```json
|
||||
"routing": {
|
||||
"module": "OCR_CORE",
|
||||
"fallback_chain": ["OCR_LOCAL", "OCR_GROQ", "OCR_OPENAI"]
|
||||
}
|
||||
```
|
||||
|
||||
### Ejemplo ASR
|
||||
|
||||
```json
|
||||
"routing": {
|
||||
"module": "ASR_ENGINE",
|
||||
"fallback_chain": ["ASR_WHISPER_LOCAL", "ASR_FASTER_WHISPER", "ASR_GROQ"]
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Integración con S-CONTRACT
|
||||
|
||||
Todos los módulos GRACE cumplen S-CONTRACT sin excepciones. No hay contratos específicos por módulo.
|
||||
|
||||
### Request (LITE)
|
||||
|
||||
```json
|
||||
{
|
||||
"contract_version": "2.1",
|
||||
"profile": "LITE",
|
||||
"envelope": {
|
||||
"trace_id": "uuid-v4",
|
||||
"idempotency_key": "sha256-input"
|
||||
},
|
||||
"routing": {
|
||||
"module": "CLASSIFIER"
|
||||
},
|
||||
"context": {
|
||||
"lang": "es",
|
||||
"mode": "strict"
|
||||
},
|
||||
"payload": {
|
||||
"type": "text",
|
||||
"encoding": "utf-8",
|
||||
"content": "Texto a procesar"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Response
|
||||
|
||||
```json
|
||||
{
|
||||
"contract_version": "2.1",
|
||||
"profile": "LITE",
|
||||
"status": {
|
||||
"code": "SUCCESS",
|
||||
"provider_used": "groq"
|
||||
},
|
||||
"result": {
|
||||
"data": {
|
||||
"category": "FINANZAS",
|
||||
"confidence": 0.98
|
||||
}
|
||||
},
|
||||
"quality": {
|
||||
"confidence": 0.98,
|
||||
"tokens_input": 150,
|
||||
"tokens_output": 45
|
||||
},
|
||||
"metadata": {
|
||||
"model_id": "llama-3.1-70b-versatile",
|
||||
"processing_ms": 340
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Relación con Otros Componentes
|
||||
|
||||
GRACE es un servicio de transformación. Cuando termina de procesar, envía el resultado a Secretaría (Clara/Margaret) como cualquier otro origen:
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ PUNTO DE ENTRADA ÚNICO │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ GRACE ──────┐ │
|
||||
│ Penny ──────┼──► Secretaría (Clara/Margaret) │
|
||||
│ Packet ─────┤ │
|
||||
│ Manual ─────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
GRACE no es un paso del flujo de datos. Es un servicio que cualquier componente puede invocar vía S-CONTRACT para obtener transformaciones cognitivas (OCR, transcripción, clasificación, etc.).
|
||||
|
||||
---
|
||||
|
||||
## Compatibilidad Universal
|
||||
|
||||
El sistema está diseñado para que cuando aparezcan módulos mejores, encajen sin trabajo añadido. S-CONTRACT es el marco de compatibilidad universal — cualquier módulo que lo cumpla es interoperable.
|
||||
4092
02_COMPONENTES/servicios externos/orchestratorv6.md
Normal file
4092
02_COMPONENTES/servicios externos/orchestratorv6.md
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user