Files
ALwrity/lib/ai_writers/facebook_ai_writer.py
2024-05-25 18:51:53 +05:30

78 lines
3.6 KiB
Python

import time #Iwish
import os
import json
import requests
import streamlit as st
def generate_facebook_post(business_type, target_audience, post_goal, post_tone, include, avoid):
"""
Generates a Facebook post prompt for an LLM based on user input.
Args:
business_type: The type of business, e.g., fashion retailer, fitness coach.
target_audience: A description of the target audience.
post_goal: The goal of the Facebook post.
post_tone: The desired tone of the post.
include: Elements to include in the post (e.g., images, videos, links).
avoid: Elements to avoid in the post (e.g., long paragraphs, technical jargon).
Returns:
A string containing the LLM prompt.
"""
prompt = f"""I am a {business_type}.
Please help me write a detailed Facebook post that will engage my target audience, {target_audience}.
Here are some additional details to consider:
* **Post Goal:** {post_goal}
* **Post Tone:** {post_tone}
* **Include:** {include}
* **Avoid:** {avoid}
**Example Post Structure:**
1. **Attention-Grabbing Opening:** Start with a question or a bold statement to capture attention.
2. **Engaging Content:** Briefly describe the main message or offer, highlighting key benefits or features.
3. **Call-to-Action (CTA):** Encourage the audience to take a specific action (e.g., visit a link, comment, share).
4. **Multimedia:** Mention the types of multimedia elements to include (e.g., images, videos).
5. **Hashtags:** Include relevant hashtags to increase post visibility.
"""
try:
response = generate_text_with_exception_handling(prompt)
return response
except Exception as err:
st.error(f"An error occurred while generating the prompt: {e}")
return None
def facebook_post_writer():
st.title("Alwrity - Facebook Post Generator")
st.markdown("This app will help you create a Facebook post prompt for an LLM.")
try:
# Collect user inputs with default values
business_type = st.text_input("**What is your business type?**", placeholder="fitness coach")
target_audience = st.text_input("**Describe your target audience:**", placeholder="fitness enthusiasts")
post_goal = st.selectbox("**What is the goal of your post?**", ["Promote a new product", "Share valuable content", "Increase engagement", "Other"], index=2)
post_tone = st.selectbox("**What tone do you want to use?**", ["Informative", "Humorous", "Inspirational", "Upbeat", "Casual"], index=3)
include = st.text_input("**What elements do you want to include?** (e.g., images, videos, links, hashtags, questions)", placeholder="short video with a sneak peek of the challenge")
avoid = st.text_input("**What elements do you want to avoid?** (e.g., long paragraphs, technical jargon)", placeholder="long paragraphs")
if st.button("Write FaceBook Post"):
if not business_type or not target_audience:
st.error("🚫 Provide required inputs. Least, you can do..")
generated_post = generate_facebook_post(business_type, target_audience, post_goal, post_tone, include, avoid)
if generated_post:
st.subheader(f'**🧕 Verify: Alwrity can make mistakes.**')
st.write("## Generated Facebook Post:")
st.write(generated_post)
st.write("\n\n\n\n\n")
else:
st.error("Error: Failed to generate Facebook Post.")
except Exception as e:
st.error(f"An error occurred: {e}")