|
import logging |
|
import os |
|
import requests |
|
from telegram import Update |
|
from telegram.ext import Application, CommandHandler, MessageHandler, filters |
|
|
|
|
|
|
|
logging.basicConfig(level=logging.INFO) |
|
|
|
|
|
|
|
TOKEN = os.getenv("TELEGRAM_BOT_TOKEN") |
|
if not TOKEN: |
|
raise ValueError("Missing Telegram Bot Token. Please set TELEGRAM_BOT_TOKEN in environment variables.") |
|
|
|
|
|
|
|
API_URL = "https://demaking-decision-helper-bot.hf.space/ask" |
|
|
|
|
|
|
|
def get_response_from_api(user_text): |
|
try: |
|
response = requests.post(API_URL, json={"text": user_text}) |
|
if response.status_code == 200: |
|
return response.json().get("response", "Error: No response received") |
|
else: |
|
return "Error: API request failed" |
|
except Exception as e: |
|
logging.error(f"Error connecting to API: {e}") |
|
return "Error: Could not connect to the server" |
|
|
|
|
|
|
|
def handle_message(update: Update): |
|
user_text = update.message.text |
|
response = get_response_from_api(user_text) |
|
update.message.reply_text(response) |
|
|
|
|
|
|
|
def start(update: Update): |
|
update.message.reply_text("Hello! Tell me your Decision-Making issue in HE or EN, and I'll try to help you.") |
|
|
|
|
|
|
|
def run_telegram_bot(): |
|
app = Application.builder().token(TOKEN).build() |
|
|
|
app.add_handler(CommandHandler("start", start)) |
|
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message)) |
|
|
|
app.run_polling() |
|
|
|
|
|
if __name__ == "__main__": |
|
run_telegram_bot() |
|
|