Добавить многооборотную подсказку в чате? - PullRequest
1 голос
/ 24 марта 2020

Я добавил многооборотную подсказку в Qna Maker. Он отображает гиперссылки в виде кнопок в QnAmaker, но не в веб-чате. Есть ли способ отобразить их на канале чата?

Примечание: я нашел nodejs решение этой проблемы, но я ищу python способ.

Вот мой текущий код:

from botbuilder.ai.qna import QnAMaker, QnAMakerEndpoint
from botbuilder.core import ActivityHandler, MessageFactory, TurnContext
from botbuilder.schema import ChannelAccount

from config import DefaultConfig


class QnABot(ActivityHandler):
    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,
            )
        )

    async def on_members_added_activity(
        self, members_added: [ChannelAccount], turn_context: TurnContext
    ):
        for member in members_added:
            if member.id != turn_context.activity.recipient.id:
                await turn_context.send_activity(
                    "Hi I am your Engineering Bot! Ask me a question and I will try "
                    "to answer it."
                )

    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 and len(response) > 0:
            await turn_context.send_activity(MessageFactory.text(response[0].answer))
        else:
            await turn_context.send_activity("No QnA Maker answers were found.")

Спасибо !!

1 Ответ

0 голосов
/ 04 апреля 2020

Bot Framework в настоящее время еще не имеет работающего семповорота QnA в Python. Здесь работает пример:

https://github.com/microsoft/BotBuilder-Samples/tree/trboehre/python-49.qnamaker-all-features/samples/python/49.qnamaker-all-features

Поскольку сейчас активно работает SDK Python, возможно, библиотека здесь не имеет правильных методов для возврата того, есть ли у вопроса ответ на запрос о последующих действиях (он же многооборотный). Следите за Python SDK для дальнейшей работы!

...