Intelligent documentation assistant CLI for Beagleboard projects
Project description
title: Beaglemind Rag Poc emoji: 👀 colorFrom: red colorTo: purple sdk: gradio sdk_version: 5.35.0 app_file: app.py pinned: false
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
BeagleMind CLI
An intelligent documentation assistant CLI tool for Beagleboard projects that uses RAG (Retrieval-Augmented Generation) to answer questions about codebases and documentation.
Features
- Multi-backend LLM support: Use both cloud (Groq) and local (Ollama) language models
- Intelligent search: Advanced semantic search with reranking and filtering
- Rich CLI interface: Beautiful command-line interface with syntax highlighting
- Persistent configuration: Save your preferences for seamless usage
- Source attribution: Get references to original documentation and code
Installation
Development Installation
# Clone the repository
git clone https://github.com/beagleboard-gsoc/BeagleMind-RAG-PoC
cd BeagleMind-RAG-PoC
# Install in development mode
pip install -e .
Using pip
pip install beaglemind-cli
Environment Setup
For Groq (Cloud)
Set your Groq API key:
export GROQ_API_KEY="your-api-key-here"
For OpenAI (Cloud)
Set your OpenAI API key:
export OPENAI_API_KEY="your-api-key-here"
For Ollama (Local)
- Install Ollama: https://ollama.ai
- Pull a supported model:
ollama pull qwen3:1.7b
- Ensure Ollama is running:
ollama serve
Quick Start
1. List Available Models
See what language models are available:
# List all models
beaglemind list-models
# List models for specific backend
beaglemind list-models --backend groq
beaglemind list-models --backend ollama
2. Start Chatting
Ask questions about the documentation:
# Simple question
beaglemind chat -p "How do I configure the BeagleY-AI board?"
# With specific model and backend
beaglemind chat -p "Show me GPIO examples" --backend groq --model llama-3.3-70b-versatile
# With sources shown
beaglemind chat -p "What are the pin configurations?" --sources
CLI Commands
beaglemind list-models
List available language models.
Options:
--backend, -b: Show models for specific backend (groq/ollama)
Examples:
beaglemind list-models
beaglemind list-models --backend groq
beaglemind chat
Chat with BeagleMind using natural language.
Options:
--prompt, -p: Your question (required)--backend, -b: LLM backend (groq/ollama)--model, -m: Specific model to use--temperature, -t: Response creativity (0.0-1.0)--strategy, -s: Search strategy (adaptive/multi_query/context_aware/default)--sources: Show source references
Examples:
# Basic usage
beaglemind chat -p "How to flash an image to BeagleY-AI?"
# Advanced usage
beaglemind chat \
-p "Show me Python GPIO examples" \
--backend groq \
--model llama-3.3-70b-versatile \
--temperature 0.2 \
--strategy adaptive \
--sources
# Code-focused questions
beaglemind chat -p "How to implement I2C communication?" --sources
# Documentation questions
beaglemind chat -p "What are the system requirements?" --strategy context_aware
Interactive Chat Mode
You can start an interactive multi-turn chat session (REPL) that remembers context and lets you toggle features live.
Start it by simply running the chat command without a prompt:
beaglemind chat
Or force it explicitly:
beaglemind chat --interactive
During the session you can use these inline commands (type them as messages):
| Command | Description |
|---|---|
/help |
Show available commands and tips |
/sources |
Toggle display of source documents for answers |
/tools |
Enable/disable tool usage (file creation, code analysis, etc.) |
/config |
Show current backend/model/session settings |
/clear |
Clear the screen and keep session state |
/exit or /quit |
End the interactive session |
Example interactive flow:
$ beaglemind chat
BeagleMind (1) > How do I configure GPIO?
...answer...
BeagleMind (2) > /sources
✓ Source display: enabled
BeagleMind (3) > Give me a Python example
...answer with sources...
BeagleMind (4) > /tools
✓ Tool usage: disabled
BeagleMind (5) > /exit
Tips:
- Use
/sourceswhen you need provenance; turn it off for faster, cleaner output. - Disable tools (
/tools) if you want read-only behavior. - Ask follow-ups naturally; prior Q&A stays in context for better answers.
Available Models
Groq (Cloud)
- llama-3.3-70b-versatile
- llama-3.1-8b-instant
- gemma2-9b-it
- meta-llama/llama-4-scout-17b-16e-instruct
- meta-llama/llama-4-maverick-17b-128e-instruct
OpenAI (Cloud)
- gpt-4o
- gpt-4o-mini
- gpt-4-turbo
- gpt-3.5-turbo
- o1-preview
- o1-mini
Ollama (Local)
- qwen3:1.7b
- smollm2:360m
- deepseek-r1:1.5b
Tips for Best Results
-
Be specific: "How to configure GPIO pins on BeagleY-AI?" vs "GPIO help"
-
Use technical terms: Include model names, component names, exact error messages
-
Ask follow-up questions: Build on previous responses for deeper understanding
-
Use --sources: See exactly where information comes from
-
Try different strategies: Some work better for different question types
Troubleshooting
"BeagleMind is not initialized"
Run beaglemind init first.
"No API Key" for Groq
Set the GROQ_API_KEY environment variable.
"No API Key" for OpenAI
Set the OPENAI_API_KEY environment variable.
"Service Down" for Ollama
Ensure Ollama is running: ollama serve
"Model not available"
Check beaglemind list-models for available options.
Development
Running from Source
# Make the script executable
chmod +x beaglemind
# Run directly
./beaglemind --help
# Or with Python
python -m src.cli --help
Adding New Models
Edit the model lists in src/cli.py:
GROQ_MODELS = [
"new-model-name",
# ... existing models
]
OPENAI_MODELS = [
"new-openai-model",
# ... existing models
]
OLLAMA_MODELS = [
"new-local-model",
# ... existing models
]
License
MIT License - see LICENSE file for details.
Support
- GitHub Issues: Create an issue
- Community: BeagleBoard forums
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 beaglemind_cli-1.0.3.tar.gz.
File metadata
- Download URL: beaglemind_cli-1.0.3.tar.gz
- Upload date:
- Size: 35.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e5adc539803e59c32dfc57eadf93f515f056c738d59cc54c0299fed55a70c9c
|
|
| MD5 |
41a0ed7d4010b16c7c505ea35e34bc58
|
|
| BLAKE2b-256 |
09ef7808bb3dfdb868a68497dc91ae57a3a85cfec0e8edf8c63c7b1ae2a3363f
|
File details
Details for the file beaglemind_cli-1.0.3-py3-none-any.whl.
File metadata
- Download URL: beaglemind_cli-1.0.3-py3-none-any.whl
- Upload date:
- Size: 38.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f91f9e29ff872f47e59efab01a513e9d5d9d58e9c73db6c9719280b9156985d6
|
|
| MD5 |
9372f6d126d62b4b8cee8e45480d0228
|
|
| BLAKE2b-256 |
1e648af27267ab4638af3e6612e00d9b38d3c94a7bde7453971a699c91de0d32
|