Spaces:
Sleeping
Sleeping
import streamlit as st | |
from few_shot import FewShotPosts | |
from post_generator import generate_post | |
from preprocess import process_posts_for_persona | |
# Predefined personas | |
persona_options = ["Marketer", "Software Engineer", "Investor", "Strategy Consultant"] | |
# Options for length and language | |
length_options = ["Short", "Medium", "Long"] | |
language_options = ["English", "Hindi", "Kannada"] | |
# Main app layout | |
def main(): | |
st.subheader("LinkedIn Post Generator: Codebasics") | |
# Dropdown for Persona Selection | |
persona = st.selectbox("Select Persona", options=persona_options) | |
try: | |
# Create instance of FewShotPosts with the selected persona | |
fs = FewShotPosts(persona) | |
# Print available tags for debugging | |
print(f"Available Tags for {persona}: {fs.get_tags()}") | |
# Example: Fetch posts based on user-defined criteria | |
posts = fs.get_filtered_posts(length="Short", language="English", tag="Economy") | |
print(posts) | |
except FileNotFoundError as e: | |
print(e) | |
# Create three columns for the dropdowns | |
col1, col2, col3 = st.columns(3) | |
tags = fs.get_tags() | |
with col1: | |
# Dropdown for Topic (Tags) | |
selected_tag = st.selectbox("Topic", options=tags) | |
with col2: | |
# Dropdown for Length | |
selected_length = st.selectbox("Length", options=length_options) | |
with col3: | |
# Dropdown for Language | |
selected_language = st.selectbox("Language", options=language_options) | |
# Generate Button | |
if st.button("Generate"): | |
post = generate_post(persona, selected_length, selected_language, selected_tag) | |
st.write(post) | |
# Run the app | |
if __name__ == "__main__": | |
main() | |