Fss-Rag-Mini/docs/TUI_GUIDE.md
BobAi a84ff94fba Improve UX with streaming tokens, fix model references, and add icon integration
This comprehensive update enhances user experience with several key improvements:

## Enhanced Streaming & Thinking Display
- Implement real-time streaming with gray thinking tokens that collapse after completion
- Fix thinking token redisplay bug with proper content filtering
- Add clear "AI Response:" headers to separate thinking from responses
- Enable streaming by default for better user engagement
- Keep thinking visible for exploration, collapse only for suggested questions

## Natural Conversation Responses
- Convert clunky JSON exploration responses to natural, conversational format
- Improve exploration prompts for friendly, colleague-style interactions
- Update summary generation with better context handling
- Eliminate double response display issues

## Model Reference Updates
- Remove all llama3.2 references in favor of qwen3 models
- Fix non-existent qwen3:3b references, replace with proper model names
- Update model rankings to prioritize working qwen models across all components
- Ensure consistent model recommendations in docs and examples

## Cross-Platform Icon Integration
- Add desktop icon setup to Linux installer with .desktop entry
- Add Windows shortcuts for desktop and Start Menu integration
- Improve installer user experience with visual branding

## Configuration & Navigation Fixes
- Fix "0" option in configuration menu to properly go back
- Improve configuration menu user-friendliness
- Update troubleshooting guides with correct model suggestions

These changes significantly improve the beginner experience while maintaining
technical accuracy and system reliability.
2025-08-15 12:20:06 +10:00

440 lines
14 KiB
Markdown

