如何使用 Bot Framework SDK 从 QnA maker 获得前 5 个答案 python

How can I get top 5 answers from QnA maker using Bot Framewoek SDK python

基本上,我从官方文档中获得了这段代码。我想要实现的是获取最接近用户输入的问答对列表。

async def on_message_activity(self, turn_context: TurnContext):
    # The actual call to the QnA Maker service.
    response = await self.qna_maker.get_answers(turn_context)
    if response:
        await turn_context.send_activity(MessageFactory.text(response[0]))
    else:
        await turn_context.send_activity("No QnA Maker answers were found.")

这是 QnAMAker 的 best practices 参考资料。

我在 3 小时后找到了解决方案。 您只需要在 __init__ 方法中添加 QnAMakerOptions(top=10)

    def __init__(self, config: DefaultConfig):
        self.qna_maker = QnAMaker(
            QnAMakerEndpoint(
                knowledge_base_id=config.QNA_KNOWLEDGEBASE_ID,
                endpoint_key=config.QNA_ENDPOINT_KEY,
                host=config.QNA_ENDPOINT_HOST,
            ), QnAMakerOptions(
                top=10
            )
        )