Bienvenido al Microservicio TinyLlama, un servicio RESTful basado en FastAPI que expone un modelo de lenguaje natural optimizado llamado TinyLlama. Este modelo está diseñado para ofrecer consultas SQL dinámicas utilizando lenguaje natural, con un bajo consumo de recursos de hardware gracias a su integración con Docker.
Este microservicio permite a partir de entradas en lenguaje natural y puede interactuar, para recuperar información.
- Optimización de Recursos: Utiliza Docker para ejecutar el modelo TinyLlama de manera eficiente en términos de recursos de hardware.
- Microservicio con FastAPI: Exposición de la funcionalidad como un microservicio RESTful, fácil de integrar con otros sistemas.
- 1. Entrada del Usuario: Se reciben consultas en lenguaje natural a través de la API REST.
- 2. Generación de Consultas: El modelo TinyLlama genera la respuesta correspondiente a partir de la consulta en lenguaje natural.
- 3. Respuesta al Usuario: Los resultados de la consulta se devuelven en formato amigable para el usuario.
https://github.com/LeoR22/microservices_ia.git
Seleccionar el proyecto : Moverse al directorio principal
cd microservices_ia
python3 -m venv venv
Para Linux/MacOS
source venv/bin/activate
En Windows:
venv\Scripts\activate
pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port 80 --reload
Si prefieres ejecutar el modelo en Docker, sigue estos pasos:
- Construir la Imagen Docker:
docker build -t nombre_imagen .
- Ejecutar el Contenedor Docker:
docker run --name nombre_contenedor -d -p 8080:80 nombre_imagen
Asegúrate de que el microservicio FastAPI esté corriendo antes de consumir el API:
http://127.0.0.1:8000/ai/chatbot/tinyllama
Escribe consultas en lenguaje natural, como:
- "Que es LLMs"
- "¿que es tinyllama?"
- "Capital de Colombia"
El chatbot generará respuestas, a tus multiples preguntas.
Estructura básica del proyecto:
tinyllama-microservicio/
│
├── api_v1/
│ ├── logic
| ├──tinyllama.py
│ ├── routes
| ├──tinyllama.py
| ├──api.py
| ├──events.py
├── img/
│ ├── Tinyllama.png
├── Dockerfile # Para la construcción del contenedor Docker
├── docs.py
├── requirements.txt # Dependencias del proyecto
├── main.py
└── README.md # Este archivo
FastAPI: Framework para crear la API RESTful. Uvicorn: Servidor ASGI para ejecutar FastAPI. Docker: Contenedor para ejecutar el modelo TinyLlama de manera eficiente. TinyLlama: El modelo de lenguaje natural que genera respuesta a tus consultas.
Si deseas contribuir a este proyecto, sigue estos pasos:
- Haz un fork del repositorio.
- Crea una nueva rama (
git checkout -b feature-nueva-funcionalidad
). - Realiza tus cambios y haz commit (
git commit -m 'Agrega nueva funcionalidad'
). - Sube los cambios a la rama (
git push origin feature-nueva-funcionalidad
). - Abre un Pull Request.
Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
Leandro Rivera: [email protected]
Si encuentras útil este proyecto, ¡dale una ⭐ en GitHub! 😊