Spaces:
Runtime error
Runtime error
File size: 2,817 Bytes
56c94e1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
import streamlit as st
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel
# Initialize the blog-writing agent with DuckDuckGo tool
blog_agent = CodeAgent(
tools=[DuckDuckGoSearchTool()],
model=HfApiModel()
)
# Function to display agent activity
def display_agent_activity(prompt, result):
st.write("### Agent Activity:")
st.write("**Prompt Sent to Agent:**")
st.code(prompt, language="text")
st.write("**Agent Output:**")
st.code(result, language="text")
# Function to save generated content to a file
def save_to_file(content, filename="generated_blog.txt"):
with open(filename, "w") as file:
file.write(content)
return filename
# Function to enhance generated content
def enhance_content(content):
return f"{content}\n\n---\nGenerated with insights and enhanced formatting."
# Streamlit app title
st.title("AI-Powered Blog Writer")
# App description
st.write("Generate high-quality blog content enriched with real-time insights.")
# Input field for blog topic or prompt
blog_prompt = st.text_area("Enter your blog topic or prompt:", placeholder="E.g., The Future of AI in Healthcare")
# Input field for choosing content tone
tone = st.selectbox("Choose the tone of the content:", ["Professional", "Casual", "Persuasive", "Informative"])
# Option to include a summary
include_summary = st.checkbox("Include a summary of the generated content")
# Button to trigger blog content generation
if st.button("Generate Blog Content"):
if blog_prompt:
with st.spinner("Generating blog content, please wait..."):
try:
# Generate blog content using the agent
blog_result = blog_agent.run(f"{blog_prompt}\nTone: {tone}")
# Optionally enhance the content
blog_result = enhance_content(blog_result)
# Display the generated blog content
st.subheader("Generated Blog Content")
st.write(blog_result)
# Display a summary if requested
if include_summary:
summary_prompt = f"Summarize this content:\n{blog_result}"
summary_result = blog_agent.run(summary_prompt)
st.subheader("Content Summary")
st.write(summary_result)
# Log and display agent activity
display_agent_activity(blog_prompt, blog_result)
# Save the content to a file
filename = save_to_file(blog_result)
st.success(f"Content saved to {filename}")
except Exception as e:
st.error("An error occurred while generating content. Please try again.")
else:
st.warning("Please enter a valid blog topic or prompt.")
|