Agent 18: Personal Finance Tracker Agent
১. এই এজেন্ট কী কাজ করবে?
মাস শেষে আমাদের মনে থাকে না যে টাকাগুলো কোথায় খরচ হলো। এই এজেন্টকে আপনি প্রতিদিন আপনার খরচের কথা (যেমন: "আজকে ২০০ টাকার বার্গার খেয়েছি আর ৫০০ টাকার ইন্টারনেট বিল দিলাম") টেক্সট বা ভয়েসে জানাবেন। সে নিজেই বুদ্ধি করে ক্যাটাগরি (Food, Utility) বানাবে এবং আপনার গুগল শিট বা এক্সেল ফাইলে সুন্দর করে হিসাব তুলে রাখবে।
২. কী কী টুলস এবং লাইব্রেরি লাগবে?
google-generativeai: আপনার টেক্সট থেকে টাকার পরিমাণ এবং খরচের খাত (Category) বের করার জন্য।pandas: হিসাবগুলো এক্সেলে সেভ করার জন্য।
৩. এ টু জেড কোড (A to Z Code)
নিচের কোডটি agent_finance_tracker.py নামে সেভ করুন।
import google.generativeai as genai
import pandas as pd
from datetime import date
import os
import json
class FinanceTrackerAgent:
def __init__(self, api_key):
genai.configure(api_key=api_key)
self.model = genai.GenerativeModel('gemini-1.5-flash')
self.excel_file = "my_expenses.xlsx"
def analyze_expense(self, user_input):
print(f"[Agent] হিসাব প্রসেস করা হচ্ছে: '{user_input}'")
prompt = f"""
Extract the expense details from the following sentence.
Output ONLY a JSON format like this: {{"amount": 200, "category": "Food", "description": "Burger"}}
If there are multiple expenses, combine them into a list of JSON objects.
Sentence: "{user_input}"
"""
response = self.model.generate_content(prompt)
try:
# AI থেকে আসা JSON টেক্সটকে পাইথন ডিকশনারিতে রূপান্তর
clean_json = response.text.replace('```json', '').replace('```', '').strip()
expense_data = json.loads(clean_json)
return expense_data
except:
print("[Agent] হিসাব বুঝতে সমস্যা হয়েছে। দয়া করে আবার বলুন।")
return None
def save_expense(self, expense_data):
if not expense_data: return
# যদি লিস্ট না হয়ে সিঙ্গেল আইটেম হয়, তবে লিস্ট বানিয়ে নিচ্ছি
if isinstance(expense_data, dict):
expense_data = [expense_data]
for exp in expense_data:
exp["Date"] = date.today().strftime("%Y-%m-%d")
df_new = pd.DataFrame(expense_data)
# যদি আগে থেকেই ফাইল থাকে, তবে তার সাথে যোগ করা
if os.path.exists(self.excel_file):
df_existing = pd.read_excel(self.excel_file)
df_combined = pd.concat([df_existing, df_new], ignore_index=True)
df_combined.to_excel(self.excel_file, index=False)
else:
df_new.to_excel(self.excel_file, index=False)
print("[Agent] সফলভাবে আপনার খরচের হিসাব এক্সেলে সেভ করা হয়েছে!")
if __name__ == "__main__":
API_KEY = "YOUR_GEMINI_API_KEY_HERE"
agent = FinanceTrackerAgent(API_KEY)
# আপনি সারাদিনের হিসাব একবারেও দিতে পারেন
my_expense = "আজকে সকালে রিকশা ভাড়া দিলাম ৫০ টাকা, দুপুরে ফুডপ্যান্ডায় পিজ্জা খেলাম ৪০০ টাকার আর কারেন্ট বিল আসলো ১২০০ টাকা।"
data = agent.analyze_expense(my_expense)
agent.save_expense(data)
৪. কীভাবে এটি আরও অ্যাডভান্সড করবেন?
- Google Sheets API (gspread) লাইব্রেরি ব্যবহার করে লোকাল এক্সেলের বদলে সরাসরি গুগল শিটে সেভ করাতে পারেন।
- Telegram Bot বানিয়ে নিলে, আপনি সারাদিন রাস্তায় বা বাইরে থাকলেও মোবাইল থেকে টেলিগ্রামে খরচটা লিখে দিলেই অটোমেটিক গুগল শিটে সেভ হয়ে যাবে!