- Finishing text.

This commit is contained in:
Rodrigo Rodriguez (Pragmatismo) 2025-11-24 18:09:17 -03:00
parent bbd3ebb279
commit 3c7d7b171c
90 changed files with 750 additions and 1227 deletions

View file

@ -1,544 +0,0 @@
# Blog to Documentation Integration Plan
## Overview
This document maps blog posts to relevant documentation chapters and provides enhanced introductions for main documentation articles to improve educational value.
## Blog Post to Documentation Mapping
### Chapter 1: Run and Talk (Installation & Quick Start)
**Related Blog Posts:**
- "Escape from Bigtech" - Alternative to proprietary solutions
- "Why Pragmatismo Selected Open Source" - Philosophy behind the platform
- "Cost-Effective Bot Orchestration" - Economic benefits of self-hosting
**Enhanced Introduction:**
```markdown
# Chapter 01: Run and Talk
Welcome to General Bots - your journey to AI independence starts here. In a world dominated by expensive, proprietary AI solutions, General Bots offers a refreshing alternative: a complete, open-source AI platform that you control entirely.
## Why General Bots?
Before diving into installation, let's understand what makes General Bots different:
1. **Complete Ownership**: Unlike SaaS solutions that lock your data in the cloud, General Bots runs on your infrastructure. Your conversations, your data, your rules.
2. **Zero-to-AI in Minutes**: Our bootstrap process sets up everything - database, storage, vector search, and AI models - with a single command. No DevOps expertise required.
3. **Cost-Effective**: As explained in our post ["Cost-Effective Bot Orchestration"](/blog/cost-effective-bot-orchestration), running your own AI infrastructure can be 10x cheaper than cloud services at scale.
4. **Privacy First**: Your data never leaves your servers. Perfect for healthcare, finance, or any privacy-conscious application.
## What You'll Learn
This chapter guides you through:
- Installing General Bots with one command
- Understanding the bootstrap process
- Having your first AI conversation
- Exploring the self-contained architecture
## Further Reading
- [Why We Chose Open Source](/blog/why-pragmatismo-selected-open-source)
- [Escape from BigTech](/blog/escape-from-bigtech)
- [The Hidden Costs of SaaS](/blog/saas-hidden-costs)
```
### Chapter 2: About Packages
**Related Blog Posts:**
- "Ready-to-Use AI Templates" - Pre-built solutions
- "Digital Twins" - Advanced bot personalities
- "No Forms" - Conversational UI philosophy
**Enhanced Introduction:**
```markdown
# Chapter 02: About Packages
General Bots revolutionizes AI development through its unique package system. Instead of complex programming, you work with templates - simple, powerful building blocks that anyone can understand and modify.
## The Template Revolution
Traditional AI development requires teams of engineers. General Bots changes this paradigm. As discussed in ["BASIC for Everyone"](/blog/basic-for-everyone), we believe AI should be accessible to domain experts, not just programmers.
## Package Types at a Glance
1. **.gbai** - Complete bot personalities ([Digital Twins](/blog/digital-twins))
2. **.gbdialog** - Conversation flows in simple BASIC
3. **.gbkb** - Knowledge bases that give your bot expertise
4. **.gbot** - Configuration without code
5. **.gbtheme** - Visual customization
6. **.gbui** - Interface templates ([No Forms philosophy](/blog/no-forms))
## Why Templates Matter
Templates democratize AI development:
- **Business analysts** can create conversation flows
- **Subject matter experts** can build knowledge bases
- **Designers** can customize interfaces
- **No coding required** for most tasks
## Success Stories
See how organizations use templates:
- Customer service automation ([Ready-to-Use Templates](/blog/general-bots-ai-templates))
- Personal productivity bots ([Digital Twins](/blog/digital-twins))
- Enterprise workflows without forms ([No Forms](/blog/no-forms))
## Next Steps
- Explore each package type in detail
- Download pre-built templates
- Create your first custom package
```
### Chapter 3: Knowledge Base (gbkb)
**Related Blog Posts:**
- "LLM Myths in 2025" - Understanding AI limitations
- "Illusion of Intelligence" - How knowledge bases create real value
- "What is LLM?" - Foundation concepts
**Enhanced Introduction:**
```markdown
# Chapter 03: gbkb Knowledge Base Reference
Knowledge is power, and in AI, structured knowledge is everything. The .gbkb system transforms your documents, websites, and data into queryable intelligence that enhances your bot beyond generic LLM responses.
## Beyond Generic AI
As we explore in ["LLM Myths in 2025"](/blog/llm-myths-2025), large language models have limitations. They can't know your specific business rules, your product documentation, or your internal procedures. That's where .gbkb comes in.
## The Knowledge Advantage
Generic LLMs give generic answers. Knowledge bases provide:
- **Accuracy**: Responses based on your actual documentation
- **Consistency**: Same answer every time for critical information
- **Control**: You decide what information is available
- **Updates**: Change knowledge without retraining models
## Understanding the Technology
Before diving deep, understand the foundations:
- [What is LLM?](/blog/what-is-llm) - Core concepts
- [The Illusion of Intelligence](/blog/illusion-of-intelligence) - Why context matters
- [Beyond Chatbots](/blog/beyond-chatbots) - Real business applications
## Real-World Applications
Knowledge bases power:
- Customer support with product documentation
- HR bots with company policies
- Legal assistants with case law
- Medical bots with treatment protocols
## What You'll Master
This chapter teaches you to:
- Build knowledge bases from documents
- Index websites automatically
- Implement semantic search
- Optimize retrieval accuracy
- Manage knowledge updates
## Performance Tips
- Structure documents for optimal chunking
- Use metadata for better filtering
- Implement feedback loops for improvement
```
### Chapter 4: User Interface (.gbui)
**Related Blog Posts:**
- "No Forms" - Conversational UI philosophy
- "Deswindonization" - Breaking free from proprietary UIs
- "Beyond Chatbots" - Rich interaction patterns
**Enhanced Introduction:**
```markdown
# Chapter 04: .gbui User Interface Reference
The future of user interfaces isn't more forms and buttons - it's conversation. The .gbui system lets you create rich, responsive interfaces that adapt to how humans actually communicate.
## The End of Forms
Traditional software forces users into rigid forms. As explored in ["No Forms"](/blog/no-forms), conversational interfaces are more natural, more flexible, and more powerful. Users describe what they need in their own words, and the system understands.
## Breaking Free from Constraints
["Deswindonization"](/blog/deswindonization) isn't just about operating systems - it's about breaking free from rigid UI paradigms. With .gbui templates, you can:
- Create interfaces that work everywhere
- Build once, deploy to web, mobile, and desktop
- Customize without vendor lock-in
## Beyond Simple Chat
While chatbots are the foundation, modern AI interfaces need more. ["Beyond Chatbots"](/blog/beyond-chatbots) shows how .gbui enables:
- Rich media interactions
- Multi-modal inputs (voice, images, files)
- Contextual suggestions
- Workflow integration
- Real-time collaboration
## Template Philosophy
.gbui templates are:
- **HTML-based**: Use web standards, not proprietary formats
- **Responsive**: Adapt to any screen size automatically
- **Accessible**: Built-in ARIA support and keyboard navigation
- **Themeable**: Complete separation of structure and style
- **Extensible**: Add your own components and behaviors
## Available Templates
Start with pre-built templates:
- `default.gbui` - Full-featured desktop interface
- `single.gbui` - Minimalist chat interface
- `mobile.gbui` - Touch-optimized experience
- `kiosk.gbui` - Public display mode
- `widget.gbui` - Embeddable component
## Integration Patterns
Learn to integrate with:
- Existing web applications
- Mobile apps via WebView
- Desktop applications
- Progressive Web Apps (PWA)
## Further Reading
- [UI Design Philosophy](/blog/no-forms)
- [Breaking Platform Lock-in](/blog/deswindonization)
- [Rich Interactions](/blog/beyond-chatbots)
```
### Chapter 5: CSS Theming (gbtheme)
**Related Blog Posts:**
- "Deswindonization" - Visual independence
- "Breaking free from proprietary ecosystems"
**Enhanced Introduction:**
```markdown
# Chapter 05: gbtheme CSS Reference
Great AI deserves great design. The .gbtheme system gives you complete control over your bot's visual identity without touching code. From corporate minimalism to playful personalities, your bot can look exactly how you envision.
## Visual Independence
Following our ["Deswindonization"](/blog/deswindonization) philosophy, themes aren't locked to any design system. Use Material Design, Bootstrap, or create something entirely unique. Your bot, your brand, your rules.
## Psychology of Design
Visual design affects user trust and engagement:
- **Professional themes** for enterprise deployments
- **Friendly themes** for customer service
- **Minimalist themes** for productivity tools
- **Playful themes** for educational bots
## Theme Architecture
Themes are just CSS - no proprietary formats:
- CSS custom properties for colors
- Flexible class targeting
- Media queries for responsive design
- Animation and transition support
- Dark mode variations
## Pre-Built Themes
Start with our curated themes:
- `default.css` - Clean, modern design
- `3dbevel.css` - Retro Windows 95 aesthetic
- `dark.css` - Eye-friendly dark mode
- `minimal.css` - Distraction-free
- `corporate.css` - Professional appearance
## Customization Workflow
1. Start with a base theme
2. Override CSS variables
3. Adjust component styles
4. Test across devices
5. Package and deploy
## Advanced Techniques
- Dynamic theme switching
- User preference persistence
- Seasonal variations
- A/B testing different designs
- Performance optimization
```
### Chapter 6: BASIC Dialogs (gbdialog)
**Related Blog Posts:**
- "BASIC for Everyone" - Philosophy and accessibility
- "BASIC LLM Tools" - Extending LLMs with code
- "MCP is the new API" - Tool integration
**Enhanced Introduction:**
```markdown
# Chapter 06: gbdialog BASIC Reference
BASIC is back, and it's powering the AI revolution. In an age of complex programming languages, General Bots chose BASIC for a simple reason: everyone can learn it in minutes, yet it's powerful enough to orchestrate sophisticated AI workflows.
## Why BASIC in 2025?
As detailed in ["BASIC for Everyone"](/blog/basic-for-everyone), we believe AI development shouldn't require a computer science degree. BASIC's English-like syntax means:
- Business analysts can write automation
- Teachers can create educational bots
- Doctors can build medical assistants
- No programming background needed
## Beyond Simple Scripts
Modern BASIC isn't your grandfather's language. ["BASIC LLM Tools"](/blog/basic-llm-tools) shows how BASIC scripts can:
- Orchestrate multiple AI models
- Process complex data
- Integrate with any API
- Handle enterprise workflows
- Scale to millions of users
## The MCP Revolution
["MCP is the new API"](/blog/mcp-is-the-new-api) explains how BASIC scripts can instantly become tool servers for any AI system. Write once in BASIC, use everywhere:
- As Claude MCP tools
- As OpenAI functions
- As REST APIs
- As automation scripts
## Core Concepts
BASIC in General Bots is:
- **Conversational**: TALK, HEAR, and natural flow
- **Integrated**: Direct access to AI, knowledge, and tools
- **Asynchronous**: Handle multiple conversations
- **Stateful**: Remember context across sessions
- **Extensible**: Add custom keywords easily
## Your First Script
```basic
' Greet the user
TALK "Hello! I'm your AI assistant."
' Get their name
TALK "What's your name?"
name = HEAR
' Personalized response
TALK "Nice to meet you, " + name + "!"
' Offer help
TALK "What can I help you with today?"
request = HEAR
' Use AI to help
response = LLM "Help the user with: " + request
TALK response
```
## Power Features
Advanced capabilities you'll learn:
- Multi-channel messaging (WhatsApp, Teams, Email)
- Database operations
- File handling
- API integration
- Scheduled tasks
- Error handling
- User authentication
## Success Stories
See BASIC in action:
- Customer service automation
- Data processing pipelines
- Report generation
- Appointment scheduling
- Content creation
## Further Reading
- [BASIC Philosophy](/blog/basic-for-everyone)
- [Extending LLMs with BASIC](/blog/basic-llm-tools)
- [Creating MCP Tools](/blog/mcp-is-the-new-api)
```
### Chapter 7: Architecture (gbapp)
**Related Blog Posts:**
- "Why Pragmatismo Selected Open Source" - Architecture decisions
- "Cost-Effective Bot Orchestration" - System design
- "LLM Boom Is Over" - Practical architecture
**Enhanced Introduction:**
```markdown
# Chapter 07: gbapp Architecture Reference
Understanding General Bots' architecture empowers you to extend, optimize, and scale your AI infrastructure. Built on Rust for performance and reliability, the system is designed for both simplicity and power.
## Architectural Philosophy
As explained in ["Why We Selected Open Source"](/blog/why-pragmatismo-selected-open-source), every architectural decision prioritizes:
- **Ownership**: You control every component
- **Simplicity**: Single binary, minimal dependencies
- **Performance**: Rust's speed and safety
- **Flexibility**: Modular feature system
- **Scalability**: From laptop to cloud cluster
## The Post-Boom Architecture
["LLM Boom Is Over"](/blog/llm-boom-is-over) discusses the shift from hype to practical applications. General Bots' architecture reflects this maturity:
- Local-first design
- Efficient resource usage
- Practical feature set
- Production stability
## Cost-Effective Design
["Cost-Effective Bot Orchestration"](/blog/cost-effective-bot-orchestration) shows how architectural choices reduce costs:
- Single binary deployment
- Embedded databases option
- Efficient caching
- Minimal resource requirements
- Horizontal scaling capability
## System Components
Core architecture modules:
- **Bootstrap**: Zero-configuration setup
- **Package Manager**: Template system
- **Session Manager**: Conversation state
- **LLM Router**: Model orchestration
- **Storage Layer**: Files and data
- **Channel Adapters**: Multi-platform support
## Development Workflow
Extending General Bots:
1. Understanding the module structure
2. Adding custom keywords
3. Creating channel adapters
4. Building integrations
5. Contributing upstream
## Performance Characteristics
- Startup time: < 2 seconds
- Memory usage: ~100MB base
- Concurrent sessions: 10,000+
- Response latency: < 50ms
- Throughput: 1,000 msg/sec
## Further Reading
- [Architecture Decisions](/blog/why-pragmatismo-selected-open-source)
- [Practical AI Systems](/blog/llm-boom-is-over)
- [Cost Analysis](/blog/cost-effective-bot-orchestration)
```
### Chapter 8: Configuration (gbot)
**Related Blog Posts:**
- "Own Your Authenticator Stack" - Security configuration
- "Marginalized E-mail Services" - Email setup challenges
- "SDG AI" - Configuring for social good
### Chapter 9: API and Tools
**Related Blog Posts:**
- "MCP is the new API" - Modern tool integration
- "BASIC LLM Tools" - Tool creation patterns
- "Carl vs. Wilson" - API vendor lock-in
### Chapter 10: Features
**Related Blog Posts:**
- "Digital Twins" - Advanced features
- "RCS vs. WhatsApp" - Channel comparison
- "Beyond Chatbots" - Feature possibilities
### Chapter 11: Community
**Related Blog Posts:**
- "Carl vs. Wilson" - Open source benefits
- "Sustainable Development Goals and AI" - Community impact
- "Deswindonization" - Community philosophy
## Implementation Strategy
### 1. Add Blog Links to Chapter Footers
Each chapter should include a "Further Reading" section with relevant blog posts:
```markdown
## Further Reading
### Related Blog Posts
- [Title 1](/blog/slug-1) - Brief description
- [Title 2](/blog/slug-2) - Brief description
- [Title 3](/blog/slug-3) - Brief description
### Next Chapter
Continue to [Chapter Name](../chapter-XX/README.md)
```
### 2. Enhanced Chapter Introductions
Each main chapter README should include:
- **Hook**: Why this matters (2-3 sentences)
- **Context**: Connection to broader concepts
- **Philosophy**: Link to relevant blog posts
- **What You'll Learn**: Clear objectives
- **Prerequisites**: What to know first
- **Real-World Applications**: Concrete examples
- **Further Reading**: Blog posts for depth
### 3. Blog Post Updates
Add documentation links to relevant blog posts:
```markdown
## Learn More
This concept is covered in depth in our documentation:
- [Chapter X: Topic Name](/docs/chapter-XX/) - Full technical reference
- [Quick Start Guide](/docs/chapter-01/quick-start) - Get started in 5 minutes
```
### 4. Cross-Reference Matrix
Create a matrix showing blog ↔ documentation relationships:
| Blog Post | Primary Chapter | Secondary Chapters |
|-----------|----------------|-------------------|
| BASIC for Everyone | Ch 6: gbdialog | Ch 2: Packages |
| No Forms | Ch 4: .gbui | Ch 5: gbtheme |
| MCP is the new API | Ch 9: API | Ch 6: gbdialog |
| Digital Twins | Ch 2: Packages | Ch 10: Features |
| LLM Myths | Ch 3: gbkb | Ch 10: Features |
### 5. Educational Path Recommendations
Create learning paths that combine blog posts and documentation:
#### Path 1: Business User
1. Blog: "No Forms"
2. Blog: "BASIC for Everyone"
3. Doc: Chapter 1 - Quick Start
4. Doc: Chapter 6 - BASIC Basics
5. Blog: "Ready-to-Use Templates"
#### Path 2: Developer
1. Blog: "Why Open Source"
2. Doc: Chapter 1 - Installation
3. Doc: Chapter 7 - Architecture
4. Blog: "MCP is the new API"
5. Doc: Chapter 9 - API Reference
#### Path 3: Enterprise Architect
1. Blog: "Cost-Effective Orchestration"
2. Blog: "Own Your Stack"
3. Doc: Chapter 7 - Architecture
4. Doc: Chapter 12 - Security
5. Blog: "Carl vs. Wilson"
## Metrics for Success
Track engagement to optimize the integration:
- Click-through rate from docs to blog
- Click-through rate from blog to docs
- Time spent on enhanced introductions
- User journey completion rates
- Feedback on educational value
## Next Steps
1. Update all chapter README files with enhanced introductions
2. Add "Further Reading" sections to each chapter
3. Update blog posts with documentation links
4. Create visual learning path diagram
5. Add navigation hints in both blog and docs

