* Aggiungi supporto per il bot Telegram: aggiorna .env.example, pyproject.toml e uv.lock * demo per bot Telegram con gestione comandi e inline keyboard * Implementazione del bot Telegram con gestione dei comandi e stati di conversazione iniziali * Aggiorna la gestione delle configurazioni nel bot Telegram: modifica gli stati della conversazione e aggiungi il supporto per la gestione dei messaggi. * fix static models & readme * aggiunto il supporto per la query dell'utente e modificata la visualizzazione dei messaggi di stato. * Aggiunto il supporto per la gestione del bot Telegram e aggiornata la configurazione del pipeline * Aggiornato .gitignore per includere la cartella .gradio e rimosso chroma_db. Aggiunto il supporto per la generazione di report in PDF utilizzando markdown-pdf nel bot Telegram. * Refactor pipeline and chat manager for improved structure and functionality * Better logging * Aggiornato il comportamento del logging per i logger di agno. Aggiunto il supporto per l'opzione check_for_async nella configurazione di RedditWrapper. * Rimosso codice commentato e import non utilizzati nella classe Pipeline per semplificare la struttura * Aggiornata la sezione "Applicazione" nel README & fix main * Telegram instance instead of static * Fix logging to use labels for team model, leader model, and strategy * Rinomina il lock da _lock a __lock per garantire l'incapsulamento nella classe AppConfig * Rinomina i logger per una migliore identificazione e gestisce le eccezioni nel bot di Telegram * Aggiorna i messaggi di errore nel gestore Telegram per una migliore chiarezza e modifica il commento nel file di configurazione per riflettere lo stato del modello. * Aggiungi un messaggio di attesa durante la generazione del report nel bot di Telegram
59 lines
2.0 KiB
Python
59 lines
2.0 KiB
Python
import os
|
|
from dotenv import load_dotenv
|
|
from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update
|
|
from telegram.ext import Application, CommandHandler, CallbackQueryHandler, MessageHandler, filters, ContextTypes
|
|
|
|
# Esempio di funzione per gestire il comando /start
|
|
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not update.message: return
|
|
await update.message.reply_text('Ciao! Inviami un messaggio e ti risponderò!')
|
|
|
|
|
|
# Esempio di funzione per fare echo del messaggio ricevuto
|
|
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
|
|
message = update.message
|
|
if not message: return
|
|
|
|
print(f"Ricevuto messaggio: {message.text} da chat id: {message.chat.id}")
|
|
await message.reply_text(text=f"Hai detto: {message.text}")
|
|
|
|
|
|
# Esempio di funzione per far partire una inline keyboard (comando /keyboard)
|
|
async def inline_keyboard(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
if not update.message: return
|
|
keyboard = [
|
|
[
|
|
InlineKeyboardButton("Option 1", callback_data='1'),
|
|
InlineKeyboardButton("Option 2", callback_data='2'),
|
|
]
|
|
]
|
|
reply_markup = InlineKeyboardMarkup(keyboard)
|
|
await update.message.reply_text('Please choose:', reply_markup=reply_markup)
|
|
|
|
|
|
async def button_handler(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|
query = update.callback_query
|
|
if not query: return
|
|
await query.answer()
|
|
await query.edit_message_text(text=f"Selected option: {query.data}")
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
print("Bot in ascolto...")
|
|
|
|
load_dotenv()
|
|
token = os.getenv("TELEGRAM_BOT_TOKEN", '')
|
|
app = Application.builder().token(token).build()
|
|
|
|
app.add_handler(CommandHandler("start", start))
|
|
app.add_handler(CommandHandler("keyboard", inline_keyboard))
|
|
app.add_handler(MessageHandler(filters=filters.TEXT, callback=echo))
|
|
app.add_handler(CallbackQueryHandler(button_handler))
|
|
|
|
app.run_polling(allowed_updates=Update.ALL_TYPES)
|
|
|
|
if __name__ == "__main__":
|
|
main() |