Back in the 1990’s I was the performance expert of last resort for Sun Microsystems, I’d written the book Sun Performance Tuning, and people sent me a lot of questions. Then I went on vacation to Australia for a few weeks and was offline. When I came back I had a big backlog of email requests. I’d already started to codify the most common problems into a set of rules and I wrote a tool using the SE Toolkit that people could run on their Sun machines, called virtual_adrian.se. It was provided freely as a script anyone could read, and the rules ended up being included in several commercial products, meeting my goal of making Sun’s Solaris operating system easier to manage. My tool wasn’t an official Sun product, and I included some very opinionated and idiosyncratic output to make it clear that it was a personal product. Since I had recently been to Australia, the native localization was Australian, so it would say “No worries mate” if your machine was fine. It was later localized into Swedish and Dutch as a result of a challenge over dinner with some friends, and it would output quotes from Terry Pratchett’s Discworld, like “+++OUT OF CHEESE ERROR, PLEASE RELOAD UNIVERSE AND RESTART+++” if it decided your machine was about to crash by running out of swap space. This was sometimes the last thing seen in the console log when analyzing a crash dump…
I have spent the last few decades generating a lot of public content. Books, forewords to books, blog posts, podcast interviews, published stories, presentations, videos and social media discussions. I couldn’t keep track of it all, and I keep getting the same questions over and over again. Sometimes I feel like I could be replaced by a small shell script that just says “We did that at Netflix over a decade ago…” in any situation.
We have some new tools nowadays, and I’ve been using ChatGPT and Cursor to write code for me, in particular data processing and analytics scripts in R and Python. “Vibe coding” with AI, telling it what I want the code to do, and letting it write the whole file on its own, does a much better job than I would in a tiny fraction of the time, so I’ve been able to get things written that I would never have time to do myself. In that sense the speedup from AI coding for my use case is infinite. I’ve also been looking into how AI based tools are used and in particular the Retrieval Augmented Generation (RAG) pattern. Existing content is indexed and returned as part of a conversation, with a reference to the source. This seems like a useful way to keep track of all my own content, so I came up with the idea of meGPT, trained on all my own content. Of course other people have variations on the same idea and by talking about meGPT, I found out about tools like https://soopra.ai which is a service that builds a persona that can be used to provide interactive AI driven advice, coaching or training classes based on one person’s content. It even learns your voice and can speak answers as you. The problem with most simplistic RAG based tools is that they import data from text or pdf files, and process it in ways that doesn’t take advantage of some of the more interesting types of content.
What I decided to do was gather all my content in one place, by providing links and scripts that download and pre-process it into an ideal form for importing into a RAG. I could then bake-off all the different RAG builders and persona services to see which ones did the best job. Most commercial RAG builder tookits are aimed at the corporate market, and know how to import from web sites, Wiki’s, pdf, and MS-Office formats to act as corporate advisors on how to get things done at work. I’ve used some of these and they are quite useful for answering things like “how do I get access to a specific software system”, responding with a summary and links to the documentation on how it is done. The problem I found is that my content is in blogs, videos and podcasts. In particular podcasts seem to me to be perfect content for a RAG, as the discussion format is questions that could be indexed and answers that could be summarized and linked to, however I haven’t found RAG import software that can do that yet.
I started building meGPT at https://github.com/adrianco/megpt and have extended it a few times over the last few months. I’m taking part in a launch event for Soopra 2.0 on Wednesday May 14th, and will update this post afterwards.
meGPT is configured to ingest content in bulk by processing archives of blog platforms like Medium, Blogger and Twitter (I archived before it changed name), published stories like the ones I write for The New Stack, and excerpts page ranges from books and white paper pdfs.
I’m still working on ways to read entire YouTube playlists or subscriptions, indexing the transcribed content to video clips, and to process podcasts, identifying the author, transcribing, and extracting questions and answers from the discussion.
meGPT can be used as a powerful aide-memoire for the author, to pick out relevant content in consulting situations. It can also be implemented as a public interactive service, so that anyone can tap into the expert authors knowledge at any time.
I’m well known as the cloud architect for Netflix, a leader in the DevOps movement, and as the VP of open source marketing for Amazon. Currently semi-retired after a forty year long career as a distinguished engineer, technologist, executive, investor, mentor, coach and consultant, I’ve published four books and written forewords to many others, and lost track of how many hundreds of presentations, videos, podcasts and blog posts I’ve produced over the years. I’m excited to have Virtual Adrianco at my fingertips to save time, compensate for my fading memories of decades of content, and answer the same questions I get over and over again about what we did at Netflix over a decade ago.
It’s well known that consulting businesses don’t scale well, as they are people intensive. With meGPT the expertise of a consultant or author can be concentrated into developing new insights and content, rather than repeating the same answers when the consultant sees the same patterns over and over again.
For experts who have too many followers, it’s hard to answer everyone’s questions, but a persona can answer the question in summary form and also provide reference links that go back to the orginal content, reinforcing engagement, and validating the answers.
Here’s a screenshot of a couple of questions and answers from https://app.soopra.ai/Cockcroft, I think it does a pretty good job already, and I’m working with Soopra to tune it for my own use cases.
Q: What are the copyright implications of ingesting all this content?
A: The author owns copyrights to their output, and can use meGPT to process published and private content for consumption, then decide who gets to use their Virtual Author tool.
Q: Does meGPT only work for Adrian?
A: No, it’s structured to work for any author, and there is a sample author configuration file to act as a starting point. Clone the project from https://github.com/adrianco/megpt and if you like, send a pull request for your author configuration.
Q: How much work is it to train the meGPT model, is it expensive?
A: The majority of the input is already in text form and is quick to process using Retrieval Augmented Generation (RAG) with a pre-built model. If audio or video files need to be processed to extract transcripts, that work dominates the cost. Services like soopra.ai provide a free tier for users to experiment with their persona building tools, and that is sufficient to process a few hundred text inputs from a blog. Processing video and audio directly requires an upgraded subscription, and customizing the output to generate a talking video of the author requires a training run that is included in the upgraded subscription.