feat: rich character profiles — brand voice, target, rules, hashtag profiles
Backend: - Character model: add brand_voice, target_audience, business_goals, products_services, content_rules (JSON do/dont), hashtag_profiles (JSON) - Content generation: inject full character context into LLM system prompt (voice, audience, goals, products, rules) - Hashtag generation: merge always-on tags from profile with AI-generated tags - Schema: update CharacterBase and CharacterUpdate with new fields Frontend: - CharacterForm: new sections "Identità e Voce", "Regole Contenuti", "Profili Hashtag" with dedicated editors - RulesEditor: do/don't list with add/remove - HashtagProfileEditor: per-platform tabs, fixed hashtags + max generated count - All fields loaded on edit, saved on submit DB migration: 6 new columns added to characters table Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -48,6 +48,13 @@ class Character(Base):
|
||||
niche = Column(String(200), nullable=False)
|
||||
topics = Column(JSON, default=list)
|
||||
tone = Column(Text)
|
||||
# Rich profile fields
|
||||
brand_voice = Column(Text, nullable=True) # how the character communicates (long description)
|
||||
target_audience = Column(Text, nullable=True) # who reads the content
|
||||
business_goals = Column(Text, nullable=True) # why they create content
|
||||
products_services = Column(Text, nullable=True) # what they offer
|
||||
content_rules = Column(JSON, default=dict) # {"do": [...], "dont": [...]}
|
||||
hashtag_profiles = Column(JSON, default=dict) # per-platform hashtag config
|
||||
visual_style = Column(JSON, default=dict)
|
||||
social_accounts = Column(JSON, default=dict)
|
||||
affiliate_links = Column(JSON, default=list)
|
||||
|
||||
Reference in New Issue
Block a user