Learn using Shoulder.dev Shoulder.dev transforms codebases into tailored learning experiences. Below are organized categories of the codebase to help you start with your initial focus. Knowledge Graph (KG) and Retrieval Augmented Generation (RAG) Understanding the core concept of the project a knowledge graph built on top of TiDB Vector for efficient information retrieval and question answering. Sub-Topics: Graph Construction How the KG is built from different sources (websites, documents, etc.) and structured for efficient querying. Framework The implementation of LlamaIndex and DSPy, which power the RAG system. Models The different embedding models used to represent textual content as vectors for efficient search and similarity matching. Parsers and Postprocessors How nodes are parsed from different sources and post-processed for optimal representation within the KG. Backend Architecture Reason: Understanding the infrastructure of the system, including how components interact and handle requests. Sub-Topics: Design Analyzing RESTful APIs for data access, user interactions, and system management. Modeling Examining the database schema, especially for storing chat history, vector data, JSON objects, and analytical data. and Authorization Exploring the system’s security mechanisms and user management. Management Learning about how tasks like document processing and KG updates are queued and executed. Conversational Search Engine Reason: Understanding the user interface and how it interacts with the backend to deliver search results. Sub-Topics: Input Processing Analyzing how user queries are parsed and transformed into search queries. Ranking and Retrieval Understanding the logic behind ranking search results based on relevance and contextual cues. History How the chat history is stored and utilized for providing contextual responses. Engine Analyzing the implementation of the interactive chat interface and its integration with the RAG system. Frontend Development Reason: Understanding how the user interface is built and how it interacts with the backend. Sub-Topics: Choice Understanding the use of Next.js and its impact on front-end development. Architecture Exploring the structure of the front-end codebase using components for modularity and reusability. Library Analyzing the use of UI libraries like Shadcn/ui for creating visually appealing and interactive elements. Management Understanding how the front-end application manages data and state transitions.