Personality Manager API Reference
The Personality Manager is a core component of FlavumHive that handles AI personality states, behaviors, and interactions across different platforms.
Class Definition
class PersonalityManager:
"""
Manages AI personalities and their interactions.
Attributes:
personalities (Dict[str, Personality]): Active personality instances
active_personality (str): Currently active personality name
openai_client (OpenAIClient): OpenAI API client instance
"""
def __init__(self):
self.personalities = {}
self.active_personality = None
self.openai_client = None
Core Methods
Initialize Personality
async def initialize_personality(
self,
name: str,
config: Dict[str, Any]
) -> bool:
"""
Initialize a new personality instance.
Args:
name: Personality identifier
config: Personality configuration
Returns:
bool: Success status
"""
Switch Active Personality
async def switch_personality(
self,
name: str
) -> bool:
"""
Switch to a different personality.
Args:
name: Target personality name
Returns:
bool: Success status
"""
Generate Response
async def generate_response(
self,
context: Dict[str, Any],
platform: str
) -> str:
"""
Generate a platform-specific response.
Args:
context: Interaction context
platform: Target platform
Returns:
str: Generated response
"""
State Management
Save Personality State
async def save_personality_state(
self,
name: str
) -> bool:
"""
Save current personality state.
Args:
name: Personality name
Returns:
bool: Success status
"""
Load Personality State
async def load_personality_state(
self,
name: str
) -> bool:
"""
Load saved personality state.
Args:
name: Personality name
Returns:
bool: Success status
"""
OpenAI Integration
Configure OpenAI
def configure_openai(
self,
api_key: str,
model: str = "gpt-4"
) -> None:
"""
Configure OpenAI integration.
Args:
api_key: OpenAI API key
model: Model identifier
"""
Generate Content
async def generate_content(
self,
prompt: str,
context: Dict[str, Any]
) -> str:
"""
Generate content using OpenAI.
Args:
prompt: Input prompt
context: Generation context
Returns:
str: Generated content
"""
Error Handling
class PersonalityError(Exception):
"""Base class for personality-related errors."""
pass
class StateError(PersonalityError):
"""State management errors."""
pass
class GenerationError(PersonalityError):
"""Content generation errors."""
pass
Usage Example
# Initialize manager
manager = PersonalityManager()
await manager.configure_openai(api_key="your-key")
# Load personality
config = {
"name": "crypto_expert",
"traits": {...},
"platforms": {...}
}
await manager.initialize_personality("crypto_expert", config)
# Generate response
response = await manager.generate_response(
context={"query": "What's your view on DeFi?"},
platform="twitter"
)
Best Practices
-
State Management
- Regularly save personality states
- Handle state conflicts
- Implement recovery mechanisms
-
Content Generation
- Use appropriate temperature settings
- Implement retry logic
- Validate outputs
-
Platform Integration
- Respect platform limits
- Handle rate limiting
- Format content appropriately