当前位置: 首页 > news >正文

典籍指数问答模块回答格式修改

1.目标:将AI回答变为类似网上AI一样<think>部分可收缩且显示灰色

2.代码实现:

消息内容渲染部分:

 <div v-if="hasThinkContent(msg.content)" class="think-container"><div class="think-toggle"@click="toggleThink(msg.id)">{{ showThink[msg.id] ? '▲ 隐藏思考过程' : '▼ 显示AI思考过程' }}</div><div v-if="showThink[msg.id]"class="think-content"v-html="formatThinkContent(msg.content)"></div></div><!-- 显示正式回答 --><div class="ai-answer">{{ extractFinalAnswer(msg.content) }}</div></template>

在script部分添加:

// 新增响应式状态
const showThink = ref({})// 新增工具方法
const hasThinkContent = (content) => {return /<think>/.test(content)
}const extractFinalAnswer = (content) => {return content.replace(/<think>[\s\S]*<\/think>/, '').trim()
}const formatThinkContent = (content) => {const match = content.match(/<think>([\s\S]*)<\/think>/)if (match) {return match[1].replace(/\n/g, '<br>').replace(/ {2}/g, '&nbsp;&nbsp;')}return ''
}const toggleThink = (msgId) => {showThink.value[msgId] = !showThink.value[msgId]
}

添加样式:

.think-container {margin-bottom: 8px;border-radius: 4px;overflow: hidden;
}.think-toggle {font-size: 12px;color: #666;background-color: #f5f5f7;padding: 4px 8px;cursor: pointer;user-select: none;transition: background-color 0.2s;
}.think-toggle:hover {background-color: #ebebed;
}.think-content {font-size: 12px;color: #666;background-color: #f8f9fa;padding: 8px 12px;line-height: 1.5;border-left: 3px solid #e0e0e0;white-space: pre-wrap;
}.ai-answer {font-size: 14px;line-height: 1.6;color: #333;white-space: pre-wrap;
}

3.效果展示

http://www.dtcms.com/a/189130.html

相关文章:

  • 深入浅出:C++数据处理类与计算机网络的巧妙类比
  • 嵌入式学习--江协51单片机day5
  • PostgreSQL 配置设置函数
  • SQL Server中delete table和truncate table删除全表数据哪个快?
  • 文件操作: File 类的用法和 InputStream, OutputStream 的用法
  • 基于SSM实现的健身房系统功能实现十六
  • 操作系统导论——第29章 基于锁的并发数据结构
  • 代理IP的核心原理:从请求转发到匿名性实现
  • 如何界定合法收集数据?
  • 消息~组件(群聊类型)ConcurrentHashMap发送
  • 嵌入式学习笔记 - 头文件重复包含问题
  • React百日学习计划——Deepseek版
  • C++ 基础知识
  • Codeforces Round 997 (Div. 2)
  • JAVA实战开源项目:乐享田园系统 (Vue+SpringBoot) 附源码
  • Nesa测试网 验证者节点部署教程
  • Java后端开发day48--反射动态代理
  • Easysearch 时序数据的基于时间范围的合并策略
  • 2025年5月13日第一轮
  • 深入浅出MySQL 8.0:新特性与最佳实践
  • 2025年大一ACM训练-二分
  • TCP协议详细讲解及C++代码实例
  • 欧拉计划 Project Euler 71(有序分数)题解
  • OPC UA 协议介绍
  • Antd中Form详解:
  • volatile是什么
  • # YOLOv3:基于 PyTorch 的目标检测模型实现
  • RevIN(Reversible Instance Normalization)及其在时间序列中的应用
  • 软件测试服务公司分享:国产化适配测试的重要性和关键要素
  • paimon中批和流查看过去的快照的数据及变动的数据