← Back to all products
$49
Conversational AI Templates
Chatbot frameworks with context management, multi-turn conversation handling, intent classification, and escalation workflows.
MarkdownYAMLPythonFastAPIFlaskRedisLLMOpenAI
📄 Product Preview
Try the interactive reader and demo tools below, or get the full product with all content unlocked.
📖 Interactive Reader (Free Preview) ⚙ Try Demo Tools 📦 Download Free Sample📁 File Structure 39 files
conversational-ai-templates/
├── LICENSE
├── README.md
├── free-sample.zip
├── guide/
│ ├── 01-building-a-chatbot.md
│ └── 02-channel-integration.md
├── guides/
│ ├── building-a-chatbot.md
│ └── channel-integration.md
├── index.html
├── requirements.txt
├── src/
│ ├── __init__.py
│ ├── __pycache__/
│ │ ├── __init__.cpython-312.pyc
│ │ ├── context_manager.cpython-312.pyc
│ │ ├── dialogue.cpython-312.pyc
│ │ ├── escalation.cpython-312.pyc
│ │ ├── intent.cpython-312.pyc
│ │ └── slots.cpython-312.pyc
│ ├── channels/
│ │ ├── __init__.py
│ │ ├── __pycache__/
│ │ │ ├── __init__.cpython-312.pyc
│ │ │ ├── base.cpython-312.pyc
│ │ │ ├── slack.cpython-312.pyc
│ │ │ └── web.cpython-312.pyc
│ │ ├── base.py
│ │ ├── slack.py
│ │ └── web.py
│ ├── context_manager.py
│ ├── dialogue.py
│ ├── escalation.py
│ ├── intent.py
│ └── slots.py
├── templates/
│ ├── booking_bot.yaml
│ ├── faq_bot.yaml
│ └── support_bot.yaml
└── tests/
├── __pycache__/
│ ├── test_context.cpython-312.pyc
│ ├── test_dialogue.cpython-312.pyc
│ └── test_intent.cpython-312.pyc
├── test_context.py
├── test_dialogue.py
└── test_intent.py
📖 Documentation Preview README excerpt
Conversational AI Templates
A production-ready framework for building chatbots with multi-turn dialogue management, intent classification, slot filling, escalation workflows, and channel adapters. Includes three ready-to-deploy bot configurations: support bot, FAQ bot, and booking bot.
What's Inside
conversational-ai-templates/
├── src/ # Core framework
│ ├── __init__.py
│ ├── context_manager.py # Conversation state & history tracking
│ ├── dialogue.py # State-machine dialogue manager
│ ├── intent.py # Intent classification (keyword + LLM)
│ ├── slots.py # Slot extraction (email, phone, date, etc.)
│ ├── escalation.py # Human handoff workflows
│ └── channels/ # Platform adapters
│ ├── __init__.py
│ ├── base.py # Abstract adapter interface
│ ├── web.py # Web chat widget adapter
│ └── slack.py # Slack Events API adapter
├── templates/ # Ready-to-deploy bot configs (YAML)
│ ├── support_bot.yaml # Customer support bot
│ ├── faq_bot.yaml # FAQ knowledge-base bot
│ └── booking_bot.yaml # Appointment scheduling bot
├── tests/ # Test suite
│ ├── test_context.py # ConversationContext tests
│ ├── test_intent.py # Intent classifier tests
│ └── test_dialogue.py # DialogueManager tests
├── guides/ # How-to documentation
│ ├── building-a-chatbot.md # Step-by-step build guide
│ └── channel-integration.md # Platform integration guide
├── requirements.txt
├── LICENSE
└── .gitignore
Features
Conversation Management
- Sliding-window history with configurable depth (default 20 turns)
- Slot tracking with typed extraction (email, phone, date, time, number, choice)
- Session serialization via
to_dict()/from_dict()for Redis, DynamoDB, or any store - Idle detection and session timeout handling
Dialogue Engine
- State-machine flows defined declaratively in YAML or Python
- Slot-gated transitions — states block until required data is collected
- Global intents — cancel, help, and escalate work from any state
- Entry/exit callbacks for running custom logic on state transitions
- Config-driven — change bot behavior without changing code
Intent Classification
- KeywordIntentClassifier — fast, zero-dependency, no API key needed
- Keyword matching (exact and partial) with configurable confidence scores
- Regex pattern matching for structured utterances
- Priority-based tie-breaking between similar intents
- LLMIntentClassifier — production-grade accuracy via OpenAI/Anthropic
- Automatic prompt construction from intent catalog
- Graceful fallback to keyword classifier when LLM is unavailable
- JSON response parsing with error recovery
... continues with setup instructions, usage examples, and more.
📄 Code Sample .py preview
src/context_manager.py
"""Conversation context manager — tracks state across multi-turn dialogues.
Maintains a sliding window of conversation history, extracted slot values,
the current intent, and metadata like user identity and session timing.
The context object is the central data structure that every other module
reads from and writes to during a conversation turn.
"""
from __future__ import annotations
import logging
import time
import uuid
from dataclasses import dataclass, field
from typing import Any
logger = logging.getLogger(__name__)
# How many past turns to keep in the sliding window. Older turns are
# summarized (if a summarizer is configured) or simply dropped.
DEFAULT_HISTORY_WINDOW = 20
# Maximum number of slots a single context can hold before we warn
# about potential memory bloat in long-running sessions.
SLOT_LIMIT_WARNING = 50
@dataclass
class Message:
"""A single message in the conversation history.
Attributes:
role: Who sent the message — "user", "assistant", or "system".
content: The text content of the message.
timestamp: Unix timestamp when the message was created.
metadata: Arbitrary key-value pairs (channel info, message ID, etc.).
"""
role: str
content: str
timestamp: float = field(default_factory=time.time)
metadata: dict[str, Any] = field(default_factory=dict)
def to_dict(self) -> dict[str, Any]:
return {
"role": self.role,
"content": self.content,
"timestamp": self.timestamp,
"metadata": self.metadata,
}
# ... 240 more lines ...