
Laboratorio de investigación de seguridad autorizado que reproduce CVE-2026-27941 (solicitud de pwn en flujos de trabajo de pull_request_target) — instantánea de openlit/openlit
Artefacto de investigación automatizado — no es el proyecto original.
Este repositorio es un laboratorio desechable construido por un sistema automatizado para una tesis de maestría en la Université Laval sobre la reproducción de vulnerabilidades publicadas en flujos de trabajo de GitHub Actions. Es una instantánea verbatim de
openlit/openliten el commit8529a7746ce2cae946bd2346cb3792c22f86cbee(2026-02-24), redistribuida bajo la licencia de ese mismo proyecto, cuyo archivo se incluye sin cambios en esta instantánea.El proyecto original no está involucrado, nunca es el objetivo, y la vulnerabilidad estudiada aquí ya es pública. Cada secreto y variable en este repositorio es un valor ficticio generado aleatoriamente — no hay ninguna credencial real presente. Las referencias de acciones e imágenes de runners están fijadas a lo que resolvieron el 2026-02-24; consulta
pinning.mden la salida del sistema para cada cambio realizado en la instantánea.Preguntas u objeciones: [email protected]
❤️ Patrocina este proyecto ❤️
OpenLIT te permite simplificar tu flujo de trabajo de desarrollo de IA, especialmente para IA Generativa y LLMs. Agiliza tareas esenciales como experimentar con LLMs, organizar y versionar prompts, y gestionar claves API de forma segura. Con solo una línea de código, puedes habilitar la observabilidad nativa de OpenTelemetry, ofreciendo un monitoreo de pila completa que incluye LLMs, bases de datos vectoriales y GPUs. Esto permite a los desarrolladores crear funciones y aplicaciones de IA con confianza, pasando sin problemas de las pruebas a la producción.
Este proyecto sigue y mantiene orgullosamente las Convenciones Semánticas con la comunidad de OpenTelemetry, actualizándose constantemente para alinearse con los últimos estándares en Observabilidad.

