I built this after building a couple of the things within it, to make LLMs more tractable, higher quality (& cost), and personalized to what I want them to do.
Overall UI: NextJS UI with a tab for each project or area of life, which is two-way voice enabled, though I don't use it that much.
Each tab draws on its own set of data (e.g., anything I put into a folder on my PC, a list of RSS feeds), and knows which LLM to use and what type of queries might need to be made. Some are local-only, disabling voice and only using a local LLM.
Examples include:
Tools used: NextJS (UI), Fixie (voice), ChromaDB (embeddings), Zep (history, tab metadata), many Python libraries.
This would make a beautiful mid-tier product for course-creators, on a par with cohort-based courses in terms of the value delivered to students. And much lower maintenance/time involvement for the creator.
Between me and LLMs, the course content and relevant reading lists would be organized, summarized, and stored. I'd iterate the coach's prompts until the tone and limits of conversation reflected the creator's aims.
The user can chat to their AI coach via web app, integrated into the existing course. Or over voice (phone/web), WhatsApp, e-mail, or text. All the conversations are stored and sorted.
The AI coach would periodically review recent conversations, and decide whether to get in touch with the user. For example, the user mentioned they were going to try a practice from the course on Friday; on Saturday the coach asks how it went.
We could add thresholds for human handover. And the human would be provided with a summary of where the student's at and why they should get in touch with them.
I'd build this if a course-leader I liked wanted me to, or someone with marketing expertise wanted to join me in trying to sell it. Considering building a full beta & testing it with some courses I like.
Tools used: NextJS (UI), Fixie (voice), ChromaDB (embeddings), Zep (history, tab metadata), FastAPI (gateway), Bird (omnichannel), many Python libraries.
I don't listen to podcasts, but wanted to know what was in a couple, so knocked something together to summarize and point me to the interesting bits in a transcript.
It uses a clustering-led approach which finds similarities across chunks of text, splits the chunks into appropriate headings and subheadings, then asks OpenAI to generate some information about each cluster.
The UI presents the generated topic headings, summaries, and most relevant extracts (which I could listen to if desired). And of course, lets me search / ask questions.
It does that at two levels: sentences to find very precise topics not covered by larger utterances of text, and utterances by each speaker, which gives the best topic-divisions for the main summary.
This works better than any LLM-only stack I've put together for the same job.
At the moment it's a manual ingest process which takes 5 minutes or so to start it running, and another couple of minutes later to calibrate. And the UI sucks.
I could automate it and make the UI better if someone wanted. And considered selling/giving it to some podcasters as it'd make a novel way to advertise and make best use of a podcast.
Tools used: Python libraries and Streamlit for the UI.
This starts with a conversation I have with a client. That conversation is transcribed and summarised, some metadata extracted from it, and then thrown into the 'vault'.
It's stored in Markdown for simplicity, organized into an Obsidian vault.
I do some research around the conversation and add my own notes and thoughts straight into the vault (with my client's aspirations in mind).
While I'm there, I click a few buttons and ask for particular topics to have summaries generated or updated. LLM magic happens and inserts a draft of the information which I generally update.
Before speaking with a client, I get a summary of recent conversations and anything I wanted to follow up on. It saves a LOT of time.
The client has a different, prettier UI. It's great for a trip down memory lane, especially for long-term clients. And a few other things individual to a client.
At the moment, this isn't for others. Too personalized to my way of working to port.
half-considering building an AI coach (to overlay on self-paced courses), but I'll probably build a house first.
thanks to LLMs I can Python and Javascript fast enough to make it fun again.
first iteration of tha.la, through which I half-attempted to scale my coaching as a done-for-you service.
ended up helping a couple of clients build their personal knowledge-bases
had fun coding side-projects, but my passion was academia.