Multi-Domain Small Language Model Agentic Orchestration Framework
Automatically detect and route queries to specialized domains based on keywords and context.
Intelligent model management with automatic eviction based on Least Recently Used (LRU) policy.
Comprehensive metrics and performance tracking with built-in dashboard.
Extensible tool registry for function calling and external integrations.
Built-in Retrieval-Augmented Generation with vector database integration.
Optimized for speed with hardware detection and automatic GPU acceleration.
from mdsa import ModelManager, DomainExecutor, DomainConfig
# Create model manager
manager = ModelManager(max_models=2)
executor = DomainExecutor(manager)
# Create domain
domain = DomainConfig(
domain_id="general",
name="General Assistant",
description="General purpose assistant",
keywords=["help", "question"],
model_name="gpt2", # Any HuggingFace model
system_prompt="You are a helpful assistant"
)
# Execute query
result = executor.execute("What is AI?", domain)
print(result['response'])
from mdsa import RequestLogger, MetricsCollector
# Create monitors
logger = RequestLogger(max_logs=10000)
metrics = MetricsCollector(window_size=1000)
# Log requests
logger.log_request(
request_id="req_001",
query="User query",
domain="general",
model="gpt2",
response="Model response",
status="success",
latency_ms=150.5,
tokens_generated=50,
confidence=0.95
)
# Get statistics
stats = logger.get_stats()
summary = metrics.get_summary()
print(f"Total requests: {stats['total_requests']}")
print(f"Avg latency: {summary['avg_latency_ms']}ms")
from mdsa.ui.dashboard import DashboardServer
# Create dashboard with your components
server = DashboardServer(
model_manager=manager,
request_logger=logger,
metrics_collector=metrics
)
# Run dashboard on http://127.0.0.1:5000
server.run()
# Or use CLI
# python -m mdsa.ui.dashboard