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 top AI content generation competitors market share 2024\n best practices AI content generation case studies 2024 2025\n AI content generation expert opinions 2024 2025\n AI content generation trends 2024 2025 technology industry\n AI content generation market statistics 2024 2025\n AI content generation market analysis forecast 2024 2025\n keywords for AI content generation technology\n recent developments AI content generation 2024 2025\n AI content generation content gaps\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 expert opinions on AI content creation 2024 2025\n AI content writing market size forecast 2024 2025\n ALwrity content generation\n AI content generation trends 2024 2025\n best practices for AI-powered content strategy\n AI content generation tools comparison 2024\n recent developments in generative AI for content 2024 2025\n top AI content generators 2024\n keywords for AI content generation\n long tail keywords AI content writing\n AI content creation case studies 2024\n AI content writing software\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