Metadata-Version: 2.4
Name: catalog-bot-os
Version: 0.1.1
Summary: Un Agente de IA local para catálogos SQL con Búsqueda Semántica
Home-page: https://github.com/AndresOwari/catalog-bot-os
Author: AndresOwari / Comunidad
Author-email: gabrielespejo83@gmail.com
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: typer==0.9.0
Requires-Dist: rich==13.7.0
Requires-Dist: sqlalchemy==2.0.25
Requires-Dist: pymysql==1.1.0
Requires-Dist: chromadb==0.4.22
Requires-Dist: numpy<2.0.0
Requires-Dist: fastapi
Requires-Dist: uvicorn
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# Catalog Bot OS 🤖

¡Bienvenido a **Catalog Bot OS**! Un orquestador de IA Open Source diseñado para conectar tu base de datos SQL con modelos de lenguaje natural (RAG) de forma 100% local, privada e inhackeable.

A diferencia de los frameworks pesados (como LangChain), este bot utiliza **ChromaDB** local para comprender sinónimos y consultas semánticas, conectándose directamente a tus tablas SQL sin exponerlas a inyecciones SQL.

## ⚠️ Prerrequisitos Importantes

Debido a que este paquete usa Inteligencia Artificial y matemáticas vectoriales (ChromaDB), **requiere estrictamente Python 3.10, 3.11 o 3.12**. 
*(Si usas Python 3.13 o superior en Windows te pedirá instalar los Build Tools de C++).*

Si no tienes la versión correcta en Windows, puedes instalar Python 3.12 fácilmente abriendo PowerShell como Administrador y ejecutando:
```powershell
winget install Python.Python.3.12
```

## 🚀 Instalación

Puedes instalar el bot directamente desde PyPI usando pip:

```bash
pip install catalog-bot-os
```

## 🛠️ Guía de Uso Paso a Paso

### 1. Inicialización
Ve a la carpeta de tu proyecto y ejecuta el siguiente comando para generar el archivo de configuración. El sistema te guiará para ingresar las credenciales de tu base de datos.

```bash
catalog-bot init
```

*Esto creará un archivo oculto `.catalog-bot.json` en tu carpeta.*

### 2. Mapeo de Tablas
Una vez configurado, el bot necesita escanear las columnas de tu base de datos para entender el esquema.

```bash
catalog-bot map-schema
```

*Esto generará un archivo `schema_memory.json` con la radiografía de tus tablas permitidas.*

### 3. Entrenamiento Semántico (RAG)
Para que el bot "entienda" sinónimos (por ejemplo, saber que buscar "bebida" puede traer "gaseosa"), debes entrenar la memoria vectorial.
Ejecuta el script de indexación en tu proyecto:

```bash
python semantic_indexer.py
```
*(Pronto este paso se integrará como `catalog-bot index`)*

### 4. Levantar la API
Levanta el servidor REST para conectar tu bot con cualquier Frontend (WhatsApp, React, etc.).

```bash
python api.py
```

Tu bot ahora estará escuchando peticiones en `http://localhost:8000/api/chat`. Puedes hacerle un POST con el siguiente JSON:

```json
{
  "mensaje": "busco zapatos"
}
```

## 🔒 Arquitectura de Seguridad
- **Cero Inyecciones:** Usa parámetros `text()` de SQLAlchemy (Principio de Menor Privilegio).
- **Enrutador Seguro:** Las peticiones maliciosas (ej. `DROP TABLE`) son bloqueadas antes de llegar a la base de datos.
- **RAG Local:** Los datos no salen hacia OpenAI. Todo se procesa con ChromaDB localmente.

## 🤝 Contribuciones
¡Los PRs son bienvenidos! Este proyecto fue diseñado buscando los fundamentos sólidos y la soberanía de datos.
