Spring Boot application providing multilingual Q&A (English, Amharic, Norwegian) for Tax, Nav, and Immigration domains using Ollama/Mistral and NLLB-200.
# PathBoot PI - Multilingual Domain Q&A Assistant
PathBoot PI is a Spring Boot service that answers questions about Norwegian Tax, NAV, and Immigration in English, Amharic, and Norwegian.
It runs fully local with:
- Ollama (`mistral`) for chat and classification support
- Ollama (`nomic-embed-text`) for RAG embeddings
- NLLB (`facebook/nllb-200-distilled-600M`) for Amharic English translation
- SQLite for persistence
## Table of Contents
1. What Runs Where
2. Prerequisites
3. Quick Start (Automated - Recommended)
4. Quick Start (Manual)
5. Manual API Testing
6. Service Interaction Flow
7. Authentication
8. API Usage
9. Configuration
10. Run Tests
11. Troubleshooting
## What Runs Where
- Backend API: `
localhost`
- Ollama API: `
localhost`
- NLLB server: `
localhost`
- Swagger UI: `
localhost`
- Frontend: optional sibling repo (`pathboot-ui`) if present in your workspace
## Prerequisites
- Java 17+ (Java 17 recommended)
- Docker Desktop
- Ollama installed locally
Check basics:
```powershell
java -version
docker --version
ollama --version
```
Pull required Ollama models:
```powershell
ollama pull mistral
ollama pull nomic-embed-text
```
## Quick Start (Automated - Recommended)
From the project root (`PathBootPI/`):
```powershell
powershell -ExecutionPolicy Bypass -File .\start-local.ps1
```
Optional: force NLLB image rebuild:
```powershell
powershell -ExecutionPolicy Bypass -File .\start-local.ps1 -RebuildNllb
```
Stop services:
```powershell
powershell -ExecutionPolicy Bypass -File .\stop-local.ps1
```
Run API smoke test (login + protected chat call):
```powershell
powershell -ExecutionPolicy Bypass -File .\smoke-api.ps1
```
## Quick Start (Manual)
Use this startup order:
1. Ollama
2. NLLB
3. Backend
4. Frontend
### 1) Start Ollama
```powershell
ollama serve
```
In another terminal, verify:
```powershell
Invoke-RestMethod -Method Get -Uri "
localhost"
```
# …