Anne314159's picture
Update app.py
fd154a5 verified
raw
history blame
3.14 kB
import streamlit as st
from transformers import pipeline
import requests
from bs4 import BeautifulSoup
# Initialize a text generation pipeline
generator = pipeline('text-generation', model='dbmdz/german-gpt2')
# Define a function to fetch trending news related to a specific niche
def fetch_trending_news(niche):
url = f"https://www.google.com/search?q={niche}+news&tbs=qdr:d"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}
response = requests.get(url, headers=headers)
print("Response status code:", response.status_code) # Debug print
soup = BeautifulSoup(response.content, "html.parser")
news_items = soup.find_all("div", class_="BNeawe vvjwJb AP7Wnd")
print("Number of news items found:", len(news_items)) # Debug print
trending_news = [item.text for item in news_items[:5]] # Extract the top 5 news items
return trending_news
# Define the pages
def page_trending_niche():
# Using st.columns to create a two-column layout
col1, col2 = st.columns([3, 1])
with col1:
st.title("What is trending in my niche?")
with col2:
st.image('Robot.png', use_column_width=True)
niche = st.text_input('Enter your niche', 'German clinics')
if st.button('Fetch Trending News'):
st.write(f"Trending news in {niche}:")
trending_news = fetch_trending_news(niche)
print("Trending news:", trending_news) # Debug print
for idx, news_item in enumerate(trending_news, start=1):
st.write(f"{idx}. {news_item}")
# Define the pages
def page_social_media_generator():
# Using st.columns to create a two-column layout
col1, col2 = st.columns([3, 1])
with col1:
st.title("German Medical Content Manager")
with col2:
st.image('Content_Creation_Pic.png', use_column_width=True)
input_topic = st.text_input('Enter a medical topic', 'Type 1 Diabetes')
st.write(f"Creating social media content for: {input_topic}")
def generate_content(topic):
generated_text = generator(f"Letzte Nachrichten über {topic}:", max_length=50, num_return_sequences=1)
return generated_text[0]['generated_text']
if st.button('Generate Social Media Post'):
with st.spinner('Generating...'):
post_content = generate_content(input_topic)
st.success('Generated Content:')
st.write(post_content)
st.write('Generated social media posts will appear here after clicking the "Generate" button.')
def page_test():
st.title('Test Page')
st.write('This is a test page with a test name.')
# Setup the sidebar with page selection
st.sidebar.title("Anne's Current Projects :star2:")
page = st.sidebar.selectbox(
'What project do you like to see first?',
('trending_niche', 'Social Media Content Generator', 'Test Page'))
# Display the selected page
if page == 'trending_niche':
page_trending_niche()
elif page == 'Social Media Content Generator':
page_social_media_generator()
elif page == 'Test Page':
page_test()