Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel | |
| from fpdf import FPDF | |
| import tempfile | |
| # Initialize content generation agent | |
| content_agent = CodeAgent(tools=[DuckDuckGoSearchTool()], model=HfApiModel()) | |
| def save_as_text(content, filename): | |
| with tempfile.NamedTemporaryFile(delete=False, suffix=".txt") as tmp_file: | |
| tmp_file.write(content.encode()) | |
| return tmp_file.name, filename | |
| def save_as_pdf(content, filename): | |
| with tempfile.NamedTemporaryFile(delete=False, suffix=".pdf") as tmp_file: | |
| pdf = FPDF() | |
| pdf.add_page() | |
| pdf.set_font("Arial", size=12) | |
| pdf.multi_cell(0, 10, content) | |
| pdf.output(tmp_file.name) | |
| return tmp_file.name, filename | |
| st.title("SmolAgents Blog Generator") | |
| tabs = st.tabs(["Generated Content", "Generate Summary", "Agent Activity"]) | |
| # Tab 1: Generated Content | |
| with tabs[0]: | |
| st.header("Generate and View Content") | |
| prompt = st.text_area("Enter your topic or prompt:") | |
| tone = st.selectbox("Choose the tone:", ["Professional", "Casual", "Persuasive", "Informative"]) | |
| if st.button("Generate Content"): | |
| if prompt: | |
| with st.spinner("Generating content..."): | |
| try: | |
| agent_prompt = ( | |
| f"Write a detailed blog post on the topic: {prompt}.\n" | |
| f"Structure: Introduction, Key Points, Applications, Ethical Considerations, Conclusion.\n" | |
| f"Tone: {tone}" | |
| ) | |
| result = content_agent.run(agent_prompt) | |
| st.session_state["generated_content"] = result | |
| st.subheader("Generated Content") | |
| st.write(result) | |
| except Exception as e: | |
| st.error("Error generating content.") | |
| else: | |
| st.warning("Please enter a valid prompt.") | |
| if "generated_content" in st.session_state: | |
| content = st.session_state["generated_content"] | |
| text_file_path, text_filename = save_as_text(content, "content.txt") | |
| pdf_file_path, pdf_filename = save_as_pdf(content, "content.pdf") | |
| with open(text_file_path, "rb") as file: | |
| st.download_button("Download as TXT", data=file, file_name=text_filename, mime="text/plain") | |
| with open(pdf_file_path, "rb") as file: | |
| st.download_button("Download as PDF", data=file, file_name=pdf_filename, mime="application/pdf") | |
| # Tab 2: Generate Summary | |
| with tabs[1]: | |
| st.header("Generate and View Summary") | |
| if "generated_content" in st.session_state: | |
| content = st.session_state["generated_content"] | |
| if st.button("Generate Summary"): | |
| with st.spinner("Generating summary..."): | |
| try: | |
| summary_prompt = f"Summarize the following content:\n{content}" | |
| summary = content_agent.run(summary_prompt) | |
| st.session_state["content_summary"] = summary | |
| st.subheader("Summary") | |
| st.markdown(summary) | |
| except Exception as e: | |
| st.error("Error generating summary.") | |
| if "content_summary" in st.session_state: | |
| summary = st.session_state["content_summary"] | |
| text_file_path, text_filename = save_as_text(summary, "summary.txt") | |
| pdf_file_path, pdf_filename = save_as_pdf(summary, "summary.pdf") | |
| with open(text_file_path, "rb") as file: | |
| st.download_button("Download Summary as TXT", data=file, file_name=text_filename, mime="text/plain") | |
| with open(pdf_file_path, "rb") as file: | |
| st.download_button("Download Summary as PDF", data=file, file_name=pdf_filename, mime="application/pdf") | |
| else: | |
| st.write("No content generated yet. Go to the first tab to create content.") | |
| # Tab 3: Agent Activity | |
| with tabs[2]: | |
| st.header("Agent Activity") | |
| if "generated_content" in st.session_state: | |
| st.write("**Prompt:**") | |
| st.code(prompt, language="text") | |
| st.write("**Generated Content:**") | |
| st.code(st.session_state["generated_content"], language="text") | |
| if "content_summary" in st.session_state: | |
| st.write("**Generated Summary:**") | |
| st.code(st.session_state["content_summary"], language="text") | |
| else: | |
| st.write("No activity to display.") |