68 lines
1.6 KiB
Markdown
68 lines
1.6 KiB
Markdown
|
|
# .gbdialog Dialogs
|
||
|
|
|
||
|
|
The `.gbdialog` package contains BASIC scripts that define conversation flows, tool integrations, and bot behavior.
|
||
|
|
|
||
|
|
## What is .gbdialog?
|
||
|
|
|
||
|
|
`.gbdialog` files are written in a specialized BASIC dialect that controls:
|
||
|
|
- Conversation flow and logic
|
||
|
|
- Tool calls and integrations
|
||
|
|
- User input processing
|
||
|
|
- Context management
|
||
|
|
- Response generation
|
||
|
|
|
||
|
|
## Basic Structure
|
||
|
|
|
||
|
|
A typical `.gbdialog` script contains:
|
||
|
|
|
||
|
|
```basic
|
||
|
|
REM This is a comment
|
||
|
|
TALK "Hello! How can I help you today?"
|
||
|
|
|
||
|
|
HEAR user_input
|
||
|
|
|
||
|
|
IF user_input = "help" THEN
|
||
|
|
TALK "I can help you with various tasks..."
|
||
|
|
ELSE
|
||
|
|
LLM user_input
|
||
|
|
END IF
|
||
|
|
```
|
||
|
|
|
||
|
|
## Key Components
|
||
|
|
|
||
|
|
### 1. Control Flow
|
||
|
|
- `IF/THEN/ELSE/END IF` for conditional logic
|
||
|
|
- `FOR EACH/IN/NEXT` for loops
|
||
|
|
- `EXIT FOR` to break loops
|
||
|
|
|
||
|
|
### 2. User Interaction
|
||
|
|
- `HEAR variable` to get user input
|
||
|
|
- `TALK message` to send responses
|
||
|
|
- `WAIT seconds` to pause execution
|
||
|
|
|
||
|
|
### 3. Data Manipulation
|
||
|
|
- `SET variable = value` for assignment
|
||
|
|
- `GET url` to fetch external data
|
||
|
|
- `FIND table, filter` to query databases
|
||
|
|
|
||
|
|
### 4. AI Integration
|
||
|
|
- `LLM prompt` for AI-generated responses
|
||
|
|
- `ADD_TOOL tool_name` to enable functionality
|
||
|
|
- `SET_KB collection` to use knowledge bases
|
||
|
|
|
||
|
|
## Script Execution
|
||
|
|
|
||
|
|
Dialog scripts run in a sandboxed environment with:
|
||
|
|
- Access to session context and variables
|
||
|
|
- Ability to call external tools and APIs
|
||
|
|
- Integration with knowledge bases
|
||
|
|
- LLM generation capabilities
|
||
|
|
|
||
|
|
## Error Handling
|
||
|
|
|
||
|
|
The system provides built-in error handling:
|
||
|
|
- Syntax errors are caught during compilation
|
||
|
|
- Runtime errors log details but don't crash the bot
|
||
|
|
- Timeouts prevent infinite loops
|
||
|
|
- Resource limits prevent abuse
|