Added enhanced linguistic analyzer and persona quality improver
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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"""
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user