AforativeBot / app.py
measmonysuon's picture
Update app.py
0f35c73 verified
raw
history blame
3.1 kB
import telebot
import google.generativeai as genai
import logging
import requests
import gradio as gr
# Configuration
GOOGLE_API_KEY = 'AIzaSyAYXUMnwmR4nUGDCs97FJJsafcQAPAAuzE'
BOT_TOKEN = '7484321656:AAFaswxTqaSHu_s4jd_pk2Q2OJJWYcWHwAM'
WEBHOOK_URL = f"https://measmonysuon-flyingbird.hf.space/webhooks/handle_update"
# Initialize the Telegram bot
bot = telebot.TeleBot(BOT_TOKEN)
# Configure logging
logging.basicConfig(
level=logging.DEBUG,
format='%(asctime)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler('bot_debug.log'),
logging.StreamHandler()
]
)
logger = logging.getLogger(__name__)
# Set up Google Generative AI
genai.configure(api_key=GOOGLE_API_KEY)
generation_config = {
"temperature": 1,
"top_p": 0.95,
"top_k": 64,
"max_output_tokens": 8192,
"response_mime_type": "text/plain",
}
model = genai.GenerativeModel(
model_name="gemini-1.5-pro",
generation_config=generation_config,
system_instruction="Please respond to user input"
)
chat_session = model.start_chat(
history=[
{"role": "user", "parts": ["hi\n"]},
{"role": "model", "parts": ["Hello! πŸ‘‹ How can I help you today? 😊 \n"]},
{"role": "user", "parts": ["I am looking for photo booth service?"]},
{"role": "model", "parts": ["That's great! πŸŽ‰ I can definitely help you with information about Aforative Media's photo booth services. \n\nTo give you the most relevant information, could you tell me a little more about what you're looking for? ..."]},
{"role": "user", "parts": ["How much for photo booth services?"]},
{"role": "model", "parts": ["You're smart to ask about pricing upfront! πŸ˜‰ \n\nAforative Media's Mr. & Ms. Booth photo booth services start at **USD 390 for a minimum of 2 hours**. ..."]},
{"role": "user", "parts": ["How about videography service?"]},
{"role": "model", "parts": ["You're thinking about capturing the memories on film too? Excellent choice! Videography adds a whole other dimension to remembering special events. \n\nAforative Media offers excellent videography services, and just like their photo booths, their videography packages are competitively priced and flexible. ..."]},
]
)
def generate_response(user_input):
"""Generate a response using Google Generative AI."""
try:
prompt = f"Respond to the user: {user_input}"
response = chat_session.send_message(prompt) # Generate response using text and prompt
response_text = response.text
return response_text
except Exception as e:
logger.error(f"Error during GenAI processing: {e}")
return "Sorry, I can't answer this query right now but I will improve from time to time."
# Define Gradio interface
def gradio_handle_update(user_input):
return generate_response(user_input)
iface = gr.Interface(
fn=gradio_handle_update,
inputs=gr.Textbox(label="User Input"),
outputs=gr.Textbox(label="Bot Response"),
live=True
)
if __name__ == "__main__":
iface.launch() # Launch the Gradio app