DrishtiSharma's picture
Update interm.py
3b69057 verified
raw
history blame
4.44 kB
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 Content 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.")