# FSS-Mini-RAG Text User Interface Guide
## Overview
The TUI (Text User Interface) provides a beginner-friendly, menu-driven way to use FSS-Mini-RAG without memorizing command-line syntax. It's designed with a "learn by doing" approach - you use the friendly interface while seeing the CLI commands, naturally building confidence to use the command line directly.
## Quick Start
```bash
./rag-tui
```
That's it! The TUI will guide you through everything.
## Interface Design Philosophy
### Learn by Doing
- **No reading required** - Jump in and start using it
- **CLI commands shown** - See equivalent commands as you work
- **Progressive disclosure** - Basic actions upfront, advanced options available
- **Natural transition** - Build confidence to try CLI commands
### User Flow
1. **Select Project** → Choose directory to search
2. **Index Project** → Process files for search
3. **Search Content** → Find what you need quickly
4. **Explore Project** → Interactive AI-powered discovery (NEW!)
5. **Configure System** → Customize search behavior
## Main Menu Options
### 1. Select Project Directory
**Purpose**: Choose which codebase to work with
**Options**:
- **Enter project path** - Type any directory path
- **Use current directory** - Index where you are now
- **Browse recent projects** - Pick from previously indexed projects
**What You Learn**:
- Project paths and directory navigation
- How RAG works with specific directories
- CLI equivalent: All commands need a project path
**CLI Commands Shown**:
```bash
# You'll see these patterns throughout
./rag-mini <command> /path/to/your/project
```
### 2. Index Project for Search
**Purpose**: Process files to make them searchable
**What Happens**:
- Scans all files in project directory
- Breaks text into searchable chunks
- Creates embeddings (AI numerical representations)
- Stores in local database (`.mini-rag/` folder)
**Interactive Elements**:
- **Force re-index option** - Completely rebuild if needed
- **Progress feedback** - See files being processed
- **Results summary** - Files processed, chunks created, timing
**What You Learn**:
- Why indexing is necessary (one-time setup per project)
- What gets indexed (code files, documentation, configs)
- How fast the system works
- Storage location (`.mini-rag/` directory)
**CLI Commands Shown**:
```bash
./rag-mini index /path/to/project # Basic indexing
./rag-mini index /path/to/project --force # Force complete re-index
```
### 3. Search Project
**Purpose**: Find code using natural language queries
**Interactive Process**:
1. **Enter search query** - Natural language or keywords
2. **Set result limit** - How many matches to show (1-20)
3. **View results** - See full content, not just snippets
**Result Display**:
- **File path** - Relative to project root
- **Relevance score** - How closely it matches your query
- **Line numbers** - Exact location in file
- **Context** - Function/class name if applicable
- **Full content** - Up to 8 lines of actual code/text
- **Continuation info** - How many more lines exist
**Advanced Tips Shown**:
- Enhanced search with `./rag-mini-enhanced`
- Verbose output with `--verbose` flag
- Context-aware search for related code
**What You Learn**:
- Semantic search vs text search (finds concepts, not just words)
- How to phrase effective queries
- Reading search results and relevance scores
- When to use different search strategies
**CLI Commands Shown**:
```bash
./rag-mini search /path/to/project "authentication logic"
./rag-mini search /path/to/project "user login" --limit 10
./rag-mini-enhanced context /path/to/project "login()"
```
### 4. Explore Project (NEW!)
**Purpose**: Interactive AI-powered discovery with conversation memory
**What Makes Explore Different**:
- **Conversational**: Ask follow-up questions that build on previous answers
- **AI Reasoning**: Uses thinking mode for deeper analysis and explanations
- **Educational**: Perfect for understanding unfamiliar codebases
- **Context Aware**: Remembers what you've already discussed
**Interactive Process**:
1. **First Question Guidance**: Clear prompts with example questions
2. **Starter Suggestions**: Random helpful questions to get you going
3. **Natural Follow-ups**: Ask "why?", "how?", "show me more" naturally
4. **Session Memory**: AI remembers your conversation context
**Explore Mode Features**:
**Quick Start Options**:
- **Option 1 - Help**: Show example questions and explore mode capabilities
- **Option 2 - Status**: Project information and current exploration session
- **Option 3 - Suggest**: Get a random starter question picked from 7 curated examples
**Starter Questions** (randomly suggested):
- "What are the main components of this project?"
- "How is error handling implemented?"
- "Show me the authentication and security logic"
- "What are the key functions I should understand first?"
- "How does data flow through this system?"
- "What configuration options are available?"
- "Show me the most important files to understand"
**Advanced Usage**:
- **Deep Questions**: "Why is this function slow?" "How does the security work?"
- **Code Analysis**: "Explain this algorithm" "What could go wrong here?"
- **Architecture**: "How do these components interact?" "What's the design pattern?"
- **Best Practices**: "Is this code following best practices?" "How would you improve this?"
**What You Learn**:
- **Conversational AI**: How to have productive technical conversations with AI
- **Code Understanding**: Deep analysis capabilities beyond simple search
- **Context Building**: How conversation memory improves over time
- **Question Techniques**: Effective ways to explore unfamiliar code
**CLI Commands Shown**:
```bash
./rag-mini explore /path/to/project # Start interactive exploration
```
**Perfect For**:
- Understanding new codebases
- Code review and analysis
- Learning from existing projects
- Documenting complex systems
- Onboarding new team members
### 5. View Status
**Purpose**: Check system health and project information
**Information Displayed**:
**Project Status**:
- **Indexing status** - Whether project is indexed
- **File count** - How many files are searchable
- **Chunk count** - Total searchable pieces
- **Last update** - When indexing was last run
- **Average chunks per file** - Efficiency metric
**Embedding System Status**:
- **Current method** - Ollama, ML fallback, or hash
- **Quality level** - High, good, or basic
- **Model information** - Which AI model is active
**What You Learn**:
- System architecture (embedding methods)
- Project statistics and health
- When re-indexing might be needed
- Performance characteristics
**CLI Commands Shown**:
```bash
./rag-mini status /path/to/project
```
### 6. Configuration Manager (ENHANCED!)
**Purpose**: Interactive configuration with user-friendly options
**New Interactive Features**:
- **Live Configuration Dashboard** - See current settings with clear status
- **Quick Configuration Options** - Change common settings without YAML editing
- **Guided Setup** - Explanations and presets for each option
- **Validation** - Input checking and helpful error messages
**Main Configuration Options**:
**1. Adjust Chunk Size**:
- **Presets**: Small (1000), Medium (2000), Large (3000), or custom
- **Guidance**: Performance vs accuracy explanations
- **Smart Validation**: Range checking and recommendations
**2. Toggle Query Expansion**:
- **Educational Info**: Clear explanation of benefits and requirements
- **Easy Toggle**: Simple on/off with confirmation
- **System Check**: Verifies Ollama availability for AI features
**3. Configure Search Behavior**:
- **Result Count**: Adjust default number of search results (1-100)
- **BM25 Toggle**: Enable/disable keyword matching boost
- **Similarity Threshold**: Fine-tune match sensitivity (0.0-1.0)
**4. View/Edit Configuration File**:
- **Full File Viewer**: Display complete config with syntax highlighting
- **Editor Instructions**: Commands for nano, vim, VS Code
- **YAML Help**: Format explanation and editing tips
**5. Reset to Defaults**:
- **Safe Reset**: Confirmation before resetting all settings
- **Clear Explanations**: Shows what defaults will be restored
- **Backup Reminder**: Suggests saving current config first
**6. Advanced Settings**:
- **File Filtering**: Min file size, exclude patterns (view only)
- **Performance Settings**: Batch sizes, streaming thresholds
- **LLM Preferences**: Model rankings and selection priorities
**Key Settings Dashboard**:
- 📁 **Chunk size**: 2000 characters (with emoji indicators)
- 🧠 **Chunking strategy**: semantic
- 🔍 **Search results**: 10 results
- 📊 **Embedding method**: ollama
- 🚀 **Query expansion**: enabled/disabled
-**LLM synthesis**: enabled/disabled
**What You Learn**:
- **Configuration Impact**: How settings affect search quality and speed
- **Interactive YAML**: Easier than manual editing for beginners
- **Best Practices**: Recommended settings for different project types
- **System Understanding**: How all components work together
**CLI Commands Shown**:
```bash
cat /path/to/project/.mini-rag/config.yaml # View config
nano /path/to/project/.mini-rag/config.yaml # Edit config
```
**Perfect For**:
- Beginners who find YAML intimidating
- Quick adjustments without memorizing syntax
- Understanding what each setting actually does
- Safe experimentation with guided validation
### 7. CLI Command Reference
**Purpose**: Complete command reference for transitioning to CLI
**Organized by Use Case**:
**Basic Commands**:
- Daily usage patterns
- Essential operations
- Common options
**Enhanced Commands**:
- Advanced search features
- Analysis and optimization
- Pattern finding
**Quick Scripts**:
- Simplified wrappers
- Batch operations
- Development workflow integration
**Options Reference**:
- Flags and their purposes
- When to use each option
- Performance considerations
**What You Learn**:
- Complete CLI capabilities
- How TUI maps to CLI commands
- Advanced features not in TUI
- Integration possibilities
## Educational Features
### Progressive Learning
**Stage 1: TUI Comfort**
- Use menus and prompts
- See immediate results
- Build understanding through doing
**Stage 2: CLI Awareness**
- Notice commands being shown
- Understand command structure
- See patterns in usage
**Stage 3: CLI Experimentation**
- Try simple commands from TUI
- Compare TUI vs CLI speed
- Explore advanced options
**Stage 4: CLI Proficiency**
- Use CLI for daily tasks
- Script and automate workflows
- Customize for specific needs
### Knowledge Building
**Concepts Learned**:
- **Semantic search** - AI understanding vs text matching
- **Embeddings** - How text becomes searchable numbers
- **Chunking** - Breaking files into meaningful pieces
- **Configuration** - Customizing for different projects
- **Indexing** - One-time setup vs incremental updates
**Skills Developed**:
- **Query crafting** - How to phrase effective searches
- **Result interpretation** - Understanding relevance scores
- **System administration** - Configuration and maintenance
- **Workflow integration** - Using RAG in development process
## Advanced Usage Patterns
### Project Management Workflow
1. **New Project**: Select directory → Index → Configure if needed
2. **Existing Project**: Check status → Search → Re-index if outdated
3. **Multiple Projects**: Use recent projects browser for quick switching
### Search Strategies
**Concept Searches**:
- "user authentication" → finds login, auth, sessions
- "database connection" → finds DB code, connection pools, queries
- "error handling" → finds try/catch, error classes, logging
**Specific Code Searches**:
- "class UserManager" → finds class definitions
- "function authenticate()" → finds specific functions
- "config settings" → finds configuration code
**Pattern Searches**:
- "validation logic" → finds input validation across files
- "API endpoints" → finds route definitions and handlers
- "test cases" → finds unit tests and test data
### Configuration Optimization
**Small Projects** (< 100 files):
- Default settings work well
- Consider smaller chunk sizes for very granular search
**Large Projects** (> 1000 files):
- Exclude build directories and dependencies
- Increase chunk sizes for broader context
- Use semantic chunking for code-heavy projects
**Mixed Content Projects**:
- Balance chunk sizes for code vs documentation
- Configure file patterns to include/exclude specific types
- Use appropriate embedding methods for content type
## Troubleshooting
### Common Issues
**"Project not indexed"**:
- Use "Index project for search" from main menu
- Check if project path is correct
- Look for permission issues
**"No results found"**:
- Try broader search terms
- Check project is actually indexed
- Verify files contain expected content
**"Search results poor quality"**:
- Check embedding system status
- Consider re-indexing with --force
- Review configuration for project type
**"System seems slow"**:
- Check if Ollama is running (best performance)
- Consider ML fallback installation
- Review project size and exclude patterns
### Learning Resources
**Built-in Help**:
- TUI shows CLI commands throughout
- Configuration section explains all options
- Status shows system health
**External Resources**:
- `README.md` - Complete technical documentation
- `examples/config.yaml` - Configuration examples
- `docs/GETTING_STARTED.md` - Step-by-step setup guide
**Community Patterns**:
- Common search queries for different languages
- Project-specific configuration examples
- Integration with IDEs and editors
## Tips for Success
### Getting Started
1. **Start with a small project** - Learn the basics without complexity
2. **Try different search terms** - Experiment with phrasing
3. **Watch the CLI commands** - Notice patterns and structure
4. **Use the status check** - Understand what's happening
### Building Expertise
1. **Compare TUI vs CLI speed** - See when CLI becomes faster
2. **Experiment with configuration** - Try different settings
3. **Search your own code** - Use familiar projects for learning
4. **Try advanced searches** - Explore enhanced commands
### Transitioning to CLI
1. **Copy commands from TUI** - Start with exact commands shown
2. **Modify gradually** - Change options and see effects
3. **Build shortcuts** - Create aliases for common operations
4. **Integrate with workflow** - Add to development process
The TUI is designed to be your training wheels - use it as long as you need, and transition to CLI when you're ready. There's no pressure to abandon the TUI; it's a fully functional interface that many users prefer permanently.