Skip to content

eduardoddddddd/AstroCompendium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

🔭 AstroCompendium

Base de datos estructurada de conocimiento astrológico, sintetizada automáticamente desde transcripciones de YouTube mediante LLM, diseñada para consulta directa y para ser enchufada a software de cálculo astrológico.

Status Python Gemini SQLite


🎯 Visión del proyecto

AstroCompendium no es un buscador — es un destilador de conocimiento.

Donde AstroExtracto recupera fragmentos crudos de transcripción para una consulta concreta, AstroCompendium procesa el corpus entero una sola vez y extrae interpretaciones limpias, estructuradas y etiquetadas por entidad astrológica (planeta, casa, signo, aspecto), organizadas por astrólogo y tipo de técnica.

El resultado es una SQLite portátil que responde preguntas como:

  • "Dame todas las interpretaciones de Júpiter tránsito Casa 2 del corpus"
  • "¿Qué dicen tres astrólogos diferentes sobre Saturno natal en Escorpio?"
  • "Lista todos los aspectos Plutón-Sol natal interpretados en el corpus"

Y que puede ser consultada directamente desde cualquier software de cálculo astrológico o proyecto Python externo.


🔗 Relación con AstroExtracto

Proyecto hermano, no sustituto, de AstroExtracto. Reutiliza los VTTs y .info.json ya descargados — sin descargar nada nuevo.

AstroExtracto AstroCompendium
Técnica RAG semántico Destilación estructurada
LLM Qwen local (LM Studio) Gemini 1.5 Pro API
Output Fragmentos relevantes Interpretaciones limpias en BD
Consulta Semántica (pregunta libre) SQL (entidad astrológica)
Uso final Investigación ad-hoc Integración con software externo

🏗️ Pipeline

Corpus AstroExtracto (ya descargado)
  ├── *.info.json   ← título + descripción del vídeo
  └── *.vtt         ← transcripción completa

          │
          ▼
FASE 1 — CLASIFICACIÓN (Gemini lee solo metadatos)
  Input:  .info.json (título + descripción)
  ¿Es interpretación astrológica relevante?
  → NO: descarta (Shorts, off-topic, entrevistas)
  → SÍ: extrae entidades:
      tipo:     transito | natal | sinastria
      planeta:  Júpiter
      posicion: Casa 2 / Tauro / trine Sol
      keywords: [abundancia, recursos, valores]

          │
          ▼
FASE 2 — SÍNTESIS (Gemini lee el VTT completo)
  Input:  .vtt completo
  Output: interpretación limpia 300-500 palabras
  Elimina muletillas, ruido, relleno de vídeo

          │
          ▼
SQLite: astro_compendium.db
  tabla: interpretaciones
  planeta | posicion | tipo | astrologo
  sintesis | keywords | url | canal | fecha

          │
     ┌────┴────┐
     ▼         ▼
Gradio UI   SQL directo
(consulta)  (proyectos externos)

Clave del diseño: Los astrólogos de YouTube son muy descriptivos en títulos y descripciones. En la mayoría de casos el .info.json ya revela el tema del vídeo sin necesidad de leer la transcripción — Gemini clasifica y extrae entidades en Fase 1 con coste mínimo, y solo va al VTT completo para la síntesis en Fase 2.


🗄️ Esquema SQL

CREATE TABLE interpretaciones (
    id              INTEGER PRIMARY KEY AUTOINCREMENT,

    -- Entidad astrológica
    tipo            TEXT NOT NULL,   -- 'transito' | 'natal' | 'sinastria'
    planeta         TEXT,            -- 'Jupiter' | 'Saturno' | 'Sol' ...
    planeta2        TEXT,            -- segundo planeta en aspectos
    posicion        TEXT,            -- 'Casa 2' | 'Tauro' | 'conjuncion Sol'
    signo           TEXT,
    casa            INTEGER,
    aspecto         TEXT,            -- 'conjuncion' | 'cuadratura' | 'trigono'

    -- Síntesis
    sintesis        TEXT NOT NULL,   -- interpretación limpia generada por Gemini
    keywords        TEXT,            -- JSON array: ["abundancia","recursos"]

    -- Fuente
    astrologo       TEXT,
    canal           TEXT,
    url             TEXT,
    titulo_video    TEXT,
    fecha_video     TEXT,

    -- Control
    procesado_en    TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    modelo_llm      TEXT DEFAULT 'gemini-1.5-pro'
);

