Spaces:
Build error
Build error
Ronio Jerico Roque
Feat: Added Website traffic, social media, and website performance category on the UI
13e4835 | import streamlit as st | |
| import requests | |
| from dotenv import load_dotenv | |
| import os | |
| import time | |
| from helper.telemetry import collect_telemetry | |
| from helper.upload_File import uploadFile | |
| from helper.button_behaviour import hide_button | |
| from helper.initialize_analyze_session import initialize_analyze_session | |
| import json | |
| class LeadListAnalyst: | |
| def __init__(self, model_url, analyst_name, data_src, analyst_description): | |
| 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 | |
| def request_model(self, payload_txt): | |
| response = requests.post(self.model_url, json=payload_txt) | |
| response.raise_for_status() | |
| output = response.json() | |
| text = output["outputs"][0]["outputs"][0]["results"]["text"]["data"]["text"] | |
| text = json.loads(text) | |
| lead_list_dev = text["lead_list_development"] | |
| prospecting_mech = text["prospecting_mechanism"] | |
| lead_nurt = text["lead_nurturing"] | |
| with st.expander("AI Analyst", expanded=True, icon="🤖"): | |
| st.write(f"**Lead List Development**:\n {lead_list_dev}\n") | |
| st.write(f"\n**Prospecting Mechanism**: {prospecting_mech}") | |
| st.write(f"\n**Lead Nurturing**: {lead_nurt}") | |
| return output | |
| def row1(self): | |
| col1, col2 = st.columns(gap="medium", spec=[0.33, 0.66]) | |
| with col1: | |
| lead_list = st.checkbox("Lead List Development", key='lead_list') | |
| pros_mech = st.checkbox("Prospecting Mechanism", key='pros_mech') | |
| lead_nur = st.checkbox("Lead Nurturing", key='lead_nur') | |
| self.lead_gen = st.text_area("What are the Lead Generation/s?", height=200 , placeholder='Enter Lead Generation/s', key='lead_gen') | |
| self.crm = st.text_input("What CRM are they using? N/A if None", placeholder='Enter CRM', key='crm') | |
| with col2: | |
| st.write("") # FOR THE HIDE BUTTON | |
| st.write("") # FOR THE HIDE BUTTON | |
| st.write("AI Analyst Output: ") | |
| st.session_state['analyzing'] = False | |
| st.write("") # FOR THE HIDE BUTTON | |
| analyze_button = st.button("Analyze", disabled=initialize_analyze_session()) | |
| start_time = time.time() | |
| if analyze_button: | |
| hide_button() | |
| if lead_list or pros_mech or lead_nur: | |
| combined_text = "" | |
| with st.spinner('Analyzing...', show_time=True): | |
| st.write('') | |
| # INITIALIZING SESSIONS | |
| combined_text += f"Lead List Development: {lead_list}\n" | |
| combined_text += f"Prospecting Mechanism: {pros_mech}\n" | |
| combined_text += f"Lead Nurturing: {lead_nur}\n" | |
| combined_text += f"\nWhat are the Lead Generation/s they are using?: {self.lead_gen}\n" | |
| if not self.crm: | |
| self.crm = "None" | |
| combined_text += f"\nWhat CRM are they using?: {self.crm}" | |
| # OUTPUT FOR SEO ANALYST | |
| payload_txt = {"input_value": combined_text, | |
| "output_type": "text", | |
| "input_type": "chat" | |
| } | |
| result = self.request_model(payload_txt) | |
| end_time = time.time() | |
| time_lapsed = end_time - start_time | |
| debug_info = { | |
| 'analyst': self.analyst_name, | |
| 'url_uuid': self.model_url.split("-")[-1], | |
| 'time_lapsed': time_lapsed, | |
| 'payload': payload_txt, | |
| 'result': result, | |
| } | |
| collect_telemetry(debug_info) | |
| with st.expander("Debug information", icon="⚙"): | |
| st.write(debug_info) | |
| st.session_state['analyzing'] = False | |
| else: | |
| st.info("Please upload CSV or PDF files first.") | |
| hide_button() | |
| if __name__ == "__main__": | |
| st.set_page_config(layout="wide") | |
| upload = uploadFile() | |