如何使用 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
)
)
基本上,我从官方文档中获得了这段代码。我想要实现的是获取最接近用户输入的问答对列表。
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
)
)