Celebrating One Year of Innovation: The Generic Suite Anniversary Release is Here!

Celebrating One Year of Innovation: The Generic Suite Anniversary Release is Here!

It’s been an incredible year since the first release of Generic Suite, and we’re celebrating this milestone with a feature-packed anniversary release. This update is a testament to our continuous effort to provide the most comprehensive and powerful tools for developers. Let’s dive into the exciting new features and improvements you’ll find in this release.

A Leap Forward in AI-Powered Development

The world of software development is rapidly evolving with the integration of Artificial Intelligence, and Generic Suite is at the forefront of this transformation. In this release, we’ve significantly enhanced our AI capabilities:

  • Multimedia Generation: The GenericSuite App Maker (GSAM) now includes image and video generation capabilities, allowing you to create richer and more engaging applications.
  • Expanded AI Provider Support: We’ve broadened our support for AI providers in the GenericSuite Backend AI. You can now leverage the power of models from Together AI, xAI (Grok), IBM WatsonX, and Nvidia, giving you more choices and flexibility in your AI-powered projects.
  • Ollama Integration: For those who prefer to run large language models locally, we’ve implemented support for Ollama in both GSAM and our GitOps, providing more control and privacy.

Introducing the Agentic Software Development Team (ASDT)

Perhaps the most groundbreaking feature of this release is the introduction of the GenericSuite Agentic Software Development Team (ASDT).

This is not just a tool, but a team of AI agents that collaborate to automate the entire software development lifecycle.The ASDT can handle tasks from generating ideas and planning to writing and testing code. This will dramatically accelerate development cycles and free up developers to focus on more strategic tasks.

Streamlined Development and Deployment

We’ve also made significant improvements to our core infrastructure to make your development and deployment processes smoother and more secure:

This anniversary release is a major step forward for Generic Suite. We’re incredibly proud of what we’ve accomplished in the past year, and we’re even more excited about the future. We believe these new features will empower developers to build amazing things, and we can’t wait to see what you create.

Read more about these features and improvements in the release notes.

GenericSuite Logo
GenericSuite Oct 7th 2024 release featuring DynamoDB Flux.1 Claude 3.5 Sonnet Groq Amazon Bedrock

GenericSuite Oct 7th 2024 release featuring DynamoDB Flux.1 Claude 3.5 Sonnet Groq Amazon Bedrock

October 7th, 2024, marks a milestone with the release of the latest version of GenericSuite, an advanced software library designed for both backend and frontend app development using Python and React.js. This update brings a variety of enhancements and new features that promise to increase efficiency and boost developers’ workflows: DynamoDB, Flux.1, Claude 3.5 Sonnet, Groq, and Amazon Bedrock

Discover What's New in GenericSuite: Enhance Your Development with New Features

Among the highlights is the addition of DynamoDB abstraction, Flux.1, Groq, Amazon Bedrock interfaces, Claude 3.5 Sonnet, 100% #Tailwind, dark mode and a configurable sidebar menu, allowing for a more personalized user experience. We’ve also introduced the “GsIcons” library, replacing FontAwesome, to offer a more modern and coherent aesthetic.

In the frontend realm, we’ve fully embraced Tailwind CSS, eliminating the dependency on react-bootstrap, which optimizes performance and user interface customization. Additionally, significant improvements have been made to chatbot responsiveness, ensuring smoother and more effective interactions.

On the backend, DynamoDb database abstraction capabilities have been enhanced, and new AI functionalities have been introduced, including image generators and advanced chat models: Flux.1 image generator, Groq and Amazon Bedrock platform interfaces, and the most recent Claude 3.5 Sonnet model implementation.

GenericSuite continues to evolve, providing tools that facilitate agile and effective application development, adapting to the ever-changing needs of the tech market. Explore all the new capabilities and transform your application development approach today.

Documentation: https://genericsuite.carlosjramirez.com

 

Repositories and packages

GenericSuite Logo

The GenericSuite software library

The GenericSuite software library

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/

 

What is the GenericSuite for?

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

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.

 

FynApp: an App to achieve Calorie Deficit

FynApp: an App to achieve Calorie Deficit

FynApp: an App to achieve Calorie Deficit

FynApp is nutrition in your pocket. An App to achieve Calorie Deficit, weight loss goals and maintain a better lifestyle, based on proper nutrition.

Technical Specs

Frontend: has the remarkable Generic CRUD Editor [GCE], a React component to help develop back-office apps faster.

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.

I did before in other programming languages over the years, like Microsoft ASP in the early Y20K.

The intention is to transform it into an NPM package.

Backend: can use DynamoDB or MongoDB as the persistent storage.

Some software design patterns have been used, like factory method, facade, iterator, template method, decorator.

The most remarkable thing about it was to implement DynamoDB access by a MongoDB-styled syntax.

Gitops/Devops: scripts and configurations necessary to carry out deployments on different platforms (local development servers and VPS), with orchestration technologies such as Kubernetes, artifacts & repository management with Jfrog, Docker, Gitlab, and Gitlab Runners

Tools

This application was built using:

 

Frontend

Backend

  • Python 3, Chalice, JWT
  • MongoDB Atlas, AWS DynamoDB
  • GenericSuite

GitOps / DevOps

  • AWS
  • Kubernetes, Docker
  • Github
  • Jfrog
  • Linux, Bash

Mobile (about to come)

  • Flutter

Live Demo

🔗 Link to the live Demo:

https://app-demo.fynapp.com/

Generation of a Rust program and a Telegram BOT with ChatGPT

Generation of a Rust program and a Telegram BOT with ChatGPT

