-
Notifications
You must be signed in to change notification settings - Fork 263
Description
Please be sure to check the Discussions Q&A section before filing a new question.
Question
The partner was attempting to invoke an Adaptive Card-based Task Module using the Teams AI SDK for Python but encountered the following error. I have shared the exact task_module_fetch method implementation we used for reference.
Traceback (most recent call last):
File "/Users/sgolebiewski/workspace/ca-ms-teams-integration/wip/SNOW-2144466-ac-payload/.venv/lib/python3.12/site-packages/msrest/serialization.py", line 494, in _serialize
is_xml_model_serialization = kwargs["is_xml"]
~~~~~~^^^^^^^^^^
KeyError: 'is_xml'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/sgolebiewski/workspace/ca-ms-teams-integration/wip/SNOW-2144466-ac-payload/.venv/lib/python3.12/site-packages/botbuilder/core/integration/aiohttp_channel_service_exception_middleware.py", line 21, in aiohttp_error_middleware
response = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sgolebiewski/workspace/ca-ms-teams-integration/ca-multi-channel-integrations-code-samples/teams-ai/04-task-modules/src/api.py", line 21, in on_messages
res = await app.process(req)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sgolebiewski/workspace/ca-ms-teams-integration/wip/SNOW-2144466-ac-payload/.venv/lib/python3.12/site-packages/teams/app.py", line 742, in process
return await self._adapter.process(request, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sgolebiewski/workspace/ca-ms-teams-integration/wip/SNOW-2144466-ac-payload/.venv/lib/python3.12/site-packages/teams/teams_adapter.py", line 101, in process
res = await super().process(
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sgolebiewski/workspace/ca-ms-teams-integration/wip/SNOW-2144466-ac-payload/.venv/lib/python3.12/site-packages/botbuilder/integration/aiohttp/cloud_adapter.py", line 108, in process
data=serializer_helper(invoke_response.body),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sgolebiewski/workspace/ca-ms-teams-integration/wip/SNOW-2144466-ac-payload/.venv/lib/python3.12/site-packages/botbuilder/core/serializer_helper.py", line 40, in serializer_helper
return serializer._serialize(object_to_serialize)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sgolebiewski/workspace/ca-ms-teams-integration/wip/SNOW-2144466-ac-payload/.venv/lib/python3.12/site-packages/msrest/serialization.py", line 496, in _serialize
is_xml_model_serialization = kwargs.setdefault("is_xml", target_obj.is_xml_model())
^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'is_xml_model
Code snippets
def build_simple_text_ac(text: str) -> dict:
return {
"type": "AdaptiveCard",
"$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.5",
"body": [
{
"type": "TextBlock",
"text": text,
"wrap": True
}
]
}
@app.task_modules.fetch("action_submit_task_module")
async def on_action_submit_task_module(context: TurnContext, _state: TurnState, data: dict) -> TaskModuleTaskInfo:
print(f"[on_action_submit_task_module] handler triggered: {data}")
# Respond with a task module response
return TaskModuleTaskInfo(
title="Action Submit Task Module",
height="medium",
width="medium",
card=CardFactory.adaptive_card(build_simple_text_ac("Task Module triggered by Action.Submit"))
)
here is AC example from my sample code:
{
"type": "AdaptiveCard",
"$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.5",
"msteams": {
"width": "Full"
},
"body": [
{
"type": "ActionSet",
"actions": [
{
"type": "Action.Submit",
"title": "Action.Submit",
"verb": "action_submit_task_module",
"data": {
"msteams": {
"type": "task/fetch",
"verb": "action_submit_task_module"
},
"verb": "action_submit_task_module",
"data_1": 123,
"data_2": "abc"
}
}
]
}
]
}
Note: please use this template to file your questions regarding implementation. Once your question is answered, our team will move this question to Q&A in Discussions for findability.
