DEV Community

Akshay Keerthi
Akshay Keerthi

Posted on

Building a Audience Analyzer using Lyzr SDK

In the fast-paced world of marketing, understanding your audience is key to success. However, crafting tailored strategies that resonate with your target demographic can be a daunting task. Enter Audience Navigator, a groundbreaking app powered by Lyzr Automata, designed to revolutionize the way marketing strategies are developed.

Image description

Audience Navigator harnesses the power of AI to analyze input about a company’s core values, goals, and target audience. By leveraging advanced natural language processing algorithms, the app generates tailored marketing strategies and actionable steps in minutes, saving marketers valuable time and resources.

Using Lyzr Automata’s Agent technology, Audience Navigator emulates the expertise of a seasoned copywriter and market researcher. Upon receiving input about the company, the app prompts the AI to conduct in-depth analysis and research, identifying key demographics, pain points, and preferred social media platforms of the target audience.

Why use Lyzr SDK’s?

With Lyzr SDKs, crafting your own GenAI application is a breeze, requiring only a few lines of code to get up and running swiftly.

Checkout the Lyzr SDK’s

Lets get Started!

Create an app.py file

import streamlit as st
from lyzr_automata.ai_models.openai import OpenAIModel
from lyzr_automata import Agent, Task
from lyzr_automata.pipelines.linear_sync_pipeline import LinearSyncPipeline
from PIL import Image
from lyzr_automata.tasks.task_literals import InputType, OutputType
import os
Enter fullscreen mode Exit fullscreen mode

This Python code utilizes Streamlit to create a web application integrating Lyzr Automata’s AI capabilities for generating customized marketing strategies. It imports necessary libraries, sets up environment variables for OpenAI access, and defines UI elements including a text input field and a button.

The core function utilizes Lyzr Automata’s Agent and Task classes to generate strategies based on user input. Additionally, an expandable section provides app information and links. This succinctly orchestrates an AI-driven marketing strategy generator within a streamlined web interface.

# Set the OpenAI API key
os.environ["OPENAI_API_KEY"] = st.secrets["apikey"]
Enter fullscreen mode Exit fullscreen mode

This line sets the OpenAI API key as an environment variable, retrieving it securely from Streamlit’s secrets for authentication.

input = st.text_input("Welcome to Audience Navigator, powered by Lyzr Automata! Simply input your company's name, core values, and goals to receive tailored marketing strategies and actionable steps, designed to resonate with your target audience and achieve your marketing objectives. Let's navigate your audience together!",placeholder=f"""Type here""")
Enter fullscreen mode Exit fullscreen mode

This line of code creates a text input field using Streamlit. It prompts users to input their company’s name, core values, and goals, emphasizing the app’s purpose of providing tailored marketing strategies. The placeholder text “Type here” offers guidance on the expected input.

open_ai_text_completion_model = OpenAIModel(
    api_key=st.secrets["apikey"],
    parameters={
        "model": "gpt-4-turbo-preview",
        "temperature": 0.2,
        "max_tokens": 1500,
    },
)
Enter fullscreen mode Exit fullscreen mode

This code initializes an instance of the OpenAIModel class, which serves as the text completion model for generating marketing strategies. It requires an API key obtained from Streamlit’s secrets manager to access OpenAI’s services securely.

Parameters for the text generation model are specified, including the model version (“gpt-4-turbo-preview”), temperature (controlling randomness), and maximum number of tokens to generate (limiting the length of the output).

def generation(input):
    generator_agent = Agent(
        role=" COPYWRITER expert",
        prompt_persona=f"  Your task is to utilize the PROVIDED COMPANY INFORMATION and its goals to thoroughly understand the TARGET AUDIENCE, including DEMOGRAPHICS, INTERESTS, PAIN POINTS, and PREFERRED SOCIAL MEDIA PLATFORMS. You MUST also deliver TAILORED MARKETING STRATEGIES and ACTIONABLE STEPS.")

    prompt = f"""
You are an Expert COPYWRITER with a focus on MARKET RESEARCH and STRATEGY DEVELOPMENT. Your task is to utilize the PROVIDED COMPANY INFORMATION and its goals to thoroughly understand the TARGET AUDIENCE, including DEMOGRAPHICS, INTERESTS, PAIN POINTS, and PREFERRED SOCIAL MEDIA PLATFORMS. You MUST also deliver TAILORED MARKETING STRATEGIES and ACTIONABLE STEPS.
[Prompts here]
 """
Enter fullscreen mode Exit fullscreen mode

This function, named generation, is designed to generate tailored marketing strategies based on user input. It defines an instance of the Agent class, representing an expert copywriter tasked with market research and strategy development. The agent is provided with a persona, outlining its role and responsibilities, including utilizing company information to understand the target audience and deliver tailored marketing strategies.

    generator_agent_task = Task(
        name="Generation",
        model=open_ai_text_completion_model,
        agent=generator_agent,
        instructions=prompt,
        default_input=input,
        output_type=OutputType.TEXT,
        input_type=InputType.TEXT,
    ).execute()

    return generator_agent_task 
Enter fullscreen mode Exit fullscreen mode

The provided Python script defines and executes a text generation task using a task management framework. The Task class is instantiated with several parameters. The name parameter sets the task’s name to “Generation”.

The model parameter specifies the use of a text completion model from OpenAI, referred to as open_ai_text_completion_model. The agent parameter assigns generator_agent as the responsible entity for executing the task. The instructions parameter provides a prompt or set of instructions for guiding the text generation, labeled as prompt.

The default_input parameter sets the default input for the task, called input. The output_type parameter indicates that the expected output type is text, specified as OutputType.TEXT, and the input_type parameter indicates that the input type is also text, specified as InputType.TEXT.

The execute method is called on the instantiated Task object, named generator_agent_task, which runs the task. Finally, the result of this task execution is returned. This code is part of a larger system that manages multiple tasks and agents, likely for applications involving natural language processing, such as automated content generation.

if st.button("Ok"):
    solution = generation(input)
    st.markdown(solution)
Enter fullscreen mode Exit fullscreen mode

The code snippet is part of a S*treamlit* app. When the “Ok” button is clicked, it triggers the generation function with input as the argument. The result of this function, stored in the variable solution, is then displayed in the app as Markdown using st.markdown(solution).

In a world where understanding your audience is paramount, Audience Navigator emerges as an essential tool for businesses and marketers alike. By harnessing the power of advanced AI through the Lyzr Automata platform, it delivers personalized, actionable marketing strategies tailored to your unique business needs.

Whether you’re looking to refine your approach or make significant strides in audience engagement, Audience Navigator offers the insights and guidance necessary to achieve your goals. Embrace this innovative solution to navigate your audience more effectively and drive your marketing success.

App link: https://audience-analyzer-lyzr.streamlit.app/

Source Code: https://github.com/isakshay007/Audience_Analyzer

For any inquiries or issues, please contact Lyzr. You can learn more about Lyzr and their offerings through the following links:

Website: Lyzr.ai
Book a Demo: Book a Demo
Discord: Join our Discord community
Slack: Join our Slack channel

Top comments (0)