View file

@ -1,131 +0,0 @@
# Chapter Reorganization Summary
## Overview
Documentation chapters have been reorganized to better reflect the logical flow from user interface definition (.gbui files) to styling (gbtheme), followed by functionality and configuration.
## Chapter Changes
### Before → After Mapping
| Old Chapter | Old Topic | New Chapter | New Topic |
|------------|-----------|-------------|-----------|
| Chapter 4 | gbtheme (Theme & UI) | Chapter 4 | .gbui Interface Reference |
| Chapter 5 | gbdialog (BASIC) | Chapter 5 | gbtheme CSS Reference |
| Chapter 6 | gbapp/Rust Architecture | Chapter 6 | gbdialog (BASIC) |
| Chapter 7 | gbot Configuration | Chapter 7 | gbapp Architecture |
| Chapter 8 | Tooling | Chapter 8 | gbot Configuration |
| Chapter 9 | Features | Chapter 9 | API and Tooling |
| Chapter 10 | Contributing | Chapter 10 | Feature Reference |
| Chapter 10 | .gbui (was new) | Chapter 11 | Contributing |
| Chapter 11 | Authentication | Chapter 12 | Authentication |
| Chapter 12 | REST API | Chapter 13 | REST API |
## Rationale for Changes
### 1. UI Before Styling (Chapters 4 & 5)
- **.gbui files (Chapter 4)** define the structure and behavior of user interfaces
- **gbtheme (Chapter 5)** provides CSS styling for those interfaces
- This order reflects the natural development flow: structure first, then styling
### 2. Content Migration
UI-specific content from the old Chapter 4 (gbtheme) has been moved to Chapter 4 (.gbui):
- `ui-interface.md` → Chapter 4
- `html.md``html-templates.md` in Chapter 4
- `desktop-mode.md` → Chapter 4
- `console-mode.md` → Chapter 4
The gbtheme chapter (now Chapter 5) focuses purely on CSS theming:
- `css.md` - CSS customization
- `structure.md` - Theme package structure
- Theme examples (3D bevel, etc.)
### 3. Logical Flow
The new organization follows a more intuitive progression:
1. **Installation & Setup** (Chapter 1)
2. **Package System** (Chapter 2)
3. **Knowledge Base** (Chapter 3)
4. **User Interface** (Chapter 4 - .gbui)
5. **Styling** (Chapter 5 - gbtheme)
6. **Dialog Logic** (Chapter 6 - gbdialog/BASIC)
7. **Architecture** (Chapter 7 - gbapp)
8. **Configuration** (Chapter 8 - gbot)
9. **API & Tools** (Chapter 9)
10. **Features** (Chapter 10)
11. **Community** (Chapter 11)
12. **Security** (Chapter 12)
13. **REST API** (Chapter 13)
## File Structure Changes
### Renamed Directories
```
docs/src/
├── chapter-04-gbui/ # Was chapter-10-gbui, includes UI content from old chapter-04
├── chapter-05-gbtheme/ # Was chapter-04, now focused on CSS only
├── chapter-06-gbdialog/ # Was chapter-05
├── chapter-07-gbapp/ # Was chapter-06
├── chapter-08-config/ # Was chapter-07
├── chapter-09-api/ # Was chapter-08
├── chapter-10-features/ # Was chapter-09
├── chapter-11-community/ # Was chapter-10
├── chapter-12-auth/ # Was chapter-11
└── chapter-13-api/ # Was chapter-12
```
### Deleted Old Directories
The following empty directories were removed after content migration:
- `chapter-04/` through `chapter-10/` (old structure)
- `chapter-10-gbui/` (duplicate after move)
## Key Benefits
1. **Better Learning Path**: Users now learn about UI structure (.gbui) before styling (gbtheme)
2. **Clearer Separation**: UI definition, styling, and logic are in separate chapters
3. **Consolidated UI Documentation**: All UI-related content is now in Chapter 4
4. **Pure CSS Focus**: Chapter 5 now focuses exclusively on theming without mixing UI concepts
## Migration Checklist
- [x] Move chapter directories to new numbers
- [x] Transfer UI content from gbtheme to gbui chapter
- [x] Update all chapter references in SUMMARY.md
- [x] Update chapter references in main README.md
- [x] Update cross-references within chapters
- [x] Delete old empty directories
- [x] Update keyword file references (chapter-05 → chapter-06-gbdialog)
- [x] Fix authentication chapter references (chapter-11 → chapter-12-auth)
- [x] Fix API chapter references (chapter-12 → chapter-13-api)
## Files Moved Between Chapters
From `chapter-05-gbtheme/` to `chapter-04-gbui/`:
- `ui-interface.md``ui-interface.md`
- `html.md``html-templates.md`
- `desktop-mode.md``desktop-mode.md`
- `console-mode.md``console-mode.md`
## Updated Cross-References
All internal links have been updated to reflect the new chapter numbers:
- BASIC references: `../chapter-05/``../chapter-06-gbdialog/`
- Theme references: `../chapter-04/``../chapter-05-gbtheme/`
- UI references: Point to `../chapter-04-gbui/`
- Configuration: `../chapter-07/``../chapter-08-config/`
- Architecture: `../chapter-06/``../chapter-07-gbapp/`
## Testing Required
After reorganization, verify:
1. All links in documentation work correctly
2. Chapter flow makes logical sense for new users
3. No broken references between chapters
4. Table of contents (SUMMARY.md) renders properly
5. Cross-references within chapters are accurate
## Next Steps
1. Review the new chapter flow with stakeholders
2. Update any external documentation that references chapter numbers
3. Consider adding transition guides between related chapters
4. Update any automated documentation generation scripts

