modules Add detailed README documentation for 15+ bot templates including: - Platform analytics, BI reporting, and web crawler templates - CRM, contacts, and marketing automation templates - Legal document processing and office productivity templates - LLM tools, LLM server, and API client integration templates - Reminder management and meta-template for creating new templates Add new Rust configuration modules: - BM25 config for Tantivy-based sparse
316 lines
No EOL
7.1 KiB
Markdown
316 lines
No EOL
7.1 KiB
Markdown
# Template for Creating Templates (template.gbai)
|
|
|
|
A General Bots meta-template that serves as a starting point for creating new bot templates.
|
|
|
|
## Overview
|
|
|
|
The Template template (yes, it's a template for templates!) provides the essential structure and best practices for creating new General Bots templates. Use this as your foundation when building custom templates for specific use cases.
|
|
|
|
## Features
|
|
|
|
- **Standard Structure** - Pre-configured folder hierarchy
|
|
- **Best Practices** - Follows General Bots conventions
|
|
- **Documentation Ready** - Includes README template
|
|
- **Quick Start** - Minimal setup required
|
|
|
|
## Package Structure
|
|
|
|
```
|
|
template.gbai/
|
|
├── README.md # This documentation
|
|
├── template.gbdialog/ # Dialog scripts
|
|
│ └── send.bas # Example script (placeholder)
|
|
├── template.gbdrive/ # File storage
|
|
│ └── (your files here)
|
|
├── template.gbkb/ # Knowledge base (optional)
|
|
│ └── docs/
|
|
└── template.gbot/ # Bot configuration
|
|
└── config.csv
|
|
```
|
|
|
|
## Creating a New Template
|
|
|
|
### Step 1: Copy the Template
|
|
|
|
```bash
|
|
cp -r templates/template.gbai templates/your-template.gbai
|
|
```
|
|
|
|
### Step 2: Rename Internal Folders
|
|
|
|
Rename all internal folders to match your template name:
|
|
|
|
```bash
|
|
cd templates/your-template.gbai
|
|
mv template.gbdialog your-template.gbdialog
|
|
mv template.gbdrive your-template.gbdrive
|
|
mv template.gbot your-template.gbot
|
|
```
|
|
|
|
### Step 3: Configure Your Bot
|
|
|
|
Edit `your-template.gbot/config.csv`:
|
|
|
|
```csv
|
|
name,value
|
|
Bot Name,Your Bot Name
|
|
Theme Color,blue
|
|
Answer Mode,default
|
|
LLM Provider,openai
|
|
```
|
|
|
|
### Step 4: Create Dialog Scripts
|
|
|
|
Add your BASIC scripts to `your-template.gbdialog/`:
|
|
|
|
```basic
|
|
' start.bas - Main entry point
|
|
ADD TOOL "your-tool"
|
|
|
|
USE KB "your-template.gbkb"
|
|
|
|
CLEAR SUGGESTIONS
|
|
|
|
ADD SUGGESTION "option1" AS "First Option"
|
|
ADD SUGGESTION "option2" AS "Second Option"
|
|
ADD SUGGESTION "help" AS "Get Help"
|
|
|
|
BEGIN TALK
|
|
**Your Bot Name**
|
|
|
|
Welcome! I can help you with:
|
|
• Feature 1
|
|
• Feature 2
|
|
• Feature 3
|
|
|
|
What would you like to do?
|
|
END TALK
|
|
|
|
BEGIN SYSTEM PROMPT
|
|
You are a helpful assistant for [your use case].
|
|
|
|
Guidelines:
|
|
- Be helpful and concise
|
|
- Use the available tools when appropriate
|
|
- Ask clarifying questions when needed
|
|
END SYSTEM PROMPT
|
|
```
|
|
|
|
### Step 5: Add Tools
|
|
|
|
Create tool scripts with proper parameters:
|
|
|
|
```basic
|
|
' your-tool.bas
|
|
PARAM input AS STRING LIKE "example" DESCRIPTION "Description of this parameter"
|
|
PARAM optional_param AS STRING DESCRIPTION "Optional parameter" OPTIONAL
|
|
|
|
DESCRIPTION "What this tool does - this helps the LLM decide when to use it"
|
|
|
|
' Your implementation here
|
|
result = DO_SOMETHING(input)
|
|
|
|
IF result THEN
|
|
RETURN result
|
|
ELSE
|
|
RETURN {"error": "Something went wrong"}
|
|
END IF
|
|
```
|
|
|
|
### Step 6: Add Knowledge Base (Optional)
|
|
|
|
If your template needs reference documentation:
|
|
|
|
```
|
|
your-template.gbkb/
|
|
└── docs/
|
|
├── feature1.md
|
|
├── feature2.md
|
|
└── faq.md
|
|
```
|
|
|
|
### Step 7: Update README
|
|
|
|
Replace this README with documentation for your template:
|
|
|
|
```markdown
|
|
# Your Template Name (your-template.gbai)
|
|
|
|
Description of what your template does.
|
|
|
|
## Overview
|
|
|
|
Detailed overview...
|
|
|
|
## Features
|
|
|
|
- Feature 1
|
|
- Feature 2
|
|
- Feature 3
|
|
|
|
## Package Structure
|
|
|
|
(Document your structure)
|
|
|
|
## Configuration
|
|
|
|
(Document configuration options)
|
|
|
|
## Usage
|
|
|
|
(Document how to use)
|
|
|
|
## Customization
|
|
|
|
(Document how to customize)
|
|
|
|
## License
|
|
|
|
AGPL-3.0 - Part of General Bots Open Source Platform.
|
|
```
|
|
|
|
## Template Checklist
|
|
|
|
Before publishing your template, ensure:
|
|
|
|
- [ ] All folders renamed to match template name
|
|
- [ ] `config.csv` configured with appropriate defaults
|
|
- [ ] `start.bas` provides clear entry point
|
|
- [ ] All tools have `PARAM` and `DESCRIPTION`
|
|
- [ ] System prompt guides LLM behavior
|
|
- [ ] README documents all features
|
|
- [ ] No hardcoded credentials or secrets
|
|
- [ ] Error handling implemented
|
|
- [ ] Example conversations documented
|
|
|
|
## Naming Conventions
|
|
|
|
| Item | Convention | Example |
|
|
|------|------------|---------|
|
|
| Template folder | `kebab-case.gbai` | `my-crm.gbai` |
|
|
| Dialog scripts | `kebab-case.bas` | `add-contact.bas` |
|
|
| Tools | `kebab-case` | `search-products` |
|
|
| Config keys | `Title Case` | `Theme Color` |
|
|
| Table names | `PascalCase` | `CustomerOrders` |
|
|
|
|
## Best Practices
|
|
|
|
### Dialog Scripts
|
|
|
|
1. **Clear entry point** - `start.bas` should be the main entry
|
|
2. **Register tools** - Use `ADD TOOL` for LLM-callable functions
|
|
3. **Set context** - Use `SET CONTEXT` and `BEGIN SYSTEM PROMPT`
|
|
4. **Add suggestions** - Guide users with quick actions
|
|
5. **Welcome message** - Use `BEGIN TALK` for introduction
|
|
|
|
### Tools
|
|
|
|
1. **Descriptive names** - Tool names should indicate function
|
|
2. **Parameter examples** - Use `LIKE` to show expected format
|
|
3. **Clear descriptions** - Help LLM understand when to use
|
|
4. **Return values** - Always return meaningful results
|
|
5. **Error handling** - Handle edge cases gracefully
|
|
|
|
### Configuration
|
|
|
|
1. **Sensible defaults** - Work out of the box
|
|
2. **Document options** - Explain each setting
|
|
3. **No secrets** - Use environment variables for credentials
|
|
4. **Flexible** - Allow customization without code changes
|
|
|
|
### Documentation
|
|
|
|
1. **Clear overview** - Explain what the template does
|
|
2. **Feature list** - Highlight capabilities
|
|
3. **Usage examples** - Show common scenarios
|
|
4. **Configuration guide** - Document all settings
|
|
5. **Troubleshooting** - Address common issues
|
|
|
|
## File Templates
|
|
|
|
### config.csv Template
|
|
|
|
```csv
|
|
name,value
|
|
Bot Name,Your Bot Name
|
|
Theme Color,blue
|
|
Answer Mode,default
|
|
LLM Provider,openai
|
|
Admin Email,admin@company.com
|
|
```
|
|
|
|
### start.bas Template
|
|
|
|
```basic
|
|
' Register tools
|
|
ADD TOOL "tool-name"
|
|
|
|
' Load knowledge base
|
|
USE KB "your-template.gbkb"
|
|
|
|
' Configure suggestions
|
|
CLEAR SUGGESTIONS
|
|
ADD SUGGESTION "action" AS "Do Something"
|
|
|
|
' Welcome message
|
|
BEGIN TALK
|
|
**Bot Name**
|
|
|
|
Welcome message here.
|
|
END TALK
|
|
|
|
' System prompt
|
|
BEGIN SYSTEM PROMPT
|
|
You are a helpful assistant.
|
|
Define behavior and guidelines here.
|
|
END SYSTEM PROMPT
|
|
```
|
|
|
|
### Tool Template
|
|
|
|
```basic
|
|
PARAM required_param AS STRING LIKE "example" DESCRIPTION "What this is"
|
|
PARAM optional_param AS STRING DESCRIPTION "Optional input" OPTIONAL
|
|
|
|
DESCRIPTION "What this tool does"
|
|
|
|
' Implementation
|
|
result = YOUR_LOGIC_HERE
|
|
|
|
IF result THEN
|
|
RETURN result
|
|
ELSE
|
|
RETURN {"error": "Error message"}
|
|
END IF
|
|
```
|
|
|
|
## Publishing Your Template
|
|
|
|
1. **Test thoroughly** - Verify all features work
|
|
2. **Document completely** - Users should be self-sufficient
|
|
3. **Follow conventions** - Consistent with other templates
|
|
4. **Update main README** - Add to templates list
|
|
5. **Submit PR** - Include template and documentation
|
|
|
|
## Related Resources
|
|
|
|
- [General Bots Documentation](../../docs/src/README.md)
|
|
- [BASIC Dialog Reference](../../docs/src/chapter-06-gbdialog/README.md)
|
|
- [Template Samples](../../docs/src/chapter-02/template-samples.md)
|
|
- [Existing Templates](../README.md)
|
|
|
|
## Support
|
|
|
|
For questions about creating templates:
|
|
|
|
- **Documentation**: See General Bots docs
|
|
- **Issues**: GitHub Issues
|
|
- **Community**: Discord/Slack channels
|
|
|
|
## License
|
|
|
|
AGPL-3.0 - Part of General Bots Open Source Platform.
|
|
|
|
---
|
|
|
|
**Pragmatismo** - General Bots |