Metadata-Version: 2.4
Name: catalog-bot-os
Version: 0.1.3
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 
Hola me presento soy andres xd sere breve quiero ayudar a mi bonita comunida de python con un "bot de busqueda para tu
base de datos", lo que busca este proyecto es hacerte un chatbot para que puedas añadirlo a tu repertorio y no tengas 
que codear mucho. Si te gusta agradeceria tus comentario de como mejorarlo, despues de todos es para todos nosotros xd.

¡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.
Simplemente ejecuta:

```bash
catalog-bot index
```

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

```bash
catalog-bot start-api
```

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.
