如何为 python sdk 的 Bot 框架格式化输出消息?

How to format output messages for Bot-framework for python sdk?

我正在尝试使用自定义函数的输出作为聊天机器人输出的消息。我正在使用此 link.

中提供的示例 cookiecutter echo 模板

有哪些方法可用于格式化聊天中可见的输出。例如粗体、斜体等。还有我如何使用不同的格式。将来 my_foo 的输出将是 json。

Echo Bot Python sdk template

自定义函数

def my_foo(text):
     return text.upper()

机器人功能

class MyBot(ActivityHandler):
    # See https://aka.ms/about-bot-activity-message to learn more about the message and other activity types.

    async def on_message_activity(self, turn_context: TurnContext):
        await turn_context.send_activity(f"Upper Case  { my_foo(turn_context.activity.text }")

    async def on_members_added_activity(
        self,
        members_added: ChannelAccount,
        turn_context: TurnContext
    ):
        for member_added in members_added:
            if member_added.id != turn_context.activity.recipient.id:
                await turn_context.send_activity("Hello and welcome!")

如果有说明这个的文档或者可以参考的一些基本步骤就完美了。

有关在 Teams 中设置消息格式的所有信息都是 right here。您使用 Markdown 或 XML。我正在向您展示如何设置活动的可选 text_format 属性,但 Teams 足够聪明,可以推断格式,即使您没有设置 属性.

from botbuilder.schema import TextFormatTypes

. . .

async def on_message_activity(self, turn_context: TurnContext):
    markdown_reply = MessageFactory.text(
        f"Here is *italic* and **bold** with Markdown")
    xml_reply = MessageFactory.text(
        f"Here is <i>italic</i> and <b>bold</b> with XML")

    # markdown_reply.text_format = TextFormatTypes.markdown
    # xml_reply.text_format = TextFormatTypes.xml

    await turn_context.send_activity(markdown_reply)
    await turn_context.send_activity(xml_reply)