The GenericSuite software library
GenericSuite is a comprehensive software library designed for backend and frontend App development in Python and React.js, including AI features.
https://genericsuite.carlosjramirez.com/
The GenericSuite is a frontend and backend set of utilities made with ReactJS and Python to help develop Apps faster.
Features:
- Generic CRUD database and endpoints: by having a core Create-Read-Update-Delete code that can be parametrized & extended, there’s no need to rewrite code for each table editor.
- Generic menu and endpoints builder.
- Database abstractor: The backend can use DynamoDB or MongoDB as the persistent storage, and some software design patterns have been used there (factory method, facade, iterator, template method, decorator). The most remarkable thing about it was to implement DynamoDB access by a MongoDB-styled syntax.
- Framework abstractor: to develop Apps with FastAPI, Chalice or Flask seamlessly.
Click here to check the Repositories
The GenericSuite AI is a frontend and backend set of utilities made with ReactJS and Python to help develop Apps that implements AI.
Features:
ai_chatbot
endpoint to implement NLP conversations based on OpenAI or Langchain APIs.- OpenAI, Google Gemini, Anthropic, Ollama, and Hugging Face models handling.
- Clarifai models and embeddings handling.
- Computer vision (OpenAI GPT4 Vision, Google Gemini Vision, Clarifai Vision).
- Speech-to-text processing (OpenAI Whisper, Clarifai Audio Models).
- Text-to-speech (OpenAI TTS-1, Clarifai Audio Models).
- Image generator (OpenAI DALL-E 3, Google Gemini Image, Clarifai Image Models).
- Vector indexers (FAISS, Chroma, Clarifai, Vectara, Weaviate, MongoDBAtlasVectorSearch)
- Embedders (OpenAI, Hugging Face, Clarifai, Bedrock, Cohere, Ollama)
- Web search tool.
- Webpage scrapping and analyzing tool.
- JSON, PDF, Git and YouTube readers.
- Language translation tools.
- Chats stored in the Database.
- User Plan, OpenAI API key and model name attributes in the user profile, to allow free plan users to use Models at their own expenses.
Click here to check the Repositories
History
I learned this idea of the generic CRUD editor and the other elements generated with generic programming from structured configurations in the mid-80s, working for a company that already handled this idea using the fashionable languages and databases of the time (Clipper and dBase III), with the configurations generated by a system called System Maker and stored in the database. A concept that, in my opinion, was way ahead of its time.
In 1999 and 2000 I made my own version of the generic CRUD editor in Microsoft ASP (Active Server Pages) for a CMS (Content Management System), something like what WordPress does.
During the pandemic of 2020, I came up with the idea of creating a new App (FynApp) and started the development of the generic editor for frontend in React.js based on Class Components, (more information here) and the backend in Python (more information here), with the configurations in structures specified in the same code.
At the beginning of 2023 I started converting the generic editor to React.js based on Functional Components and the configurations in JSON files.
During PyCon Colombia in June 2023, I had the idea of bringing generic programming to the backend. I started to code the CRUD handlers and the Menu and Endpoints automatic generation from the same configurations used by the frontend generic CRUD editor, using JSON files stored in a repository common to both frontend and backend.
The appearance of ChatGPT at the end of 2022 and the AI (Artificial Intelligence) boom, made me very curious and eager to include some of that in FynApp.
In July 2023 I participated in the lablab.ai Google Vertex AI Hackathon and that gave me the ideas to create FynBot: the artificial intelligence assistant for FynApp, based on OpenAI APIs and later GPT Functions.
Between August and November 2023 I explored and included AI image and audio generation in the App.
In December 2023 I decided to implement generic programming using Langchain for Python, to use any LLM / NLP / Embeddings models and avoid being tied to a single AI provider.
In February 2024 I started extracting all the generic programming from FynApp and there The GenericSuite was born. The first version was published at the beginning of March 2024 and the ready betty libraries were published in NPMJS and Pypi at the beginning of April 2024.
Click here to check the NPM / Pypi Libraries
This is my first contribution to the open source community.