Skip to main content

jps-rag-assistant

Build & Test Publish to PyPI codecov License: MIT

Your private, fully local RAG assistant — securely ingest and query your personal knowledge from:

  • Microsoft Outlook (emails + calendar)
  • Jira (your assigned & updated issues)
  • Confluence (your spaces and personal pages)

All data stays 100% on your machine. Powered by LlamaIndex + Ollama, with incremental updates and zero cloud dependency.


Features

  • Fully configuration-driven via a single YAML file
  • Incremental ingestion — only new or updated documents are re-processed
  • Concurrent loading from Outlook, Jira, and Confluence
  • Secure credentials via system keyring (no plaintext tokens)
  • Modular, clean, type-annotated, and fully tested codebase
  • Zero hard-coded values — everything (models, chunk size, timeouts, etc.) is configurable
  • Supports macOS, Windows, and Linux

Install Llama and Ollama

pip install llama-index llama-index-embeddings-nomic llama-index-llms-ollama \
llama-index-vector-stores-chroma chromadb chainlit \
atlassian-python-api msal jira keyring

Retrieve llama3.1:8b for testing

# for testing
ollama pull llama3.1:8b    

# or mixtral, or llama3.1:405b if you have the VRAM
ollama pull llama3.1:70b   

# one of the best open-source embedding models available, especially for local/private use
ollama pull nomic-embed-text

Example Usage

# First time only — store your credentials securely
keyring set jira dude@msn.com          # Paste your Jira Personal Access Token
keyring set confluence dude@msn.com    # Paste your Confluence OAuth2 bearer token

# First time: Set up Outlook Graph API auth (one-time)
keyring set outlook-graph dude@msn.com_client_id     YOUR_CLIENT_ID
keyring set outlook-graph dude@msn.com_client_secret YOUR_CLIENT_SECRET
keyring set outlook-graph dude@msn.com_tenant_id     common

# Run ingestion (uses ~/.config/jps-rag-assistant/config.yaml by default)
jps-rag-assistant-ingest

# Or specify a custom config
jps-rag-assistant-ingest --config-file /path/to/my-config.yaml

After the first run, the vector store is persisted to ~/.jps-rag-assistant/ and will be incrementally updated on subsequent runs.

Installation

# Clone and install in editable mode (recommended for development)
git clone https://github.com/jai-python3/jps-rag-assistant.git
cd jps-rag-assistant
make install    # runs: pip install -e ".[dev]"

Or install directly from GitHub:

pip install git+https://github.com/jai-python3/jps-rag-assistant.git

Headless Linux servers (or CI/CD environments) On Linux systems without a graphical desktop (e.g. Ubuntu servers, Docker, GitHub Actions), avoid GUI-dependent keyring backends:

pip install -e ".[keyring-minimal]"
# or
pip install git+https://github.com/jai-python3/jps-rag-assistant.git#egg=jps-rag-assistant[keyring-minimal]

This installs only the appropriate keyring backend:

secretstorage on Linux x86_64 (uses GNOME Keyring or KDE Wallet if available, falls back to file) Native backends on macOS and Windows Prevents errors like No recommended backend was available

Configuration

Place your config at:

~/.config/jps-rag-assistant/config.yaml

Example (with real defaults):

---
ollama:
  model: llama3.1:70b
  embedding: nomic-embed-text
  request_timeout: 300

outlook:
  folder_names:
    - Inbox
    - Sent Items
  calendar:
    days: 180

jira:
  base_url: https://your-company.atlassian.net
  email: dude@msn.com
  days: 90

confluence:
  base_url: https://your-company.atlassian.net/wiki
  space_keys:
    - SoftwareEngineering
    - "~jsundaram"

vector_store:
  show_progress: true
  persist_dir: ~/.jps-rag-assistant

chunking:
  chunk_size: 512
  chunk_overlap: 50

Development

# Format, lint, and fix
make fix
make format
make lint

Run tests with coverage

make test

Pre-commit hooks are included — just run pre-commit install.

License

MIT License © Jaideep Sundaram

Metadata

Release files for jps-rag-assistant 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jps-rag-assistant 0.2.2
File Size Uploaded
jps_rag_assistant-0.2.2.tar.gz 16.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jps-rag-assistant 0.2.2
File Interpreter ABI Platform
jps_rag_assistant-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 30.7 kB

Release files / jps_rag_assistant-0.2.2.tar.gz

Download URL jps_rag_assistant-0.2.2.tar.gz
Size 16.4 kB
Tags Source
SHA-256 checksum
How to use checksums
7d0050a06539410b6e71b206ac69a16968c8ddf30c524c30fbe3ed0d6c619246
BLAKE2b-256 checksum
How to use checksums
dc476244d55397638e5c4acc164730d477b7afb11294b60b87497c0b1dcd0c50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / jps_rag_assistant-0.2.2-py3-none-any.whl

Download URL jps_rag_assistant-0.2.2-py3-none-any.whl
Size 14.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1980e0c26bd4ef33a66b7e1be586fb8d7331462a461ffe646a986b76e879396d
BLAKE2b-256 checksum
How to use checksums
43944757bd280d7de55f1582dc0f999f1290c91836ea74a353f20c5a0080249f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page