A Solution Engineer’s Journey into Programmability


Hi there! I´m a Solutions Engineer working with Collaboration and Customer Experience solutions, and one thing I’ve learned is “one size does not fit all.” To deliver the most impactful business outcomes, customers need digital solutions tailored to their unique needs. Thankfully we are surrounded by SaaS applications and powerful platforms that provide open APIs available to anyone with the skills to use them. In short, if you supply the motivation, the tools are there to embrace automation as the foundation for building custom use cases. This is how you can really differentiate in the marketplace, and bring value to our customers.

My interest in leveraging automation to integrate applications and optimize workflows was the trigger that started my journey into network programmability. I knew I wanted to start by connecting with a community of like-minded people who could help me get started. That’s when I found Cisco DevNet.

Getting started with a DevNet Learning Track

My first step was to learn the basics of APIs – how they work, what they are used for, how to test them, and how to integrate them into other applications. RESTful APIs are widely used in web development, allowing applications to interact with each other and exchange data in a standard and scalable manner. They provide a flexible and efficient way for different systems to communicate and integrate with each other.

To get familiar with APIs I started practicing with Learning Labs available in the Cisco DevNet developer portal. Because I’m a Solutions Engineer working with Collaboration solutions, I choose the Webex – Start Now – Learning Track. Follow this link to access this learning track and many others that can get you started. This Learning Track guided me to install all the required applications in my PC to start working with APIs and coding. It also gave me the tools I needed to start doing my first tests with coding and APIs.

Once I had some basics under my belt, my next step was to create a use case and start a “real” programmability project. I decided to integrate Webex with ChatGPT using the OpenAI APIs. The main building blocks to implement this project are:

  • Webex Bot
  • OpenAI APIs
  • Middleware that runs the bot logic

After I learned how to create a Webex bot, my next step was to get familiar with the OpenAI APIs. Anyone can create a free OpenAI account. (At the time of writing this blog, you get a free credit of $5.00 to use, which is enough to do some experimentation with their APIs.)

Getting the basics of Python

Next up, I needed to create my bot logic. Talking with my mentor, Julio Gomez, he shared with me a project that he did for a similar use case, and I was able to reuse his Phyton code. I had learned the basics of Phyton and how it works. Thus, I was able to adapt the Phyton code to use with my Webex bot and the OpenAI API that I had identified as the most appropriate for developing my Q&A bot based in the ChatGPT user experience.

To make it easier to adapt the code, I divided it into building blocks based on the different functions: receive a text message from the Webex Bot; process the message and send it to OpenAI APIs; receive the answer from the OpenAI; and finally send it back to the Webex Bot.

I faced another challenge

I was running the bot logic on my PC and I had to expose it to the internet. The Webex cloud platform requires your bot to be reachable from a publicly accessible endpoint. Using Webhooks, the Webex bot sends notifications as events to the endpoint that subscribed to the webwook, for every interaction between you and the bot.

For that purpose, I created an inbound tunnel between my local PC and the internet so that the port your bot is listening on becomes publicly accessible. Ngrok is a popular tool I used to create these tunnels. The Ngrok service creates a URL that can be used to access your application running in your local PC. This URL is then used to create a Webhook for your Webex bot to send notifications when someone interacts with it.

When I reached the point where I had a working application, I was ready to start my initial testing. I had to fine tune the code to obtain the desired outcome. In fact, it was as straight forward as changing a few parameters in the JSON payload, related to the OpenAI APIs. Here is the documentation of the OpenAI API that I used:

Finally, I was able to create a Q&A bot in Webex leveraging the LLM (Large Language Model) developed by OpenAI. The end users are then able to ask questions to ChatGPT from the Webex App, as if they were chatting in the native ChatGPT user interface.

The diagram below is a high-level architecture of what I built. You can see my project in this GitHub repository.

APIs have transformed the way we customize experiences and integrate applications. I am not a software developer, but I was able to achieve my goal, which was to build a Q&A Bot based on new technologies like ChatGPT. For me, working with APIs is like playing with Lego blocks. It’s fun!

My journey in programming continues

Then another thought came to my mind – Would I be able to create the bot with very little code, or even no code? I put myself into another challenge, which was to use an orchestration platform that leverages a low code / no code framework to create workflows and automation using APIs.

In fact, at Cisco we have our very own Low Code orchestration platform. It’s called Webex Connect and is one of the most recognized Communications Platform as a Service (CPaaS) in the market.

Webex Connect is a platform that empowers the creation of smart, proactive, and personalized interactions across digital channels such as WhatsApp, Apple Messages for Business, Google Business Messages, Facebook Messenger, Instagram, SMS, etc. It orchestrates customer journeys end-to-end by automating business processes.

I opened the drawing canvas of the application called Flow Designer and started building my Bot logic. It was as simple as dragging and dropping boxes, connecting them with arrows, and following the process. Again, like playing with Legos.
Using this platform is much simpler, because I didn’t have to deal with programming languages and coding for my use case. I just need to master the applications I wanted to connect, and learn how to use their APIs.

In a matter of a few hours I had my bot up and running. This time I integrated WhatsApp with ChatGPT. What took me a few days with Phyton was reduced to a few hours because I was dealing with APIs, webhooks, and parsing JSON payload data. Webex Connect (CPaaS) did its “magic” and executed the code behind the scenes which simplified the whole project.

Here is the final flow:

Marcio

Low code platforms like CPaaS can unlock the Art of Possible, with APIs to create delightful user experiences.

I hope this was helpful. And perhaps even made you curious to start your own journey into programmability. If so, Cisco DevNet is a great place to start.

Good luck!!

Related resources

 

 

Sign up for Cisco U. | Join the Cisco Learning Network.

Follow Cisco Learning & Certifications

Twitter | Facebook | LinkedIn | Instagram | YouTube

Use #CiscoU and #CiscoCert to join the conversation.

 

Read next:

Intern to DevNet Professional Certification: My Personal Journey

Share:





Source link