cd14 commited on
Commit
14bb3dc
·
1 Parent(s): e54c804

adding rayan prompt

Browse files
Files changed (2) hide show
  1. app.py +16 -37
  2. utils.py +29 -0
app.py CHANGED
@@ -2,9 +2,6 @@ from ast import arg
2
  import streamlit as st
3
  import pandas as pd
4
  import PIL
5
- import re
6
- from io import StringIO
7
- import boto3
8
  from urlextract import URLExtract
9
  import time
10
  from utils import *
@@ -304,24 +301,6 @@ st.markdown("""---""")
304
  # index=1)
305
 
306
 
307
- def get_files_from_aws(bucket, prefix):
308
- """
309
- get files from aws s3 bucket
310
- bucket (STRING): bucket name
311
- prefix (STRING): file location in s3 bucket
312
- """
313
- s3_client = boto3.client('s3',
314
- aws_access_key_id=st.secrets["aws_id"],
315
- aws_secret_access_key=st.secrets["aws_key"])
316
-
317
- file_obj = s3_client.get_object(Bucket=bucket, Key=prefix)
318
- body = file_obj['Body']
319
- string = body.read().decode('utf-8')
320
-
321
- df = pd.read_csv(StringIO(string))
322
-
323
- return df
324
-
325
 
326
  # st.info([industry,campaign,target,char_reco_preference])
327
 
@@ -515,22 +494,22 @@ if st.session_state.get('button') == True:
515
  ai_generated_email=generate_example_email_with_context(email_body, campaign, industry, target, sorted_chars_out, preference)
516
  st.markdown('##### Here is the recommended Generated Email for you:')
517
  st.markdown('{}:'.format(ai_generated_email),unsafe_allow_html=True)
518
- options = st.multiselect(
519
- 'Select propmts you want to use to generate your email:',
520
- ["Convey key message in fewer words",
521
- "Rephrase sentences to be more concise",
522
- "Remove unnecessary details/repetitions",
523
- "Use bullet points or numbered lists",
524
- "Include clear call-to-action in the email",
525
- "Link to information instead of writing it out",
526
- "Shorten the subject line",
527
- "Replace technical terms with simpler language"],
528
- ["Remove unnecessary details/repetitions"])
529
- optimized_email, optimized_char_cnt, optimized_url_cnt = optimize_email_prompt_multi(email_body, options)
530
- charc, tmval=get_optimized_prediction("sagemakermodelcc", "modelCC.sav", "sagemakermodelcc", target, industry,
531
- optimized_char_cnt, optimized_url_cnt, industry_code_dict)
532
- st.markdown('##### Current Character Count in Your Optimized Email is: {}'.format(charc), unsafe_allow_html=True)
533
- st.markdown('##### The model predicts that it achieves a {} of {}%'.format(target,tmval), unsafe_allow_html=True)
534
 
535
  # st.session_state['button'] = False
536
  # preference= "character counts: "+str(573)+", Target Rate: "+str(37.2)
 
2
  import streamlit as st
3
  import pandas as pd
4
  import PIL
 
 
 
5
  from urlextract import URLExtract
6
  import time
7
  from utils import *
 
301
  # index=1)
302
 
303
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
304
 
305
  # st.info([industry,campaign,target,char_reco_preference])
306
 
 
494
  ai_generated_email=generate_example_email_with_context(email_body, campaign, industry, target, sorted_chars_out, preference)
495
  st.markdown('##### Here is the recommended Generated Email for you:')
496
  st.markdown('{}:'.format(ai_generated_email),unsafe_allow_html=True)
497
+ options = st.multiselect(
498
+ 'Select propmts you want to use to generate your email:',
499
+ ["Convey key message in fewer words",
500
+ "Rephrase sentences to be more concise",
501
+ "Remove unnecessary details/repetitions",
502
+ "Use bullet points or numbered lists",
503
+ "Include clear call-to-action in the email",
504
+ "Link to information instead of writing it out",
505
+ "Shorten the subject line",
506
+ "Replace technical terms with simpler language"],
507
+ ["Remove unnecessary details/repetitions"])
508
+ optimized_email, optimized_char_cnt, optimized_url_cnt = optimize_email_prompt_multi(email_body, options)
509
+ charc, tmval=get_optimized_prediction("sagemakermodelcc", "modelCC.sav", "sagemakermodelcc", target, industry,
510
+ optimized_char_cnt, optimized_url_cnt, industry_code_dict)
511
+ st.markdown('##### Current Character Count in Your Optimized Email is: {}'.format(charc), unsafe_allow_html=True)
512
+ st.markdown('##### The model predicts that it achieves a {} of {}%'.format(target,tmval), unsafe_allow_html=True)
513
 
514
  # st.session_state['button'] = False
515
  # preference= "character counts: "+str(573)+", Target Rate: "+str(37.2)
utils.py CHANGED
@@ -1,6 +1,14 @@
1
  import openai
2
  from io import BytesIO
3
  from config import config
 
 
 
 
 
 
 
 
4
 
5
  openai.api_key = config.OPEN_API_KEY
6
 
@@ -80,6 +88,27 @@ def optimize_email_prompt_multi(email_body, dropdown_opt):
80
  # Return the character count and URL count
81
  return generate_email_response, character_count, url_count
82
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  def get_optimized_prediction(modellocation, model_filename, bucket_name, selected_variable, selected_industry,
84
  char_cnt_uploaded, url_cnt_uploaded, industry_code_dict): #preference, industry_code_dict):
85
  training_dataset = import_data("s3://emailcampaigntrainingdata/modelCC", 'training.csv')
 
1
  import openai
2
  from io import BytesIO
3
  from config import config
4
+ import re
5
+ import pandas as pd
6
+ import random
7
+ import boto3
8
+ s3 = boto3.resource('s3')
9
+ from io import StringIO
10
+ import joblib
11
+ s3_client = boto3.client('s3')
12
 
13
  openai.api_key = config.OPEN_API_KEY
14
 
 
88
  # Return the character count and URL count
89
  return generate_email_response, character_count, url_count
90
 
91
+ def import_data(bucket, key):
92
+ return get_files_from_aws(bucket, key)
93
+
94
+ def get_files_from_aws(bucket, prefix):
95
+ """
96
+ get files from aws s3 bucket
97
+ bucket (STRING): bucket name
98
+ prefix (STRING): file location in s3 bucket
99
+ """
100
+ s3_client = boto3.client('s3',
101
+ aws_access_key_id=st.secrets["aws_id"],
102
+ aws_secret_access_key=st.secrets["aws_key"])
103
+
104
+ file_obj = s3_client.get_object(Bucket=bucket, Key=prefix)
105
+ body = file_obj['Body']
106
+ string = body.read().decode('utf-8')
107
+
108
+ df = pd.read_csv(StringIO(string))
109
+
110
+ return df
111
+
112
  def get_optimized_prediction(modellocation, model_filename, bucket_name, selected_variable, selected_industry,
113
  char_cnt_uploaded, url_cnt_uploaded, industry_code_dict): #preference, industry_code_dict):
114
  training_dataset = import_data("s3://emailcampaigntrainingdata/modelCC", 'training.csv')