BtB-ExpC/Marketing
1
1import openai2import random3import gradio as gr4import os5 6openai.api_key = os.environ["OpenAPI_Key"]7 8 9manual = r"""Tick the appropriate boxes and fill out at least the 'Topic' field. More is optional but recommended.10"""11 12# Tone of voice NL & EN13schrijfstijl_algemeen = r"""- informatief;14- vooruitstrevend;15- optimistisch;16- beknopt;17- toegankelijk.18"""19 20schrijfstijl_hero = r"""- zelfverzekerd;21- inspirerend;22- innovatief.23"""24 25# Define the messages for prompt_126SystemPrompt_10 = f""""Je bent senior-tekstschrijver gespecialiseerd in websiteteksten. Voor e-learningbedrijf ExpertCollege schrijf je hoogwaardige marketingcopy in de volgende stijl:"""27UserPrompt_10 = r""""prompt"""28AssistantPrompt_10 = r""""prompt"""29UserPrompt_11 = r""""prompt"""30AssistantPrompt_11 = r""""prompt"""31UserPrompt_12 = r""""prompt"""32AssistantPrompt_12 = r""""prompt"""33UserPrompt_13 = r""""prompt"""34AssistantPrompt_13 = r""""prompt"""35UserPrompt_14 = r""""prompt"""36AssistantPrompt_14 = r""""prompt"""37 38 39# Define the messages for prompt_240SystemPrompt_20 = r""""prompt"""41UserPrompt_20 = r""""prompt"""42AssistantPrompt_20 = r""""prompt"""43UserPrompt_21 = r""""prompt"""44AssistantPrompt_21 = r""""prompt"""45UserPrompt_22 = r""""prompt"""46AssistantPrompt_22 = r""""prompt"""47UserPrompt_23 = r""""prompt"""48AssistantPrompt_23 = r""""prompt"""49UserPrompt_24 = r""""prompt"""50AssistantPrompt_24 = r""""prompt"""51 52# Define the messages for prompt_353SystemPrompt_30 = r""""prompt"""54UserPrompt_30 = r""""prompt"""55AssistantPrompt_30 = r""""prompt"""56UserPrompt_31 = r""""prompt"""57AssistantPrompt_31 = r""""prompt"""58UserPrompt_32 = r""""prompt"""59AssistantPrompt_32 = r""""prompt"""60UserPrompt_33 = r""""prompt"""61AssistantPrompt_33 = r""""prompt"""62UserPrompt_34 = r""""prompt"""63AssistantPrompt_34 = r""""prompt"""64 65# Define the messages for prompt_466SystemPrompt_40 = r""""prompt"""67UserPrompt_40 = r""""prompt"""68AssistantPrompt_40 = r""""prompt"""69UserPrompt_41 = r""""prompt"""70AssistantPrompt_41 = r""""prompt"""71UserPrompt_42 = r""""prompt"""72AssistantPrompt_42 = r""""prompt"""73UserPrompt_43 = r""""prompt"""74AssistantPrompt_43 = r""""prompt"""75UserPrompt_44 = r""""prompt"""76AssistantPrompt_44 = r""""prompt"""77 78 79 80# Function to make API call81def api_call(messages, temperature=0.9, model="gpt-4-1106-preview"):82 return openai.ChatCompletion.create( 83 messages=messages,84 temperature=temperature,85 model=model86 ).choices[0].message.content87 88 89# Function to be called by Gradio interface for website text90def marketing_inputs(selection, topic="", content="", special_instructions="", length="", language=[]):91 if not topic: 92 return "Please enter a Topic"93 if "English" in language:94 return "Currently only Dutch functionality is available."95 if selection == "Website text":96 if topic and not content and not special_instructions:97 # Code to execute when only topic_input is filled out98 prompt_1 = [99 {"role": "system", "content": SystemPrompt_10 + f"""\n{schrijfstijl_algemeen}"""},100 {"role": "user", "content": f"""Schrijf een korte websitetekst over {topic}."""}101 ]102 103 # elif topic_input and content and not special_instructions:104 # # Code to execute when topic_input and content are filled out105 # prompt_1 = [106 # {"role": "system", "content": SystemPrompt_10 + f"""\n{schrijfstijl_algemeen}"""},107 # {"role": "user", "content": f"""Schrijf een korte websitetekst over {topic_input}."""}108 109 # elif topic_input and not content and special_instructions:110 # # Code to execute when topic_input and special instructions are filled out111 # prompt_1 = [112 # {"role": "system", "content": SystemPrompt_10 + f"""\n{schrijfstijl_algemeen}"""},113 # {"role": "user", "content": f"""Schrijf een korte websitetekst over {topic_input}. Especially make sure to:"""}114 115 # elif topic_input and content and special_instructions:116 # # Code to execute when topic_input, content, and special instructions are filled out117 # prompt_1 = [118 # {"role": "system", "content": SystemPrompt_10 + f"""\n{schrijfstijl_algemeen}"""},119 # {"role": "user", "content": f"""Schrijf een korte websitetekst over {topic_input}."""}120 121 websitetekst = api_call(prompt_1, 0.7)122 return websitetekst123 elif selection == "Socials: posts" or selection == "Socials: comments":124 # Dummy return for Socials125 return f"Functionality for {selection} is not implemented yet."126 127# Define the selection radio128selection_radio = gr.Radio(choices=["Website text", "Socials: posts", "Socials: comments"], label="Type")129 130# Define the input fields and checkboxes for Website texts131topic_input = gr.Textbox(label="Topic")132content = gr.Textbox(label="Content (text should contain info on...)")133special_instructions_input = gr.Textbox(label="Special instructions (optional)")134length_radio = gr.Radio(choices=["short", "medium", "long"], label="Length")135language_checkbox = gr.CheckboxGroup(choices=["Dutch", "English"], label="Language")136 137# Define the Interface138iface = gr.Interface(139 fn=marketing_inputs, 140 inputs=[selection_radio, topic_input, content, special_instructions_input, length_radio, language_checkbox],141 outputs=gr.Textbox(label="Output", show_copy_button=True)142)143 144iface.launch()