Procesador de HTML multilingüe con LLMs que permite reescribir, resumir o traducir contenido HTML preservando su estructura. Soporta múltiples modelos de lenguaje como OpenAI GPT, Google Gemini y modelos locales.
- ✨ Procesamiento de HTML multilingüe (enfoque inicial: hebreo, RTL)
- 🔍 Extracción e inyección de texto preservando la estructura HTML
- 🤖 Integración con múltiples LLMs:
- OpenAI (GPT-4, GPT-3.5)
- Google Gemini
- Modelos locales (via API HTTP)
- 📦 Pipeline extensible y testeable
- 🛠️ CLI y API disponibles
- 🔄 Sistema robusto de reintentos y manejo de errores
- 💾 Sistema de caché para reducir costos de API
- 📊 Estadísticas detalladas de procesamiento y uso de tokens
- 📝 Logging configurable
- Python 3.11 o superior
- Claves de API para los servicios que desee utilizar:
- OpenAI API Key
- Google Gemini API Key
- URL del servidor local (opcional)
# Usando pip
pip install llm-html-processor
# Usando poetry
poetry add llm-html-processor
from llm_html_processor import process_html
from llm_html_processor.models import ProcessingOptions
# Ejemplo de HTML
html = """
<html>
<body>
<h1 dir="rtl">שלום עולם</h1>
<p dir="rtl">זהו מסמך לדוגמה</p>
</body>
</html>
"""
# Configurar opciones
options = ProcessingOptions(
task="paraphrase", # paraphrase, summarize, custom
language="he",
model="gpt-4o-mini", # gpt-4o-mini, gemini-pro, llama2
temperature=0.7,
preserve_html=True,
use_cache=True # Usar caché para reducir costos de API
)
# Procesar HTML
result = process_html(html, options)
print(result.html)
# Acceder a estadísticas
print(f"Tokens de entrada: {result.stats['total_tokens_in']}")
print(f"Tokens de salida: {result.stats['total_tokens_out']}")
print(f"Tiempo de procesamiento: {result.stats['processing_time']:.2f}s")
- Clonar el repositorio:
git clone https://github.com/drhiidden/llm-html-processor.git
cd llm-html-processor
- Crear y activar entorno virtual:
# Crear entorno
python -m venv venv
# Activar en Windows
.\\venv\\Scripts\\activate
# Activar en Linux/Mac
source venv/bin/activate
- Instalar dependencias de desarrollo:
poetry install --with dev
- Configurar pre-commit:
poetry run pre-commit install
- Ejecutar pruebas:
poetry run pytest
El proyecto soporta varias formas de configuración:
- Variables de entorno:
# OpenAI
export OPENAI_API_KEY="your-key-here"
# Google Gemini
export GOOGLE_API_KEY="your-key-here"
# Servidor local
export LOCAL_LLM_URL="http://localhost:11434"
# Logging
export LLM_LOG_LEVEL="DEBUG"
export LLM_LOG_FILE="logs/llm_processor.log"
- Archivo
.env
:
OPENAI_API_KEY=your-key-here
GOOGLE_API_KEY=your-key-here
LOCAL_LLM_URL=http://localhost:11434
LLM_LOG_LEVEL=INFO
El sistema de caché reduce costos de API evitando llamadas repetidas:
from llm_html_processor.llm.cache import global_cache
# Limpiar caché
global_cache.clear()
# Configurar tiempo de vida de caché (TTL)
global_cache.ttl = 3600 # 1 hora
# Desactivar caché para una llamada específica
result = process_html(html, options, use_cache=False)
from llm_html_processor import get_logger
from llm_html_processor.utils.logging import LogConfig, setup_logging
# Obtener logger predeterminado
logger = get_logger()
logger.info("Mensaje informativo")
# Configurar logger personalizado
custom_logger = setup_logging(
"mi_aplicacion",
LogConfig(level="DEBUG", log_file="logs/app.log")
)
Las contribuciones son bienvenidas. Por favor, sigue estos pasos:
- Fork el repositorio
- Crea una rama para tu feature (
git checkout -b feature/amazing-feature
) - Haz commit de tus cambios (
git commit -m 'Add amazing feature'
) - Push a la rama (
git push origin feature/amazing-feature
) - Abre un Pull Request
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
- OpenAI por su API GPT
- Google por Gemini
- Todos los contribuidores y usuarios