Team Ai
Apppublic

developerscriptorax/ByteBot

sourceHugging Faceapache-2.0updated 5mo agoView on Hugging Face
0likes
streamlit_app.py98 linesDownload Raw Back to src
1import streamlit as st2import google.generativeai as genai3import os4import time5 6# ১. পেজ কনফিগারেশন এবং প্রিমিয়াম টাইটেল সেটআপ7st.set_page_config(page_title="ByteBot VIP AGENT", page_icon="⚡", layout="centered")8 9# CSS দিয়ে প্রিমিয়াম লুক, গ্লোয়িং অ্যানিমেশন এবং সুন্দর বর্ডার সেটআপ10st.markdown("""11    <style>12    @keyframes pulse {13        0% { box-shadow: 0 0 0 0 rgba(255, 75, 75, 0.7); }14        70% { box-shadow: 0 0 0 10px rgba(255, 75, 75, 0); }15        100% { box-shadow: 0 0 0 0 rgba(255, 75, 75, 0); }16    }17    .premium-header {18        background: linear-gradient(45deg, #1e1e2f, #2d2d44);19        padding: 20px;20        border-radius: 15px;21        border-left: 5px solid #FF4B4B;22        margin-bottom: 25px;23        animation: pulse 2s infinite;24    }25    </style>26""", unsafe_allow_html=True)27 28# ২. প্রিমিয়াম সাইডবার কন্ট্রোল প্যানেল (মোবাইলে ওপরের বামে '>' চিহ্নে ক্লিক করলে দেখা যাবে)29with st.sidebar:30    st.markdown("<h2 style='text-align: center; color: #FF4B4B;'>⚡ ByteBot CORE V2</h2>", unsafe_allow_html=True)31    st.write("---")32    gemini_api_key = st.text_input("Enter Gemini API Key", type="password", help="গুগল এআই স্টুডিওর এপিআই কি দিন")33    st.write("---")34    st.success("🤖 Agent Status: Active")35    st.info("💡 টিপস: এই এজেন্টটি এখন যেকোনো রিয়েল-টাইম কোডিং ও প্রজেক্ট সলিউশন দিতে পারে।")36 37# ৩. মেইন স্ক্রিন ডিজাইন38st.markdown("""39    <div class='premium-header'>40        <h1 style='color: white; margin:0;'>🤖 ByteBot Premium AI Agent</h1>41        <p style='color: #b0b0bc; margin:5px 0 0 0;'>⚡ Experience the Ultimate Next-Gen Intelligence</p>42    </div>43""", unsafe_allow_html=True)44 45# চ্যাট মেমরি সেশন চালু করা46if "messages" not in st.session_state:47    st.session_state["messages"] = [{"role": "assistant", "content": "How can I help you today, chief?"}]48 49# আগের মেসেজগুলো স্ক্রিনে সুন্দর আইকনসহ শো করা50for msg in st.session_state.messages:51    avatar = "👤" if msg["role"] == "user" else "🤖"52    st.chat_message(msg["role"], avatar=avatar).write(msg["content"])53 54# ৪. ইউজার ইনপুট ও এরর ফ্রি জেমিনি কানেকশন55if prompt := st.chat_input("এজেন্টকে কিছু বলুন..."):56    if not gemini_api_key:57        st.info("Please add your Gemini API key in the sidebar to continue.")58        st.stop()59 60    # ইউজারের মেসেজ স্ক্রিনে দেখানো61    st.session_state.messages.append({"role": "user", "content": prompt})62    st.chat_message("user", avatar="👤").write(prompt)63 64    # জেমিনি কনফিগারেশন (৪MD এবং v1beta এরর ফিক্স করার জন্য সঠিক মডেল নেম)65    genai.configure(api_key=gemini_api_key)66    67    # এরর ফিক্স করতে আমরা এখানে অফিশিয়াল "models/gemini-pro" ব্যবহার করছি যা ১০০% ওয়ার্কিং68    model = genai.GenerativeModel("models/gemini-pro")69 70    # মেসেজ হিস্ট্রি ফরম্যাট করা71    formatted_history = [72        {"role": "user" if m["role"] == "user" else "model", "parts": [m["content"]]}73        for m in st.session_state.messages[:-1]74    ]75 76    with st.chat_message("assistant", avatar="🤖"):77        # প্রিমিয়াম টাইপিং স্পিনার অ্যানিমেশন78        with st.spinner("Agent is analyzing and generating response..."):79            try:80                chat = model.start_chat(history=formatted_history)81                response = chat.send_message(prompt)82                msg_text = response.text83                84                # টাইপিং ইফেক্ট অ্যানিমেশন (ধীরে ধীরে টেক্সট আসা)85                placeholder = st.empty()86                full_response = ""87                for chunk in msg_text.split(" "):88                    full_response += chunk + " "89                    time.sleep(0.05)90                    placeholder.markdown(full_response + "▌")91                placeholder.markdown(full_response)92 93                # মেমরিতে সেভ94                st.session_state.messages.append({"role": "assistant", "content": msg_text})95                96            except Exception as e:97                st.error(f"API Error: {str(e)}")98