BrainButler is an AI-powered knowledge management system that helps users organize, research, and generate content. It features a Chrome extension and web app for input, multiple AI crews for processing information, and customizable knowledge bases. The system offers various paths for information processing and a user-friendly interface for managing and viewing content.
- Chrome extension
- Web app
- New information entry
- Generate best routes for info processing
- Compare with current pages
- Action:
- Add info to existing page
- Create parent or child for existing page
- Create new page
- Add to knowledge base
- Simple note-taking: Format user's saved info nicely
- Research assistant: Use internet and knowledge base to generate report and possible new paths
- Project planning: Use knowledge base to organize and plan
- Knowledge Base Crew: Organizes knowledge bases, suggests, and creates new ones
- Assimilation Crew: Decides how to incorporate info into a knowledge base
- Creation Crew: Researches and generates pages
- User-controlled page generation from notes
- Selectable knowledge base(s) for page generation
- User feedback on generated pages (like, dislike, direct feedback)
- Manual page creation option
- Note categorisation
- User notetaking with AI prompt generation
- Save note
- Redirect user to web app to view existing notes
- Pinata API Key-Secret/JWT Token authentication
- Login functionality
- API key entry
- Knowledge base creation/modification
- File upload to pages
- Pages displayed as sortable squares (by date, knowledge base, or category)
- (Future feature) Tree view of knowledge base
- Knowledge base outlines: Generated by Knowledge Base Crew
- Pages (main content): Generated by Creation Crew
- Notes: Source input for pages
- Metadata: User behavior & preferences, used to modify prompts
knowledge_base_example = { "knowledge_base": { "title": "BrainButler Knowledge Base", "pages": [ { "page_id": "001", "title": "Summary", "description": "Overview of BrainButler's features and capabilities." }, { "page_id": "002", "title": "System Architecture", "description": "Details on input methods, information processing flow, and AI crews." }, { "page_id": "003", "title": "Features", "description": "List of features including user-controlled page generation and feedback options." }, { "page_id": "004", "title": "User Interface", "description": "Information on the Chrome extension and web app functionalities." }, { "page_id": "005", "title": "Data Storage", "description": "Explanation of how user data, pages, and metadata are stored." } ] } }
This dictionary (stores in pinata as json) represents a page in the system. It includes:
- Page ID: A unique identifier for the page.
- Title: The title of the page.
- Content: A brief description or content of the page.
- Links: An array of pointers to related pages and files. Each link has a type (either 'page' or 'file'), an ID, and a title or filename. The frontend can use this dictionary to dynamically fetch and display related content by following the IDs in the links array. This structure allows for easy navigation and organization of interconnected pages and files.
page_example = { "page_id": "123", "title": "Introduction to BrainButler", "content": "This page provides an overview of BrainButler.", "links": [ { "type": "page", "id": "124", "title": "System Architecture" }, { "type": "file", "id": "file_001", "filename": "README.md" } ] }