Added enhanced linguistic analyzer and persona quality improver

This commit is contained in:
ajaysi
2025-09-14 10:21:36 +05:30
parent fe277afc62
commit 380bb19673
16 changed files with 34 additions and 308 deletions

View File

@@ -24,7 +24,8 @@ class FacebookPostService(FacebookWriterBaseService):
actual_tone = request.custom_tone if request.post_tone.value == "Custom" else request.post_tone.value actual_tone = request.custom_tone if request.post_tone.value == "Custom" else request.post_tone.value
# Get persona data for enhanced content generation # Get persona data for enhanced content generation
user_id = getattr(request, 'user_id', 1) # Beta testing: Force user_id=1 for all requests
user_id = 1
persona_data = self._get_persona_data(user_id) persona_data = self._get_persona_data(user_id)
# Build the prompt # Build the prompt

View File

@@ -16,7 +16,8 @@ class FacebookReelService(FacebookWriterBaseService):
actual_style = request.custom_style if request.reel_style.value == "Custom" else request.reel_style.value actual_style = request.custom_style if request.reel_style.value == "Custom" else request.reel_style.value
# Get persona data for enhanced content generation # Get persona data for enhanced content generation
user_id = getattr(request, 'user_id', 1) # Beta testing: Force user_id=1 for all requests
user_id = 1
persona_data = self._get_persona_data(user_id) persona_data = self._get_persona_data(user_id)
base_prompt = f""" base_prompt = f"""

View File

@@ -30,7 +30,8 @@ class FacebookStoryService(FacebookWriterBaseService):
actual_tone = request.custom_tone if request.story_tone.value == "Custom" else request.story_tone.value actual_tone = request.custom_tone if request.story_tone.value == "Custom" else request.story_tone.value
# Get persona data for enhanced content generation # Get persona data for enhanced content generation
user_id = getattr(request, 'user_id', 1) # Beta testing: Force user_id=1 for all requests
user_id = 1
persona_data = self._get_persona_data(user_id) persona_data = self._get_persona_data(user_id)
# Build the prompt # Build the prompt

View File