📈 Panel de Análisis: Supervisa la salud y el rendimiento de tu aplicación de IA con paneles detallados que rastrean métricas, costos e interacciones de usuarios, proporcionando una visión clara de la eficiencia general.
🔌 SDKs de Observabilidad nativos de OpenTelemetry: SDKs independientes del proveedor para enviar trazas y métricas a tus herramientas de observabilidad existentes.
💲 Seguimiento de Costos para Modelos Personalizados y Ajustados Finamente: Adapta las estimaciones de costos para modelos específicos usando archivos de precios personalizados para una presupuestación precisa.
🐛 Panel de Monitoreo de Excepciones: Detecta y resuelve rápidamente problemas rastreando excepciones y errores comunes con un panel de monitoreo dedicado.
💭 Gestión de Prompts: Gestiona y versiona prompts usando Prompt Hub para un acceso consistente y fácil en todas las aplicaciones.
🔑 Gestión de Claves API y Secretos: Maneja de forma segura tus claves API y secretos de manera centralizada, evitando prácticas inseguras.
🎮 Experimenta con diferentes LLMs: Usa OpenGround para explorar, probar y comparar varios LLMs lado a lado.
🚀 Fleet Hub para Gestión OpAMP: Gestiona y supervisa de forma centralizada los OpenTelemetry Collectors en tu infraestructura usando el protocolo OpAMP (Open Agent Management Protocol) con comunicación TLS segura.
flowchart TB; subgraph " " direction LR; subgraph " " direction LR; OpenLIT_SDK[OpenLIT SDK] -->|Sends Traces & Metrics| OTC[OpenTelemetry Collector]; OTC -->|Stores Data| ClickHouseDB[ClickHouse]; end subgraph " " direction RL; OpenLIT_UI[OpenLIT] -->|Pulls Data| ClickHouseDB; end end
### Paso 1: Desplegar la pila OpenLIT
1. Clonar el repositorio de OpenLIT con Git
Abre tu línea de comandos o terminal y ejecuta: ```shell
git clone [email protected]:openlit/openlit.git
Autoalojamiento con Docker
Implementa y ejecuta OpenLIT con el siguiente comando: ```shell docker compose up -d
Para obtener instrucciones sobre la instalación en Kubernetes mediante Helm, consulta la guía de instalación de Kubernetes con Helm.
Abre tu línea de comandos o terminal y ejecuta:```bash pip install openlit
> Para instrucciones sobre el uso del SDK de TypeScript, visita la [guía de instalación del SDK de TypeScript](https://github.com/openlit/openlit/tree/main/sdk/typescript#-installation).
### Paso 3: Inicializa OpenLIT en tu aplicación
Integra OpenLIT en tus aplicaciones de IA añadiendo las siguientes líneas a tu código.```python
import openlit
openlit.init()
Configura el destino de los datos de telemetría de la siguiente manera:
| Propósito | Parámetro/Variable de Entorno | Para Enviar a OpenLIT |
|---|---|---|
| Enviar datos a un endpoint OTLP HTTP | otlp_endpoint o OTEL_EXPORTER_OTLP_ENDPOINT | "http://127.0.0.1:4318" |
| Autenticar backends de telemetría | otlp_headers o OTEL_EXPORTER_OTLP_HEADERS | No requerido por defecto |
💡 Información: Si no se proporciona
otlp_endpointoOTEL_EXPORTER_OTLP_ENDPOINT, el SDK de OpenLIT enviará los traces directamente a tu consola, lo cual se recomienda durante la fase de desarrollo.
Añade las siguientes dos líneas al código de tu aplicación: ```python import openlit
openlit.init( otlp_endpoint="http://127.0.0.1:4318", )
</details>
---
<details>
---
<summary>Inicializar usando variables de entorno</summary>
Añade las siguientes dos líneas al código de tu aplicación: ```python
import openlit
openlit.init()
Entonces, configura tu endpoint OTLP usando la variable de entorno: ```env export OTEL_EXPORTER_OTLP_ENDPOINT = "http://127.0.0.1:4318"
</details>
---
### Paso 4: Visualizar y Optimizar
Con los datos de Observabilidad ahora recopilados y enviados a OpenLIT, el siguiente paso es visualizar y analizar estos datos para obtener información sobre el rendimiento y comportamiento de tu aplicación de IA, e identificar áreas de mejora.
Simplemente dirígete a OpenLIT en `127.0.0.1:3000` en tu navegador para comenzar a explorar. Puedes iniciar sesión usando las credenciales predeterminadas:
- **Correo electrónico**: `[email protected]`
- **Contraseña**: `openlituser`


## 📦 Integraciones Compatibles
OpenLIT auto-instrumenta **más de 44 proveedores de LLM, frameworks de IA y bases de datos vectoriales** con una sola línea de código. Cada integración produce trazas y métricas [nativas de OpenTelemetry](https://opentelemetry.io/). Haz clic en cualquier tarjeta para ver la documentación de la integración.
<sub>
<img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="16"> SDK de Python
<img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="16"> SDK de TypeScript
</sub>
### Proveedores de LLM
<table>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/openai"><b>OpenAI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/anthropic"><b>Anthropic</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/cohere"><b>Cohere</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/mistral"><b>Mistral AI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
</tr>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/groq"><b>Groq</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/google-ai-studio"><b>Google AI Studio</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/together"><b>Together AI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/ollama"><b>Ollama</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
</tr>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/bedrock"><b>AWS Bedrock</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/azure-ai-inference"><b>Azure AI Inference</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/vertexai"><b>Vertex AI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/vllm"><b>vLLM</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/reka"><b>Reka</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/litellm"><b>LiteLLM</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/huggingface"><b>Hugging Face</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/ai21"><b>AI21</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/gpt4all"><b>GPT4All</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/premai"><b>PremAI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/sarvam"><b>Sarvam AI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/julep-ai"><b>Julep</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/multion"><b>MultiOn</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
</table>
### Frameworks de IA
<table>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/langchain"><b>LangChain</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/llama-index"><b>LlamaIndex</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/crewai"><b>CrewAI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/pydantic"><b>Pydantic AI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/phidata"><b>Agno</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/browser-use"><b>Browser Use</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/haystack"><b>Haystack</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/letta"><b>Letta</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/mem0"><b>Mem0</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/ag2"><b>AG2 (AutoGen)</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/controlflow"><b>Controlflow</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/crawl4ai"><b>Crawl4AI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/dynamiq"><b>Dynamiq</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/openai-agents"><b>OpenAI Agents</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/firecrawl"><b>Firecrawl</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
</table>
### Bases de Datos Vectoriales
<table>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/pinecone"><b>Pinecone</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/chromadb"><b>ChromaDB</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/qdrant"><b>Qdrant</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/milvus"><b>Milvus</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/astradb"><b>Astra DB</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/psycopg"><b>PostgreSQL</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
</table>
### Herramientas Especializadas
<table>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/elevenlabs"><b>ElevenLabs</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/assemblyai"><b>AssemblyAI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
</table>
## 🛣️ Hoja de Ruta
Estamos dedicados a mejorar continuamente OpenLIT. Aquí tienes un vistazo de lo que se ha logrado y lo que está por venir:
| Característica | Estado |
| --------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| [SDK de Observabilidad nativo de OpenTelemetry para Trazas y Métricas](https://github.com/openlit/openlit/tree/text-upgrade/sdk/python) | ✅ Completado |
| [Monitoreo de GPU nativo de OpenTelemetry](https://docs.openlit.io/latest/features/gpu) | ✅ Completado |
| [Monitoreo de Excepciones y Errores](https://docs.openlit.io/latest/features/exceptions) | ✅ Completado |
| [Prompt Hub para Gestionar y Versionar Prompts](https://docs.openlit.io/latest/features/prompt-hub) | ✅ Completado |
| [OpenGround para Probar y Comparar LLMs](https://docs.openlit.io/latest/features/openground) | ✅ Completado |
| [Vault para la Gestión Central de Claves API y Secretos de LLM](https://docs.openlit.io/latest/features/vault) | ✅ Completado |
| [Seguimiento de Costos para Modelos Personalizados](https://docs.openlit.io/latest/features/pricing) | ✅ Completado |
| [Implementación de Guardrails en Tiempo Real](https://docs.openlit.io/latest/features/guardrails) | ✅ Completado |
| [Evaluación Programática para Respuestas de LLM](https://docs.openlit.io/latest/features/evaluations) | ✅ Completado |
| [Fleet Hub para Gestión OpAMP](https://docs.openlit.io/latest/openlit/observability/fleet-hub) | ✅ Completado |
| [Métricas de Auto-Evaluación Basadas en el Uso](https://github.com/openlit/openlit/issues/470) | 🔜 Próximamente |
| [Retroalimentación Humana para Eventos de LLM](https://github.com/openlit/openlit/issues/471) | 🔜 Próximamente |
| [Generación de Conjuntos de Datos Basada en Eventos de LLM](https://github.com/openlit/openlit/issues/472) | 🔜 Próximamente |
| [Búsqueda sobre Trazas]() | 🔜 Próximamente |
## 🌱 Contribuciones
Ya sea grande o pequeña, nos encantan las contribuciones 💚. Consulta nuestra [guía de contribución](https://github.com/pvharmo2/gha-lab-6c3094af9e/blob/main/CONTRIBUTING.md) para comenzar
¿No sabes por dónde empezar? Aquí tienes algunas formas de involucrarte:
- Únete a nuestra comunidad en [Slack](https://join.slack.com/t/openlit/shared_invite/zt-2etnfttwg-TjP_7BZXfYg84oAukY8QRQ) o [Discord](https://discord.gg/rjvTm6zd) para discutir ideas, compartir comentarios y conectar tanto con nuestro equipo como con la comunidad más amplia de OpenLIT.
Tu aporte nos ayuda a crecer y mejorar, y estamos aquí para apoyarte en cada paso del camino.
[](https://www.producthunt.com/posts/openlit?embed=true&utm_source=badge-featured&utm_medium=badge&utm_souce=badge-openlit)
<a href="https://fazier.com/launches/openlit-2" target="_blank" rel="noopener noreferrer"><img src="https://fazier.com/api/v1/public/badges/embed_image.svg?launch_id=779&badge_type=daily" width="270" alt="Example Image" class="d-inline-block mt-3 p-3 rounded img-fluid" /></a>
## 💚 Comunidad y Soporte
Conéctate con la comunidad y los mantenedores de OpenLIT para soporte, discusiones y actualizaciones:
- 🌟 Si te gusta, deja una estrella en nuestro [GitHub](https://github.com/openlit/openlit/).
- 🌍 Únete a nuestra comunidad en [Slack](https://join.slack.com/t/openlit/shared_invite/zt-2etnfttwg-TjP_7BZXfYg84oAukY8QRQ) o [Discord](https://discord.gg/CQnXwNT3) para interacciones y preguntas en vivo.
- 🐞 Reporta errores en nuestros [GitHub Issues](https://github.com/openlit/openlit/issues) para ayudarnos a mejorar OpenLIT.
- 𝕏 Síguenos en [X](https://twitter.com/openlit_io) para las últimas actualizaciones y noticias.
## Licencia
OpenLIT está disponible bajo la [licencia Apache-2.0](https://github.com/pvharmo2/gha-lab-6c3094af9e/blob/main/LICENSE).
## 🙇♂️ Agradecimientos
<p>Este proyecto cuenta con el orgulloso apoyo de:</p>
<p>
<a href="https://www.testmuai.com/?utm_medium=sponsor&utm_source=openlit" target="_blank">
<img src="https://assets.kitploit.com/production/public/readmes/54232/59e406ce9676e24c2e228a1804d1810579038817584ead02e904e630264533c7/3ca662f501e7be9fcc4af3ff06d2755ca0712b463591ada282d81325365618bb-display-v1.webp" style={{ verticalAlign: 'middle' }} height="80" />
</a>
<a href="https://www.digitalocean.com/">
<img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg" height="80px" width="200px">
</a>
</p>