# Book Character Mind Map With Llama4 Maverick ![Book Character Mind Map](public/character_relationship.png) Book Mind is a web application that allows users to explore character relationships and storylines in books using AI-powered visualizations. This leverages **Llama 4 Maverick**'s impressive 1M token context windows to process entire books at once, enabling comprehensive analysis of complex narratives and character relationships across lengthy texts. ## Features ### Leverage Long Context Length | Model | Meta Llama4 Maverick | Meta Llama4 Scout | OpenAI GPT-4.5 | Claude Sonnet 3.7 | | ----- | -------------- | -------------- | -------------- | -------------- | | Context Window | 1M tokens | 10M tokens | 128K tokens | 1K tokens | 200K tokens | Because of the long context length, Book Mind can process entire books at once, providing a comprehensive understanding of complex narratives and character relationships. - Interactive Mind Maps: Visualize relationships between characters and plot elements. - Book Summaries: Get concise overviews of plots and themes. ### Step-by-Step Instructions We implemented a step-by-step approach to ensure the model outputs' reliability. 1. **Character Identification**: Identify all characters in the book and summarize their roles. ``` You are a highly detailed literary analyst AI. Your sole mission is to meticulously extract comprehensive information about characters and the *nuances* of their relationships from the provided text segment. This data will be used later to build a relationship graph. ``` 2. **Character Relationships**: Determine the relationships between characters. ``` You are an expert data architect AI specializing in transforming literary analysis into structured graph data. Your task is to synthesize character and relationship information into a specific JSON format containing nodes and links, including a title and summary. ``` 3. **JSON Format**: Output the results in a JSON format for easy parsing and visualization. ``` You are an extremely precise and strict JSON extractor. Extract only the complete JSON object from the input. Get the last one if there are multiple. ``` ### Ask the Book with Chat Interface We also implemented a chat interface to interact with the book. Users can ask questions about the book's characters, plot, and relationships. The model will respond with a concise answer based on the book's content and the relationships between characters. ``` You are an expert search AI designed to help users find detailed information about character relationships from a book. Your task is to assist users in querying the relationship data extracted from the book. ``` ![Chat Interface](public/chat_interface.png) ## Getting Started ### Frontend Setup To communicate with the [server/server.py](server/server.py), we use `React.js` and `axios`. 1. Install dependencies: ``` npm install ``` 2. Run the application: ``` npm start ``` ### Server Setup We use `Flask` to serve the model's responses and `vllm` to run the **Llama 4 Maverick** model. 1. Install dependencies: ``` cd server pip install -r requirements.txt ``` 2. Run the server: ``` python server.py ``` ## Get Copyright Free Books - [Project Gutenberg](https://www.gutenberg.org/) - [Romeo and Juliet](https://www.gutenberg.org/ebooks/1513): 50,687 input tokens - [Moby-Dick; The Whale](https://www.gutenberg.org/ebooks/2701): 318,027 input tokens