gpt4 book ai didi

ruby - Botfather 分步机器人( Telegram/ ruby )

转载 作者:数据小太阳 更新时间:2023-10-29 08:07:25 26 4
gpt4 key购买 nike

我真的一直拖着自己不在这里问这个问题,但在谷歌搜索之后我觉得这是必要的。所以:

我正在尝试构建一个与 Telegram 中的 Botfather 具有相似结构的机器人。我想为使用我的机器人的用户启用逐步配置。所以如果我问“你的电子邮件是什么?”我希望他们自然而然地能够回答这个问题,我会知道他们回答了什么问题。这就是问题所在,我似乎无法找到一个好的结构来了解他们回答了哪个问题以及触发什么。我扫描过的每个机器人中的所有文档都简单地使用了这样的结构:

if message.text == 'london'
bot.api.send_message(chat_id: message.chat.id, text: 'Correct!')
end

当我不知道用户会写什么,或者如果我对不同的问题重复接受的答案时,这不是很有用。我试过使用回复和 ForceReply 等,但这也会创建一个奇怪的结构,并且在提要中看起来不像自然消息那样干净。

简单地说:我如何知道消息是否与问题一起出现然后触发了某些事情?

很抱歉,我的问题有些非结构化,希望你们中的某个人能回答我的问题。

最佳答案

在我的机器人中,我在数据库中创建了一个“TelegramChat”记录,并在“AwaitingReplyTo”字段中存储了对“问题”的引用和一些相关信息(例如需要更新的帐户 ID)。

类似于:

def ask_question(question):
...
telegram_chat_record(chat_id).awaiting_reply_to = "question:" + question
telegram_chat_record.save_to_db()
...

def dispatcher(update):
telegram_chat_record = get_telegram_chat_record(update)
if telegram_chat_record.awaiting_reply_to == "question:What is your favorite city?":
check_reply_to_favorite_city(update)
...

关于ruby - Botfather 分步机器人( Telegram/ ruby ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36261496/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com