Config for URLS prod

This commit is contained in:
2026-05-03 13:56:23 -04:00
parent 9ea5b872fc
commit da51720e2c
7 changed files with 129 additions and 30 deletions
+51 -6
View File
@@ -1,11 +1,56 @@
from app.utils.logger import logger
class GenerativesList: class GenerativesList:
@staticmethod @staticmethod
def get_generative_list(): def get_generative_list(product_id: str):
logger.info(f"get_generative_list ****** *****: {product_id}")
data = [ data = [
{"name": 'site_title', "prompt": 'Write about a 30-character title text for a REPLACE_THIS with specialization in REPLACE_ANOTHER website.', "active": True}, {"name": 'site_title',
{"name": 'site_description', "prompt": 'Write a short introduction text about 100 characters for a REPLACE_THIS with specialization in REPLACE_ANOTHER website.', "active": True}, "prompt": 'Write about a 30-character title text for a REPLACE_THIS with specialization in REPLACE_ANOTHER website.',
{"name": 'about_title', "prompt": 'Write about a 30-character about page title text for a REPLACE_THIS with specialization in REPLACE_ANOTHER website.', "active": True}, "active": True},
{"name": 'about_description', "prompt": 'Write three paragraphs about a REPLACE_THIS with specialization in REPLACE_ANOTHER website.', "active": True}, {"name": 'site_description',
] "prompt": 'Write a short introduction text about 100 characters for a REPLACE_THIS with specialization in REPLACE_ANOTHER website.',
"active": True},
{"name": 'about_title',
"prompt": 'Write about a 30-character about page title text for a REPLACE_THIS with specialization in REPLACE_ANOTHER website.',
"active": True},
{"name": 'about_description',
"prompt": 'Write three paragraphs about a REPLACE_THIS with specialization in REPLACE_ANOTHER website.',
"active": True},
]
if product_id =='A000001':
data = [
{"name": 'site_title',
"prompt": 'Write about a 30-character title text for a Personal Website for REPLACE_THIS with specialization in REPLACE_ANOTHER website.',
"active": True},
{"name": 'site_description',
"prompt": 'Write a short introduction text about 100 characters for a Personal Website for REPLACE_THIS with specialization in REPLACE_ANOTHER website.',
"active": True},
{"name": 'about_title',
"prompt": 'Write about a 30-character about page title text for a Personal Website for REPLACE_THIS with specialization in REPLACE_ANOTHER website.',
"active": True},
{"name": 'about_description',
"prompt": 'Write three paragraphs about a REPLACE_THIS for a Personal Website with specialization in REPLACE_ANOTHER website.',
"active": True},
]
if product_id =='A000002':
data = [
{"name": 'site_title',
"prompt": 'Write about a 30-character title text for a Business Website for REPLACE_THIS with specialization in REPLACE_ANOTHER website.',
"active": True},
{"name": 'site_description',
"prompt": 'Write a short introduction text about 100 characters for a Business Website for REPLACE_THIS with specialization in REPLACE_ANOTHER website.',
"active": True},
{"name": 'about_title',
"prompt": 'Write about a 30-character about page title text for a Business Website for REPLACE_THIS with specialization in REPLACE_ANOTHER website.',
"active": True},
{"name": 'about_description',
"prompt": 'Write three paragraphs about a REPLACE_THIS for a Business Website with specialization in REPLACE_ANOTHER website.',
"active": True},
]
return data return data
# Personal Website - A000001
# Business Website - A000002
+1
View File
@@ -496,6 +496,7 @@ def myproduct_subscription():
data = request.get_json() data = request.get_json()
# logger.info(f"Route MyProduct Data ==>>>> {data}") # logger.info(f"Route MyProduct Data ==>>>> {data}")
response = MyProductsService.process_subscription(data) response = MyProductsService.process_subscription(data)
GenerativesService.process_generatives_list(response) #INITIATE GENERATIVES
return response return response
+65 -19
View File
@@ -4,14 +4,18 @@ from app.utils.logger import logger
from app.api.services.base_service import BaseService from app.api.services.base_service import BaseService
from marshmallow import ValidationError from marshmallow import ValidationError
from app.extensions import db from app.extensions import db
from app.models import SubscriptionGenerative, GenerativeResults from app.models import SubscriptionGenerative, GenerativeResults, MembersProductsSettings
from app.api.enums import GenerativesList from app.api.enums import GenerativesList
class GenerativesService(BaseService): class GenerativesService(BaseService):
@staticmethod @staticmethod
def process_generatives_list(data): def process_generatives_list(current_subscription):
# catch - current_subscription process only for performance
logger.info("SELECT GENERATIVE") logger.info("SELECT GENERATIVE")
planed_generate_list = SubscriptionGenerative.get_subscription_generative_list_by_status(0) planed_generate_list = SubscriptionGenerative.get_subscription_generative_list_by_status(0)
@@ -24,39 +28,72 @@ class GenerativesService(BaseService):
product_id = t.product_id product_id = t.product_id
member_id = t.member_id member_id = t.member_id
status = t.status status = t.status
# logger.info(f"GenerativesService ****** *****: {member_id} {practice_type} {product_id} {subscription_uid}") SubscriptionGenerative.update_subscription_generative_status(subscription_uid,
SubscriptionGenerative.update_subscription_generative_status(subscription_uid,status+1) # move the status up status + 1) # move the status up
GenerativesService.process_generatives_action(member_id, practice_type,specialization,subscription_uid,product_id) GenerativesService.process_generatives_action(member_id, practice_type,specialization,subscription_uid,product_id)
GenerativesService.process_generatives_results_for_subscription(subscription_uid, product_id, member_id)
@staticmethod @staticmethod
def process_generatives_action(member_id, practice_type,specialization,subscription_uid,product_id): def process_generatives_results_for_subscription(subscription_uid, product_id, member_id):
logger.info("PROCESS GENERATIVE")
try:
subscription_result = GenerativeResults.get_subscription_generative_by_subscription_uid(subscription_uid)
if subscription_result:
# with db.session.begin():
for sub in subscription_result:
var_name = sub.var_name
text_result = sub.text_result
if var_name == 'about_description':
paragraphs = text_result.split("\n\n")
MembersProductsSettings.save_update_product_settings(member_id, subscription_uid,
product_id,
"about_details",
'TXT', str(paragraphs[0]))
MembersProductsSettings.save_update_product_settings(member_id, subscription_uid,
product_id,
"extra_about_us",
'TXT', str(paragraphs[1]))
MembersProductsSettings.save_update_product_settings(member_id, subscription_uid,
product_id,
"more_about_us",
'TXT', str(paragraphs[2]))
else:
MembersProductsSettings.save_update_product_settings(member_id, subscription_uid,
product_id,
var_name,
'TXT', text_result)
else:
logger.info(f"None on -> PROCESS GENERATIVE for {subscription_uid}")
except Exception as e:
logger.error(f"An error process_generatives_results_for_subscription: {str(e)}", exc_info=True)
@staticmethod
def process_generatives_action(member_id, practice_type, specialization, subscription_uid, product_id):
try: try:
logger.info("ENTER GENERATIVE") logger.info("ENTER GENERATIVE")
generate_list = GenerativesList.get_generative_list() generate_list = GenerativesList.get_generative_list(product_id)
GenerativeResults.create_generative_result(71, 'A000001', 'about_title',
'35e2d3ba-b5a6-4c1b-b962-05661d55b6f4',
'Expert Neurologist: Brain & Nerve Care')
# with db.session.begin():
for t in generate_list: for t in generate_list:
prompt_string = str(t["prompt"]).replace("REPLACE_THIS", practice_type).replace("REPLACE_ANOTHER", prompt_string = str(t["prompt"]).replace("REPLACE_THIS", practice_type).replace("REPLACE_ANOTHER",
specialization) specialization)
var_name = t["name"] var_name = t["name"]
logger.info(f"GenerativesService ****** *****: {t['name']} {prompt_string}") logger.info(f"GenerativesService ****** *****: {t['name']} {prompt_string}")
json_response = None # json_response = None
# json_response = GenerativeEngineIntegration.ask_generative(prompt_string) json_response = GenerativeEngineIntegration.ask_generative(prompt_string)
# INFO - INSERT *****:71 A000001 about_title 35e2d3ba-b5a6-4c1b-b962-05661d55b6f4 Expert Neurologist: Brain & Nerve Care
GenerativeResults.create_generative_result(71, 'A000001', 'about_title',
'35e2d3ba-b5a6-4c1b-b962-05661d55b6f4',
'Expert Neurologist: Brain & Nerve Care')
if json_response is not None: if json_response is not None:
logger.info(json_response) logger.info(json_response)
# logger.info(json_response["output"]) logger.info("1============================")
# logger.info(json_response["output"][0]) logger.info(json_response["output"])
logger.info("2============================")
logger.info(json_response["output"][0])
logger.info("3============================")
# logger.info(json_response["output"][0]["content"][0]["text"]) # logger.info(json_response["output"][0]["content"][0]["text"])
text_result = json_response["output"][0]["content"][0]["text"] text_result = json_response["output"][0]["content"][0]["text"]
logger.info("4============================")
logger.info( logger.info(
f"INSERT *****:{member_id} {product_id} {var_name} {subscription_uid} {text_result}") f"INSERT *****:{member_id} {product_id} {var_name} {subscription_uid} {text_result}")
GenerativeResults.create_generative_result(member_id, product_id, var_name, subscription_uid, GenerativeResults.create_generative_result(member_id, product_id, var_name, subscription_uid,
@@ -78,5 +115,14 @@ class GenerativesService(BaseService):
db.session.rollback() db.session.rollback()
# return ResponseHelper.internal_server_error() # return ResponseHelper.internal_server_error()
# GenerativeResults.create_generative_result(71, 'A000001', 'about_title',
# '35e2d3ba-b5a6-4c1b-b962-05661d55b6f4',
# 'Expert Neurologist: Brain & Nerve Care')
# with db.session.begin():
# INFO - INSERT *****:71 A000001 about_title 35e2d3ba-b5a6-4c1b-b962-05661d55b6f4 Expert Neurologist: Brain & Nerve Care
# GenerativeResults.create_generative_result(71, 'A000001', 'about_title',
# '35e2d3ba-b5a6-4c1b-b962-05661d55b6f4',
# 'Expert Neurologist: Brain & Nerve Care')
+4
View File
@@ -7,6 +7,7 @@ from app.api.schemas.myproduct_external_url import MyProductExternalUrlSchema
from app.api.schemas.myproduct_set_colorstyle import MyProductSetColorStyleSchema from app.api.schemas.myproduct_set_colorstyle import MyProductSetColorStyleSchema
from app.api.schemas.myproduct_set_template import MyProductSetTemplateSchema from app.api.schemas.myproduct_set_template import MyProductSetTemplateSchema
from app.api.schemas.myproduct_template_image import MyProductTemplateImageSchema from app.api.schemas.myproduct_template_image import MyProductTemplateImageSchema
# from app.api.services import GenerativesService
from app.utils.logger import logger from app.utils.logger import logger
from app.api.services.base_service import BaseService from app.api.services.base_service import BaseService
from marshmallow import ValidationError from marshmallow import ValidationError
@@ -365,6 +366,9 @@ class MyProductsService(BaseService):
SubscriptionGenerative.create_subscription_generative(member_id, practice, specialization, SubscriptionGenerative.create_subscription_generative(member_id, practice, specialization,
product_id, subscription_uid) product_id, subscription_uid)
# thread AI Here
# GenerativesService.process_generatives_list(subscription)
response_data = { response_data = {
"subscription_uid": subscription.uid, "subscription_uid": subscription.uid,
"subscription_id": subscription.id, "subscription_id": subscription.id,
+2 -2
View File
@@ -33,7 +33,7 @@ class GenerativeResults(db.Model):
@classmethod @classmethod
def get_subscription_generative_by_subscription_uid(cls, subscription_uid): def get_subscription_generative_by_subscription_uid(cls, subscription_uid):
subscription_generative = cls.query.filter_by(subscription_uid=str(subscription_uid)).first() subscription_generative = cls.query.filter_by(subscription_uid=str(subscription_uid)).all()
if not subscription_generative: if not subscription_generative:
return None return None
return subscription_generative return subscription_generative
@@ -70,7 +70,7 @@ class GenerativeResults(db.Model):
try: try:
logger.info(f" About to Insert GenerativeResults Data {subscription_generative_data.member_id} ") logger.info(f" About to Insert GenerativeResults Data {subscription_generative_data.member_id} ")
db.session.add(subscription_generative_data) db.session.add(subscription_generative_data)
db.session.flush() db.session.commit()
except IntegrityError as err: except IntegrityError as err:
logger.error(f" Error inserting GenerativeResults data {err} -- ") logger.error(f" Error inserting GenerativeResults data {err} -- ")
raise ValueError(f"Database integrity error: {err}") raise ValueError(f"Database integrity error: {err}")
+1
View File
@@ -96,6 +96,7 @@ class MembersProductsSettings(db.Model):
raise ValueError(f"Reset with ID {members_products_settings_id} does not exist.") raise ValueError(f"Reset with ID {members_products_settings_id} does not exist.")
update_p.setting_value = setting_value update_p.setting_value = setting_value
db.session.commit()
return return
@classmethod @classmethod
+4 -2
View File
@@ -49,12 +49,14 @@ class SubscriptionGenerative(db.Model):
logger.info( logger.info(
f"UPDATE SubscriptionGenerative::status subscription_uid = {subscription_uid} status = {status} ") f"UPDATE SubscriptionGenerative::status subscription_uid = {subscription_uid} status = {status} ")
subscription_generative_data = cls.query.filter_by(subscription_uid=str(subscription_uid)).first() subscription_generative_data = cls.query.filter_by(subscription_uid=str(subscription_uid)).first()
# member_product = cls.query.filter_by(member_id=str(member_id), product_id=str(product_id)).first()
if not subscription_generative_data: if not subscription_generative_data:
logger.error(f"SubscriptionGenerative with Sub UID {subscription_uid} does not exist.") logger.error(f"SubscriptionGenerative with Sub UID {subscription_uid} does not exist.")
return None return None
logger.info("INSERT::Point-->") logger.info("UPDATE STATUS::Point-->")
subscription_generative_data.status = status subscription_generative_data.status = status
db.session.commit()
return subscription_generative_data.status return subscription_generative_data.status
@classmethod @classmethod