Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import google.generativeai as genai | |
| from dotenv import load_dotenv | |
| from bs4 import BeautifulSoup | |
| import requests | |
| import os | |
| # Set your Gemini API key from environment variable | |
| genai.configure(api_key=os.environ["GEMINI_API_KEY"]) | |
| headers = { | |
| "User-Agent": "Mozilla/5.0" | |
| } | |
| class Website: | |
| def __init__(self, url): | |
| self.url = url | |
| response = requests.get(url, headers=headers) | |
| soup = BeautifulSoup(response.content, 'html.parser') | |
| self.title = soup.title.string if soup.title else "No title found" | |
| for irrelevant in soup.body(["script", "style", "img", "input"]): | |
| irrelevant.decompose() | |
| self.text = soup.body.get_text(separator="\n", strip=True) | |
| def generate_brochure(url): | |
| site = Website(url) | |
| system_prompt = ( | |
| "You are an assistant that analyzes the contents of a website " | |
| "and provides a short summary, ignoring text that might be navigation-related. " | |
| "Respond in markdown." | |
| ) | |
| user_prompt = ( | |
| f"You are looking at a website titled '{site.title}'. " | |
| "The contents of this website are as follows. " | |
| "Please provide a short summary of this website in markdown. " | |
| "If it includes news or announcements, then summarize those too.\n\n" | |
| f"{site.text}" | |
| ) | |
| model = genai.GenerativeModel("gemini-2.5-pro") | |
| response = model.generate_content([system_prompt, user_prompt]) | |
| return response.text | |
| def chat_interface_function(msg, history): | |
| return generate_brochure(msg) | |
| gr.ChatInterface( | |
| fn=chat_interface_function, | |
| chatbot=gr.Chatbot( | |
| label = 'Gemini Summary', | |
| type="messages", | |
| avatar_images=["user_avatar.png", "bot_avatar.png"] | |
| ), | |
| theme="soft", | |
| title="Brochure Generator", | |
| description="Paste a **URL** in a correct way and press Enter to get a **markdown-style summary** of the site.", | |
| submit_btn="Generate Brochure", | |
| examples=[ | |
| "https://www.alraya-store.com/", | |
| "https://www.apple.com" | |
| ] | |
| ).launch() | |