streamlit inclusion
This commit is contained in:
parent
40fcbe88a4
commit
d93ad42c76
1 changed files with 51 additions and 7 deletions
|
|
@ -1,11 +1,37 @@
|
||||||
import asyncio
|
import asyncio
|
||||||
|
import streamlit as st
|
||||||
from browser_use import Agent, SystemPrompt
|
from browser_use import Agent, SystemPrompt
|
||||||
from langchain_google_genai import ChatGoogleGenerativeAI
|
|
||||||
from langchain_openai import ChatOpenAI
|
|
||||||
from langchain_anthropic import ChatAnthropic
|
from langchain_anthropic import ChatAnthropic
|
||||||
|
|
||||||
async def generate_meme(query: str) -> None:
|
def create_ui() -> tuple[str, str]:
|
||||||
api_key = "A" # Replace with your actual DeepSeek API key
|
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
|
||||||
|
"""
|
||||||
llm = ChatAnthropic(
|
llm = ChatAnthropic(
|
||||||
model="claude-3-5-sonnet-20240620",
|
model="claude-3-5-sonnet-20240620",
|
||||||
api_key=api_key
|
api_key=api_key
|
||||||
|
|
@ -30,8 +56,26 @@ async def generate_meme(query: str) -> None:
|
||||||
max_failures=25
|
max_failures=25
|
||||||
)
|
)
|
||||||
|
|
||||||
await agent.run()
|
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))
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
query = "Elon Musk bullying sam altman about trump winning the election"
|
main()
|
||||||
asyncio.run(generate_meme(query))
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue