AI meets API - would you chat with your backup server? (feedback wanted)

  • 5 November 2023
  • 8 comments
  • 144 views

Userlevel 5
Badge +4

I'm here to show you a little working proof of concept I put together during the Veeam 100 Summit in Prague last week. It's very much a work in progress, but I'm excited to share it with you.

(video and callout at the bottom for feedback)

 

Let's dive into the tech stuff and some notes on what we're using.

So, we're making use of the Veeam VBR Rest API, as you will know I am a fan of any API especially when it comes to Veeam.

 

The prototype is put together using Node.js. It's like the middleman between the frontend and my VBR server and OpenAI. (we're rocking the gpt-3.5-turbo-0613 model).

 

Although I'm thinking about going with a locally hosted model in the future, especially for sensitive backup server data. But for now, in this prototype and my lab setup, I'm good with this setup, nothing for me to worry about with the few machines I am protecting.

For this prototype, I've focused on Backup Jobs and Backup Sessions, and it chats with four VBR Rest API endpoints to make it happen.

  1. /api/v1/jobs - Grabs all the jobs.
  2. /api/v1/jobs/states - Fetches job states.
  3. /api/v1/jobs/${id}/start - Kicks off a job with a specific ID. Don't worry, the ID isn't hard-coded; the LLM figures out the job ID from the backup job info and sends it to this endpoint as needed.
  4. /api/v1/sessions - Retrieves backup sessions.

Of course, we've got big plans to expand on this, but this should give you a taste of what's possible when we blend real-time data from an API with the power of a Language Model.

 

Importantly, I am keen to hear from you wonderful people.

  • Would you use this sort of thing, and what types of data would you want to see?
  • what questions would you ask it?
  • Would you let this automate tasks? i.e start/stop jobs, modify jobs, create repositories?
  • Would you want it to generate anything for you? code? diagrams? 

 

No promises but good ideas below I might give integrate it and see how well it works.

 

 


8 comments

Userlevel 7
Badge +20

This is a great idea and sounds promising. I will watch this week and see about feedback.

Userlevel 7
Badge +17

Good stuff Ben! I will give this some thought & try & provide feedback on some ideas.

Userlevel 7
Badge +7

This is brilliant @benyoung My thougths:

  • Would you use this sort of thing, and what types of data would you want to see? 
    • Yes
  • what questions would you ask it?
    • ​​​​​​​More info on the VMS being backed up by a job. For example, ‘Can you tell me which VMs are being backed up by this particular job?’
    • Alternatively, ‘Is this VM being backed up by any particular job?’
    • ‘Can you tell me which job is going to be starting next?’
  • Would you let this automate tasks? i.e start/stop jobs, modify jobs, create repositories?
    • ​​​​​​​Possibly only to Start jobs. Unless only certain people are able to make changes to jobs and there is an audit trail available
  • Would you want it to generate anything for you? code? diagrams?
    • ​​​​​​​Perhaps CLI commands that can be used to automate jobs
    • A topology of what is connected to the VBR, as an example

Cheers, 

Dipen

Userlevel 5
Badge +4

This is brilliant @benyoung My thougths:

  • Would you use this sort of thing, and what types of data would you want to see? 
    • Yes
  • what questions would you ask it?
    • More info on the VMS being backed up by a job. For example, ‘Can you tell me which VMs are being backed up by this particular job?’
    • Alternatively, ‘Is this VM being backed up by any particular job?’
    • ‘Can you tell me which job is going to be starting next?’
  • Would you let this automate tasks? i.e start/stop jobs, modify jobs, create repositories?
    • ​​​​​​​Possibly only to Start jobs. Unless only certain people are able to make changes to jobs and there is an audit trail available
  • Would you want it to generate anything for you? code? diagrams?
    • ​​​​​​​Perhaps CLI commands that can be used to automate jobs
    • A topology of what is connected to the VBR, as an example

Cheers, 

Dipen

 

Great feedback thanks Dips! 

Userlevel 6
Badge +2

Great work!!!  I can’t wait to try this in my lab

Userlevel 7
Badge +8

Hi @benyoung,
 

a very interesting topic, which I also familiarized myself with at the beginning of the year. I started something similar with Powershell. The focus was not on automating tasks but on querying the status of the backup environment. I named the project Zoltan (inspired by the movie Big with Tom Hanks) ;) Initially, I also used Chat GPT based analysis, but I abandoned it because many people certainly don't want to give their "data treasures" to external.

Some of the questions Zoltan was able to answer:

  • when was the last successful backup for job
  • which hosts were protected in backup job on a specific date
  • what was the average job duration for job over the past 14 days
  • were there any suspicious backup sizes in job  over the past 14 days

A little demo 

 


I had also planned a diagram output, but had to freeze the "project" due to other priorities. Powershell is also not necessarily suitable for larger environments (at that time I could not yet query all desired information via the restapi interface), but I am happy to exchange ideas on the subject.

Another input: how about including the data from Veeam ONE?

Happy Friday!

Steve

Userlevel 7
Badge +6

Hi @benyoung,
 

a very interesting topic, which I also familiarized myself with at the beginning of the year. I started something similar with Powershell. The focus was not on automating tasks but on querying the status of the backup environment. I named the project Zoltan (inspired by the movie Big with Tom Hanks) ;) Initially, I also used Chat GPT based analysis, but I abandoned it because many people certainly don't want to give their "data treasures" to external.

Some of the questions Zoltan was able to answer:

  • when was the last successful backup for job
  • which hosts were protected in backup job on a specific date
  • what was the average job duration for job over the past 14 days
  • were there any suspicious backup sizes in job  over the past 14 days

A little demo 

 


I had also planned a diagram output, but had to freeze the "project" due to other priorities. Powershell is also not necessarily suitable for larger environments (at that time I could not yet query all desired information via the restapi interface), but I am happy to exchange ideas on the subject.

Another input: how about including the data from Veeam ONE?

Happy Friday!

Steve

Nice stuff, Steve!

At VeeamONE we have a prototype about this since June. A bot that can answer questions regarding any endpoint, and even from some reports.

If you have any questions on those endpoints, please let me know. I will share how to expose Reports to API (unsupported) soon.

Best regards

Userlevel 6
Badge +2

Great idea and awesome demo!!!  Thanks for sharing @benyoung 

Comment