飞书渠道剥离思维链内容,不显示<think>标签

This commit is contained in:
xiaoxixi 2026-05-08 16:19:19 +08:00
parent 5d62141658
commit ceb8234a30

View File

@ -1620,6 +1620,15 @@ impl Default for MdPatterns {
}
impl FeishuChannel {
fn strip_thinking_tags(content: &str) -> String {
use std::sync::LazyLock;
static THINK_RE: LazyLock<Regex> = LazyLock::new(|| {
Regex::new(r"(?s)<think>.*?</think>").unwrap()
});
let stripped = THINK_RE.replace_all(content, "");
stripped.trim().to_string()
}
/// Determine the optimal Feishu message format for content.
fn detect_msg_format(content: &str) -> MsgFormat {
let patterns = MdPatterns::new();
@ -2075,6 +2084,10 @@ impl Channel for FeishuChannel {
}
async fn send(&self, msg: OutboundMessage) -> Result<(), ChannelError> {
let msg = OutboundMessage {
content: Self::strip_thinking_tags(&msg.content),
..msg
};
let receive_id = if msg.chat_id.starts_with("oc_") { &msg.chat_id } else { &msg.reply_to.as_ref().unwrap_or(&msg.chat_id) };
let receive_id_type = if msg.chat_id.starts_with("oc_") { "chat_id" } else { "open_id" };