La librería de software GenericSuite

GenericSuite es una librería de software diseñada para el desarrollo de aplicaciones backend y frontend en Python y React.js, incluyendo funcionalidades de IA.

https://genericsuite.carlosjramirez.com/

 

¿Para qué sirve GenericSuite?

GenericSuite es un conjunto de utilidades frontend y backend creadas con ReactJS y Python para ayudar a desarrollar aplicaciones ágilmente.

Funciones:

  • Editor CRUD genérico: al tener un código central de creación-lectura-actualización-eliminación que se puede parametrizar y extender, no hay necesidad de reescribir el código para cada editor de tablas.
  • Menú genérico y generador de Endpoints.
  • Abstractor de base de datos: el backend puede utilizar DynamoDB o MongoDB como almacenamiento persistente. El acceso a DynamoDB se puede hacer mediante una sintaxis de estilo MongoDB.
  • Abstractor de Framework: para desarrollar Apps con FastAPI, Chalice o Flask indistintamente.

Click aqui para ver los Repositorios

 

GenericSuite para desarrollos de Inteligencia Artificial

GenericSuite AI es un conjunto de utilidades frontend y backend creadas con ReactJS y Python para ayudar a desarrollar aplicaciones que implementan AI.

Funciones:

  • Endpoint ai_chatbot para implementar conversaciones de NLP (Procesamiento de Lenguaje Natural) basadas en las API de OpenAI o Langchain.
  • Manejo de modelos OpenAI, Google Gemini, Anthropic, Ollama y Hugging Face.
  • Manipulación de modelos e incrustaciones Clarifai.
  • Visión artificial (OpenAI GPT4 Vision, Google Gemini Vision, Clarifai Vision).
  • Procesamiento de voz a texto (OpenAI Whisper, Clarifai Audio Models).
  • Procesamiento de texto a voz (OpenAI TTS-1, Clarifai Audio Models).
  • Generador de imágenes (OpenAI DALL-E 3, Google Gemini Image, Clarifai Image Models).
  • Indexadores vectoriales (FAISS, Chroma, Clarifai, Vectara, Weaviate, MongoDBAtlasVectorSearch)
  • Incrustadores (embeddings  de OpenAI, Hugging Face, Clarifai, Bedrock, Cohere y Ollama)
  • Herramienta de búsqueda web para los agentes de AI.
  • Herramienta de Web Scrapping y análisis de páginas web para los agentes de AI.
  • Lectores JSON, PDF, Git y YouTube.
  • Herramientas de traducción de idiomas para los agentes de AI.
  • Chats almacenados en la Base de Datos.
  • Atributos del plan de usuario, la clave API de OpenAI y el nombre del modelo en el perfil de usuario, para permitir que los usuarios del plan gratuito utilicen sus propios créditos de OpenAI.

Click aqui para ver los Repositorios

 

Un poco de Historia

Esta idea del editor CRUD genérico y los demás elementos generados con programación genérica a partir de configuraciones estructuradas lo aprendí a mediados de los años 80, trabajando para una empresa que ya manejaba esa idea utilizando los lenguajes y bases de datos de moda de la época (Clipper y dBase III), con las configuraciones generadas por un sistema llamado System Maker y almacenadas en la base de datos. Un concepto que -en mi opinión- estaba muy adelantado para su época.

En los años 1999 y 2000 hice mi propia versión del editor CRUD genérico en Microsoft ASP (Active Server Pages) para un CMS (Content Management System), algo como lo que se hace WordPress.

Durante la pandemia del año 2020, se me ocurrió crear una nueva App (FynApp) y comencé el desarrollo del editor genérico para frontend en React.js basado en Componentes de Clases, (más información aquí) y el backend en Python (más información aquí), con las configuraciones en estructuras especificadas en el mismo código.

A principio de 2023 comencé a convertir el editor genérico a React.js basado en Componentes Funcionales y Hooks, y las configuraciones en archivos JSON.

Durante la PyCon Colombia en junio de 2023, se me ocurrió la idea de llevar la programación genérica al backend, y desde ese momento comencé el desarrollo de los Helpers para manejar los CRUD y la generación automática de Endpoints y Menús desde las mismas configuraciones utilizadas por el editor CRUD genérico del frontend, en archivos JSON almacenadas en un repositorio común al frontend y backend.

La aparición de ChatGPT a finales de 2022 y todo el boom de la AI (Artificial Intelligence / Inteligencia Artificial) que eso desencadenó, me provocó mucha curiosidad y  ganas de incluir algo de eso en FynApp.

En julio de 2023 participé en el Google Vertex AI Hackathon de lablab.ai y eso me dio las ideas para crear FynBot: el asistente de inteligencia artificial para FynApp, basado en las API de OpenAI y posteriormente usando GPT Functions.

Entre agosto y noviembre de 2023 exploré e incluí la generación de imágenes y audio en el App.

En diciembre de 2023 decidí implementar la programación genérica utilizando las librerías de Langchain para Python, abrir la posibilidad de utilizar cualquier modelo LLM / NLP / Embeddings en mis desarrollos y no estar atado a un solo proveedor.

En febrero de 2024 comencé a extraer toda la programación genérica de FynApp y allí nació The GenericSuite. La primera versión se publicó a principio de marzo de 2024 y las librerías ya funcionales se publicaron en NPMJS y Pypi a principios de abril de 2024.

Click aqui para ver las Librerías

Esta es mi primera contribución a la comunidad Open Source.