You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pyrogram是否支持类似AIOGram实现的FSM(有限状态机)功能?

Pyrogram是否内置FSM功能?
  • Pyrogram核心库本身**没有内置FSM(有限状态机)**功能,官方文档也未提及相关原生支持。
  • 若需FSM功能,可通过两种方式实现:
    1. 使用第三方扩展库:比如专门适配Pyrogram的pyrogram-fsm,能直接与Pyrogram集成,提供成熟的状态管理能力。
    2. 自行实现简易状态管理:利用Pyrogram的会话存储或自定义字典维护用户状态,以下是一个极简示例:
      from pyrogram import Client, filters
      
      # 用字典存储用户状态,键为用户ID,值为当前状态标识
      user_states = {}
      
      app = Client("my_bot_account")
      
      @app.on_message(filters.command("start"))
      async def init_conversation(client, message):
          user_states[message.from_user.id] = "waiting_for_name"
          await message.reply("请输入你的名字:")
      
      @app.on_message(filters.text & ~filters.command)
      async def handle_user_input(client, message):
          user_id = message.from_user.id
          if user_id not in user_states:
              await message.reply("请先发送 /start 开启对话")
              return
      
          current_state = user_states[user_id]
          if current_state == "waiting_for_name":
              await message.reply(f"你好,{message.text}!接下来请输入你的年龄:")
              user_states[user_id] = "waiting_for_age"
          elif current_state == "waiting_for_age":
              await message.reply(f"已记录你的年龄:{message.text},信息收集完成!")
              del user_states[user_id]
      
      app.run()
      

内容的提问来源于stack exchange,提问作者dinnerchief

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 13:55:40