@@ -48,7 +48,8 @@ async def generate_persona_endpoint(
@router.get("/user/{user_id}") @router.get("/user/{user_id}")
async def get_user_personas_endpoint(user_id: int): async def get_user_personas_endpoint(user_id: int):
"""Get all personas for a user.""" """Get all personas for a user."""
return await get_user_personas(user_id) # Beta testing: Force user_id=1 for all requests
return await get_user_personas(1)
@router.get("/{persona_id}") @router.get("/{persona_id}")
async def get_persona_details_endpoint( async def get_persona_details_endpoint(
@@ -56,7 +57,8 @@ async def get_persona_details_endpoint(
user_id: int = Query(..., description="User ID") user_id: int = Query(..., description="User ID")
): ):
"""Get detailed information about a specific persona.""" """Get detailed information about a specific persona."""
return await get_persona_details(user_id, persona_id) # Beta testing: Force user_id=1 for all requests
return await get_persona_details(1, persona_id)
@router.get("/platform/{platform}") @router.get("/platform/{platform}")
async def get_platform_persona_endpoint( async def get_platform_persona_endpoint(
@@ -64,7 +66,8 @@ async def get_platform_persona_endpoint(
user_id: int = Query(1, description="User ID") user_id: int = Query(1, description="User ID")
): ):
"""Get persona adaptation for a specific platform.""" """Get persona adaptation for a specific platform."""
return await get_platform_persona(user_id, platform) # Beta testing: Force user_id=1 for all requests
return await get_platform_persona(1, platform)
@router.put("/{persona_id}") @router.put("/{persona_id}")
async def update_persona_endpoint( async def update_persona_endpoint(
@@ -73,7 +76,8 @@ async def update_persona_endpoint(
user_id: int = Query(..., description="User ID") user_id: int = Query(..., description="User ID")
): ):
"""Update an existing persona.""" """Update an existing persona."""
return await update_persona(user_id, persona_id, update_data) # Beta testing: Force user_id=1 for all requests
return await update_persona(1, persona_id, update_data)
@router.delete("/{persona_id}") @router.delete("/{persona_id}")
async def delete_persona_endpoint( async def delete_persona_endpoint(
@@ -81,21 +85,24 @@ async def delete_persona_endpoint(
user_id: int = Query(..., description="User ID") user_id: int = Query(..., description="User ID")
): ):
"""Delete a persona.""" """Delete a persona."""
return await delete_persona(user_id, persona_id) # Beta testing: Force user_id=1 for all requests
return await delete_persona(1, persona_id)
@router.get("/check/readiness") @router.get("/check/readiness")
async def check_persona_readiness_endpoint( async def check_persona_readiness_endpoint(
user_id: int = Query(1, description="User ID") user_id: int = Query(1, description="User ID")
): ):
"""Check if user has sufficient data for persona generation.""" """Check if user has sufficient data for persona generation."""
return await validate_persona_generation_readiness(user_id) # Beta testing: Force user_id=1 for all requests
return await validate_persona_generation_readiness(1)
@router.get("/preview/generate") @router.get("/preview/generate")
async def generate_preview_endpoint( async def generate_preview_endpoint(
user_id: int = Query(1, description="User ID") user_id: int = Query(1, description="User ID")
): ):
"""Generate a preview of the writing persona without saving.""" """Generate a preview of the writing persona without saving."""
return await generate_persona_preview(user_id) # Beta testing: Force user_id=1 for all requests
return await generate_persona_preview(1)
@router.get("/platforms/supported") @router.get("/platforms/supported")
async def get_supported_platforms_endpoint(): async def get_supported_platforms_endpoint():
@@ -136,7 +143,8 @@ async def generate_content_with_persona_endpoint(
): ):
"""Generate content using persona replication engine.""" """Generate content using persona replication engine."""
try: try:
user_id = request.get("user_id", 1) # Beta testing: Force user_id=1 for all requests
user_id = 1
platform = request.get("platform") platform = request.get("platform")
content_request = request.get("content_request") content_request = request.get("content_request")
content_type = request.get("content_type", "post") content_type = request.get("content_type", "post")
@@ -165,7 +173,8 @@ async def export_persona_prompt_endpoint(
"""Export hardened persona prompt for external use.""" """Export hardened persona prompt for external use."""
try: try:
engine = PersonaReplicationEngine() engine = PersonaReplicationEngine()
export_package = engine.export_persona_for_external_use(user_id, platform) # Beta testing: Force user_id=1 for all requests
export_package = engine.export_persona_for_external_use(1, platform)
if "error" in export_package: if "error" in export_package:
raise HTTPException(status_code=400, detail=export_package["error"]) raise HTTPException(status_code=400, detail=export_package["error"])
@@ -181,7 +190,8 @@ async def validate_content_endpoint(
): ):
"""Validate content against persona constraints.""" """Validate content against persona constraints."""
try: try:
user_id = request.get("user_id", 1) # Beta testing: Force user_id=1 for all requests
user_id = 1
platform = request.get("platform") platform = request.get("platform")
content = request.get("content") content = request.get("content")
@@ -217,4 +227,5 @@ async def update_platform_persona_endpoint(
Allows editing persona fields in the UI and saving them to the database. Allows editing persona fields in the UI and saving them to the database.
""" """
return await update_platform_persona(user_id, platform, update_data) # Beta testing: Force user_id=1 for all requests
return await update_platform_persona(1, platform, update_data)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -410,8 +410,9 @@ class ContentGenerator:
raise Exception("Gemini Grounded Provider not available - cannot generate content without AI provider") raise Exception("Gemini Grounded Provider not available - cannot generate content without AI provider")
# Build the prompt for grounded generation using persona if available (DB vs session override) # Build the prompt for grounded generation using persona if available (DB vs session override)
user_id = getattr(request, 'user_id', 1) # Beta testing: Force user_id=1 for all requests
persona_data = self._get_cached_persona_data(user_id, 'linkedin') if hasattr(request, 'user_id') else None user_id = 1
persona_data = self._get_cached_persona_data(user_id, 'linkedin')
if getattr(request, 'persona_override', None): if getattr(request, 'persona_override', None):
try: try:
# Merge shallowly: override core and platform adaptation parts # Merge shallowly: override core and platform adaptation parts
@@ -484,8 +485,9 @@ class ContentGenerator:
raise Exception("Gemini Grounded Provider not available - cannot generate content without AI provider") raise Exception("Gemini Grounded Provider not available - cannot generate content without AI provider")
# Build the prompt for grounded generation using persona if available (DB vs session override) # Build the prompt for grounded generation using persona if available (DB vs session override)
user_id = getattr(request, 'user_id', 1) # Beta testing: Force user_id=1 for all requests
persona_data = self._get_cached_persona_data(user_id, 'linkedin') if hasattr(request, 'user_id') else None user_id = 1
persona_data = self._get_cached_persona_data(user_id, 'linkedin')
if getattr(request, 'persona_override', None): if getattr(request, 'persona_override', None):
try: try:
override = request.persona_override override = request.persona_override