Initial commit: add .gitignore and README
This commit is contained in:
139
examples/admin_panel_example.py
Normal file
139
examples/admin_panel_example.py
Normal file
@@ -0,0 +1,139 @@
|
||||
"""Example: Using the Admin Control Panel for FusionAGI management."""
|
||||
|
||||
from fusionagi import Orchestrator, EventBus, StateManager
|
||||
from fusionagi.interfaces.admin_panel import AdminControlPanel
|
||||
from fusionagi.interfaces.voice import VoiceLibrary, VoiceProfile
|
||||
from fusionagi.interfaces.conversation import ConversationTuner, ConversationStyle
|
||||
|
||||
|
||||
def main() -> None:
|
||||
"""Demonstrate admin control panel usage."""
|
||||
|
||||
# Initialize core FusionAGI components
|
||||
bus = EventBus()
|
||||
state = StateManager()
|
||||
orch = Orchestrator(event_bus=bus, state_manager=state)
|
||||
|
||||
# Create admin control panel
|
||||
admin = AdminControlPanel(
|
||||
orchestrator=orch,
|
||||
event_bus=bus,
|
||||
state_manager=state,
|
||||
voice_library=VoiceLibrary(),
|
||||
conversation_tuner=ConversationTuner(),
|
||||
)
|
||||
|
||||
print("=== FusionAGI Admin Control Panel ===\n")
|
||||
|
||||
# ========== Voice Library Management ==========
|
||||
print("1. Adding Voice Profiles...")
|
||||
|
||||
voices = [
|
||||
VoiceProfile(
|
||||
name="Professional Assistant",
|
||||
language="en-US",
|
||||
gender="neutral",
|
||||
style="professional",
|
||||
pitch=1.0,
|
||||
speed=1.0,
|
||||
),
|
||||
VoiceProfile(
|
||||
name="Friendly Guide",
|
||||
language="en-US",
|
||||
gender="female",
|
||||
style="friendly",
|
||||
pitch=1.1,
|
||||
speed=1.05,
|
||||
),
|
||||
VoiceProfile(
|
||||
name="Technical Expert",
|
||||
language="en-US",
|
||||
gender="male",
|
||||
style="technical",
|
||||
pitch=0.9,
|
||||
speed=0.95,
|
||||
),
|
||||
]
|
||||
|
||||
for voice in voices:
|
||||
voice_id = admin.add_voice_profile(voice)
|
||||
print(f" ✓ Added voice: {voice.name} (ID: {voice_id[:8]}...)")
|
||||
|
||||
# Set default voice
|
||||
admin.set_default_voice(voices[0].id)
|
||||
print(f" ✓ Default voice set to: {voices[0].name}\n")
|
||||
|
||||
# List voices
|
||||
all_voices = admin.list_voices()
|
||||
print(f"Total voices in library: {len(all_voices)}\n")
|
||||
|
||||
# ========== Conversation Style Configuration ==========
|
||||
print("2. Configuring Conversation Styles...")
|
||||
|
||||
styles = {
|
||||
"customer_support": ConversationStyle(
|
||||
formality="neutral",
|
||||
verbosity="balanced",
|
||||
empathy_level=0.9,
|
||||
proactivity=0.8,
|
||||
technical_depth=0.4,
|
||||
humor_level=0.3,
|
||||
),
|
||||
"technical_expert": ConversationStyle(
|
||||
formality="formal",
|
||||
verbosity="detailed",
|
||||
empathy_level=0.5,
|
||||
proactivity=0.6,
|
||||
technical_depth=0.9,
|
||||
humor_level=0.1,
|
||||
),
|
||||
"casual_chat": ConversationStyle(
|
||||
formality="casual",
|
||||
verbosity="balanced",
|
||||
empathy_level=0.8,
|
||||
proactivity=0.5,
|
||||
technical_depth=0.3,
|
||||
humor_level=0.7,
|
||||
),
|
||||
}
|
||||
|
||||
for name, style in styles.items():
|
||||
admin.register_conversation_style(name, style)
|
||||
print(f" ✓ Registered style: {name}")
|
||||
|
||||
print()
|
||||
|
||||
# ========== System Monitoring ==========
|
||||
print("3. System Status...")
|
||||
|
||||
status = admin.get_system_status()
|
||||
print(f" Status: {status.status}")
|
||||
print(f" Uptime: {status.uptime_seconds:.1f} seconds")
|
||||
print(f" Active tasks: {status.active_tasks}")
|
||||
print(f" Active agents: {status.active_agents}")
|
||||
print()
|
||||
|
||||
# ========== Configuration Export ==========
|
||||
print("4. Exporting Configuration...")
|
||||
|
||||
config = admin.export_configuration()
|
||||
print(f" ✓ Exported configuration with:")
|
||||
print(f" - {len(config['voices'])} voice profiles")
|
||||
print(f" - {len(config['conversation_styles'])} conversation styles")
|
||||
print(f" - {len(config['agent_configs'])} agent configurations")
|
||||
print()
|
||||
|
||||
# ========== Task Statistics ==========
|
||||
print("5. Task Statistics...")
|
||||
|
||||
stats = admin.get_task_statistics()
|
||||
print(f" Total tasks: {stats['total_tasks']}")
|
||||
print(f" By state: {stats['by_state']}")
|
||||
print(f" By priority: {stats['by_priority']}")
|
||||
print()
|
||||
|
||||
print("=== Admin Panel Demo Complete ===")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user