Spaces:
Sleeping
Sleeping
| title: CanLex Web | |
| sdk: docker | |
| app_port: 7860 | |
| pinned: false | |
| # CanLex Web (Path B) | |
| A private web front-end for **CanLex**, so people without an MCP-capable AI | |
| client can still ask Canadian legal-research questions. | |
| ## How it works -- thin client | |
| This app holds **no copy of the legal corpus**. For each question it: | |
| 1. calls the deployed **CanLex MCP server** (`canlex_search_legislation`) to | |
| retrieve the cited source passages; | |
| 2. sends those passages and the question to **Google Gemini Flash**, which | |
| composes a grounded, cited answer following CanLex's own answering | |
| instructions; | |
| 3. displays the answer, with the retrieved passages shown for review. | |
| Because retrieval stays on the MCP server, a corpus or retrieval change is | |
| deployed once (to the MCP Space) and both the MCP connector and this website | |
| pick it up. Only UI or prompt changes redeploy this Space. | |
| ## Required Space secrets | |
| Set these under **Settings -> Variables and secrets**: | |
| | Name | Kind | Purpose | | |
| |------|------|---------| | |
| | `GEMINI_API_KEY` | secret | Free Gemini key from Google AI Studio (https://aistudio.google.com/apikey). | | |
| | `CANLEX_WEB_AUTH` | secret | Login credentials, one `username:password` per line. | | |
| Optional overrides: | |
| | Name | Default | | |
| |------|---------| | |
| | `CANLEX_MCP_URL` | `https://beemer0-canlex.hf.space/mcp` | | |
| | `CANLEX_GEMINI_MODEL` | `gemini-2.5-flash` | | |
| If `CANLEX_WEB_AUTH` is unset the app falls back to an insecure default login | |
| (`canlex` / `canlex`) and logs a warning -- set the secret before real use. | |
| ## Make the Space private | |
| Under **Settings -> Change Space visibility**, set the Space to **Private**. | |
| The app then has two layers of protection: Hugging Face gates who can open the | |
| page at all, and Gradio's username/password gates who can use it. | |
| ## Run locally | |
| ``` | |
| pip install -r requirements.txt | |
| # PowerShell: | |
| $env:GEMINI_API_KEY = "your-key" | |
| $env:CANLEX_WEB_AUTH = "me:secret" | |
| python app.py | |
| ``` | |
| Then open http://localhost:7860. | |