diff --git a/backend/api/facebook_writer/services/post_service.py b/backend/api/facebook_writer/services/post_service.py
index 4a86aef2..949c902e 100644
--- a/backend/api/facebook_writer/services/post_service.py
+++ b/backend/api/facebook_writer/services/post_service.py
@@ -24,7 +24,8 @@ class FacebookPostService(FacebookWriterBaseService):
actual_tone = request.custom_tone if request.post_tone.value == "Custom" else request.post_tone.value
# 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)
# Build the prompt
diff --git a/backend/api/facebook_writer/services/remaining_services.py b/backend/api/facebook_writer/services/remaining_services.py
index 48e39965..601d470b 100644
--- a/backend/api/facebook_writer/services/remaining_services.py
+++ b/backend/api/facebook_writer/services/remaining_services.py
@@ -16,7 +16,8 @@ class FacebookReelService(FacebookWriterBaseService):
actual_style = request.custom_style if request.reel_style.value == "Custom" else request.reel_style.value
# 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)
base_prompt = f"""
diff --git a/backend/api/facebook_writer/services/story_service.py b/backend/api/facebook_writer/services/story_service.py
index 2f1748ab..2cee86ed 100644
--- a/backend/api/facebook_writer/services/story_service.py
+++ b/backend/api/facebook_writer/services/story_service.py
@@ -30,7 +30,8 @@ class FacebookStoryService(FacebookWriterBaseService):
actual_tone = request.custom_tone if request.story_tone.value == "Custom" else request.story_tone.value
# 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)
# Build the prompt
diff --git a/backend/api/persona_routes.py b/backend/api/persona_routes.py
index 38b7f7f6..18451df2 100644
--- a/backend/api/persona_routes.py
+++ b/backend/api/persona_routes.py
@@ -48,7 +48,8 @@ async def generate_persona_endpoint(
@router.get("/user/{user_id}")
async def get_user_personas_endpoint(user_id: int):
"""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}")
async def get_persona_details_endpoint(
@@ -56,7 +57,8 @@ async def get_persona_details_endpoint(
user_id: int = Query(..., description="User ID")
):
"""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}")
async def get_platform_persona_endpoint(
@@ -64,7 +66,8 @@ async def get_platform_persona_endpoint(
user_id: int = Query(1, description="User ID")
):
"""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}")
async def update_persona_endpoint(
@@ -73,7 +76,8 @@ async def update_persona_endpoint(
user_id: int = Query(..., description="User ID")
):
"""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}")
async def delete_persona_endpoint(
@@ -81,21 +85,24 @@ async def delete_persona_endpoint(
user_id: int = Query(..., description="User ID")
):
"""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")
async def check_persona_readiness_endpoint(
user_id: int = Query(1, description="User ID")
):
"""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")
async def generate_preview_endpoint(
user_id: int = Query(1, description="User ID")
):
"""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")
async def get_supported_platforms_endpoint():
@@ -136,7 +143,8 @@ async def generate_content_with_persona_endpoint(
):
"""Generate content using persona replication engine."""
try:
- user_id = request.get("user_id", 1)
+ # Beta testing: Force user_id=1 for all requests
+ user_id = 1
platform = request.get("platform")
content_request = request.get("content_request")
content_type = request.get("content_type", "post")
@@ -165,7 +173,8 @@ async def export_persona_prompt_endpoint(
"""Export hardened persona prompt for external use."""
try:
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:
raise HTTPException(status_code=400, detail=export_package["error"])
@@ -181,7 +190,8 @@ async def validate_content_endpoint(
):
"""Validate content against persona constraints."""
try:
- user_id = request.get("user_id", 1)
+ # Beta testing: Force user_id=1 for all requests
+ user_id = 1
platform = request.get("platform")
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.
"""
- return await update_platform_persona(user_id, platform, update_data)
\ No newline at end of file
+ # Beta testing: Force user_id=1 for all requests
+ return await update_platform_persona(1, platform, update_data)
\ No newline at end of file
diff --git a/backend/research_analysis_20250911_173832.json b/backend/research_analysis_20250911_173832.json
deleted file mode 100644
index 102f6169..00000000
--- a/backend/research_analysis_20250911_173832.json
+++ /dev/null
@@ -1,84 +0,0 @@
-{
- "success": true,
- "sources": [
- {
- "title": "Search: AI content generation trends 2024 2025 technology industry",
- "url": "https://www.google.com/search?q=AI+content+generation+trends+2024+2025+technology+industry",
- "excerpt": "Source from Search: AI content generation trends 2024 2025 technology industry",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "Search: AI content generation market statistics 2024 2025",
- "url": "https://www.google.com/search?q=AI+content+generation+market+statistics+2024+2025",
- "excerpt": "Source from Search: AI content generation market statistics 2024 2025",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "Search: AI content generation expert opinions 2024 2025",
- "url": "https://www.google.com/search?q=AI+content+generation+expert+opinions+2024+2025",
- "excerpt": "Source from Search: AI content generation expert opinions 2024 2025",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "Search: recent developments AI content generation 2024 2025",
- "url": "https://www.google.com/search?q=recent+developments+AI+content+generation+2024+2025",
- "excerpt": "Source from Search: recent developments AI content generation 2024 2025",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "Search: AI content generation market analysis forecast 2024 2025",
- "url": "https://www.google.com/search?q=AI+content+generation+market+analysis+forecast+2024+2025",
- "excerpt": "Source from Search: AI content generation market analysis forecast 2024 2025",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- }
- ],
- "keyword_analysis": {
- "primary": [
- "AI content generation"
- ],
- "secondary": [
- "blog writing"
- ],
- "long_tail": [
- "AI content generation guide",
- "blog writing guide"
- ],
- "search_intent": "informational",
- "difficulty": 6,
- "content_gaps": [
- "AI content generation best practices",
- "blog writing best practices"
- ],
- "analysis_content": "## The AI Content Generation Revolution: Navigating 2024-2025 Trends for Strategic Advantage\n\nThe landscape of content creation is undergoing a seismic shift, powered by the rapid advancements in Arti"
- },
- "competitor_analysis": {
- "top_competitors": [],
- "content_gaps": [],
- "opportunities": [],
- "analysis_notes": "Competitor analysis from research"
- },
- "suggested_angles": [
- "How ALwrity content generation is Transforming Technology",
- "Latest ALwrity content generation Trends: What You Need to Know",
- "ALwrity content generation Best Practices for Technology",
- "Case Study: ALwrity content generation Success Stories",
- "The Future of ALwrity content generation in Technology"
- ],
- "search_widget": "\n
\n
\n
\n \n \n \n \n \n
\n \n \n \n \n \n \n
\n
\n
\n
\n",
- "search_queries": [
- "AI content generation trends 2024 2025 technology industry",
- "AI content generation market statistics 2024 2025",
- "AI content generation expert opinions 2024 2025",
- "recent developments AI content generation 2024 2025",
- "AI content generation market analysis forecast 2024 2025",
- "best practices AI content generation case studies 2024 2025",
- "keywords for AI content generation technology",
- "top AI content generation competitors market share 2024",
- "AI content generation content gaps"
- ]
-}
\ No newline at end of file
diff --git a/backend/research_analysis_20250911_174238.json b/backend/research_analysis_20250911_174238.json
deleted file mode 100644
index 8379d320..00000000
--- a/backend/research_analysis_20250911_174238.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
- "success": true,
- "sources": [
- {
- "title": "alwrity.com",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQEbkhlVuzpjaGypNYMsWxvHBbX3AmqYaaOrbGeSKtT03vLSAx9LQlACNs0ulmX0oFvX610EvDErz6lWd9TTh7pSvrbWM-L6WaKh8HiAEucGVHXbKQ==",
- "excerpt": "Source from alwrity.com",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "alwrity.com",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQHI_UttMuqLpNEDZnP22X5mhTqjrqObIjM66Ks8UoMHPN_SlF5XenKZlUiOPGQRuYPoNDqRctDEeheEZOZMm3SqM5OkrActXWVNXaqsdk4WwPcI4Jhep8vo1cm27c4=",
- "excerpt": "Source from alwrity.com",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "youtube.com",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQGkWsMQ3Tjq8DewK8EikdNign9gcrLv11xR30xrMx-vq1sSfdmGk5w8s6vuDtIL4-YxqSyDcpb4ifwmwF9lq9tsKF_fd0Zenzd19PHrQ0-65vgeEO5CV6oGdO1TN7eZ0SCkLHsmFZ8=",
- "excerpt": "Source from youtube.com",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "youtube.com",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQEBvGGtIXARTEe4XR1DH-6yFwzEC8HkG7GXEz6OpKTwznIJPC3V2VWbU5BqZpEzdt5U82qbuAdo4iZ006PzcanX-OQWA8EVy0R5-Yz43snYK-kt9JfvniBxLGDHXdz70J4creDZoSY=",
- "excerpt": "Source from youtube.com",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "beyondkey.com",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQGRwVUwjgBma_K_ceWgs1ha6f5zat1idtf7AAXTnGW94yvWxNSSCA4615crchD8y4aSxXbVcyxj-mxDQP685ZvKevkDxPUTKdlTYvRWkT5Ewbc5vMo17qqvcw2MPF3SEvLjODMUT7hzUFJXb5gIehVh1Pq0g1MFz_3uW8jxdcHMend_PjiR6VE=",
- "excerpt": "Source from beyondkey.com",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "medium.com",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQG3nG07PWqQhD9bLlXOBM9fBHVxgkZM_DEnKsUeHl-te61BWZcKL0fQbe8_oZUZWRFggLi4CgZxO__3Sfw5mfaYHDU6394PWEQ7qTa0UUwaTuKnLWBA2RX4A5LjGY0LglG01higs7_fetcOWwPTSvg-Y06d8pSZWUHHuiunoklPoQuR1tAQKvhKDvZbmJMIHPMkoLyovsag6rjmN_Chn0hqPf4=",
- "excerpt": "Source from medium.com",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "quickcreator.io",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQHedj-KoY0QaU_0xyYVSyIb6NJWQjYPx5OpFxdRefde4fxALVZZ_uCcDyODW8UOeCTEJl_ynXnE5yKlFd_6jgHND9koGUnCPfwLDeZ-XzVjHlgY5V2GnmH6B8bH-lvdzVYUBZlvI0iDtq5hoNxqfz10jLh834ZrIc6NjTtG7kXLR7ddMg7FjEQ57Cu49Ug=",
- "excerpt": "Source from quickcreator.io",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "eimt.edu.eu",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQFEyrobre2Q5LbCgLAYSxH1C8BCNy3Ln4iOIQ6_NGAD63_lp6EqMYourvzgiSOXtane5aLyRCzc0erIbMe0TIsO406sZ7jULZ8AbkaD93TTn34wRbNuUGOg9sCf9PcTAJSWMfX05cle8BfK6mhQU2t9EslhcSTEZBRTTGgPu_NmfMUVjZJ_9_6fT4qLUZtAuqpe",
- "excerpt": "Source from eimt.edu.eu",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "youtube.com",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQEgK2_pZbhzW_wihG2wmD383PgA3awfJLNUBdMoevHvDou8oDoI24xQeKAaJsDpHJ-LxtRIdhOlg6RZCwLSRsjKQlL3_mFddH30OLZU-_IXAZ8sLmMCGgM8J7isNuhWQZTNrkoT2x0=",
- "excerpt": "Source from youtube.com",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "synthesia.io",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQHMYC4-O4vRXhpwIZZ49Y7sJVJQ9pSJ6rDEN_dayRuoct0Q2ECmVH26wsyqdQAYiLPZLkQTlIgGZBIocrhqkZDj97UmGF66dGzvSGFUJXvOA127mFWYKXJ8TUYIr8Tjn9HQ",
- "excerpt": "Source from synthesia.io",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "tryleap.ai",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQGZKtSSrxOYpXnBKsFhUoAtpw01oVKooJkUIpyVYqEguhSDWcX7svylTkuFy_8RrxKmvKBkNJjRn6KE6OMCTHV4AOET0fUaPJhxfwcnyvY1BB8GHQeDa_B-VfchBp_qeAdeS2m-_IQuLOUI-jV7wFpaA9Gg3-rcK_uqwtmrprxZCztkyJM=",
- "excerpt": "Source from tryleap.ai",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "hulkapps.com",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQGcKDCewhOKAICoIWfiwqPDerQO3P6Ipm6vsTz-ujH7G-Vg9eo3LgACMbsTxk9IUCg7-fn_bV_QKah9N8VW0YEXBfyWZRqdTMbBbg07fswpACpIn1znpRmiJU3o_G3w99AgLNBtenIzIPpTnBj2ascMGNgEmrgDDznNFaX4LP5E0F6ToIWt3A3SrwJWpJwKyfyJ",
- "excerpt": "Source from hulkapps.com",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "marketful.com",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQGFSpjwPUVCdlTrnxsqCp-O7T2-kUk4_hZrVYYZDrfFxvDLp5knmTd8PSTcoDybNfq8Iiod5DLhYaFIrL5G8yl2oU3UCl4KNqkRb95U6alKy2LumA1iHzYE4xtXDlvPdoP31pWPt5Pi2P_1aMTt921v_0oE1s4=",
- "excerpt": "Source from marketful.com",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "ics-digital.com",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQHf0mDC8n9_pdUthEbF2f_FbRkiwcyc0I4GcRqa1dnbRzSU50Y9LiSWmWDpOM3-GYNmB3YmNZT7p0QBxbtKuju0ol7jA58RYphVUHtmJXwhea4lEwkKCAf8ONvIHtcGqpY4QdbsixE4rV2en6d9qoPER7i1QkPyknYsPw0QSJI=",
- "excerpt": "Source from ics-digital.com",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "frase.io",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQG7h5MlbO5qp0jD2NFIyH1HUQff6CMreopPd0MExSZ00saW_ikR9QJTABCBmdR8CSdkAphaMJYOJG9i3qQQyoOlg_Seh_9JF8zQqdPj",
- "excerpt": "Source from frase.io",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "thebusinessresearchcompany.com",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQEEvY4sZPVx7eA9v_j8qaQ_Tj7ljjwZ0hIdrxERYykbSkTId97TlSY74VYyu9IlOmcRtXpwNSgp6Q35BUKB3gvb6o0o6-PNfoYoEPHx6N6sXZs6lrtvqqpcTLqc7sOskZ-jxmZ_IEKX_VeIRxp41XBTY603RDiU-1CqrNUUkjwbxNorilqmV-3Oa0bbi5TvqoSNS98GHQrV0VUN9d21jMLPSpj9xRcB",
- "excerpt": "Source from thebusinessresearchcompany.com",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "grandviewresearch.com",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQE-1--CbRoZLTs6PrEs7_b5Q4D2eJViu2pZrVlDTS8QfRf1DSDepwb2KO0ozfq04iLJRHXeBjLnu8tV6bOD9mXTv8paG_3Irgow9cpOw5jsPrvvqXmAJA-IvebcDdISuIUk7rZsfn95_BpnMsm4cWR4HTlYwTLWfGR5zUOtuupKG0Od2E5HpnYIH3TmlZ45y2fvvhw0wk8qjA==",
- "excerpt": "Source from grandviewresearch.com",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "verifiedmarketresearch.com",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQEAPa_eY2-XR46ROJMDfq4b4YbZivGtdu2F0z2I3tHk10ZRr_j4HIPFZkmwFuvFm4iSBh7efJBbsvvp8TjelRmgskKKZSJw52f4oNsp4b-ewlmv5daOrwcH-to89YjZVvzpj-fs_hvCoKIDnmSQubcS62jqs_EVbWAomX-8cr7_gfg=",
- "excerpt": "Source from verifiedmarketresearch.com",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "siegemedia.com",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQHkqpyuKPcPnTPdEI0qp6aR_gS7FOAgmJMjST58kZQtmApd9g1eynllR3vtkjVg1Y4IjLifjICqueLx-32ugvMPISwXlqq8D8LgC5j_YLvvyTAaq9drZM56OpgaRscGt4cuD-YoEhMs53xX18h798fs7gbc3g==",
- "excerpt": "Source from siegemedia.com",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "synthesia.io",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQEtHmkgnrc-O2jG90jSY2OL_SvNN2ToZFl2CYmA7eSpPuDGvMWDpbg6NuTsAB8fFBwP4eRcRvqtoP74lJINPvxHw6uARdRuGIZmlBcldYRYiBvWLOz4oMcRzfIDNXSzzQUM57cmQwc=",
- "excerpt": "Source from synthesia.io",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "makebot.ai",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQGNko08ftgaMVm9H1Jh-4vsgHjfFRriAeloVI_KWg2Ee-1MIs1N6o7X3MC0n98C4YgVzeXWM8W_3R-pFze-6R6uJsu1tdZms_1MI3NPGi4oKdSVRULy2vaY_SQVOiEDyqM3JSkJ3z1QZos-lUEeuG46iLr43KX3bJHRR5dzTh7eNFDv43DjEupuGR2KYX60j7ui929PXdP-e92yNcQuOu18740to6Gto2FdPT0=",
- "excerpt": "Source from makebot.ai",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- },
- {
- "title": "medium.com",
- "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQE2oEe411ttOlvnVvTUNZI60cD5iLva5mD7SDy0q1bGMM-DTyxXsNeAnegRIGY--svZZXEoqZrWnnA0K-j9T7KKZgZcqSodRYS8I5Qx_xKyuZ6OwJhKMUo4PFPhbvcid2mq1m9oS65rgHVM8iNFUBOtxyvYYOQGGf0tOsYGYevF68eQ5PaGJ-6iEbA=",
- "excerpt": "Source from medium.com",
- "credibility_score": 0.8,
- "published_at": "2024-01-01"
- }
- ],
- "keyword_analysis": {
- "primary": [
- "AI content generation"
- ],
- "secondary": [
- "blog writing"
- ],
- "long_tail": [
- "AI content generation guide",
- "blog writing guide"
- ],
- "search_intent": "informational",
- "difficulty": 6,
- "content_gaps": [
- "AI content generation best practices",
- "blog writing best practices"
- ],
- "analysis_content": "## The Future of Content Creation: A Deep Dive into ALwrity and AI-Powered Content Generation (2024-2025)\n\nThe landscape of content creation is undergoing a profound transformation, largely driven by "
- },
- "competitor_analysis": {
- "top_competitors": [],
- "content_gaps": [],
- "opportunities": [],
- "analysis_notes": "Competitor analysis from research"
- },
- "suggested_angles": [
- "How ALwrity content generation is Transforming Technology",
- "Latest ALwrity content generation Trends: What You Need to Know",
- "ALwrity content generation Best Practices for Technology",
- "Case Study: ALwrity content generation Success Stories",
- "The Future of ALwrity content generation in Technology"
- ],
- "search_widget": "\n\n
\n
\n \n \n \n \n \n
\n \n \n \n \n \n \n
\n
\n
\n
\n",
- "search_queries": [
- "ALwrity content generation",
- "AI content generation trends 2024 2025",
- "AI content writing market size forecast 2024 2025",
- "expert opinions on AI content creation 2024 2025",
- "recent developments in generative AI for content 2024 2025",
- "best practices for AI-powered content strategy",
- "AI content generation tools comparison 2024",
- "AI content writing software",
- "top AI content generators 2024",
- "keywords for AI content generation",
- "long tail keywords AI content writing",
- "AI content creation case studies 2024"
- ]
-}
\ No newline at end of file
diff --git a/backend/services/linkedin/content_generator.py b/backend/services/linkedin/content_generator.py
index 391fea70..99b95219 100644
--- a/backend/services/linkedin/content_generator.py
+++ b/backend/services/linkedin/content_generator.py
@@ -410,8 +410,9 @@ class ContentGenerator:
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)
- user_id = getattr(request, 'user_id', 1)
- persona_data = self._get_cached_persona_data(user_id, 'linkedin') if hasattr(request, 'user_id') else None
+ # Beta testing: Force user_id=1 for all requests
+ user_id = 1
+ persona_data = self._get_cached_persona_data(user_id, 'linkedin')
if getattr(request, 'persona_override', None):
try:
# 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")
# Build the prompt for grounded generation using persona if available (DB vs session override)
- user_id = getattr(request, 'user_id', 1)
- persona_data = self._get_cached_persona_data(user_id, 'linkedin') if hasattr(request, 'user_id') else None
+ # Beta testing: Force user_id=1 for all requests
+ user_id = 1
+ persona_data = self._get_cached_persona_data(user_id, 'linkedin')
if getattr(request, 'persona_override', None):
try:
override = request.persona_override
diff --git a/backend/test_detailed.py b/backend/test/test_detailed.py
similarity index 100%
rename from backend/test_detailed.py
rename to backend/test/test_detailed.py
diff --git a/backend/test_gemini_direct.py b/backend/test/test_gemini_direct.py
similarity index 100%
rename from backend/test_gemini_direct.py
rename to backend/test/test_gemini_direct.py
diff --git a/backend/test_research.py b/backend/test/test_research.py
similarity index 100%
rename from backend/test_research.py
rename to backend/test/test_research.py
diff --git a/backend/test_research_analysis.py b/backend/test/test_research_analysis.py
similarity index 100%
rename from backend/test_research_analysis.py
rename to backend/test/test_research_analysis.py
diff --git a/backend/test_subscription_system.py b/backend/test/test_subscription_system.py
similarity index 100%
rename from backend/test_subscription_system.py
rename to backend/test/test_subscription_system.py
diff --git a/backend/validate_database.py b/backend/test/validate_database.py
similarity index 100%
rename from backend/validate_database.py
rename to backend/test/validate_database.py
diff --git a/backend/validate_linkedin_structure.py b/backend/test/validate_linkedin_structure.py
similarity index 100%
rename from backend/validate_linkedin_structure.py
rename to backend/test/validate_linkedin_structure.py
diff --git a/backend/verify_billing_setup.py b/backend/test/verify_billing_setup.py
similarity index 100%
rename from backend/verify_billing_setup.py
rename to backend/test/verify_billing_setup.py
diff --git a/backend/verify_subscription_setup.py b/backend/test/verify_subscription_setup.py
similarity index 100%
rename from backend/verify_subscription_setup.py
rename to backend/test/verify_subscription_setup.py