7.3 KiB
First Conversation
After BotServer starts, you can immediately start chatting with your bot. No programming required!
Just Start Talking
Open your browser to:
http://localhost:8080
And start chatting:
You: Hi!
Bot: Hello! How can I help you today?
You: I want to enroll in a course
Bot: I'll help you with enrollment. Let me collect your information...
[Bot automatically calls enrollment.bas tool]
You: What documents do you have?
Bot: [Searches .gbkb/ folders and answers from your documents]
That's it! The LLM handles everything automatically.
How It Works
1. Drop Documents in .gbkb/
mybot.gbai/
mybot.gbkb/
policies/
enrollment-policy.pdf
course-catalog.pdf
faqs/
student-faq.docx
payment-guide.txt
The bot automatically:
- ✅ Indexes all documents
- ✅ Creates vector embeddings
- ✅ Searches when users ask questions
- ✅ Provides accurate answers from your content
2. Create Tools as .bas Files
Create enrollment.bas:
PARAM name AS string LIKE "John Smith" DESCRIPTION "Student full name"
PARAM email AS string LIKE "john@example.com" DESCRIPTION "Contact email"
PARAM course AS string LIKE "Computer Science" DESCRIPTION "Course to enroll in"
DESCRIPTION "Enrollment tool - collects student information and processes enrollment"
SAVE "enrollments.csv", name, email, course, NOW()
TALK "Enrollment complete! Welcome to " + course + ", " + name
The LLM automatically:
- ✅ Discovers this tool
- ✅ Knows when to call it (when users want to enroll)
- ✅ Collects required parameters through conversation
- ✅ Executes the tool when ready
3. The LLM Does Everything Else
You DON'T need to write:
- ❌ IF/THEN logic
- ❌ Intent detection
- ❌ Dialog flows
- ❌ State machines
- ❌ Complex routing
The LLM automatically:
- Understands user intent
- Calls appropriate tools
- Searches knowledge bases
- Maintains conversation context
- Handles follow-up questions
Real Example Conversation
With enrollment.bas tool and course documents in .gbkb/:
User: Hello, I'd like to know about your computer science program
Bot: I'd be happy to help you learn about our Computer Science program!
Based on our course catalog, the program offers a comprehensive
4-year curriculum covering software development, algorithms,
databases, and AI. Would you like to know about specific courses
or the enrollment process?
User: Yes, I want to enroll
Bot: Great! I'll help you enroll in the Computer Science program.
Let me collect your information. What's your full name?
User: John Smith
Bot: Thank you, John. What email address should we use for contact?
User: john.smith@gmail.com
Bot: Perfect! I'm enrolling you in Computer Science now...
[Executes enrollment.bas tool]
Enrollment complete! Welcome to Computer Science, John Smith!
You'll receive a confirmation at john.smith@gmail.com.
User: What are the payment options?
Bot: [Searches payment-guide.txt from .gbkb/]
According to our payment guide, we offer three options:
1. Full payment with 10% discount
2. Monthly installments over 12 months
3. Semester-based payments
Which option would you prefer?
The Magic Formula
📚 Documents (.gbkb/) + 🔧 Tools (.bas) + 🤖 LLM = ✨ Intelligent Bot
No complex programming needed!
Creating Your First Bot
Step 1: Create Structure
mkdir -p mybot.gbai/mybot.gbdialog
mkdir -p mybot.gbai/mybot.gbkb/docs
mkdir -p mybot.gbai/mybot.gbot
Step 2: Add Documents
Drop any documents in .gbkb/:
- PDFs
- Word documents
- Text files
- Markdown files
Step 3: Create a Tool (Optional)
Create mybot.gbdialog/my-tool.bas:
PARAM user_name AS string
PARAM request AS string
DESCRIPTION "Handles user requests"
result = CALL "/api/process", user_name, request
TALK "Done! " + result
Step 4: Start Chatting
Restart BotServer and chat! The LLM will:
- Answer questions from your documents
- Call your tools when appropriate
- Handle the entire conversation naturally
No Programming Required
Traditional chatbots require complex logic:
' ❌ OLD WAY - DON'T DO THIS!
IF user_input CONTAINS "enroll" THEN
TALK "What's your name?"
' ❌ OLD WAY - Complex multi-step dialog
IF intent = "enrollment" THEN
TALK "Let me help you enroll. What's your name?"
HEAR name
TALK "What's your email?"
HEAR email
' ... lots more code ...
ENDIF
With BotServer:
' ✅ NEW WAY - Just create the tool!
' In enrollment.bas - becomes a tool automatically
PARAM name AS string
PARAM email AS string
DESCRIPTION "Collects enrollment information"
' The tool is called by LLM when needed
SAVE "enrollments.csv", name, email
TALK "Successfully enrolled " + name
The LLM handles all the conversation logic!
What Can You Build?
Customer Support Bot
- Add product manuals to
.gbkb/ - Create
create-ticket.bastool - LLM answers questions and creates support tickets automatically
HR Assistant
- Add employee handbook to
.gbkb/ - Create
leave-request.bastool - LLM explains policies and processes leave requests
Education Platform
- Add course materials to
.gbkb/ - Create
enrollment.basandsubmit-assignment.bastools - LLM teaches content and manages student tasks
Sales Assistant
- Add product catalogs to
.gbkb/ - Create
create-quote.bastool - LLM answers product questions and generates quotes
Advanced Features
Dynamic Tool Loading
The LLM can load tools based on context:
' In start.bas - minimal setup, no HEAR needed
USE KB "general" ' Load general knowledge base
' Tools in .gbdialog/ are auto-discovered
' LLM handles the conversation naturally
Multi-Language Support
The LLM handles multiple languages automatically:
User: Olá, quero me inscrever no curso
Bot: Claro! Vou ajudá-lo com a inscrição...
User: 我想了解计算机科学课程
Bot: 我很乐意帮您了解计算机科学课程...
Context Awareness
The LLM maintains conversation context:
User: I want to enroll
Bot: I'll help you enroll. What's your name?
User: Actually, first tell me about the prerequisites
Bot: Of course! The Computer Science program requires...
Tips for Success
1. Organize Documents Clearly
mybot.gbkb/
policies/ # Policy documents
products/ # Product information
faqs/ # Frequently asked questions
tutorials/ # How-to guides
2. Name Tools Descriptively
Good tool names:
enrollment.bascreate-ticket.basschedule-meeting.bas
The LLM understands what each tool does from its name and description.
3. Use Tool Descriptions
Always add descriptions to tools:
DESCRIPTION "This tool processes student enrollment for courses"
4. Let the LLM Work
Don't try to control every aspect of the conversation. Let the LLM:
- Rephrase responses naturally
- Handle unexpected questions
- Maintain conversation flow
Next Steps
- Quick Start - Build your first bot
- About Packages - Package structure
- Tool Definition - Creating tools
- Knowledge Base - Document management
Remember: Just add documents and tools - the LLM does the rest! 🚀