In this article I share my experience generating a Rust program  and a Telegram BOT with ChatGPT.

I ended my 2022 the way it should be: coding and learning.

In this last year week I decided to try ChatGPT’s much-vaunted AI  to learn how to program some of the resolutions I set for 2023, for example: Rust and a BOT for Telegram.

What is ChatGPT?

AI” is an acronym  for Artificial Intelligence  .

ChatGPT is an Artificial Intelligence developed by OpenAI that has caused a stir since November 30, 2022 for the maturity of its ML (Machine Learning) models: GPT-3, which performs a variety of natural language tasks, Codex, which translates natural language into programming code, and DALL· E, which creates and edits original images.

OpenAI’s goal is to develop and promote safe and “friendly” AI. American entrepreneur Sam Altman (former president of startup accelerator Y Combinator) co-founded OpenAI in 2015 with Elon Musk, who left the project in 2020. Sam Altman serves as CEO of the San Francisco-based company.

ChatGPT is not the first, nor the only, nor the most advanced AI. Its merit lies in putting it in the hands of the general public free of charge, albeit limited, as an opener of the revolution that is coming upon us.

Generating a Rust Language Program with ChatGPT

When trying to make an API in Rust for handling a table of users in a MongoDB database, the result was a bit frustrating.

I built almost the entire API with ChatGPT. The result was good for encouraging me to learn Rust, but the program generated from the query to ChatGPT didn’t work.

I asked him for a complete program that implements CRUD (Create, Read, Update and Delete) operations on a table of users in MongoDB from Rust, with each operation in a separate function and the main function all in a single .rs file

I had to do this little by little so that I could put all the parts together.

Then I asked to implement an API in Rust that handles a user table in MongoDB with Endpoints for all CRUD operations and that follows the REST style, and that can be called by Ajax in Javascript.

He did it for an old version of the MongoDb dependency for Rust, he didn’t give me the configuration of the Cargo.toml file  (especially the necessary features for the serde), he didn’t include the ‘uses‘ of all the necessary elements (for example, for ‘tokyo‘), he didn’t include the structs for the Form and Query in the ‘warps‘ that define Endpoints, among many other things.

I spent hours trying to fix it so that it was an MVP (minimum viable product) and in the end I got stuck at the end of the Endpoint to query a document in the MongoDb database.

I understood something important: for a highly typed programming language, which could be the substitute for C Language, it is not advisable to try to learn in the Learning-by-Example style, in my case it is necessary to take some course, and then put it into Rust.

Generation of a Telegram BOT in Python Language with ChatGPT

Here I did get a very satisfactory result for two reasons: I already knew how to program in Python and a few years ago I tried to do this work in PHP (more or less in 2018, based on this repo by Eleirbag89 and this article by Stackoverflow on how to get price from bitcoin to USD with PHP api) and somehow I already knew how to start the development of the BOT,  although some minor things changed over time.

According to Wikipedia, a BOT is a computer program that automatically performs repetitive tasks over the Internet through a chain of commands or previous autonomous functions to assign an established role; and that has the ability to interact, changing state to respond to a stimulus.

Initially, the project had the objective of giving the quotes of Bitcoin and then having a mechanism to warn when the cryptocurrency reached a specific minimum value, sending an alert through the same Telegram.

What I liked about this exercise was that a project dormant for 4 years, to which I had invested many hours of work to finally put it aside (and I even lost the source code due to several moves from one country to another, changing computers and not putting it in a Github repository) to be able to develop it from scratch in 21 hours (2 days of work practically).

The end result can be summed up in these elements:

Github repository:

hatps://github.com/tomkat-cr/market_alert_from

Telegram BOT URL:

https://t.me/ocr_marketalert_bot

And the Telegram BOT looks like this:

A screenshot of a computer

Description automatically generated

ChatGPT Conversation Tips

Little by little I’ve become friends with this AI…

The conversation was in Spanish entirely and ChatGPT speaks it very well.

Initially, I asked him for an overview of the development.

Since the free version of ChatGPT has limitations on the size of the responses, I gradually ask it for the rest of the things that are cut.

When you are asked for code in a specific programming language, at the end or at some point you should also be asked for configuration files, installation procedures, among other things, to avoid – for example – dependency version conflicts.

The other thing is that I initially asked him to give me the procedure to put the BOT to work in Vercel’s free service, and so far I have not been able to get it to work. I gave up and had to put a question on StackOverflow to see if anyone would help me fix a problem with port forwarding between the BOT in Python and the Vercel Serverless instance.

In the end it was a good experience (there is no bad thing that does not come with good), because I learned the two working modes of the Telegram BOTs, the Polling and the WebHook, I learned how to deploy applications in Fly.io, and most importantly: feeling blocked, minimized, defeated by not being able to deploy in Vercel, in a matter of hours I looked for a viable solution with something new,  even if that means investing time in learning and learning and learning more! The same thing happened to me when Heroku ended its free tier and I had to move the backend from FynApp to Vercel and frontend to Github Pages.

CONCLUSION

It was a very interesting and enriching experience. Definitely, the initial creative development process is streamlined and he challenged me to finish it in record time.

However, I’m still not going to lose my job by being replaced by an AI.

This is missing quite a bit. In the meantime, let’s learn how to develop Artificial Intelligence and Machine Learning.

Here are two interesting articles:

  1. How to program Artificial Intelligence? [5 languages]
  2. 12 Steps to Applied Artificial Intelligence

The best of all was the corrections my mom made minutes before the 2022 new year eve when I shown her this Post. It was something beautiful and unexpected, in addition to her being hired to do the review of all the Posts for my Personal Branding project.