df_ai_int / classes /amazon.py
Ronio Jerico Roque
Update spinner messages to reflect file upload actions across multiple classes
c75d56b
import streamlit as st
from dotenv import load_dotenv
from helper.telemetry import collect_telemetry
from helper.upload_File import uploadFile
from helper.button_behaviour import hide_button
class Amazon:
def __init__(self, model_url):
self.file_dict = {}
self.model_url = model_url
#self.analyst_name = analyst_name
#self.data_src = data_src
#self.analyst_description = analyst_description
self.initialize()
self.row1()
def initialize(self):
# FOR ENV
load_dotenv()
'''
# AGENT NAME
st.header(self.analyst_name)
# EVALUATION FORM LINK
url = os.getenv('Link')
st.write('Evaluation Form: [Link](%s)' % url)
# RETURN BUTTON
try:
if st.button("Return", type='primary'):
st.switch_page("./pages/home.py")
except Exception:
pass
if 'product_title_amazon' not in st.session_state:
st.session_state['product_title_amazon'] = ''
if 'images_amazon' not in st.session_state:
st.session_state['images_amazon'] = ''
if 'bullet_points_amazon' not in st.session_state:
st.session_state['bullet_points_amazon'] = ''
if 'product_description_amazon' not in st.session_state:
st.session_state['product_description_amazon'] = ''
'''
if 'amazon_marketplace_questionnaires' not in st.session_state:
st.session_state['amazon_marketplace_questionnaires'] = ''
def process(self):
session = st.session_state.analyze
if (self.amazon_marketplace_questionnaires) and session == 'clicked':
try:
#product_title_amazon = ""
#images_amazon = ""
#bullet_points_amazon = ""
#product_description_amazon = ""
amazon_marketplace_questionnaires = ""
with st.spinner('Uploading Amazon Files...', show_time=True):
st.write('')
# INITIALIZING SESSIONS
#combined_text += f"Client Summary: {st.session_state.nature}\n"
'''
try:
product_title_amazon += f"\nProduct Title: {self.product_title_amazon}"
except KeyError:
pass
try:
images_amazon += f"\nImages: {self.images_amazon}"
except KeyError:
pass
try:
bullet_points_amazon += f"\nBullet Points: {self.bullet_points_amazon}"
except KeyError:
pass
try:
product_description_amazon += f"\nProduct Description: {self.product_description_amazon}"
except KeyError:
pass
'''
try:
amazon_marketplace_questionnaires += f"Marketplace Questionnaires - Amazon: {self.amazon_marketplace_questionnaires}"
except KeyError:
pass
# OUTPUT FOR SEO ANALYST
#payload_txt = {"question": combined_text}
#result = self.request_model(payload_txt)
#end_time = time.time()
#time_lapsed = end_time - start_time
'''
debug_info_product_title_amazon = {'data_field' : 'Product Title - Amazon', 'result': self.product_title_amazon}
debug_info_images_amazon = {'data_field' : 'Images - Amazon', 'result': self.images_amazon}
debug_info_bullet_points_amazon = {'data_field' : 'Bullet Points - Amazon', 'result': self.bullet_points_amazon}
debug_product_description_amazon = {'data_field' : 'Product Description - Amazon', 'result': self.product_description_amazon}
'''
debug_amazon_marketplace_questionnaires = {'data_field' : 'Marketplace Questionnaires - Amazon', 'result': self.amazon_marketplace_questionnaires}
'''
debug_info = {
#'analyst': self.analyst_name,
'url_uuid': self.model_url.split("-")[-1],
'time_lapsed': time_lapsed,
'payload': payload_txt,
'result': result,
}
if self.product_title_amazon:
st.session_state['product_title_amazon'] = 'uploaded'
collect_telemetry(debug_info_product_title_amazon)
if self.images_amazon:
st.session_state['images_amazon'] = 'uploaded'
collect_telemetry(debug_info_images_amazon)
if self.bullet_points_amazon:
st.session_state['bullet_points_amazon'] = 'uploaded'
collect_telemetry(debug_info_bullet_points_amazon)
if self.product_description_amazon:
st.session_state['product_description_amazon'] = 'uploaded'
collect_telemetry(debug_product_description_amazon)
'''
if self.amazon_marketplace_questionnaires:
if self.amazon_marketplace_questionnaires != self.template:
st.session_state['amazon_marketplace_questionnaires'] = 'uploaded'
collect_telemetry(debug_amazon_marketplace_questionnaires)
else:
pass
st.session_state['analyzing'] = False
except AttributeError:
st.info("Please upload CSV or PDF files first.")
hide_button()
def row1(self):
#self.product_title_amazon = st.text_input("Product Title - Amazon:", placeholder='Enter Product Title')
#self.images_amazon = st.text_input("Images - Amazon:", placeholder='Enter Images')
#self.bullet_points_amazon = st.text_input("Bullet Points - Amazon:", placeholder='Enter Bullet Points')
#self.product_description_amazon = st.text_input("Product Description - Amazon:", placeholder='Enter Product Description')
self.template = ("Product Title:\n"
"a. Does the product title include relevant keywords (e.g., Product Brand/Description + Product Line + Material or Key Ingredient + Color + Size + Quantity)?\n"
"b. Is the title within Amazon’s recommended character limit (≤200 characters)?\n"
"c. Other Remarks:\n\n"
"Images:\n"
"a. Is the main image on a pure white background?\n"
"b. Are there any logos, watermarks, or text on any images?\n"
"c. Do the images showcase the product from multiple angles?\n"
"d. Are the images high-resolution and zoomable?\n"
"e. Other Remarks:\n\n"
"Bullet Points:\n"
"a. Do the bullets exceed 250 characters?\n"
"b. Are the bullet points clear and concise?\n"
"c. Do they highlight key features, benefits, and unique selling points?\n"
"d. Are keywords naturally included in the bullet points?\n"
"e. Other Remarks:\n\n"
"Product Description:\n"
"a. Is the product description complete and well-formatted?\n"
"b. Is it within the 2000-character limit?\n"
"c. Does it include important product specifications (size, material, compatibility)?\n"
"d. Are there any customer reviews or ratings?\n"
"e. If yes, is the average rating above 4 stars?\n"
"f. Other Remarks:")
self.amazon_marketplace_questionnaires = st.text_area(
"Marketplace Questionnaires - Amazon:",
value=self.template,
height=600
)
self.process()
if __name__ == "__main__":
st.set_page_config(layout="wide")
upload = uploadFile()