Skip to main content

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)

  1. Install Ollama: https://ollama.ai
  2. Pull a supported model:
    ollama pull qwen3:1.7b
    
  3. 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:

  1. Use /sources when you need provenance; turn it off for faster, cleaner output.
  2. Disable tools (/tools) if you want read-only behavior.
  3. 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

  1. Be specific: "How to configure GPIO pins on BeagleY-AI?" vs "GPIO help"

  2. Use technical terms: Include model names, component names, exact error messages

  3. Ask follow-up questions: Build on previous responses for deeper understanding

  4. Use --sources: See exactly where information comes from

  5. 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

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

beaglemind_cli-1.0.3.tar.gz (35.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

beaglemind_cli-1.0.3-py3-none-any.whl (38.4 kB view details)

Uploaded Python 3

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

Hashes for beaglemind_cli-1.0.3.tar.gz
Algorithm Hash digest
SHA256 8e5adc539803e59c32dfc57eadf93f515f056c738d59cc54c0299fed55a70c9c
MD5 41a0ed7d4010b16c7c505ea35e34bc58
BLAKE2b-256 09ef7808bb3dfdb868a68497dc91ae57a3a85cfec0e8edf8c63c7b1ae2a3363f

See more details on using hashes here.

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

Hashes for beaglemind_cli-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f91f9e29ff872f47e59efab01a513e9d5d9d58e9c73db6c9719280b9156985d6
MD5 9372f6d126d62b4b8cee8e45480d0228
BLAKE2b-256 1e648af27267ab4638af3e6612e00d9b38d3c94a7bde7453971a699c91de0d32

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page