This commit is contained in:
Madhu 2025-01-26 20:13:28 +05:30
parent d93ad42c76
commit 8bb26cca49

View file

@ -1,37 +1,11 @@
import asyncio
import streamlit as st
from browser_use import Agent, SystemPrompt
from langchain_google_genai import ChatGoogleGenerativeAI
from langchain_openai import ChatOpenAI
from langchain_anthropic import ChatAnthropic
def create_ui() -> tuple[str, str]:
st.title("🎭 AI Meme Generator with Browser Use")
# Sidebar for API key
with st.sidebar:
st.header("Configuration")
api_key = st.text_input("Enter your Anthropic API Key:", type="password")
# Main content
st.info("""
🤖 This browser agent will help you generate loads of memes by going to imgflip.com and searching for the perfect template for your given query.
""")
query = st.text_input(
"What would you like to generate a meme for?",
placeholder="Example: India losing against New Zealand in the final of the world cup",
help="Try to be specific and include context for better results"
)
return api_key, query
async def generate_meme(query: str, api_key: str) -> None:
"""
Generates a meme using browser automation.
Args:
query (str): User's meme request
api_key (str): Anthropic API key
"""
async def generate_meme(query: str) -> None:
api_key = "sk-A" # Replace with your actual DeepSeek API key
llm = ChatAnthropic(
model="claude-3-5-sonnet-20240620",
api_key=api_key
@ -47,6 +21,7 @@ async def generate_meme(query: str, api_key: str) -> None:
"5. Check the preview making sure it is funny and a meaningful meme. Adjust text directly if needed. \n"
"6. Look at the meme and text on it, if it doesnt make sense, PLEASE retry by filling the text boxes with different text. \n"
"7. Click on the Generate meme button to generate the meme\n"
"8. Copy the image link and give it as the output\n"
).format(query)
agent = Agent(
@ -56,26 +31,9 @@ async def generate_meme(query: str, api_key: str) -> None:
max_failures=25
)
with st.spinner("🎨 Generating your meme... Please wait"):
await agent.run()
def main() -> None:
"""
Main function to run the Streamlit app.
"""
st.set_page_config(page_title="AI Meme Generator", page_icon="🎭")
api_key, query = create_ui()
if st.button("Generate Meme", disabled=not (api_key and query)):
if not api_key:
st.error("Please enter your Anthropic API key in the sidebar")
return
if not query:
st.error("Please enter what meme you'd like to generate")
return
asyncio.run(generate_meme(query, api_key))
history = await agent.run()
history.final_result()
if __name__ == '__main__':
main()
query = "Elon Musk bullying sam altman about trump winning the election"
asyncio.run(generate_meme(query))