We’re thrilled to spotlight this app and game built by community member Maciej Kilian!
Introducing “Blank”, an app that presents a unique challenge: it knows nothing at the start. It’s up to you, the user, to fill this blank canvas with knowledge, facts, and information about the world.
“Blank” is more than a game; it’s an exploration of the potential for AI to offer personalized learning experiences. It challenges users to consider what and how they teach their machines, fostering a deeper understanding of their own knowledge and beliefs. Moreover, it’s a testament to the advancements in AI and machine learning, showcasing the ability to create unique, evolving personalities based on user interactions.
Demo
About the Personality
“Blank” contributes both to the core capabilities of OpenHome as well as acting as a fun personality game to interact with.
Features
Voice-First Interface: Leveraging OpenHome’s voice AI SDK, “Blank” offers a seamless and intuitive interaction experience. No typing, just talking.
Dynamic Learning Path: There’s no set curriculum. The learning path evolves based on the interactions, making each “Blank” personality a reflection of its user’s interests and knowledge.
Memory and Recall: The AI recalls previously taught information, allowing for complex, layered conversations and learning that builds over time.
Privacy-Centric: Your interactions and the knowledge base you build are stored securely, ensuring your educational journey remains private and personalized.
About the Developer
Maciej Kilian studied Computer Science at the University of Southern California. He is passionate about open-source projects.
Methodology
Here is a high-level summary provided by Maciej about how he conceptualized his app, “Blank”.
Each personality needs a “knowledge state” which is a json file stored in the local database. This knowledge state gets loaded with the personality during initialization
Every n exchanges between the user and the bot the conversation gets passed to the LLM with a different system prompt. The system prompt is written such that it extracts any information from the conversation that it does not already have stored.
After this information gets distilled into a single concise statement the knowledge base attempts to append this to the knowledge state (and then sync with the json file so it persists between sessions). Before that, it checks if the next statement fits into memory (parameter set by user). If it does not then it follows the “oom_policy” which is a parameter set by the user (currently can either discard new or old info).
Once the knowledge base is updated there’s also a function in the class which adjusts the prompt to the actual agent to include the knowledge stored in the knowledge base.