Spaces:
Running
Running
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 |