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
Release files for redhat-oracle 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| redhat_oracle-0.1.0.tar.gz | 86.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| redhat_oracle-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 157.1 kB
Release files / redhat_oracle-0.1.0.tar.gz
| Download URL | redhat_oracle-0.1.0.tar.gz |
|---|---|
| Size | 86.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2a048e1a5d52f000d1a9afb2f5b1b20bfc6fcc12db8a81eb402da23303ffb211
|
|
BLAKE2b-256 checksum How to use checksums |
b8251a74007fb84c55b8d6379e796b72a518ad9b79c16e1782b6595ceed27555
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / redhat_oracle-0.1.0-py3-none-any.whl
| Download URL | redhat_oracle-0.1.0-py3-none-any.whl |
|---|---|
| Size | 70.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e03cd12f61903370d39e15a48e4ed57f2d86b63b6c313eab8713d771f6b561e3
|
|
BLAKE2b-256 checksum How to use checksums |
35b4b423da312be54d51216548b4f3bdd9c5d796e00ede039b795009c33d68d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|