CREATE INDEX idx_planeta   ON interpretaciones(planeta);
CREATE INDEX idx_tipo      ON interpretaciones(tipo);
CREATE INDEX idx_casa      ON interpretaciones(casa);
CREATE INDEX idx_aspecto   ON interpretaciones(aspecto);
CREATE INDEX idx_astrologo ON interpretaciones(astrologo);

🤖 Decisiones de diseño

¿Por qué Gemini 1.5 Pro?

  • Contexto de 1M tokens — procesa un vídeo entero de una sola vez sin chunking
  • El usuario tiene suscripción Gemini Pro activa
  • Más barato que GPT-4o para volumen alto
  • Coste estimado para 500 vídeos: ~3-8€ (proceso único, no recurrente)

¿Por qué metadatos primero? Los títulos y descripciones de YouTube ya contienen la información astrológica clave. Gemini puede clasificar y extraer entidades leyendo solo el .info.json (Fase 1, barato), y solo consumir el VTT completo para la síntesis (Fase 2, más caro). Esto reduce coste total en ~60-70%.

¿Por qué SQLite y no vectorial? La consulta final es por entidad astrológica concreta (planeta + casa + tipo), no semántica. SQL es más preciso, portable y directo para integrar con software de cartas natales externo. La BD puede ser consultada por cualquier proyecto Python sin dependencias adicionales.

Curación manual de canales El usuario (con conocimiento profundo del ecosistema astrológico en castellano) selecciona qué canales merecen ser procesados. No todo YouTube — solo fuentes de calidad.


📋 Alcance de contenido

Técnica Prioridad Notas
Tránsitos ✅ Principal planeta tránsito × casa/planeta natal
Natales (planeta × signo × casa) ✅ Principal interpretación posicional
Aspectos natales ✅ Principal conjunción, cuadratura, trígono...
Sinastría 🔄 Secundario v2
Revolución Solar ❌ Fuera de alcance descartado en diseño inicial

🗺️ Roadmap

v1 — Pipeline básico

  • Exploración de .info.json reales del corpus para validar extracción
  • Script clasificar.py — Gemini lee metadatos → extrae entidades
  • Script sintetizar.py — Gemini lee VTT → genera síntesis limpia
  • schema.sql — definición de tablas e índices
  • Script insertar.py — vuelca resultados a SQLite
  • Interfaz Gradio básica de consulta

v2 — Calidad y escala

  • Deduplicación: mismo tema, mismo astrólogo → una sola entrada
  • Exportación JSON para integración con software de cartas
  • Procesado incremental: solo vídeos nuevos, no reprocesar
  • Sinastría

v3 — Integración externa

  • API REST local para consultas desde software astrológico
  • Formato de salida compatible con proyectos Python externos existentes

📁 Estructura prevista

AstroCompendium/
├── astro_compendium.py     ← app principal Gradio (consulta)
├── pipeline/
│   ├── clasificar.py       ← Fase 1: metadatos → entidades (Gemini)
│   ├── sintetizar.py       ← Fase 2: VTT → interpretación (Gemini)
│   └── insertar.py         ← inserción en SQLite
├── schema.sql              ← definición BD
├── requirements.txt
└── README.md

🔗 Dependencias del corpus

Requiere corpus previo de AstroExtracto:

C:/Users/Edu/Downloads/corpus_astro/
  NombreCanal/
    *.vtt          ← transcripciones limpias
    *.info.json    ← metadatos: título, descripción, url, canal, fecha

⚙️ Configuración prevista

CORPUS_PATH   = "C:/Users/Edu/Downloads/corpus_astro"
DB_PATH       = "C:/Users/Edu/Downloads/astro_compendium.db"
GEMINI_MODEL  = "gemini-1.5-pro"
GEMINI_KEY    = "..."   # variable de entorno GEMINI_API_KEY
COSTE_MAX_DIA = 5.0     # límite de gasto diario en euros (seguridad)

Proyecto concebido el 13 de marzo de 2026. Complemento de AstroExtracto — mismo corpus, destino diferente. Objetivo final: SQLite astrológica portable, multi-fuente, multi-astrólogo, enchufable a cualquier software de cálculo de carta natal.

About

Base SQLite de conocimiento astrológico estructurado, sintetizado desde transcripciones de YouTube con LLM y preparada para consulta técnica.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors