I tried to make ChatGPT a Microsoft Licensing Expert
With the advent of custom GPTs, many people have started feeding specific content into ChatGPT to create a more tailored experience to their domain of expertise.
We all know how disastrous it is trying to keep track of Microsoft licensing - there's an entire industry dedicated to it. Sometimes, even Microsoft employees themselves aren't sure of what the right rules are.
Maybe, just maybe - a custom ChatGPT can save us? Unclear yet, but below is my experience. Don't take my word for it though, give it a shot if you're interested (note: this requires that you have a ChatGPT plus subscription)
For background, I uploaded the Microsoft Licensing Terms (as of 11/1/23), specifically those for EA/EAS/SCE, into the 'Knowledge' section of the custom GPT. I also gave it some general instructions, essentially specifying that it should be very precise, and have easy to read formatting in its responses.
My attempt at a 'License GPT'⚙️
The Good:
In this scenario where I asked about options for using PowerBI, it does seem to pull specific text from the product terms. Furthermore, it's synthesizing the details in its own words:
- Right to Physical or Virtual OSE
- On-Prem or Azure
- Mentions >1 HW thread clause at the end
In this case, this is pretty useful.
The Bad:
ChatGPT has trouble with organizing page references with your uploaded knowledge.
Sometimes it includes them, other times it refuses to include them outright. Other times, if you paste the content into a new window, it will do these weird phantom footnotes formatted like this -【7†source】. Below is an example of an obstinate ChatGPT:
The Ugly:
Hallucination is probably still something to watch out for. When asking about copilot, it gave me pages that don't exist. God help us if MS makes their product terms 4,306 pages long!! 😂
Going more general
ChatGPT tends to do better when you work conversationally - give it a high level objective, then narrow down from there. It seems like a conversational tone about the structure of the document might help set context before diving into further questions.
Future Improvements 💡
Ultimately, we probably still have some work to do to make ChatGPT a certified Microsoft licensing expert. Microsoft licensing requires not only understanding license rules, but also being able to apply it in specific contexts of what your infrastructure is like.
It begs the question though, if in the future, maybe it will be easier to publish licensing rules in "machine readable" format? In that scenario, you could train an LLM on 'licensing YAML', and thus it's no longer a headache for users to figure out their licensing rules - their internal LicenseGPT compares all of the enterprises license configs, and then interprets the vendor's guidance to determine what is best.
SQL Server 'Licensing YAML':
license:
name: "Microsoft SQL Server Enterprise License"
version: "2023"
url: "https://www.microsoft.com/en-us/sql-server/sql-server-2023-licensing"
limitations:
liability: "to the extent provided by law, Microsoft is not liable for any damages arising from the use of SQL Server"
warranty: "limited, provided under the terms of the End User License Agreement (EULA)"
license-models:
per-core: "licensed based on the number of cores in the server"
server-plus-CAL: "licensed based on server access and individual user/device Client Access Licenses (CALs)"
additional-terms:
virtualization: "licensing covers virtual machine cores if all physical cores are licensed"
failover-rights: "additional passive failover instances are permitted without additional licenses"
multiplexing: "multiplexing hardware or software does not reduce the number of licenses required"
downgrade-rights: "downgrade rights are included to run previous versions of SQL Server"
compliance:
audits: "Microsoft reserves the right to audit at its discretion to ensure compliance with the licensing terms"
reporting: "licensee must report usage as per the agreement terms, typically annually"
support-and-maintenance:
software-assurance: "optional program providing upgrades, support, and additional services"
standard-support: "included with license purchase, terms as per EULA"
premium-support: "available for additional purchase, offers faster response times and extended support hours"