Added functionality to load configuration from CSV files in S3 when available, with fallback to existing methods. The changes include: 1. Added new `load_config_from_csv` method to handle CSV config loading 2. Improved legacy mode handling by attempting CSV load before falling back to database 3. Added new dependencies (uuid, Arc, Mutex) for config management 4. Enhanced error handling and logging for config loading scenarios The changes maintain backward compatibility while adding the ability to load configurations from CSV files stored in S3, which provides more flexibility in configuration management. |
||
|---|---|---|
| .forgejo/workflows | ||
| .vscode | ||
| .zed | ||
| docs/src | ||
| migrations | ||
| prompts | ||
| scripts | ||
| src | ||
| templates | ||
| web | ||
| .gitattributes | ||
| .gitignore | ||
| add-req.sh | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| CODE_OF_CONDUCT-pt-br.md | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| diesel.toml | ||
| fix-errors.sh | ||
| gbot.cmd | ||
| gbot.sh | ||
| LICENSE | ||
| logo.png | ||
| README-6.md | ||
| README.md | ||
| SECURITY.md | ||
| TODO.md | ||
Key Facts
- LLM Orchestrator AGPL licensed (to use as custom-label SaaS, contributing back)
- True community governance
- No single corporate control
- 5+ years of stability
- Never changed license
- Enterprise-grad
- Hosted locally or Multicloud
Contributors
Overview
| Area | Status |
|---|---|
| Releases | |
| Community | |
| Management | |
| Security | |
| Building & Quality | |
| Packaging | |
| Samples | BASIC or |
| Docker Image Provided by @lpicanco |
General Bots
General Bot is a strongly typed LLM conversational platform package based chat bot server focused in convention over configuration and code-less approaches, which brings software packages and application server concepts to help parallel bot development.
What is a Bot Server?
Bot Server accelerates the process of developing a bot. It provisions all code base, resources and deployment to the cloud, and gives you templates you can choose from whenever you need a new bot. The server has a database and service backend allowing you to further modify your bot package directly by downloading a zip file, editing and uploading it back to the server (deploying process) with no code. The Bot Server also provides a framework to develop bot packages in a more advanced fashion writing custom code in editors like Visual Studio Code, Atom or Brackets.
Everyone can create bots by just copying and pasting some files and using their favorite tools from Office (or any text editor) or Photoshop (or any image editor). LLM and BASIC can be mixed used to build custom dialogs so Bot can be extended just like VBA for Excel.
Getting Started
Prerequisites
Before you embark on your General Bots journey, ensure you have the following tools installed:
- Rust (latest stable version): General Bots server is built with Rust for performance and safety. Install from rustup.rs.
- Git (latest stable version): Essential for version control and collaborating on bot projects. Get it from git-scm.com.
Optional (for Node.js bots):
- Node.js (version 20 or later): For Node.js-based bot packages. Download from nodejs.org.
Quick Start Guide (Rust Version)
Follow these steps to get your General Bots server up and running:
-
Clone the repository:
git clone https://github.com/GeneralBots/BotServerThis command creates a local copy of the General Bots server repository on your machine.
-
Navigate to the project directory:
cd BotServerThis changes your current directory to the newly cloned BotServer folder.
-
Create your configuration file:
cp .env.example .envEdit
.envwith your actual configuration values. See Configuration section below. -
Run the server:
cargo runOn first run, BotServer will automatically:
- Install required components (PostgreSQL, MinIO, Redis, LLM)
- Set up the database with migrations
- Download AI models
- Upload template bots from
templates/folder - Start the HTTP server on
http://127.0.0.1:8080(or your configured port)
Alternative - Build release version:
cargo build --release
./target/release/botserver
Management Commands:
botserver start # Start all components
botserver stop # Stop all components
botserver restart # Restart all components
botserver list # List available components
botserver status <component> # Check component status
botserver install <component> # Install optional component
Accessing Your Bot
Once the server is running, you can access your bot at http://localhost:8080/ (or your configured SERVER_PORT). This local server allows you to interact with your bot and test its functionality in real-time.
Anonymous Access: Every visitor automatically gets a unique session tracked by cookie. No login required to start chatting!
Authentication: Users can optionally register/login at /static/auth/login.html to save conversations across devices.
About Page: Visit /static/about/index.html to learn more about BotServer and its maintainers.
Configuration
BotServer uses environment variables for configuration. Copy .env.example to .env and customize:
Required Settings (Auto-installed on first run)
# Database (PostgreSQL - auto-installed)
TABLES_SERVER=localhost
TABLES_PORT=5432
TABLES_DATABASE=botserver
TABLES_USERNAME=gbuser
TABLES_PASSWORD=changeme
# Storage (MinIO - auto-installed)
DRIVE_SERVER=http://localhost:9000
DRIVE_ACCESSKEY=minioadmin
DRIVE_SECRET=minioadmin
DRIVE_ORG_PREFIX=botserver-
#### Legacy Mode (Use existing infrastructure)
If you already have PostgreSQL, MinIO, etc. running, set these in `.env`:
```bash
# Existing database
TABLES_SERVER=your-db-host
TABLES_USERNAME=your-username
TABLES_PASSWORD=your-password
# Existing MinIO/S3
DRIVE_SERVER=https://your-minio-host
DRIVE_ACCESSKEY=your-access-key
DRIVE_SECRET=your-secret-key
BotServer will detect existing infrastructure and skip auto-installation.
Development Workflow
1. Project Structure
The General Bots server follows a modular architecture designed for flexibility and scalability. Here's an overview of the main directories:
BotServer/
├── packages/
│ ├── core.gbapp/ # Core bot functionality
│ ├── kb.gbapp/ # Knowledge base packages
├── src / # Main entry point
└── package.json # Project configuration
This structure allows for easy navigation and management of different aspects of your bot project.
2. Creating Custom Packages
One of the strengths of General Bots is its extensibility. You can create custom packages to enhance your bot's capabilities:
- .gbkb (Knowledge Base packages): Store and manage your bot's knowledge and responses.
- .gbtheme (Theme packages): Customize the visual appearance of your bot interface.
- .gbapp (Application packages): Add new features and functionalities to your bot.
Each package type has its own structure and purpose, which we'll explore in depth in their respective chapters.
Samples
Several samples, including a Bot for AD Password Reset, are avaiable on the repository list.
Using complete General Bots Conversational Data Analytics
TALK "General Bots Labs presents FISCAL DATA SHOW BY BASIC"
TALK "Gift Contributions to Reduce the Public Debt API (https://fiscaldata.treasury.gov/datasets/gift-contributions-reduce-debt-held-by-public/gift-contributions-to-reduce-the-public-debt)"
result = GET "https://api.fiscaldata.treasury.gov/services/api/fiscal_service/v2/accounting/od/gift_contributions?page[size]=500"
data = result.data
data = SELECT YEAR(record_date) as Yr, SUM(CAST(contribution_amt AS NUMBER)) AS Amount FROM data GROUP BY YEAR(record_date)
TALK "Demonstration of Gift Contributions with AS IMAGE keyword"
SET THEME dark
png = data as IMAGE
SEND FILE png
DELAY 5
TALK " Demonstration of Gift Contributions CHART keyword"
img = CHART "bar", data
SEND FILE img
Guide
Read the General Bots BotBook Guide
Videos
7 AI General Bots LLM Templates for Goodness https://www.youtube.com/watch?v=KJgvUPXi3Fw
Contributing
This project welcomes contributions and suggestions. See our Contribution Guidelines for more details.
Reporting Security Issues
Security issues and bugs should be reported privately, via email, to the pragmatismo.com.br Security team at security@pragmatismo.com.br. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message.
License & Warranty
General Bot Copyright (c) pragmatismo.com.br. All rights reserved. Licensed under the AGPL-3.0.
According to our dual licensing model, this program can be used either under the terms of the GNU Affero General Public License, version 3, or under a proprietary license.
The texts of the GNU Affero General Public License with an additional permission and of our proprietary license can be found at and in the LICENSE file you have received along with this program.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
"General Bot" is a registered trademark of pragmatismo.com.br. The licensing of the program under the AGPLv3 does not imply a trademark license. Therefore any rights, title and interest in our trademarks remain entirely with us.
💬 Ask a question 📖 Read the Docs Team pictures made with contrib.rocks. General Bots Code Name is Guaribas, the name of a city in Brazil, state of Piaui. Roberto Mangabeira Unger: "No one should have to do work that can be done by a machine".

