As I wrote in previous posts, the manual recording of memories for BrainExpanded is just the beginning. Once the basic infrastructure is in place, devices (e.g. phones, laptops, wearables) and applications/services can automatic capture moments from a user’s life such as the articles they encounter, the notes they take, the activities throughout their lives, the places they visit, the people with whom they interact, the discussion they have, and so much more. BrainExpanded may also connect to existing data sources such as email, calendar, and messaging.
Sam Goodwin, an ex-colleague from my Amazon days, pinged me to bring the following post by Ian Nuttall to my attention, which was liked by a good number of people.
Well, this should be easy for BrainExpanded so I spent a couple of days evolving the system to support it.
Previous posts
In addition to the iOS app, I wanted to introduce a client experience that can run in the browser on top of the same Web API. So there is now a new layer in the architecture which is built using React to support the BrainExpanded Web app.
I had already implemented authentication using Google’s Firebase SDK for the iOS app so I did the same for the Web app. Dealing with CORS and JWT-based authorization in ASP.NET Core for the Web API was a bit tricky but now everything is in place. All the Web APIs are now properly protected; they require a Google ID token which is validated for every request.
I have also introduced the concept of a “data source” that users can add to the system. An RSS feed is an example of such a data source. There is a process in the system that monitors the users’ data sources for new information. For example, when a new entry appears on an RSS feed, it is added as a memory. The AI agents then do their thing as usual.
I also replaced the MacOS speech synthesizer with the just-released Dia, which is an open source TTS model. I used the currently available 1.6B model which is quite good and a very significant improvement over MacOS’s speech synthesizer.
The dotted boxes represent the Docker containers. Very soon, I will start playing with real deployments to a public cloud infrastructure so the above decomposition will help me manage the various services separately.
To illustrate how data sources might work, as per Ian Nutall’s post, I implemented support for RSS feeds. Connecting to a twitter bookmarks feed will be a very simple addition for a real service.
Here’s a video demonstrating the new Web app and the use of an RSS feed as a way to add links to the memory. I recorded the sound this time so you can hear the generated video summary at the end. The generated speech is better than before but not the generated images.
Here’s what happens in the video:
It goes without saying that I didn’t spend time on the design of the web app. Designing web/iOS apps is not a core strength of mine 🙂
There is still so much more to explore, especially in the set of backend technologies related to privacy, a framework for agents (or AI functions) that operate on top of the memory, integration with ChatGPT (or some other AI agent), and more. But first things first…
Imagine a world where your memory is enhanced by a team of intelligent agents, working…
As part of the BrainExpanded project, I’m building an iOS app that lets users easily…
Artificial Intelligence (AI) has rapidly evolved over the past few decades, becoming an integral part…
Happy New Year everyone! I was planning for my next BrainExpanded post to be a…
See "BrainExpanded - Introduction" for context on this post. Notes and links Over the years,…
This is the first post, in what I think is going to be a series,…