View file

@ -1,81 +0,0 @@
# Final Documentation Fixes Summary
## Issues Fixed
### 1. ✅ Diagram Alignment
- Fixed right border alignment issues in multiple diagrams
- Standardized spacing and alignment across all ASCII art diagrams
- Ensured consistent box sizes and connections
### 2. ✅ Removed Roadmap References
- Removed all roadmap mentions from documentation:
- Chapter 10 README.md (2 occurrences)
- Chapter 10 pull-requests.md (1 occurrence)
- No more roadmap references in the documentation
### 3. ✅ Moved NVIDIA GPU Setup
- Moved from Chapter 1 to Chapter 8 (Tooling)
- Updated SUMMARY.md references
- Makes more sense in the tools/integration chapter
### 4. ✅ Authentication Terminology
- Changed to mention "Zitadel" only once in user-auth.md
- Now refers to "directory service" throughout
- Notes that it's installed via installer.rs
- More generic and accurate terminology
### 5. ✅ Fixed Chapter 1
- **Step 2**: Changed to "Write a simple tool" (was misleading before)
- **Removed environment variables section**: Was incorrect, not needed
- **Binary references**: Removed excessive "Rust" mentions, just say "binary"
- More accurate and cleaner presentation
### 6. ✅ Sessions Documentation
- Renamed "Understanding Sessions" to "Sessions and Channels"
- Removed "best practices" section (it's automatic, no practices needed)
- Added "Write Once, Run Everywhere" section about multi-channel support
- Emphasized automatic nature of sessions
- Added mobile app support via web views
### 7. ✅ Removed Non-Existent Keywords
Deleted documentation files and SUMMARY.md references for keywords that don't exist:
- ADD MEMBER
- ADD SUGGESTION
- CLEAR SUGGESTIONS
- BOOK
- REMEMBER
- SAVE FROM UNSTRUCTURED
- WEATHER
- CHANGE THEME
### 8. ✅ Cleaned Up Language
- Stopped saying "Rust" everywhere - just "binary" or "BotServer"
- Made documentation less technical where appropriate
- Focused on what users can do, not implementation details
## Files Modified
### Major Changes
- `/chapter-01/README.md` - Removed env vars, fixed step 2
- `/chapter-01/sessions.md` - Renamed, removed practices, added channels
- `/chapter-11/user-auth.md` - Directory service terminology
- `/introduction.md` - Fixed diagrams, removed "Rust" emphasis
- `/SUMMARY.md` - Removed 8 non-existent keywords, moved GPU setup
### Files Deleted
- 8 keyword documentation files that didn't correspond to real keywords
### Files Moved
- `chapter-01/nvidia-gpu-setup.md``chapter-08/nvidia-gpu-setup.md`
## Result
The documentation is now:
- ✅ More accurate (no phantom features)
- ✅ Better organized (GPU setup in right place)
- ✅ Cleaner presentation (aligned diagrams)
- ✅ Consistent terminology (directory service)
- ✅ Focused on users (not implementation)
- ✅ Honest about capabilities (removed non-existent keywords)
All requested fixes have been completed.

View file

@ -1,151 +0,0 @@
# Documentation Fixes Summary
## Date: 2024
This document summarizes all the fixes made to the BotServer documentation as per the requested changes.
## 1. Diagram Height Fix (Chapter 6.1)
**File:** `docs/src/chapter-06-gbdialog/assets/basic-execution-flow.svg`
- Fixed SVG height from 600px to 500px
- Adjusted all internal elements proportionally to fit the new height
- Maintained readability and visual hierarchy
## 2. Removed Non-Existent Keywords and Constructs
### TRY/CATCH Blocks Removed
**Files affected:**
- `docs/src/chapter-06-gbdialog/keyword-send-mail.md`
- `docs/src/chapter-10-features/email.md`
**Changes:**
- Removed all TRY/CATCH/END TRY blocks
- Replaced with proper IF/THEN/ELSE error handling
- Example:
```basic
' OLD (INCORRECT):
TRY
SEND MAIL recipient, subject, body
CATCH "error"
TALK "Error occurred"
END TRY
' NEW (CORRECT):
status = SEND MAIL recipient, subject, body
IF status = "sent" THEN
TALK "Email sent successfully"
ELSE
TALK "Failed to send email: " + status
END IF
```
### FUNCTION/END FUNCTION Removed
**File:** `docs/src/chapter-06-gbdialog/keyword-send-mail.md`
- Removed FUNCTION/END FUNCTION declarations
- Replaced with inline logic using IF/THEN/ELSE
### VALIDATE_EMAIL Removed
**File:** `docs/src/chapter-06-gbdialog/keyword-send-mail.md`
- Removed references to non-existent VALIDATE_EMAIL keyword
- Replaced with manual email validation using CONTAINS and SPLIT
### ON ERROR Removed
**File:** `docs/src/chapter-06-gbdialog/keyword-send-mail.md`
- Removed ON ERROR/END ON blocks
- Replaced with standard IF/THEN error checking
### ATTACH_FILE Removed
**File:** `docs/src/chapter-06-gbdialog/keyword-create-task.md`
- Removed references to non-existent ATTACH_FILE keyword
- Added comment to use document sharing systems instead
## 3. Fixed Keyword Formatting (Removed Underscores)
### Keywords Changed from WORD_WORD to WORD WORD Format:
| Old Format | New Format | Files Affected |
|------------|------------|----------------|
| `CREATE_SITE` | `CREATE SITE` | keyword-create-site.md, chapter-09-api/README.md |
| `CREATE_TASK` | `CREATE TASK` | keyword-create-task.md, email.md |
| `CREATE_DRAFT` | `CREATE DRAFT` | keyword-create-draft.md |
| `SET_SCHEDULE` | `SET SCHEDULE` | Multiple files including keyword-set-schedule.md, automation.md, template-summary.md |
| `SEND_MAIL` | `SEND MAIL` | keyword-send-mail.md, email.md, email-api.md |
| `USE_KB` | `USE KB` | Multiple files including README.md, kb-and-tools.md, knowledge-base.md |
| `CLEAR_KB` | `CLEAR KB` | Multiple files including README.md, kb-and-tools.md |
| `SET_KB` | `SET KB` | chapter-09-api/README.md, docs-summary.md |
| `ADD_WEBSITE` | `ADD WEBSITE` | keyword-add-website.md, summary.md, README.md |
| `USE_TOOL` | `USE TOOL` | Multiple files including README.md, tool-definition.md |
| `CLEAR_TOOLS` | `CLEAR TOOLS` | keyword-clear-tools.md, README.md, kb-and-tools.md |
| `REMOVE_TOOL` | `REMOVE TOOL` | tool-definition.md, chapter-09-api/README.md |
| `LIST_TOOLS` | `LIST TOOLS` | tool-definition.md, chapter-09-api/README.md |
| `ADD_MEMBER` | `ADD MEMBER` | keyword-create-task.md |
## 4. Removed Timezone Support from SET SCHEDULE
**File:** `docs/src/chapter-06-gbdialog/keyword-set-schedule.md`
- Removed the "Time Zone Support" section
- Removed TIMEZONE parameter documentation
- Updated to indicate that server's local time is used
## 5. Files Modified (Summary)
### Documentation Root
- `botserver/README.md`
### Chapter 6 - gbdialog
- `docs/src/chapter-06-gbdialog/assets/basic-execution-flow.svg`
- `docs/src/chapter-06-gbdialog/keyword-create-site.md`
- `docs/src/chapter-06-gbdialog/keyword-create-task.md`
- `docs/src/chapter-06-gbdialog/keyword-send-mail.md`
- `docs/src/chapter-06-gbdialog/keyword-set-schedule.md`
- `docs/src/chapter-06-gbdialog/keyword-add-website.md`
- `docs/src/chapter-06-gbdialog/keyword-clear-tools.md`
- `docs/src/chapter-06-gbdialog/keyword-create-draft.md`
- `docs/src/chapter-06-gbdialog/keyword-set-context.md`
- `docs/src/chapter-06-gbdialog/keyword-wait.md`
- `docs/src/chapter-06-gbdialog/template-summary.md`
### Chapter 3 - Knowledge Base
- `docs/src/chapter-03/kb-and-tools.md`
- `docs/src/chapter-03/summary.md`
### Chapter 7 - gbapp
- `docs/src/chapter-07-gbapp/custom-keywords.md`
### Chapter 9 - API
- `docs/src/chapter-09-api/README.md`
- `docs/src/chapter-09-api/compilation.md`
- `docs/src/chapter-09-api/tool-definition.md`
### Chapter 10 - Features
- `docs/src/chapter-10-features/README.md`
- `docs/src/chapter-10-features/automation.md`
- `docs/src/chapter-10-features/email.md`
- `docs/src/chapter-10-features/core-features.md`
- `docs/src/chapter-10-features/knowledge-base.md`
### Chapter 13 - API
- `docs/src/chapter-13-api/email-api.md`
### Prompts
- `prompts/dev/docs/docs-summary.md`
## 6. Validation Notes
All changes maintain backward compatibility at the documentation level while accurately reflecting the actual BotServer implementation. The keyword format changes (removing underscores) make the BASIC dialect more natural and readable, following English-like syntax patterns.
## 7. Recommendations for Future Updates
1. **Consistency Check**: Ensure all new documentation follows the WORD WORD format for multi-word keywords
2. **Error Handling**: Use IF/THEN/ELSE patterns for error handling, not TRY/CATCH
3. **Validation**: Use manual validation logic rather than non-existent validation keywords
4. **Scheduling**: Document that SET SCHEDULE uses server local time only
## 8. Impact Assessment
- **Breaking Changes**: None at the code level (documentation only)
- **User Impact**: Improved accuracy and clarity in documentation
- **Developer Impact**: Clear guidance on actual available keywords and constructs
- **Learning Curve**: Simplified by removing non-existent features
This completes the documentation fixes as requested.

View file

@ -1,210 +0,0 @@
# UI Migration Summary
## Overview
This document summarizes the migration from `web/` directory structure to `ui/` directory structure and the introduction of `.gbui` file format for user interface templates.
## Directory Structure Changes
### Before
```
botserver/
└── web/
├── desktop/
│ └── index.html
└── html/
```
### After
```
botserver/
└── ui/
├── desktop/
│ ├── default.gbui # Full-featured interface (copy of index.html)
│ ├── single.gbui # Simplified single-page chat interface
│ └── index.html # Original file retained for compatibility
└── html/
```
## Code Changes
### 1. Module Renaming
- **Before**: `botserver/src/core/web_server/`
- **After**: `botserver/src/core/ui_server/`
### 2. Import Updates
#### lib.rs
```rust
// Before
pub use core::web_server;
// After
pub use core::ui_server;
```
#### main.rs
```rust
// Before
use botserver::core::web_server;
.route("/", get(crate::web_server::index))
// After
use botserver::core::ui_server;
.route("/", get(crate::ui_server::index))
```
### 3. Path Updates in ui_server/mod.rs
```rust
// Before
match fs::read_to_string("web/desktop/index.html")
let static_path = PathBuf::from("./web/desktop");
// After
match fs::read_to_string("ui/desktop/index.html")
let static_path = PathBuf::from("./ui/desktop");
```
### 4. Configuration Updates
#### tauri.conf.json
```json
// Before
"frontendDist": "./web/desktop"
// After
"frontendDist": "./ui/desktop"
```
#### Cargo.toml Features
```toml
# Before
default = ["web-server", ...]
desktop = [..., "web-server"]
web-server = []
minimal = ["web-server", "chat"]
lightweight = ["web-server", "chat", "drive", "tasks"]
# After
default = ["ui-server", ...]
desktop = [..., "ui-server"]
ui-server = []
minimal = ["ui-server", "chat"]
lightweight = ["ui-server", "chat", "drive", "tasks"]
```
### 5. Service Name Updates
```rust
// Before (in admin.rs)
name: "web_server".to_string()
service: "web_server".to_string()
// After
name: "ui_server".to_string()
service: "ui_server".to_string()
```
## Documentation Updates
### 1. Chapter Structure
- Renamed `chapter-04/web-interface.md` to `chapter-04/ui-interface.md`
- Renamed `chapter-09/web-automation.md` to `chapter-09/ui-automation.md`
- Added new **Chapter 10: .gbui Files Reference** with comprehensive documentation
### 2. Terminology Updates Throughout Documentation
- "Web server" → "UI server"
- "Web interface" → "UI interface"
- "Access web interface" → "Access UI interface"
- "Starting web server" → "Starting UI server"
### 3. New .gbui Documentation Structure
```
chapter-10-gbui/
├── README.md # .gbui overview and reference
├── structure.md # Template structure details
├── components.md # Component library reference
├── javascript-api.md # JavaScript API documentation
├── mobile.md # Mobile optimization guide
├── custom-templates.md # Creating custom templates
└── embedding.md # Embedding .gbui files
```
## New .gbui File Format
### Purpose
The `.gbui` (General Bots User Interface) format provides HTML-based templates for bot interfaces with:
- Built-in WebSocket communication
- Theme integration
- Responsive design
- Component library
- JavaScript API
### Available Templates
1. **default.gbui** - Full-featured desktop interface with multiple apps (Chat, Drive, Tasks, Mail)
2. **single.gbui** - Streamlined single-page chat interface with minimal footprint
### Key Features
- Template variables: `{{bot_name}}`, `{{api_endpoint}}`, `{{websocket_url}}`
- Component system with `data-gb-component` attributes
- CSS class prefix: `gb-` for all General Bots components
- Theme variables: `--gb-primary`, `--gb-secondary`, etc.
## Important Notes
### Channel Names Remain Unchanged
The term "web" as a channel identifier (alongside "whatsapp", "teams", etc.) remains unchanged in:
- Channel adapter references
- Session channel identification
- Message routing logic
These refer to the communication channel type, not the server or interface.
### UI Automation Clarification
The UI automation module now encompasses:
- **Web Automation**: Browser automation, web scraping
- **Desktop Automation**: Desktop application control
- **Mobile Automation**: Mobile app UI control
- **Screen Capture**: Cross-platform screenshot and recording capabilities
## Migration Checklist
- [x] Rename `web/` directory to `ui/`
- [x] Create `default.gbui` from `index.html`
- [x] Create `single.gbui` simplified template
- [x] Update module name from `web_server` to `ui_server`
- [x] Update all import statements
- [x] Update path references in code
- [x] Update tauri.conf.json
- [x] Update Cargo.toml features
- [x] Update service names in admin endpoints
- [x] Update documentation terminology
- [x] Create .gbui documentation chapter
- [x] Update SUMMARY.md with new chapter
## Testing Required
After migration, test:
1. UI server starts correctly on port 8080
2. Static files are served from `ui/desktop/`
3. Both .gbui templates load correctly
4. WebSocket connections work
5. Theme switching functions properly
6. Mobile responsiveness is maintained
7. Desktop app (Tauri) builds successfully
## Rollback Plan
If issues occur:
1. Rename `ui/` back to `web/`
2. Revert module name to `web_server`
3. Restore original import statements
4. Update paths back to `web/desktop`
5. Revert configuration files
6. Restore original documentation
## Benefits of Migration
1. **Clearer Naming**: "UI" better represents the interface layer
2. **.gbui Format**: Standardized template format for bot interfaces
3. **Better Documentation**: Dedicated chapter for UI templates
4. **Extensibility**: Easy to add new template types (mobile, kiosk, embedded)
5. **Consistency**: Aligns with other .gb* file formats (.gbapp, .gbot, .gbtheme, etc.)

View file

@ -155,7 +155,7 @@
- [Storage and Data](./chapter-11-features/storage.md)
- [Multi-Channel Support](./chapter-11-features/channels.md)
# Part XI - Authentication and Security
# Part XI - Security
- [Chapter 12: Authentication](./chapter-12-auth/README.md)
- [User Authentication](./chapter-12-auth/user-auth.md)

View file

@ -1 +0,0 @@
# NVIDIA GPU Setup for LXC

View file

@ -0,0 +1,205 @@
<svg width="900" height="450" viewBox="0 0 900 450" xmlns="http://www.w3.org/2000/svg">
<!-- Define gradients and effects -->
<defs>
<!-- Gradient for original documents -->
<linearGradient id="origGrad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#3b82f6;stop-opacity:0.1" />
<stop offset="100%" style="stop-color:#1e40af;stop-opacity:0.2" />
</linearGradient>
<!-- Gradient for vector DB -->
<linearGradient id="vectorGrad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#10b981;stop-opacity:0.1" />
<stop offset="100%" style="stop-color:#059669;stop-opacity:0.2" />
</linearGradient>
<!-- Gradient for multiplication factor -->
<linearGradient id="multiGrad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#f59e0b;stop-opacity:0.1" />
<stop offset="100%" style="stop-color:#d97706;stop-opacity:0.2" />
</linearGradient>
<!-- Arrow marker -->
<marker id="arrowhead2" markerWidth="10" markerHeight="10" refX="5" refY="5" orient="auto">
<polygon points="0 0, 10 5, 0 10" fill="#4a5568"/>
</marker>
<!-- Drop shadow filter -->
<filter id="shadow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur in="SourceAlpha" stdDeviation="2"/>
<feOffset dx="0" dy="2" result="offsetblur"/>
<feComponentTransfer>
<feFuncA type="linear" slope="0.15"/>
</feComponentTransfer>
<feMerge>
<feMergeNode/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
</defs>
<!-- Background -->
<rect x="0" y="0" width="900" height="450" fill="#fafafa"/>
<!-- Title -->
<text x="450" y="30" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="18" font-weight="600" fill="#1e293b">
Vector Database Storage Requirements: The Real Mathematics
</text>
<!-- Original Documents Section -->
<rect x="50" y="60" width="180" height="380" fill="url(#origGrad)" stroke="#3b82f6" stroke-width="2" rx="8" filter="url(#shadow)"/>
<text x="140" y="85" text-anchor="middle" font-family="system-ui, sans-serif" font-size="14" font-weight="600" fill="#1e293b">
Original Documents
</text>
<text x="140" y="105" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" fill="#475569">
1 TB Total
</text>
<!-- File type breakdown -->
<rect x="70" y="120" width="140" height="30" fill="rgba(59, 130, 246, 0.05)" stroke="#93c5fd" stroke-width="1"/>
<text x="140" y="140" text-anchor="middle" font-family="system-ui, sans-serif" font-size="11" fill="#1e293b">
PDF: 400 GB
</text>
<rect x="70" y="155" width="140" height="25" fill="rgba(59, 130, 246, 0.05)" stroke="#93c5fd" stroke-width="1"/>
<text x="140" y="172" text-anchor="middle" font-family="system-ui, sans-serif" font-size="11" fill="#1e293b">
DOCX: 250 GB
</text>
<rect x="70" y="185" width="140" height="20" fill="rgba(59, 130, 246, 0.05)" stroke="#93c5fd" stroke-width="1"/>
<text x="140" y="200" text-anchor="middle" font-family="system-ui, sans-serif" font-size="11" fill="#1e293b">
XLSX: 150 GB
</text>
<rect x="70" y="210" width="140" height="15" fill="rgba(59, 130, 246, 0.05)" stroke="#93c5fd" stroke-width="1"/>
<text x="140" y="223" text-anchor="middle" font-family="system-ui, sans-serif" font-size="11" fill="#1e293b">
TXT: 100 GB
</text>
<rect x="70" y="230" width="140" height="15" fill="rgba(59, 130, 246, 0.05)" stroke="#93c5fd" stroke-width="1"/>
<text x="140" y="243" text-anchor="middle" font-family="system-ui, sans-serif" font-size="11" fill="#1e293b">
HTML: 50 GB
</text>
<rect x="70" y="250" width="140" height="10" fill="rgba(59, 130, 246, 0.05)" stroke="#93c5fd" stroke-width="1"/>
<text x="140" y="258" text-anchor="middle" font-family="system-ui, sans-serif" font-size="10" fill="#475569">
Other: 50 GB
</text>
<!-- Arrow -->
<path d="M 240 250 L 290 250" stroke="#4a5568" stroke-width="3" fill="none" marker-end="url(#arrowhead2)" opacity="0.7"/>
<text x="265" y="240" text-anchor="middle" font-family="system-ui, sans-serif" font-size="10" fill="#64748b">
Processing
</text>
<!-- Vector Database Storage -->
<rect x="300" y="60" width="250" height="380" fill="url(#vectorGrad)" stroke="#10b981" stroke-width="2" rx="8" filter="url(#shadow)"/>
<text x="425" y="85" text-anchor="middle" font-family="system-ui, sans-serif" font-size="14" font-weight="600" fill="#1e293b">
Vector DB Storage
</text>
<text x="425" y="105" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" fill="#475569">
~3.5 TB Required
</text>
<!-- Storage breakdown -->
<rect x="320" y="120" width="210" height="50" fill="rgba(16, 185, 129, 0.05)" stroke="#86efac" stroke-width="1" stroke-dasharray="3,2"/>
<text x="425" y="135" text-anchor="middle" font-family="system-ui, sans-serif" font-size="11" font-weight="500" fill="#1e293b">
Raw Text Extracted
</text>
<text x="425" y="150" text-anchor="middle" font-family="system-ui, sans-serif" font-size="10" fill="#475569">
~800 GB (cleaned)
</text>
<text x="425" y="163" text-anchor="middle" font-family="system-ui, sans-serif" font-size="9" fill="#64748b">
Deduplication reduces 20%
</text>
<rect x="320" y="175" width="210" height="60" fill="rgba(16, 185, 129, 0.05)" stroke="#86efac" stroke-width="1" stroke-dasharray="3,2"/>
<text x="425" y="190" text-anchor="middle" font-family="system-ui, sans-serif" font-size="11" font-weight="500" fill="#1e293b">
Vector Embeddings
</text>
<text x="425" y="205" text-anchor="middle" font-family="system-ui, sans-serif" font-size="10" fill="#475569">
~1.2 TB (384-dim floats)
</text>
<text x="425" y="218" text-anchor="middle" font-family="system-ui, sans-serif" font-size="9" fill="#64748b">
4 bytes × 384 × ~800M chunks
</text>
<text x="425" y="230" text-anchor="middle" font-family="system-ui, sans-serif" font-size="9" fill="#64748b">
= 1,228 GB
</text>
<rect x="320" y="240" width="210" height="55" fill="rgba(16, 185, 129, 0.05)" stroke="#86efac" stroke-width="1" stroke-dasharray="3,2"/>
<text x="425" y="255" text-anchor="middle" font-family="system-ui, sans-serif" font-size="11" font-weight="500" fill="#1e293b">
HNSW Index
</text>
<text x="425" y="270" text-anchor="middle" font-family="system-ui, sans-serif" font-size="10" fill="#475569">
~600 GB
</text>
<text x="425" y="283" text-anchor="middle" font-family="system-ui, sans-serif" font-size="9" fill="#64748b">
Graph structure + links
</text>
<rect x="320" y="300" width="210" height="50" fill="rgba(16, 185, 129, 0.05)" stroke="#86efac" stroke-width="1" stroke-dasharray="3,2"/>
<text x="425" y="315" text-anchor="middle" font-family="system-ui, sans-serif" font-size="11" font-weight="500" fill="#1e293b">
Metadata + Positions
</text>
<text x="425" y="330" text-anchor="middle" font-family="system-ui, sans-serif" font-size="10" fill="#475569">
~400 GB
</text>
<text x="425" y="343" text-anchor="middle" font-family="system-ui, sans-serif" font-size="9" fill="#64748b">
Doc refs, chunks, offsets
</text>
<rect x="320" y="355" width="210" height="45" fill="rgba(16, 185, 129, 0.05)" stroke="#86efac" stroke-width="1" stroke-dasharray="3,2"/>
<text x="425" y="370" text-anchor="middle" font-family="system-ui, sans-serif" font-size="11" font-weight="500" fill="#1e293b">
Cache + Auxiliary
</text>
<text x="425" y="385" text-anchor="middle" font-family="system-ui, sans-serif" font-size="10" fill="#475569">
~500 GB
</text>
<text x="425" y="395" text-anchor="middle" font-family="system-ui, sans-serif" font-size="9" fill="#64748b">
Query cache, temp indices
</text>
<!-- Total comparison -->
<rect x="570" y="150" width="300" height="200" fill="url(#multiGrad)" stroke="#f59e0b" stroke-width="2" stroke-dasharray="5,3" rx="8" filter="url(#shadow)"/>
<text x="720" y="175" text-anchor="middle" font-family="system-ui, sans-serif" font-size="14" font-weight="600" fill="#1e293b">
Storage Multiplication Factor
</text>
<text x="590" y="205" font-family="system-ui, sans-serif" font-size="12" fill="#1e293b">
Original Documents: 1.0 TB
</text>
<text x="590" y="230" font-family="system-ui, sans-serif" font-size="12" font-weight="600" fill="#1e293b">
Vector DB Total: 3.5 TB
</text>
<text x="590" y="255" font-family="system-ui, sans-serif" font-size="12" font-weight="600" fill="#dc2626">
Multiplication Factor: 3.5×
</text>
<text x="590" y="285" font-family="system-ui, sans-serif" font-size="11" fill="#64748b">
With redundancy/backup:
</text>
<text x="590" y="305" font-family="system-ui, sans-serif" font-size="12" font-weight="600" fill="#1e293b">
Production Total: 7.0 TB (2× replica)
</text>
<text x="720" y="335" text-anchor="middle" font-family="system-ui, sans-serif" font-size="10" font-style="italic" fill="#64748b">
Reality: You need 3.5-7× your document storage
</text>
<!-- Visual indicators -->
<g transform="translate(820, 80)">
<circle cx="0" cy="0" r="3" fill="#3b82f6"/>
<text x="10" y="4" font-family="system-ui, sans-serif" font-size="9" fill="#64748b">Input</text>
</g>
<g transform="translate(820, 100)">
<circle cx="0" cy="0" r="3" fill="#10b981"/>
<text x="10" y="4" font-family="system-ui, sans-serif" font-size="9" fill="#64748b">Storage</text>
</g>
<g transform="translate(820, 120)">
<circle cx="0" cy="0" r="3" fill="#f59e0b"/>
<text x="10" y="4" font-family="system-ui, sans-serif" font-size="9" fill="#64748b">Factor</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.5 KiB

View file

@ -0,0 +1,235 @@
<svg width="900" height="500" viewBox="0 0 900 500" xmlns="http://www.w3.org/2000/svg">
<!-- Define gradients and effects -->
<defs>
<!-- Gradient for original context -->
<linearGradient id="origContextGrad" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#ef4444;stop-opacity:0.2" />
<stop offset="50%" style="stop-color:#f59e0b;stop-opacity:0.2" />
<stop offset="100%" style="stop-color:#eab308;stop-opacity:0.2" />
</linearGradient>
<!-- Gradient for compressed context -->
<linearGradient id="compContextGrad" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#10b981;stop-opacity:0.3" />
<stop offset="100%" style="stop-color:#059669;stop-opacity:0.3" />
</linearGradient>
<!-- Gradients for technique boxes -->
<linearGradient id="tech1Grad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#8b5cf6;stop-opacity:0.1" />
<stop offset="100%" style="stop-color:#7c3aed;stop-opacity:0.2" />
</linearGradient>
<linearGradient id="tech2Grad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#3b82f6;stop-opacity:0.1" />
<stop offset="100%" style="stop-color:#2563eb;stop-opacity:0.2" />
</linearGradient>
<linearGradient id="tech3Grad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#06b6d4;stop-opacity:0.1" />
<stop offset="100%" style="stop-color:#0891b2;stop-opacity:0.2" />
</linearGradient>
<linearGradient id="tech4Grad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#f59e0b;stop-opacity:0.1" />
<stop offset="100%" style="stop-color:#d97706;stop-opacity:0.2" />
</linearGradient>
<!-- Arrow marker -->
<marker id="arrowhead3" markerWidth="10" markerHeight="10" refX="9" refY="5" orient="auto">
<polygon points="0 0, 10 5, 0 10" fill="#4a5568"/>
</marker>
<!-- Drop shadow filter -->
<filter id="shadow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur in="SourceAlpha" stdDeviation="2"/>
<feOffset dx="0" dy="2" result="offsetblur"/>
<feComponentTransfer>
<feFuncA type="linear" slope="0.15"/>
</feComponentTransfer>
<feMerge>
<feMergeNode/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
</defs>
<!-- Background -->
<rect x="0" y="0" width="900" height="500" fill="#fafafa"/>
<!-- Title -->
<text x="450" y="30" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="18" font-weight="600" fill="#1e293b">
LLM Context Compression Strategies
</text>
<!-- Context Window Visualization -->
<g transform="translate(50, 60)">
<!-- Original context -->
<rect x="0" y="0" width="800" height="60" fill="url(#origContextGrad)" stroke="#dc2626" stroke-width="2" rx="6" filter="url(#shadow)"/>
<text x="10" y="20" font-family="system-ui, sans-serif" font-size="13" font-weight="600" fill="#1e293b">
Original Context: 10,000 tokens
</text>
<rect x="10" y="30" width="780" height="20" fill="#fee2e2" rx="3"/>
<!-- Document chunks visualization -->
<rect x="10" y="30" width="100" height="20" fill="#fca5a5" rx="2"/>
<rect x="112" y="30" width="120" height="20" fill="#f87171" rx="2"/>
<rect x="234" y="30" width="90" height="20" fill="#fca5a5" rx="2"/>
<rect x="326" y="30" width="110" height="20" fill="#ef4444" rx="2"/>
<rect x="438" y="30" width="95" height="20" fill="#fca5a5" rx="2"/>
<rect x="535" y="30" width="105" height="20" fill="#f87171" rx="2"/>
<rect x="642" y="30" width="80" height="20" fill="#fca5a5" rx="2"/>
<rect x="724" y="30" width="66" height="20" fill="#ef4444" rx="2"/>
</g>
<!-- Arrow down -->
<path d="M 450 130 L 450 160" stroke="#4a5568" stroke-width="3" fill="none" marker-end="url(#arrowhead3)" opacity="0.7"/>
<text x="470" y="150" font-family="system-ui, sans-serif" font-size="11" font-weight="500" fill="#475569">
Compression Level 4
</text>
<!-- Compressed context -->
<g transform="translate(200, 170)">
<rect x="0" y="0" width="500" height="60" fill="url(#compContextGrad)" stroke="#10b981" stroke-width="2" rx="6" filter="url(#shadow)"/>
<text x="10" y="20" font-family="system-ui, sans-serif" font-size="13" font-weight="600" fill="#1e293b">
Compressed Context: 4,096 tokens (fits LLM window)
</text>
<rect x="10" y="30" width="480" height="20" fill="#dcfce7" rx="3"/>
<!-- Compressed chunks -->
<rect x="10" y="30" width="80" height="20" fill="#86efac" rx="2"/>
<rect x="92" y="30" width="70" height="20" fill="#4ade80" rx="2"/>
<rect x="164" y="30" width="75" height="20" fill="#86efac" rx="2"/>
<rect x="241" y="30" width="85" height="20" fill="#22c55e" rx="2"/>
<rect x="328" y="30" width="90" height="20" fill="#4ade80" rx="2"/>
<rect x="420" y="30" width="70" height="20" fill="#86efac" rx="2"/>
</g>
<!-- Compression Techniques -->
<g transform="translate(50, 260)">
<text x="400" y="0" text-anchor="middle" font-family="system-ui, sans-serif" font-size="15" font-weight="600" fill="#1e293b">
Compression Techniques (Level 4)
</text>
<!-- Technique 1: Semantic Deduplication -->
<g transform="translate(0, 30)">
<rect x="0" y="0" width="190" height="140" fill="url(#tech1Grad)" stroke="#8b5cf6" stroke-width="1.5" rx="6" filter="url(#shadow)"/>
<text x="95" y="20" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" font-weight="600" fill="#1e293b">
Semantic Deduplication
</text>
<text x="10" y="40" font-family="system-ui, sans-serif" font-size="10" fill="#475569">
• Remove redundant info
</text>
<text x="10" y="55" font-family="system-ui, sans-serif" font-size="10" fill="#475569">
• Merge similar chunks
</text>
<text x="10" y="70" font-family="system-ui, sans-serif" font-size="10" fill="#475569">
• Keep unique facts
</text>
<rect x="10" y="85" width="170" height="25" fill="rgba(139, 92, 246, 0.1)" rx="4"/>
<text x="95" y="102" text-anchor="middle" font-family="system-ui, sans-serif" font-size="11" font-weight="500" fill="#7c3aed">
Reduction: 30-40%
</text>
<!-- Visual representation -->
<g transform="translate(95, 120)">
<circle cx="0" cy="0" r="8" fill="#8b5cf6" opacity="0.3"/>
<circle cx="-15" cy="0" r="8" fill="#8b5cf6" opacity="0.3"/>
<circle cx="15" cy="0" r="8" fill="#8b5cf6" opacity="0.3"/>
</g>
</g>
<!-- Technique 2: Relevance Scoring -->
<g transform="translate(205, 30)">
<rect x="0" y="0" width="190" height="140" fill="url(#tech2Grad)" stroke="#3b82f6" stroke-width="1.5" rx="6" filter="url(#shadow)"/>
<text x="95" y="20" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" font-weight="600" fill="#1e293b">
Relevance Scoring
</text>
<text x="10" y="40" font-family="system-ui, sans-serif" font-size="10" fill="#475569">
• Score by query match
</text>
<text x="10" y="55" font-family="system-ui, sans-serif" font-size="10" fill="#475569">
• Keep top-k relevant
</text>
<text x="10" y="70" font-family="system-ui, sans-serif" font-size="10" fill="#475569">
• Drop low scores
</text>
<rect x="10" y="85" width="170" height="25" fill="rgba(59, 130, 246, 0.1)" rx="4"/>
<text x="95" y="102" text-anchor="middle" font-family="system-ui, sans-serif" font-size="11" font-weight="500" fill="#2563eb">
Reduction: 40-50%
</text>
<!-- Visual bars -->
<rect x="50" y="118" width="90" height="4" fill="#3b82f6" rx="2"/>
<rect x="50" y="124" width="70" height="4" fill="#60a5fa" rx="2"/>
<rect x="50" y="130" width="40" height="4" fill="#93c5fd" rx="2"/>
</g>
<!-- Technique 3: Hierarchical Summary -->
<g transform="translate(410, 30)">
<rect x="0" y="0" width="190" height="140" fill="url(#tech3Grad)" stroke="#06b6d4" stroke-width="1.5" rx="6" filter="url(#shadow)"/>
<text x="95" y="20" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" font-weight="600" fill="#1e293b">
Hierarchical Summary
</text>
<text x="10" y="40" font-family="system-ui, sans-serif" font-size="10" fill="#475569">
• Extract key points
</text>
<text x="10" y="55" font-family="system-ui, sans-serif" font-size="10" fill="#475569">
• Create abstracts
</text>
<text x="10" y="70" font-family="system-ui, sans-serif" font-size="10" fill="#475569">
• Preserve details
</text>
<rect x="10" y="85" width="170" height="25" fill="rgba(6, 182, 212, 0.1)" rx="4"/>
<text x="95" y="102" text-anchor="middle" font-family="system-ui, sans-serif" font-size="11" font-weight="500" fill="#0891b2">
Reduction: 50-60%
</text>
<!-- Tree structure -->
<g transform="translate(95, 120)">
<circle cx="0" cy="-8" r="4" fill="#06b6d4"/>
<circle cx="-15" cy="8" r="3" fill="#67e8f9"/>
<circle cx="0" cy="8" r="3" fill="#67e8f9"/>
<circle cx="15" cy="8" r="3" fill="#67e8f9"/>
<line x1="0" y1="-4" x2="-15" y2="5" stroke="#06b6d4" stroke-width="1"/>
<line x1="0" y1="-4" x2="0" y2="5" stroke="#06b6d4" stroke-width="1"/>
<line x1="0" y1="-4" x2="15" y2="5" stroke="#06b6d4" stroke-width="1"/>
</g>
</g>
<!-- Technique 4: Token Optimization -->
<g transform="translate(615, 30)">
<rect x="0" y="0" width="185" height="140" fill="url(#tech4Grad)" stroke="#f59e0b" stroke-width="1.5" rx="6" filter="url(#shadow)"/>
<text x="92" y="20" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" font-weight="600" fill="#1e293b">
Token Optimization
</text>
<text x="10" y="40" font-family="system-ui, sans-serif" font-size="10" fill="#475569">
• Remove stopwords
</text>
<text x="10" y="55" font-family="system-ui, sans-serif" font-size="10" fill="#475569">
• Compress phrases
</text>
<text x="10" y="70" font-family="system-ui, sans-serif" font-size="10" fill="#475569">
• Use abbreviations
</text>
<rect x="10" y="85" width="165" height="25" fill="rgba(245, 158, 11, 0.1)" rx="4"/>
<text x="92" y="102" text-anchor="middle" font-family="system-ui, sans-serif" font-size="11" font-weight="500" fill="#d97706">
Reduction: 20-30%
</text>
<!-- Text compression visual -->
<text x="92" y="122" text-anchor="middle" font-family="monospace" font-size="9" fill="#92400e">
ABCDEF → ABC
</text>
<text x="92" y="133" text-anchor="middle" font-family="monospace" font-size="9" fill="#92400e">
GHIJKL → GHI
</text>
</g>
</g>
<!-- Performance note -->
<rect x="50" y="440" width="800" height="40" fill="rgba(99, 102, 241, 0.05)" stroke="#6366f1" stroke-width="1.5" stroke-dasharray="6,3" rx="6"/>
<text x="450" y="465" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" font-style="italic" fill="#4f46e5">
Compression Level 4 achieves 60-75% reduction while maintaining 95%+ information retention
</text>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -0,0 +1,127 @@
<svg width="900" height="400" viewBox="0 0 900 400" xmlns="http://www.w3.org/2000/svg">
<!-- Define gradients and effects -->
<defs>
<!-- Gradient for bars -->
<linearGradient id="barGrad1" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#3b82f6;stop-opacity:0.8" />
<stop offset="100%" style="stop-color:#1e40af;stop-opacity:0.9" />
</linearGradient>
<linearGradient id="barGrad2" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#10b981;stop-opacity:0.8" />
<stop offset="100%" style="stop-color:#059669;stop-opacity:0.9" />
</linearGradient>
<linearGradient id="barGrad3" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#8b5cf6;stop-opacity:0.8" />
<stop offset="100%" style="stop-color:#6d28d9;stop-opacity:0.9" />
</linearGradient>
<linearGradient id="barGrad4" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#f59e0b;stop-opacity:0.8" />
<stop offset="100%" style="stop-color:#d97706;stop-opacity:0.9" />
</linearGradient>
<linearGradient id="barGrad5" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#ef4444;stop-opacity:0.8" />
<stop offset="100%" style="stop-color:#dc2626;stop-opacity:0.9" />
</linearGradient>
<linearGradient id="barGrad6" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#06b6d4;stop-opacity:0.8" />
<stop offset="100%" style="stop-color:#0891b2;stop-opacity:0.9" />
</linearGradient>
<!-- Drop shadow filter -->
<filter id="shadow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur in="SourceAlpha" stdDeviation="2"/>
<feOffset dx="0" dy="2" result="offsetblur"/>
<feComponentTransfer>
<feFuncA type="linear" slope="0.2"/>
</feComponentTransfer>
<feMerge>
<feMergeNode/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
</defs>
<!-- Background -->
<rect x="0" y="0" width="900" height="400" fill="#fafafa"/>
<!-- Title -->
<text x="450" y="30" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="18" font-weight="600" fill="#1e293b">
Storage Components per 1TB of Documents
</text>
<!-- Chart area -->
<rect x="100" y="60" width="700" height="260" fill="none" stroke="#e2e8f0" stroke-width="1"/>
<!-- Grid lines -->
<line x1="100" y1="125" x2="800" y2="125" stroke="#e2e8f0" stroke-width="1" stroke-dasharray="2,2" opacity="0.5"/>
<line x1="100" y1="190" x2="800" y2="190" stroke="#e2e8f0" stroke-width="1" stroke-dasharray="2,2" opacity="0.5"/>
<line x1="100" y1="255" x2="800" y2="255" stroke="#e2e8f0" stroke-width="1" stroke-dasharray="2,2" opacity="0.5"/>
<!-- Axes -->
<line x1="100" y1="320" x2="800" y2="320" stroke="#475569" stroke-width="2"/>
<line x1="100" y1="60" x2="100" y2="320" stroke="#475569" stroke-width="2"/>
<!-- Y-axis labels -->
<text x="90" y="325" text-anchor="end" font-family="system-ui, sans-serif" font-size="11" fill="#64748b">0 GB</text>
<text x="90" y="260" text-anchor="end" font-family="system-ui, sans-serif" font-size="11" fill="#64748b">250 GB</text>
<text x="90" y="195" text-anchor="end" font-family="system-ui, sans-serif" font-size="11" fill="#64748b">500 GB</text>
<text x="90" y="130" text-anchor="end" font-family="system-ui, sans-serif" font-size="11" fill="#64748b">750 GB</text>
<text x="90" y="65" text-anchor="end" font-family="system-ui, sans-serif" font-size="11" fill="#64748b">1000 GB</text>
<!-- Y-axis title -->
<text x="30" y="190" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" fill="#475569" transform="rotate(-90 30 190)">
Storage Size (GB)
</text>
<!-- Bars -->
<!-- Original -->
<rect x="150" y="60" width="80" height="260" fill="url(#barGrad1)" stroke="#3b82f6" stroke-width="2" rx="4" filter="url(#shadow)"/>
<text x="190" y="80" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" font-weight="600" fill="white">1000</text>
<text x="190" y="340" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" font-weight="500" fill="#1e293b">Original</text>
<text x="190" y="355" text-anchor="middle" font-family="system-ui, sans-serif" font-size="10" fill="#64748b">1000 GB</text>
<!-- Text Extracted -->
<rect x="260" y="112" width="80" height="208" fill="url(#barGrad2)" stroke="#10b981" stroke-width="2" rx="4" filter="url(#shadow)"/>
<text x="300" y="132" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" font-weight="600" fill="white">800</text>
<text x="300" y="340" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" font-weight="500" fill="#1e293b">Extracted</text>
<text x="300" y="355" text-anchor="middle" font-family="system-ui, sans-serif" font-size="10" fill="#64748b">800 GB</text>
<!-- Embeddings -->
<rect x="370" y="8" width="80" height="312" fill="url(#barGrad3)" stroke="#8b5cf6" stroke-width="2" rx="4" filter="url(#shadow)"/>
<text x="410" y="28" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" font-weight="600" fill="white">1200</text>
<text x="410" y="340" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" font-weight="500" fill="#1e293b">Embeddings</text>
<text x="410" y="355" text-anchor="middle" font-family="system-ui, sans-serif" font-size="10" fill="#64748b">1200 GB</text>
<!-- Index -->
<rect x="480" y="164" width="80" height="156" fill="url(#barGrad4)" stroke="#f59e0b" stroke-width="2" rx="4" filter="url(#shadow)"/>
<text x="520" y="184" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" font-weight="600" fill="white">600</text>
<text x="520" y="340" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" font-weight="500" fill="#1e293b">Index</text>
<text x="520" y="355" text-anchor="middle" font-family="system-ui, sans-serif" font-size="10" fill="#64748b">600 GB</text>
<!-- Metadata -->
<rect x="590" y="216" width="80" height="104" fill="url(#barGrad5)" stroke="#ef4444" stroke-width="2" rx="4" filter="url(#shadow)"/>
<text x="630" y="236" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" font-weight="600" fill="white">400</text>
<text x="630" y="340" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" font-weight="500" fill="#1e293b">Metadata</text>
<text x="630" y="355" text-anchor="middle" font-family="system-ui, sans-serif" font-size="10" fill="#64748b">400 GB</text>
<!-- Cache -->
<rect x="700" y="190" width="80" height="130" fill="url(#barGrad6)" stroke="#06b6d4" stroke-width="2" rx="4" filter="url(#shadow)"/>
<text x="740" y="210" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" font-weight="600" fill="white">500</text>
<text x="740" y="340" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" font-weight="500" fill="#1e293b">Cache</text>
<text x="740" y="355" text-anchor="middle" font-family="system-ui, sans-serif" font-size="10" fill="#64748b">500 GB</text>
<!-- Total line -->
<line x1="150" y1="45" x2="780" y2="45" stroke="#dc2626" stroke-width="3" stroke-dasharray="8,4"/>
<rect x="790" y="35" width="90" height="25" fill="#fee2e2" stroke="#dc2626" stroke-width="2" rx="4"/>
<text x="835" y="52" text-anchor="middle" font-family="system-ui, sans-serif" font-size="12" font-weight="600" fill="#dc2626">3.5 TB Total</text>
<!-- Legend -->
<g transform="translate(120, 375)">
<text x="0" y="0" font-family="system-ui, sans-serif" font-size="11" fill="#475569">Components contribute to 3.5× storage multiplication factor</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.6 KiB

View file

@ -0,0 +1,157 @@
<svg width="900" height="450" viewBox="0 0 900 450" xmlns="http://www.w3.org/2000/svg">
<!-- Define gradients and effects -->
<defs>
<!-- Gradient for embedding section -->
<linearGradient id="embeddingGrad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#667eea;stop-opacity:0.1" />
<stop offset="100%" style="stop-color:#764ba2;stop-opacity:0.2" />
</linearGradient>
<!-- Gradient for LLM section -->
<linearGradient id="llmGrad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#06ffa5;stop-opacity:0.1" />
<stop offset="100%" style="stop-color:#00d2ff;stop-opacity:0.2" />
</linearGradient>
<!-- Gradient for performance section -->
<linearGradient id="perfGrad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#f093fb;stop-opacity:0.1" />
<stop offset="100%" style="stop-color:#f5576c;stop-opacity:0.2" />
</linearGradient>
<!-- Drop shadow filter -->
<filter id="shadow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur in="SourceAlpha" stdDeviation="2"/>
<feOffset dx="0" dy="2" result="offsetblur"/>
<feComponentTransfer>
<feFuncA type="linear" slope="0.15"/>
</feComponentTransfer>
<feMerge>
<feMergeNode/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
</defs>
<!-- Background -->
<rect x="0" y="0" width="900" height="450" fill="#fafafa"/>
<!-- Title -->
<text x="450" y="30" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="18" font-weight="600" fill="#1e293b">
System Technical Specifications
</text>
<!-- Main container -->
<rect x="50" y="50" width="800" height="380" fill="none" stroke="#cbd5e1" stroke-width="2" rx="8"/>
<!-- Embedding Configuration Section -->
<g transform="translate(70, 80)">
<rect x="0" y="0" width="350" height="150" fill="url(#embeddingGrad)" stroke="#667eea" stroke-width="1.5" rx="6" filter="url(#shadow)"/>
<text x="175" y="25" text-anchor="middle" font-family="system-ui, sans-serif" font-size="15" font-weight="600" fill="#1e293b">
Embedding Configuration
</text>
<text x="15" y="50" font-family="system-ui, sans-serif" font-size="12" font-weight="500" fill="#1e293b">
Model: bge-small-en-v1.5-f32.gguf
</text>
<text x="15" y="70" font-family="system-ui, sans-serif" font-size="11" fill="#475569">
• Dimensions: 384
</text>
<text x="15" y="90" font-family="system-ui, sans-serif" font-size="11" fill="#475569">
• Format: GGUF (quantized)
</text>
<text x="15" y="110" font-family="system-ui, sans-serif" font-size="11" fill="#475569">
• Server: localhost:8082
</text>
<text x="15" y="130" font-family="system-ui, sans-serif" font-size="11" fill="#475569">
• Memory: ~200MB loaded
</text>
</g>
<!-- LLM Configuration Section -->
<g transform="translate(450, 80)">
<rect x="0" y="0" width="350" height="150" fill="url(#llmGrad)" stroke="#00d2ff" stroke-width="1.5" rx="6" filter="url(#shadow)"/>
<text x="175" y="25" text-anchor="middle" font-family="system-ui, sans-serif" font-size="15" font-weight="600" fill="#1e293b">
LLM Configuration
</text>
<text x="15" y="50" font-family="system-ui, sans-serif" font-size="12" font-weight="500" fill="#1e293b">
Model: DeepSeek-R1-Distill-Qwen-1.5B
</text>
<text x="15" y="70" font-family="system-ui, sans-serif" font-size="11" fill="#475569">
• Context Size: 4096 tokens
</text>
<text x="15" y="90" font-family="system-ui, sans-serif" font-size="11" fill="#475569">
• Max Predict: 1024 tokens
</text>
<text x="15" y="110" font-family="system-ui, sans-serif" font-size="11" fill="#475569">
• Parallel Requests: 6
</text>
<text x="15" y="130" font-family="system-ui, sans-serif" font-size="11" fill="#475569">
• Quantization: Q3_K_M
</text>
</g>
<!-- Performance Characteristics Section -->
<g transform="translate(70, 250)">
<rect x="0" y="0" width="730" height="150" fill="url(#perfGrad)" stroke="#f5576c" stroke-width="1.5" rx="6" filter="url(#shadow)"/>
<text x="365" y="25" text-anchor="middle" font-family="system-ui, sans-serif" font-size="15" font-weight="600" fill="#1e293b">
Performance Characteristics
</text>
<!-- Left column - Vector Index -->
<g transform="translate(15, 45)">
<text x="0" y="0" font-family="system-ui, sans-serif" font-size="12" font-weight="500" fill="#1e293b">
Vector Index: HNSW Algorithm
</text>
<text x="0" y="20" font-family="system-ui, sans-serif" font-size="11" fill="#475569">
• M=16, ef_construction=200
</text>
<text x="0" y="40" font-family="system-ui, sans-serif" font-size="11" fill="#475569">
• Distance: Cosine Similarity
</text>
<text x="0" y="60" font-family="system-ui, sans-serif" font-size="11" fill="#475569">
• Build: ~1000 docs/minute
</text>
</g>
<!-- Middle column - Chunking Strategy -->
<g transform="translate(250, 45)">
<text x="0" y="0" font-family="system-ui, sans-serif" font-size="12" font-weight="500" fill="#1e293b">
Chunking Strategy
</text>
<text x="0" y="20" font-family="system-ui, sans-serif" font-size="11" fill="#475569">
• Chunk Size: 512 tokens
</text>
<text x="0" y="40" font-family="system-ui, sans-serif" font-size="11" fill="#475569">
• Overlap: 50 tokens
</text>
<text x="0" y="60" font-family="system-ui, sans-serif" font-size="11" fill="#475569">
• Prompt Compact: Level 4
</text>
</g>
<!-- Right column - Runtime Metrics -->
<g transform="translate(490, 45)">
<text x="0" y="0" font-family="system-ui, sans-serif" font-size="12" font-weight="500" fill="#1e293b">
Runtime Metrics
</text>
<text x="0" y="20" font-family="system-ui, sans-serif" font-size="11" fill="#475569">
• Query Latency: &lt;50ms p99
</text>
<text x="0" y="40" font-family="system-ui, sans-serif" font-size="11" fill="#475569">
• Memory: ~1GB/million chunks
</text>
<text x="0" y="60" font-family="system-ui, sans-serif" font-size="11" fill="#475569">
• Cache TTL: 3600 seconds
</text>
</g>
</g>
<!-- Additional specs indicators -->
<g transform="translate(820, 100)">
<circle cx="0" cy="0" r="3" fill="#10b981"/>
<circle cx="0" cy="20" r="3" fill="#3b82f6"/>
<circle cx="0" cy="40" r="3" fill="#f59e0b"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.5 KiB

View file

@ -1 +0,0 @@
# LLM

View file

@ -1 +0,0 @@
# SET USER

View file

@ -1 +0,0 @@
# Prompt Manager

View file

@ -1 +0,0 @@
# SMB Deployment Guide

View file

@ -1,7 +0,0 @@
# Chapter 11: Feature Reference
---
<div align="center">
<img src="https://pragmatismo.com.br/icons/general-bots-text.svg" alt="General Bots" width="200">
</div>

View file

@ -1 +0,0 @@
# AI and LLM

View file

@ -1 +0,0 @@
# Automation

View file

@ -1 +0,0 @@
# Multi-Channel Support

View file

@ -1 +0,0 @@
# Conversation Management

View file

@ -1 +0,0 @@
# Core Features

View file

@ -1 +0,0 @@
# Email Integration

View file

@ -1 +0,0 @@
# Knowledge Base

View file

@ -1 +0,0 @@
# Storage and Data

View file

@ -1,7 +0,0 @@
# Chapter 13: Contributing
---
<div align="center">
<img src="https://pragmatismo.com.br/icons/general-bots-text.svg" alt="General Bots" width="200">
</div>

View file

@ -1 +0,0 @@
# Community Guidelines

View file

@ -1 +0,0 @@
# Documentation

View file

@ -1 +0,0 @@
# IDE Extensions

View file

@ -1 +0,0 @@
# Pull Requests

View file

@ -1 +0,0 @@
# Development Setup

View file

@ -1 +0,0 @@
# Testing Guide

View file

@ -1,7 +0,0 @@
# Chapter 11: Authentication
---
<div align="center">
<img src="https://pragmatismo.com.br/icons/general-bots-text.svg" alt="General Bots" width="200">
</div>

View file

@ -1 +0,0 @@
# API Endpoints

View file

@ -1 +0,0 @@
# Bot Authentication

View file

@ -1 +0,0 @@
# Compliance Requirements

View file

@ -1 +0,0 @@
# Password Security

View file

@ -1 +0,0 @@
# Security Features

View file

@ -1 +0,0 @@
# Security Policy

View file

@ -1 +0,0 @@
# User Authentication

View file

@ -1,7 +0,0 @@
# Chapter 12: REST API Reference
---
<div align="center">
<img src="https://pragmatismo.com.br/icons/general-bots-text.svg" alt="General Bots" width="200">
</div>

View file

@ -1 +0,0 @@
# Admin API

View file

@ -1 +0,0 @@
# AI API

View file

@ -1 +0,0 @@
# Analytics API

View file

@ -1 +0,0 @@
# Backup API

View file

@ -1 +0,0 @@
# Calendar API

View file

@ -1 +0,0 @@
# Calls API

View file

@ -1 +0,0 @@
# Compliance API

View file

@ -1 +0,0 @@
# Conversations API

View file

@ -1 +0,0 @@
# Document Processing API

View file

@ -1 +0,0 @@
# Email API

View file

@ -1 +0,0 @@
# Example Integrations

View file

@ -1 +0,0 @@
# Files API

View file

@ -1 +0,0 @@
# Group Membership API

View file

@ -1 +0,0 @@
# Groups API

View file

@ -1 +0,0 @@
# ML API

View file

@ -1 +0,0 @@
# Monitoring API

View file

@ -1 +0,0 @@
# Notifications API

View file

@ -1 +0,0 @@
# Reports API

View file

@ -1 +0,0 @@
# Security API

View file

@ -1 +0,0 @@
# Storage API

View file

@ -1 +0,0 @@
# Tasks API

View file

@ -1 +0,0 @@
# User Security API

View file

@ -1 +0,0 @@
# Users API

View file

@ -1 +0,0 @@
# Whiteboard API

View file

@ -1,7 +0,0 @@
# Chapter 10: REST API Reference
---
<div align="center">
<img src="https://pragmatismo.com.br/icons/general-bots-text.svg" alt="General Bots" width="200">
</div>

View file

@ -1 +0,0 @@
# Admin API

View file

@ -1 +0,0 @@
# AI API

View file

@ -1 +0,0 @@
# Analytics API

View file

@ -1 +0,0 @@
# Backup API

View file

@ -1 +0,0 @@
# Calendar API

View file

@ -1 +0,0 @@
# Calls API

View file

@ -1 +0,0 @@
# Compliance API

View file

@ -1 +0,0 @@
# Conversations API

View file

@ -1 +0,0 @@
# Document Processing API

View file

@ -1 +0,0 @@
# Email API

View file

@ -1 +0,0 @@
# Example Integrations

View file

@ -1 +0,0 @@
# Files API

View file

@ -1 +0,0 @@
# Group Membership API

View file

@ -1 +0,0 @@
# Groups API

View file

@ -1 +0,0 @@
# ML API

View file

@ -1 +0,0 @@
# Monitoring API

View file

@ -1 +0,0 @@
# Notifications API

View file

@ -1 +0,0 @@
# Reports API

View file

@ -1 +0,0 @@
# Security API

View file

@ -1 +0,0 @@
# Storage API

View file

@ -1 +0,0 @@
# Tasks API

View file

@ -1 +0,0 @@
# User Security API

View file

@ -1 +0,0 @@
# Users API

View file

@ -1 +0,0 @@
# Whiteboard API

View file

@ -1 +1,26 @@
# Community Guidelines
Welcome to the General Bots community! These guidelines ensure a welcoming environment.
## Our Values
- **Inclusivity**: Welcome all contributors
- **Respect**: Professional interactions
- **Collaboration**: Work together effectively
- **Quality**: Maintain high standards
- **Learning**: Share knowledge openly
## Expected Behavior
- Be respectful and considerate
- Welcome newcomers
- Give constructive feedback
- Focus on community benefit
- Show empathy
## Communication
- GitHub Issues for bugs/features
- GitHub Discussions for questions
- Pull Requests for contributions
## See Also
- [Code of Conduct](./code-of-conduct.md)
- [Contributing Guidelines](./contributing-guidelines.md)