User Interfaces

Components in the Scala frontend package:

Components:

  • LinkViewer: Component for viewing and indexing content from GitHub repositories
  • ChatInterface: Component for chatting with the LLM about indexed repositories, handling message display and submission.
  • IndexSelector: Component for choosing which repository index to query, with options to refresh or remove indices.
  • StatusBar: Simple component displaying status messages to users.
  • TabContainer: Component for switching between the Chat and Link Viewer tabs.

Services:

  • ContentService: Service that communicates with the backend API to fetch content, generate indices, and handle chat interactions.
  • HttpClient: Low-level service handling HTTP requests and Server-Sent Events for streaming chat responses.

Models:

  • Models.scala: Contains data models used throughout the application like ChatMessage, IndexOption, and various request/response models.

Utilities:

  • IDGenerator: Utility for generating unique IDs for chat messages and other elements.
  • Main.scala: Entry point that initializes the application, sets up event listeners, and creates the UI components.

Python Interface:

  • main.py: Implements an alternative frontend using Gradio with functionality for chatting with repositories, viewing content, and managing indices.
  • style.css: Provides styling for the Gradio interface.

Gradio Interface

Fig. 1: Gradio interface for the chatbot
Fig. 2: Gradio interface for the code indexer

Laminar Interface

Fig. 3: Laminar interface for the chatbot
Fig. 4: Laminar interface for the code indexer