vue3中使用mathjax、markdown-it解析ai大模型返回

‌当前AI的火爆程度极高,尤其在某些新兴应用领域,如DeepSeek模型的爆火,展示了AI技术的广泛影响力和用户的高度关注‌。

使用vue3解析ai大模型返回变得尤为重要,尤其是涉及到解析数学题目之类的,最出名的无疑是mathjax,同时还需要解析markdown格式,碰到一些情况,特此写一个组件,方便使用:

  1. 解析前页面RT 
  2. 解析后页面RT  
  3. 上代码
    1. npm install mathjax@3 markdown-it
    2. 将node_modules\mathjax\es5\tex-svg-full.js 文件复制到/public目录下,不建议CDN

    3. 在index.html文件加入以下内容,在<script type="module" src="/src/main.ts"></script>之前

      <script>
            window.MathJax = {
          tex: {
              inlineMath: [
                  ["$", "$"],
                  ["\\(", "\\)"],
              ], // 行内公式选择符
              displayMath: [
                  ["$$", "$$"],
                  ["\\[", "\\]"],
              ] // 段内公式选择符
          },
          startup: {
              ready() {
                  window.MathJax.startup.defaultReady() ;
              }
          }
      } ;
          </script>
          <script id="MathJax-script" async src="./tex-svg-full.js"></script>
    4. 新建组件 MyMarkMath.vue,如下:

      <template>
      
        <div>
      
          <br/>
      
          <div ref="mathjaxContainer" style="white-space: pre-wrap;
      
              word-break: break-all" v-html="myHtml"  :class="lineClamp==4?'myline4':''">
      
          </div>
      
          <el-button style="float: right;" type="info" @click="lineClamp=lineClamp==4?'':4" plain>{
            
            { lineClamp==4?"显示全文":"显示4行" }}</el-button><br/>
      
        </div>
      
      
      
        </template>
      
      <script lang="ts" setup>
      
      //@ts-ignore
      
      import MarkdownIt from 'markdown-it';
      
      import { nextTick, onMounted, ref } from 'vue';
      
      const props = defineProps({
      
      text: {
      
          type: String,
      
          default: '',
      
          require: true
      
      }
      
      })
      
      const myHtml=ref(props.text)
      
      const mathjaxContainer = ref();
      
      const lineClamp=ref(4)
      
      const mdi = new MarkdownIt({
      
          html: true,
      
          linkify: true,
      
          });
      
      
      
      const TypeSet = async function (elements:any=undefined) {
      
            if (!('MathJax' in window)) {
      
                return
      
            }
      
            const myMathJax:any=window.MathJax;
      
            myMathJax.startup.promise = myMathJax.startup.promise
      
                .then(() => {
      
                    return myMathJax.typesetPromise(elements)
      
                })
      
                .catch((err:any) => console.log('Typeset failed: ' + err.message))
      
            return myMathJax.startup.promise
      
        }
      
      // 处理并渲染Markdown内容
      
         
      
        onMounted(() => {
      
          nextTick(async () => {
      
             await TypeSet()
      
              myHtml.value=  mdi.render(mathjaxContainer.value.innerHTML);
      
          });
      
        });
      
        </script>
      
      
      
        <style scoped>
      
       .myline4 {
      
          display: -webkit-box;
      
          -webkit-box-orient: vertical;
      
          -webkit-line-clamp: 4;
      
          line-clamp: 4;
      
          overflow: hidden;
      
          text-overflow: ellipsis;
      
          }
      
        </style>

  4. 使用方法

    
            <MyMarkMath text="这里是ai智能体返回内容"></MyMarkMath>
### 三、研究内容   #### (一)主要内容   本研究围绕“多学科精准辅导”核心目标,设计并实现基于Django框架与GPT-4大模型的智能辅导系统,具体内容包括:   1. **混合架构系统设计**      - 构建“前端交互层(Web界面)-逻辑处理层(Django)-大模型服务层(GPT-4)”三层架构,实现高并发访问与模块解耦;      - 设计学科适配模块,通过**学科特征提取器**自动区分数学公式(如$$ \frac{d}{dx}\sin(x) = \cos(x) $$)、英语语法树(S→NP+VP结构)和语文语义关联需求。     2. **多学科问题解答引擎**      - 数学领域:开发公式动态解析器,支持代数运算(如方程$ax^2+bx+c=0$求根)、几何证明等题型标准化处理;      - 英语领域:构建语法纠错模型,结合规则引擎(如虚拟语气if从句动词变形规则)约束GPT-4生成结果;      - 语文领域:设计语义关联算法,实现古诗词意象分析(如“明月”与思乡主题映射)、现代文阅读理解要点提取。     3. **错题管理与个性化推送**      - 建立错题分类数据库,按**学科-知识点-错误类型**三级标签(如数学/三角函数/周期计算错误)存储错题;      - 基于遗忘曲线设计推送策略,定期生成变式题(如修改三角函数参数$y=A\sin(kx+\phi)$中的$k$值)强化薄弱点。     4. **性能与准确性优化**      - 通过负载均衡(Nginx部署)与缓存机制(Redis)保障并发访问响应速度;      - 结合规则校验(如数学答案代入验证$f(x)=0$)与人工标注数据集微调GPT-4,确保解答准确率≥85%。   对上述内容进行统合,字数为700-800字,每一个小标题下尽量用1-2个小段落,少分段
03-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值