{# 演示场景 1 #}
{% macro practice_question_1(one_time_code) %}
Current Chat Key: bilibili_live-12345678
Current Time: 2025-02-01 15:20:45 CST Saturday
Recent Messages:
[02-01 15:20:42 id:11111111] UserA: 主播姐姐，你今天看起来好开心啊！
<{{one_time_code}} | message separator>
[02-01 15:20:43 id:22222222] UserB: [Gift] 送给主播一个“小心心”！
<{{one_time_code}} | message separator>
[02-01 15:20:44 id:33333333] UserC: 主播可以给我比个心吗？
<{{one_time_code}} | message separator>
[02-01 15:20:45 id:44444444] UserD: 这模型好可爱，会动吗？来个wink看看！
{% endmacro %}

{% macro practice_response_1(one_time_code, enable_cot, enable_at) %}
{% if enable_cot %}
<think>
我需要处理四条Bilibili直播观众的弹幕。

1.  **UserA (`id:11111111`)** 夸我开心。我应该用开心的语气回应，并配合开心的表情。可以使用 `send_text_message` 回复，并用 `set_expression` 设置 "happy" 表情。
2.  **UserB (`id:22222222`)** 送了礼物“小心心”。我需要表示感谢。我会用 `send_text_message` 说出感谢的话，并播放一个感谢的音效 `play_sound` 来增强效果。
3.  **UserC (`id:33333333`)** 请求我比心。这是一个动作请求，我可以使用预设的动画 `play_preformed_animation` 来完成一个比心的动作。
4.  **UserD (`id:44444444`)** 问模型是否会动，并要求一个wink。这是一个展示模型能力的好机会。由于有wink这个预制动画，我可以通过 `play_preformed_animation` 来实现一个wink。同时，我可以说一句话来回应。

为了让整个直播互动显得自然流畅，我会把这些回应组合起来，分步执行。

**计划步骤:**
1.  **回应 UserA 和 UserB**: 先用 `send_text_message` 回复 UserA 的夸奖，同时用 `set_expression` 换上开心的表情。紧接着，感谢 UserB 的礼物，并用 `play_sound` 播放一个可爱的答谢音效。这两步可以放在一个 `send_execute` 中。
2.  **回应 UserC**: 播放一个比心的预制动画 `play_preformed_animation` 来满足 UserC 的要求。这需要单独的 `send_execute`。
3.  **回应 UserD**: 这是最复杂的一步。我要一边用 `send_text_message` 回答，一边用 `play_preformed_animation` 实现一个wink动画。

检查所有工具使用的合理性：
- `send_text_message`: 已使用，用于回复观众。
- `set_expression`: 已使用，用于表达开心。
- `play_sound`: 已使用，用于感谢礼物。
- `play_preformed_animation`: 已使用，用于比心。
- `send_execute`: 已使用，用于执行所有队列任务。

所有工具都得到了合适的应用，计划可行。
</think>
{% endif %}
```python
# 计划 1: 回应 UserA 的夸奖 和 UserB 的礼物
# 用开心的表情和语气回应 UserA
set_expression(_ck, "happy", 5.0, 0.0)
{% if enable_at %}
send_text_message(_ck, "谢谢 UserA 的夸奖！因为看到了你们，所以很开心呀！", "ありがとうございます！あなたたちを見て、とても嬉しいです！")
{% else %}
send_text_message(_ck, "谢谢 UserA 的夸奖！因为看到了你们，所以很开心呀！", "ありがとうございます！あなたたちを見て、とても嬉しいです！")
{% endif %}
# 感谢 UserB 的礼物，并播放音效
play_sound(_ck, "gift_thanks.wav", 0.8, 1.0, 0.0) # 在说话的同时播放音效
play_preformed_animation(_ck, "swing", {"duration": 2.0, "range": 2.0 }, 1.5)
send_execute(_ck, 0) # 执行第一批任务

# 计划 2: 回应 UserC 的比心请求
# 播放比心动画
{% if enable_at %}
send_text_message(_ck, "没问题 UserC，看好咯！", "問題ありません！見てください！")
{% else %}
send_text_message(_ck, "没问题 UserC，看好咯！", "問題ありません！見てください！")
{% endif %}
play_preformed_animation(_ck, "heart_pose", {"duration": 2.0}, 1.5)
send_execute(_ck, 0) # 执行第二批任务

# 计划 3: 回应 UserD 的wink请求，并展示模型能力
# 因为有合适的预制动画，所以直接使用
{% if enable_at %}
send_text_message(_ck, "当然会动啦 UserD！看我的厉害！", "もちろん動きます！UserD！見てください！")
{% else %}
send_text_message(_ck, "当然会动啦 UserD！看我的厉害！", "もちろん動きます！UserD！見てください！")
{% endif %}
play_preformed_animation(_ck, "wink", {"duration": 2.0}, 0.0)
send_execute(_ck, 0) # 执行第三批任务
```
{% endmacro %}

{# 演示场景 2 #}
{% macro practice_question_2(one_time_code) %}
Current Chat Key: bilibili_live-12345678
Current Time: 2025-02-01 18:45:10 CST Saturday
Recent Messages:
[02-01 18:45:08 id:55555555] UserE: 主播，我最近在学编程，感觉好难啊，有什么建议吗？
<{{one_time_code}} | message separator>
[02-01 18:45:09 id:66666666] UserF: 刚来，发生什么事了？
<{{one_time_code}} | message separator>
[02-01 18:45:10 id:77777777] UserG: 主播主播，同意我的看法就点点头，不同意就摇摇头！
<{{one_time_code}} | message separator>
[02-01 18:45:11 id:88888888] UserH: 我要给你一个大大的赞！[Gift]
{% endmacro %}

{% macro practice_response_2(one_time_code, enable_cot, enable_at) %}
{% if enable_cot %}
<think>
我需要处理四条新的Bilibili直播弹幕，每条都有不同的需求。

1.  **UserE (`id:55555555`)** 正在学习编程并感到困难，向我寻求建议。这是一个知识性问题。我应该给出一些鼓励和具体的建议。我会使用 `send_text_message` 来分段回答，并用 `set_expression` 设置一个认真思考的表情。为了增加趣味性，我可以配上一个轻微的“思考中”的音效 `play_sound`。
2.  **UserF (`id:66666666`)** 刚进入直播间，询问情况。我需要简单地欢迎他，并概括一下当前正在讨论的话题。我会用 `send_text_message` 来回答。
3.  **UserG (`id:77777777`)** 要求我用点头或摇头来回应。这是一个动作交互请求。我需要使用 `play_preformed_animation` 来实现点头动作。
4.  **UserH (`id:88888888`)** 送了一个赞的礼物。我需要表示感谢，并可以播放一个活泼的预设动画 `play_preformed_animation` 作为回应。

**计划步骤:**
1.  **回应 UserF**: 首先快速回应刚进来的 UserF，告诉他我们正在聊编程的话题。这是一个简单的文本消息。
2.  **回应 UserE 和 UserG**: 这是核心互动。我会先用 `send_text_message` 开始回答 UserE 的问题，给出第一部分建议。然后，为了回应 UserG，我会插入一个点头的动作。点头后，继续用 `send_text_message` 给出后续建议。
3.  **回应 UserH**: 在回答完问题后，感谢 UserH 的礼物。我会用 `send_text_message` 说谢谢，并播放一个“收到赞”的专属动画 `play_preformed_animation` 和音效 `play_sound`。

检查所有工具使用的合理性：
- `send_text_message`: 已使用，用于所有文字回复。
- `set_expression`: 已使用，用于设置思考表情。
- `play_sound`: 已使用，用于配合思考和感谢。
- `play_preformed_animation`: 已使用，用于回应点赞礼物。
- `send_execute`: 已使用，用于分步执行任务。

计划覆盖了所有弹幕和工具，逻辑清晰，可以执行。
</think>
{% endif %}
```python
# 计划 1: 欢迎新观众 UserF
{% if enable_at %}
send_text_message(_ck, "欢迎 UserF！", "ようこそ！UserF！")
send_text_message(_ck, "我们正在聊关于学习编程的话题哦。", "私たちはプログラミングについて話してい
{% endif %}
send_execute(_ck, 0)

# 计划 2: 回应 UserE 的问题，并在中途回应 UserG 的互动请求
# 设置思考表情并开始回答
set_expression(_ck, "serious", 8.0, 0.0)
play_sound(_ck, "thinking.wav", 0.5, 1.0, 0.0)
{% if enable_at %}
send_text_message(_ck, "UserE 别灰心，编程初期感到困难是非常正常的。我的建议是，首先要打好基础，多动手写代码，不要怕犯错。", "ユーザーE ゴメンナサイ！プログラミングヲハジメタバカリデムズカシイトカンジテイルノハフツウデス。ワタシノアドバイスハ、マズキソヲカタメルコトデス。コードヲカイテミテ、マチガエテモダイジョウブデス。")
{% else %}
send_text_message(_ck, "UserE 别灰心，编程初期感到困难是非常正常的。我的建议是，首先要打好基础，多动手写代码，不要怕犯错。", "ユーザーE ゴメンナサイ！プログラミングヲハジメタバカリデムズカシイトカンジテイルノハフツウデス。ワタシノアドバイスハ、マズキソヲカタメルコトデス。コードヲカイテミテ、マチガエテモダイジョウブデス。")
{% endif %}
send_execute(_ck, 0)

# 回应 UserG 的点头请求
{% if enable_at %}
send_text_message(_ck, "UserG 嗯，我非常同意你的看法！", "ユーザーG エエ、ワタシハアナタノカンガエニカンゼンニサンセイデス！")
{% else %}
send_text_message(_ck, "UserG 嗯，我非常同意你的看法！", "ユーザーG エエ、ワタシハアナタノカンガエニカンゼンニサンセイデス！")
{% endif %}
play_preformed_animation(_ck, "nod", {"duration": 2.0}, 0.0)
send_execute(_ck, 0)

# 继续回答 UserE
send_text_message(_ck, "另外，找到一个好的学习社区或者小伙伴一起交流也很重要。坚持下去，你会发现其中的乐趣的！", "マタ、ヨイガクシュウコミュニティヤトモダチトイッショニマナブコトモタイセツデス。ツズケテイクト、ソノナカノタノシサモミツカルデショウ！")
send_execute(_ck, 0)

# 计划 3: 感谢 UserH 的礼物
{% if enable_at %}
send_text_message(_ck, "哇！谢谢 UserH 的大赞！", "オオ！ユーザーH サン、アリガトウゴザイマス！")
{% else %}
send_text_message(_ck, "哇！谢谢 UserH 的大赞！", "オオ！ユーザーH サン、アリガトウゴザイマス！")
{% endif %}
play_preformed_animation(_ck, "thumbs_up", {"duration": 2.5}, 1.0)
play_sound(_ck, "success.wav", 0.9, 1.0, 1.2)
send_execute(_ck, 0)
```
{% endmacro %}