Accessible document chat and RAG system (Ollama backend)
Project description
๐ฆ Doc Chat AI (Llamaball)
Accessible document chat and RAG system powered by Ollama
A comprehensive toolkit for document ingestion, embedding generation, and conversational AI interactions with your local documents. Built with accessibility and local privacy as core principles.
๐ Quick Start with Llamaball
The project has been packaged as llamaball - an installable CLI and Python library:
# Install the package
pip install -e .
# Ingest documents
llamaball ingest .
# Start chatting
llamaball chat
๐ฆ What's Included
๐ฆ Llamaball Package (llamaball/)
- Interactive CLI with rich formatting and accessibility features
- Python API for programmatic use
- Comprehensive documentation with all flags and examples
- Screen reader friendly output and navigation
๐ ๏ธ Setup Scripts
quick-setup.sh- Automated model downloads and configurationstart-rag-system.sh- System startupstop-rag-system.sh- Clean shutdowntest-rag-system.sh- Integration testing
๐ Model Configurations (models/)
Modelfile.gemma3:1b- Gemma 3 1B configurationModelfile.qwen3:0.6b- Qwen3 0.6B configurationModelfile.qwen3:1.7b- Qwen3 1.7B configurationModelfile.qwen3:4b- Qwen3 4B configuration
๐ Legacy Scripts (Transitioning)
doc_chat_ollama.py- Original Ollama implementation (now inllamaball.core)doc_chat_openai.py- OpenAI implementation
๐ฏ Features
- ๐ 100% Local Processing: All data stays on your machine
- โฟ Accessibility First: Screen reader support, keyboard navigation, clear structure
- ๐ฅ๏ธ Rich CLI: Beautiful terminal interface with progress indicators
- ๐ Smart Document Parsing: Intelligent chunking for optimal embeddings
- ๐ Semantic Search: Fast vector similarity search
- ๐ฌ Interactive Chat: Natural conversations with your documents
- ๐ Database Management: Comprehensive statistics and file management
๐ CLI Commands
See the complete documentation in llamaball/README.md or run:
llamaball --help # Main help
llamaball ingest --help # Ingestion options
llamaball chat --help # Chat configuration
llamaball stats --help # Database statistics
๐ง Development Setup
# Clone and install
git clone <repository>
cd doc_chat_ai
pip install -e .
# Run setup (optional - for Ollama models)
./quick-setup.sh
# Start using llamaball
llamaball ingest .
llamaball chat
๐ Python API Usage
from llamaball import core
# Ingest documents
core.ingest_files("./docs", recursive=True)
# Search embeddings
results = core.search_embeddings(query="search term", top_k=5)
# Chat with documents
response = core.chat(user_input="What is this about?", history=[])
๐๏ธ Configuration
Environment Variables
CHAT_MODEL: Default chat model (default:llama3.2:1b)OLLAMA_ENDPOINT: Ollama server endpoint
Supported File Types
- Text:
.txt,.md - Code:
.py,.js,.html,.css - Data:
.json,.csv
โฟ Accessibility Features
- Screen Reader Support: Semantic markup and clear structure
- Keyboard Navigation: Full CLI functionality via keyboard
- High Contrast Output: Rich terminal formatting with good contrast
- Clear Error Messages: Descriptive feedback with suggested solutions
- Progress Indicators: Real-time feedback during operations
- Consistent Layout: Predictable command structure
๐ Project Structure
doc_chat_ai/
โโโ llamaball/ # Main package
โ โโโ __init__.py
โ โโโ cli.py # CLI interface
โ โโโ core.py # Core functionality
โ โโโ utils.py # Utilities
โ โโโ README.md # Package documentation
โโโ models/ # Model configurations
โโโ configs/ # Configuration files
โโโ scripts/ # Utility scripts
โโโ setup.py # Package installation
โโโ README.md # This file
๐ค Contributing
- Follow accessibility-first design principles
- Include comprehensive docstrings and type hints
- Test with screen readers when possible
- Maintain consistent CLI patterns
- Update documentation for all changes
๐ License
MIT License - Built with โค๏ธ for accessibility and local AI.
Project details
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 llamaball-0.1.0.tar.gz.
File metadata
- Download URL: llamaball-0.1.0.tar.gz
- Upload date:
- Size: 36.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9163a524b76c5799a82b674f86ce14857619209d37767dbd545a49969f9517c8
|
|
| MD5 |
494467979e84342df14fcdec694ff88d
|
|
| BLAKE2b-256 |
ccd37eb1135756724040e427a0f3d28f23b126903c451011d4f9bb15f784b8d4
|
File details
Details for the file llamaball-0.1.0-py3-none-any.whl.
File metadata
- Download URL: llamaball-0.1.0-py3-none-any.whl
- Upload date:
- Size: 36.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0014737cee329dfeb91a7a89af9b755e956a7cfaa26e7de8f4885cedce02545
|
|
| MD5 |
e9592f4ffc0ece113146f8c6ed7bc49d
|
|
| BLAKE2b-256 |
fbc0939faf5fd549047851a07a48725565e4ddbac33eb8e22b49b435db100ec1
|