# Using GitHelp on the EPFL lab server GitHelp is deployed on the EPFL GPU server and is accessible from the EPFL network or VPN at: The final `/` is important for Streamlit to load correctly behind the `/githelp` route. This page is for GitHelp users. Server administration is documented in {doc}`maintainer`, and operational problems are covered in {doc}`troubleshooting`. ## What GitHelp does GitHelp lets users ask natural-language questions about a selected software repository. It builds an inspectable corpus from: - Markdown and reStructuredText documentation; - Python module, class, function, and method docstrings; - function and method signatures; - YAML configuration files; - repository structure metadata. Typical questions include: ```text How do I install this project? How do I configure indexing? Where is this function documented? What does this configuration file do? Which sources support the answer? ``` GitHelp retrieves project sources before answering. Important answers should still be checked against the displayed evidence. ## 1. Open the interface Open: If the page is not reachable, connect to the EPFL VPN and try again. ## 2. Select a repository Open **Project settings and index management**, then choose one source: - **Public GitHub repository URL** clones or reuses a public repository under `/app/data/repositories/`; - **Local project path** uses a repository already visible inside the container. GitHelp runs inside Docker. Local paths entered in the interface must therefore be container paths, for example: ```text /app/data/repositories/swiss-ai-mmore ``` Do not enter the corresponding host path, such as: ```text /home/githelp/GitHelp/data/repositories/swiss-ai-mmore ``` ## 3. Prepare the project Start with **Build simple index**. Despite the button name, this mode builds the GitHelp `corpus.jsonl` and searches it directly with the lexical retriever. It is the fastest way to verify extraction and source quality. Generated project files are stored under: ```text /app/data/projects// ``` Use **Build MMORE index** when native MMORE retrieval is needed. This single action performs all three stages: ```text build corpus → export mmore_corpus.jsonl → build native MMORE index ``` The first MMORE build may download and load embedding models. The persistent Hugging Face cache makes later runs faster. ## 4. Choose the retrieval backend The sidebar provides two backends: - `simple` performs deterministic lexical retrieval over the selected `corpus.jsonl`; - `mmore` first attempts native MMORE/Milvus retrieval. If the native MMORE child process fails, GitHelp can fall back to lexical retrieval over the exported `mmore_corpus.jsonl`. Check the diagnostics before interpreting a result: ```text native_index corpus_fallback ``` ## 5. Ask questions and inspect sources Use the chat input at the bottom of the **Conversation** section. The input is enabled once a valid corpus exists. Recommended first questions: ```text How do I install this project? What are the main modules of this repository? How do I configure indexing? ``` The sidebar can show or hide retrieved sources, display their full content, and show retrieval diagnostics. Inspect these sources whenever accuracy matters. ## Current user-facing limitations - Only public GitHub repositories can be cloned automatically. - Existing clones are reused without an automatic `git pull`. - Python is the only language with API/docstring extraction. - Project corpora and MMORE exports are isolated, but the default profile and native `mmore_docs` index are shared. - The first local LLM or MMORE model load can be slow. - The interface is intended for internal EPFL/lab use. For server commands, GPU verification, index rebuilding, and deployment paths, continue with {doc}`maintainer`.