Ronio Jerico Roque commited on
Commit
23882d0
·
1 Parent(s): 4156d4e

Add Content_Process_and_Assets_Analyst class and integrate into analyzing_page

Browse files
classes/response_content_process_and_assets_analyst.py ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import requests
3
+ from dotenv import load_dotenv
4
+ import os
5
+ from helper.upload_response import upload_response
6
+ from helper.upload_File import uploadFile
7
+ from pymongo import MongoClient
8
+
9
+ class Content_Process_and_Assets_Analyst:
10
+ def __init__(self, model_url):
11
+ self.uploaded_files = []
12
+ self.file_dict = {}
13
+ self.model_url = model_url
14
+ #self.analyst_name = analyst_name
15
+ #self.data_src = data_src
16
+ #self.analyst_description = analyst_description
17
+ self.initialize()
18
+ self.row1()
19
+
20
+ def initialize(self):
21
+ # FOR ENV
22
+ load_dotenv()
23
+
24
+ # AGENT NAME
25
+ #st.header(self.analyst_name)
26
+
27
+ def request_model(self, payload_txt, headers):
28
+ response = requests.post(self.model_url, json=payload_txt, headers=headers)
29
+ response.raise_for_status()
30
+ output = response.json()
31
+ st.write(output)
32
+ text = output["outputs"][0]["outputs"][0]["results"]["text"]["data"]["text"]
33
+ #text = json.loads(text)
34
+ st.write(text)
35
+ return text
36
+
37
+ def fetch_data(self, data_field):
38
+ mongodb_uri = os.getenv("MONGODB_URI")
39
+ myclient = MongoClient(mongodb_uri)
40
+ mydb = myclient.get_database()
41
+ mycol = mydb["df_data"]
42
+
43
+ # Sort by timestamp field in descending order
44
+ x = mycol.find_one(
45
+ {"data_field": data_field},
46
+ sort=[("timestamp", -1)]
47
+ )
48
+
49
+ x = x["result"]
50
+ return x
51
+
52
+ def process(self):
53
+ with st.spinner('Content - Process and Assets Analyst...', show_time=True):
54
+ st.write('')
55
+ headers = {"Content-Type": "application/json", "x-api-key": f"{os.getenv('x-api-key')}"}
56
+ try:
57
+ payload_txt = {"input_value": self.payload, "output_type": "text", "input_type": "chat"}
58
+ payload_txt_model = self.request_model(payload_txt, headers)
59
+ debug_info = {'data_field' : 'Content - Process and Assets Analyst', 'result': payload_txt_model}
60
+ upload_response(debug_info)
61
+
62
+ count = 0
63
+ except Exception as e:
64
+ pass
65
+ st.session_state['analyzing'] = False
66
+
67
+ def row1(self):
68
+ st.session_state['analyzing'] = False
69
+ self.payload = ""
70
+ count = 0
71
+ try:
72
+ session_client_summary = st.session_state['client_summary']
73
+ if session_client_summary == 'uploaded':
74
+ count += 1
75
+ self.payload += self.fetch_data("Client Summary")
76
+ except Exception as e:
77
+ pass
78
+ try:
79
+ session_content_in_the_website = st.session_state['content_in_the_website']
80
+ if session_content_in_the_website == 'uploaded':
81
+ count += 1
82
+ self.payload += self.fetch_data("Content in the Website")
83
+ except Exception as e:
84
+ pass
85
+ try:
86
+ session_content_outside_the_website = st.session_state['content_outside_the_website']
87
+ if session_content_outside_the_website == 'uploaded':
88
+ count += 1
89
+ self.payload += self.fetch_data("Content outside the Website")
90
+ except Exception as e:
91
+ pass
92
+
93
+ if count >= 3:
94
+ self.process()
95
+
96
+
97
+ if __name__ == "__main__":
98
+ st.set_page_config(layout="wide")
99
+
100
+ upload = uploadFile()
pages/analyzing_page.py CHANGED
@@ -18,6 +18,7 @@ from classes.response_df_overview import dfOverview
18
  from classes.response_desired_outcome import DesiredOutcome
19
  from classes.response_conversion_analyst import ConversionAnalyst
20
  from classes.response_website_audience_acquisition import WebsiteAudienceAcquisition
 
21
  from classes.response_executive_summary import ExecutiveSummary
22
  from classes.response_snapshot import Snapshot
23
 
@@ -74,6 +75,7 @@ def run_analysis():
74
  "desired_outcome": st.empty(),
75
  "conversion": st.empty(),
76
  "website_audience": st.empty(),
 
77
  "snapshot": st.empty(),
78
  "executive_summary": st.empty(),
79
 
@@ -249,6 +251,17 @@ def run_analysis():
249
  handler.update_error(f"Website Audience Acquisition Analysis failed: {str(e)}")
250
  return None
251
 
 
 
 
 
 
 
 
 
 
 
 
252
  def run_snapshot_analysis():
253
  handler = handlers["snapshot"]
254
  try:
@@ -286,6 +299,7 @@ def run_analysis():
286
  (run_target_market_analysis, "target_market"),
287
  (run_df_overview_analysis, "df_overview"),
288
  (run_desired_outcomes_analysis, "desired_outcome"),
 
289
  (run_conversion_analysis, "conversion"),
290
  (run_website_audience, "website_audience")
291
  ]
 
18
  from classes.response_desired_outcome import DesiredOutcome
19
  from classes.response_conversion_analyst import ConversionAnalyst
20
  from classes.response_website_audience_acquisition import WebsiteAudienceAcquisition
21
+ from classes.response_content_process_and_assets_analyst import Content_Process_and_Assets_Analyst
22
  from classes.response_executive_summary import ExecutiveSummary
23
  from classes.response_snapshot import Snapshot
24
 
 
75
  "desired_outcome": st.empty(),
76
  "conversion": st.empty(),
77
  "website_audience": st.empty(),
78
+ "content_process_and_assets": st.empty(),
79
  "snapshot": st.empty(),
80
  "executive_summary": st.empty(),
81
 
 
251
  handler.update_error(f"Website Audience Acquisition Analysis failed: {str(e)}")
252
  return None
253
 
254
+ def run_content_process_and_assets_analysis():
255
+ handler = handlers["content_process_and_assets"]
256
+ try:
257
+ handler.update_info("Running Content - Process and Assets Analysis...")
258
+ result = Content_Process_and_Assets_Analyst(os.getenv('Model_Content_Process_and_Assets_Analyst'))
259
+ handler.update_success("Content - Process and Assets Analysis completed successfully.")
260
+ return result
261
+ except Exception as e:
262
+ handler.update_error(f"Content - Process and Assets Analysis failed: {str(e)}")
263
+ return None
264
+
265
  def run_snapshot_analysis():
266
  handler = handlers["snapshot"]
267
  try:
 
299
  (run_target_market_analysis, "target_market"),
300
  (run_df_overview_analysis, "df_overview"),
301
  (run_desired_outcomes_analysis, "desired_outcome"),
302
+ (run_content_process_and_assets_analysis, "content_process_and_assets"),
303
  (run_conversion_analysis, "conversion"),
304
  (run_website_audience, "website_audience")
305
  ]