Agent 11: Daily News Summarizer Agent
১. এই এজেন্ট কী কাজ করবে?
প্রতিদিন সকালে ঘুম থেকে উঠে অনেকগুলো নিউজ সাইট ঘাটার সময় আমাদের থাকে না। এই এজেন্ট প্রতিদিন আপনার পছন্দের নিউজ পোর্টাল (যেমন: টেকক্রাঞ্চ বা প্রথম আলো) থেকে লেটেস্ট খবরগুলো স্ক্র্যাপ করবে, AI ব্যবহার করে সেই বড় বড় খবরগুলোর ছোট একটি সামারি (Summary) তৈরি করবে এবং আপনাকে ইমেইল বা মেসেজে পাঠিয়ে দেবে।
২. কী কী টুলস এবং লাইব্রেরি লাগবে?
requestsএবংbeautifulsoup4: নিউজ সাইট থেকে খবরের টাইটেল ও লিংক আনার জন্য।google-generativeai: খবরগুলোর সামারি লেখার জন্য।
৩. এ টু জেড কোড (A to Z Code)
নিচের কোডটি agent_news_summarizer.py নামে সেভ করুন। (এখানে ডেমো হিসেবে BBC News এর RSS ফিড বা সরাসরি HTML থেকে টাইটেল নেওয়া হয়েছে)।
import requests
from bs4 import BeautifulSoup
import google.generativeai as genai
class DailyNewsAgent:
def __init__(self, api_key):
genai.configure(api_key=api_key)
self.model = genai.GenerativeModel('gemini-1.5-flash')
self.news_list = []
def fetch_top_news(self):
print("[Agent] আজকের তাজা খবর সংগ্রহ করা হচ্ছে...")
# উদাহরণ হিসেবে BBC News এর টেকনোলজি সেকশন
url = "https://www.bbc.com/news/technology"
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")
# ধরি, খবরের টাইটেলগুলো <h2> ট্যাগের ভেতরে আছে (BBC এর লেআউট অনুযায়ী)
headings = soup.find_all("h2")
for heading in headings[:5]: # শুধু টপ ৫টি খবর নেবো
title = heading.get_text(strip=True)
if len(title) > 10: # খুব ছোট বা অপ্রাসঙ্গিক টেক্সট বাদ দেওয়ার জন্য
self.news_list.append(title)
def generate_summary(self):
if not self.news_list:
print("[Agent] কোনো খবর পাওয়া যায়নি।")
return
print("[Agent] AI দিয়ে খবরের সারমর্ম তৈরি করা হচ্ছে...")
news_text = "\n".join([f"- {news}" for news in self.news_list])
prompt = f"""
You are a News Anchor. I have scraped the top 5 technology news headlines of today.
Please write a very short, engaging daily news briefing based on these headlines in Bengali (বাংলা).
Headlines:
{news_text}
"""
response = self.model.generate_content(prompt)
print("\n" + "="*50)
print("📰 আপনার আজকের নিউজ ব্রিফিং:")
print("="*50)
print(response.text)
print("="*50)
if __name__ == "__main__":
API_KEY = "YOUR_GEMINI_API_KEY_HERE"
agent = DailyNewsAgent(API_KEY)
agent.fetch_top_news()
agent.generate_summary()
৪. কীভাবে এটি আরও অ্যাডভান্সড করবেন?
- এটি শুধু টাইটেল নিয়ে সামারি করে। আপনি চাইলে প্রতিটি খবরের লিংকে ঢুকে পুরো প্যারাগ্রাফ স্ক্র্যাপ করে সেগুলোর ডিটেইলস সামারি করাতে পারেন।
- Telegram Bot API ব্যবহার করে প্রতিদিন সকাল ৮টায় এই সামারিটি আপনার টেলিগ্রাম নম্বরে অটোমেটিকভাবে পাঠানোর ব্যবস্থা করতে পারেন।