botbook/src/chapter-07-gbapp/README.md

2.6 KiB

Chapter 07: Extending General Bots

Architecture and deployment reference for developers.

Overview

BotServer is built in Rust with a modular architecture. Extend it by creating custom keywords, services, or entire applications.

Architecture

┌─────────────────────────────────────────┐
│              Web Server (Axum)          │
├─────────────────────────────────────────┤
│         BASIC Runtime (Rhai)            │
├──────────┬──────────┬──────────┬────────┤
│   LLM    │ Storage  │  Vector  │ Cache  │
│ Service  │ (MinIO)  │ (Qdrant) │(Valkey)│
├──────────┴──────────┴──────────┴────────┤
│            PostgreSQL                   │
└─────────────────────────────────────────┘

Deployment Options

Method Use Case Guide
Local Development Installation
Docker Production Docker Deployment
LXC Isolated components Container Deployment

Module Structure

Module Purpose
web_server HTTP/WebSocket handling
basic BASIC language runtime
llm LLM provider integration
drive Object storage
shared Database models

Creating Custom Keywords

// In src/basic/keywords/my_keyword.rs
pub fn my_keyword(context: &mut EvalContext) -> Result<Dynamic, Box<EvalError>> {
    // Your keyword logic
    Ok(Dynamic::from("result"))
}

Register in keywords/mod.rs and rebuild.

Chapter Contents

See Also