AI-powered knowledge assistant for Red Hat engineering teams
Project description
Red Hat Oracle
AI-powered knowledge assistant for Red Hat engineering teams. Ingests GitHub/GitLab repositories, Jira issues, GitLab Pages, public web docs, and Slack conversations, indexes them in a ChromaDB vector store, and provides RAG-based chat via local or cloud LLMs.
Prerequisites
- Python 3.11+
- Ollama running locally (recommended LLM backend)
- Git (for cloning source repos)
Installation
# Clone the repo
git clone git@github.com:dmzoneill/redhat-oracle.git
cd redhat-oracle
# Create a virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install in development mode (with dev dependencies)
pip install -e ".[dev]"
# Or install without dev dependencies
pip install -e .
Configuration
Copy and edit the sample config:
cp oracle.yaml ~/.config/redhat-oracle/oracle.yaml
Config files are loaded and merged in order (higher precedence wins):
/etc/redhat-oracle/oracle.yaml(system)~/.config/redhat-oracle/oracle.yaml(user)./oracle.yaml(project)
Secrets
Tokens are never stored in config files. Set them as environment variables:
export ORACLE_GITHUB_TOKEN="ghp_..."
export ORACLE_GITLAB_TOKEN="glpat-..."
export ORACLE_SLACK_TOKEN="xoxb-..."
export ORACLE_JIRA_TOKEN="..."
export OPENAI_API_KEY="sk-..." # optional, if using OpenAI
export ANTHROPIC_API_KEY="sk-ant-..." # optional, if using Anthropic
Usage
CLI
oracle # Start interactive chat
oracle sync # Sync all configured sources
oracle status # Show index status
GUI (optional)
pip install -e ".[gui]"
oracle --gui
Development
# Run tests
make test
# Lint
make lint
# Type check
make typecheck
# Build distribution
make build
Or run commands directly:
pytest tests/
ruff check src/ tests/
mypy src/
Architecture
| Module | Purpose |
|---|---|
core/config.py |
YAML config loading with Pydantic validation |
core/sources/ |
Data source connectors (GitHub, GitLab, Slack, Jira, Pages, Web) |
core/vectordb/ |
ChromaDB vector store, AST-aware chunking, change tracking |
core/rag.py |
RAG pipeline: embed query, search, assemble context, stream LLM |
core/cache.py |
Response caching |
cli/app.py |
Click + prompt-toolkit + Rich terminal UI |
gui/app.py |
PySide6 (Qt) desktop GUI |
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file redhat_oracle-0.1.0.tar.gz.
File metadata
- Download URL: redhat_oracle-0.1.0.tar.gz
- Upload date:
- Size: 86.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a048e1a5d52f000d1a9afb2f5b1b20bfc6fcc12db8a81eb402da23303ffb211
|
|
| MD5 |
47abed83cb3b2755534250904e58e4a8
|
|
| BLAKE2b-256 |
b8251a74007fb84c55b8d6379e796b72a518ad9b79c16e1782b6595ceed27555
|
File details
Details for the file redhat_oracle-0.1.0-py3-none-any.whl.
File metadata
- Download URL: redhat_oracle-0.1.0-py3-none-any.whl
- Upload date:
- Size: 70.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e03cd12f61903370d39e15a48e4ed57f2d86b63b6c313eab8713d771f6b561e3
|
|
| MD5 |
d33fb2616e854205ae3940e78259d58b
|
|
| BLAKE2b-256 |
35b4b423da312be54d51216548b4f3bdd9c5d796e00ede039b795009c33d68d1
|