关于写vscode ChatGPT插件遇到的一些问题

article/2024/9/7 19:25:27

出于对技术的专研想还原ChatGPT里面的一些交互,中间遇到遇到一些小问题做下总结

一、还原里面的富文本展示

chatgpt返回结果是这样的

"冒泡排序是一种简单直观的排序算法,它重复地比较相邻的两个元素,如果顺序错误就交换它们的位置,直到没有任何一对数字需要比较为止。以下是 JavaScript 实现冒泡排序的代码:\n\n```\nfunction bubbleSort(arr) {\n  var len = arr.length;\n  for (var i = 0; i < len - 1; i++) {\n    for (var j = 0; j < len - 1 - i; j++) {\n      if (arr[j] > arr[j + 1]) {\n        // 交换相邻两个元素\n        var temp = arr[j];\n        arr[j] = arr[j + 1];\n        arr[j + 1] = temp;\n      }\n    }\n  }\n  return arr;\n}\n\n// 测试代码\nvar arr = [5, 2, 4, 6, 1, 3];\nconsole.log(bubbleSort(arr)); // [1, 2, 3, 4, 5, 6]\n```\n\n上述代码中,外层循环执行 len - 1 次,内层循环执行 len - 1 - i 次。如果 arr[j] 大于 arr[j + 1],则交换它们的位置。最后返回排好序的数组 arr。"

最终实现效果
在这里插入图片描述
这里不仅还原了文本格式的展示,而且也还原了代码高亮。
可以看出chatgpt返回的是markdawn文本格式,要对markdawn文本格式做下处理,采用的是很强大的marked.js工具,感情兴趣的同学可以到官网看看:https://marked.js.org/

// Create reference instance
import { marked } from 'marked';// Set options
// `highlight` example uses https://highlightjs.org
marked.setOptions({renderer: new marked.Renderer(),highlight: function(code, lang) {const hljs = require('highlight.js');const language = hljs.getLanguage(lang) ? lang : 'plaintext';return hljs.highlight(code, { language }).value;},langPrefix: 'hljs language-', // highlight.js css expects a top-level 'hljs' class.pedantic: false,gfm: true,breaks: false,sanitize: false,smartypants: false,xhtml: false
});// Compile
console.log(marked.parse(markdownString));

这是给出的官方示例,开箱即用。
在这里插入图片描述
项目里面引入marked.min.jshighlight.min.js文件

项目初始化时引入上面配置,marked.parse()方法会把markdawn格式转化为html格式。

二、消息发送框还原文本格式

消息发送框一共有两种实现方案: div模拟textarea

div模拟textarea

效果如图
在这里插入图片描述
这里保留了原问题的换行符等格式,一开始实现简单的消息发送,采用的是input框,当然input框肯定保留不了文本格式,看了一下chatgpt网站,发现他们使用的是textarea文本框,textarea文本框可以保留文本格式,我就采用dom的一个属性 contenteditable 去模拟了一个textarea,
在这里插入图片描述

<div class="ask-input" ref="ask-input3" @input="setAsk3" @keydown.enter.prevent="askSubmit3" contenteditable="true" placeholder="请输入内容..." @paste="paste"></div>

去掉粘贴文本格式

paste(event) {let e = event || window.event// 阻止默认粘贴e.preventDefault();let text =  (e.originalEvent || e).clipboardData.getData('text/plain');document.execCommand("insertText", false, text);}

设置placeholder

.ask-input:empty:before{content: attr(placeholder);color:#bbb;
}

文本折行

.input-container .ask-input-box .ask-input * {word-break: break-all;white-space: pre-wrap !important;
}  

去掉滚动条

.ask-input::-webkit-scrollbar {display: none
};

在这里插入图片描述
在这里插入图片描述

编辑的时候做了一个简单切换,这样也就能保留原来文本格式

textarea实现高度自适应

textareaHeight1: 22
<textarearef="textarea1"v-model="askInput1"@input="autoResize1"placeholder="请输入内容..."@keydown="eventListen1":style="{ height: `${textareaHeight1}px` }"
></textarea>
autoResize1() {this.textareaHeight1 = 22; // 自适应减小this.$nextTick(() => {this.textareaHeight1 = this.$refs.textarea1.scrollHeight;});
},
.input-container .ask-input-box textarea {width: 100%;max-height: 200px !important;color: var(--vscode-foreground);font-size: 14px;/* 去掉默认字体样式 */font-family: inherit; font-weight: inherit;border: 1px solid #ccc;border-radius: 4px;resize: none;padding: 0;border: none;outline: none;
}

实现起来也很简单!

其他的就不多讲了,感兴趣的小伙伴可以自己动手实现。

在这里插入图片描述


http://chatgpt.dhexx.cn/article/3CfWFBYh.shtml

相关文章

当你问ChatGPT一些奇奇怪怪的问题

ChatGPT热度好像已经没那么高了&#xff0c;貌似也蹭不到什么流量了&#xff0c;不过嘛&#xff0c;玩了一下好玩的还是得记录一下。每个问题用标题给出&#xff0c;就可以当目录了。同时附上截图&#xff0c;想直接看图的伙伴可以直接看图。回答以绿色背景的形式给出。 觉得有…

如何高效的向ChatGPT提问

爱因斯坦在《物理学的进化》一书中指出&#xff1a;“提出一个问题比解决一个问题更为重要。因为解决一个问题也许是一个数学上或实验上的技巧&#xff0c;而提出新的问题&#xff0c;新的可能性&#xff0c;从新的方向看旧问题&#xff0c;则需要创造性的想象力&#xff0c;而…

[chatGPT问题解决]An error occurred. If this issue persists please contact us through our help center at

遇到问题 在使用chapGPT时&#xff0c;有时会发现报这样的错误&#xff1a; An error occurred. If this issue persists please contact us through our help center at help.openai.com. 解决问题 1、如果Windows电脑开启了“病毒和威胁防护”&#xff0c;需要关掉它。 2、…

教程-ChatGPT提问失败问题及对应解决方案

由 OpenAI 实验室发布的 ChatGPT 对话式大型语言模型非常受欢迎。无论问什么奇怪的问题&#xff0c;ChatGPT都能轻松与人类进行对话。在使用 ChatGPT 的时候&#xff0c;可能会遇到各种问题&#xff0c;下面总结了可能出现的对话错误及相应的解决方法。 一、使用注意 由于太火…

ChatGPT常见的报错解决方法(全网最全解决方法)

因为最近在使用ChatGPT的过程中&#xff0c;时常会出现一些错误提示&#xff0c;为了方便自己快速解决问题&#xff0c;所以也搜集了一些其他博主的解决方法&#xff0c;以下是整理的内容。 目录 1、拒绝访问 2、Access denied错误 3、We have detected suspicious 错误 4…

Chatgpt到底有多牛?

在人工智能领域&#xff0c; ChatGPT可以说是最具影响力的 AI之一。从全球最大的中文搜索引擎百度&#xff0c;到中国最大的新闻聚合网站人民日报&#xff0c;再到中国最大的知识问答网站知乎&#xff0c; ChatGPT都有不俗的表现。而在 ChatGPT被美国《时代周刊》评为“人工智能…

#中国版chatGPT来了# 2023年开年,

ChatGPT及AIGC概念在全球爆火&#xff0c;引得一系列相关企业股价大幅上涨&#xff0c;市场落在百度、360等搜索引擎身上的目光明显增多 ChatGPT是OpenAI开发的人工智能聊天机器人程序&#xff0c;于2022年11月推出。该程序使用基于GPT-3.5架构的大型语言模型并以强化学习训练。…

中国版ChatGPT来了!快跟我一起申请文心一言吧

随着ChatGPT的快速进化吸引了全球网友的眼球 国内厂商也纷纷推出了相似的产品 其中百度推出的“文心一言”已经正式开始的相关的测试 很多人都在问 文心一言入口在哪&#xff1f; 文心一言邀请码在哪可以领&#xff1f; 文心一言怎么申请内测&#xff1f; 自从文心一言发…

【关于ChatGPT的30个问题】14、ChatGPT在中国是否被禁用了?/ By 禅与计算机程序设计艺术

14、ChatGPT在中国是否被禁用了?为什么? 目录 14、ChatGPT在中国是否被禁用了?为什么? ChatGPT是否被禁用?

【ChatGPT】中国支付清算协会倡议支付行业从业人员谨慎使用ChatGPT

ChatGPT 1. 近期热议2. ChatGPT是什么3. ChatGPT要谨慎使用4. 如何规范使用 1. 近期热议 近期&#xff0c;ChatGPT等工具引起各方广泛关注&#xff0c;已有部分企业员工使用ChatGPT等工具开展工作。但是&#xff0c;此类智能化工具已暴露出跨境数据泄露等风险。为有效应对风险…

中国版的ChatGPT,你最看好谁?

一、百度&#xff1a;文心一言升级中&#xff0c;未来支持开源 3月16日&#xff0c;百度正式推出国内首款生成式AI产品“文心一言”&#xff0c;可支持文学创作、文案创作、数理推算、多模态生成等功能。 “文心一言”基于全栈自研的AI基础设施进行学习和训练&#xff1a; ①…

中国版ChatGPT来了! 如何解读ChatGPT将带来的技术变革

最近这段时间&#xff0c;ChatGPT真的是太火了&#xff01;各平台都在铺天盖地式的宣传&#xff0c;相信在这么些天的宣传中&#xff0c;大家也对ChatGPT有了一个大概的了解&#xff0c;我们这边也就简单介绍一下。据ChatGPT自我介绍&#xff0c;它是一款预训练语言模型&#x…

复旦发布类ChatGPT模型Moss;Linux 6.2 发布|极客头条

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&…

ChatGPT-AI模型框架研究

GPT开启AI大模型时代&#xff0c;国内外大厂发力布局&#xff0c;商业化空间加速打开&#xff1a; 1、数据、算法、模型三轮驱动AI发展&#xff0c;大模型优势显著&#xff0c;成为AI主流方向&#xff1b; 2、GPT开启千亿参数级AI大模型时代&#xff0c;语言、视觉、科学计算等…

分享一个 ChatGPT可免费使用的AI助手

现在&#xff0c;多种行业都已经开始广泛地采用聊天机器人ChatGPT。有一个与之相关的国内免费网站可以供大家使用——多御浏览器。这是一款安全快速、高效稳定的浏览器。 该网站客户端软件中&#xff0c;有很多实用工具&#xff0c;其中之一就是当下非常流行的 ChatGPT&#x…

CHATGPT制作AI绘画

CHATGPT是一种基于机器学习和自然语言处理技术的人工智能应用。它可以生成自然语言文本&#xff0c;并且可以通过训练来学习各种不同的技能。 其中&#xff0c;CHATGPT制作AI绘画指的是将CHATGPT应用于绘画领域&#xff0c;训练CHATGPT以生成艺术作品。 CHATGPT生成绘画的基本…

ChatGPT新一代人工智能

ChatGPT新一代人工智能 介绍ChatGPT ChatGPT是由OpenAI开发的一种大型语言模型&#xff0c;它能够通过对语言的自然处理来回答问题、产生文本和执行其他的任务。 ChatGPT是基于GPT-3&#xff08;Generative Pre-training Transformer 3&#xff09;模型构建的&#xff0c;GPT-…

人工智能之ChatGPT

前言 近日&#xff0c;美国OpenAI研发的聊天机器人程序ChatGPT爆火&#xff0c;相关话题多次引发热议。 ChatGPT是啥&#xff1f; 简单来说&#xff0c;ChatGPT是一个智能聊天机器人&#xff0c;但是它的功能却远不止聊天 利用机器学习算法&#xff0c;ChatGPT可以利用人工智…

Chatgpt人工智能的聊天机器人来给软件测试人员的影响是什么?

Chatgpt人工智能的聊天机器人来给软件测试人员的影响是什么&#xff1f; 一、环境搭建&#xff1a;略 如何使用略&#xff0c;网上有&#xff0c;需要一个国外的号才能注册成功&#xff0c;使用时需要科学上网&#xff0c;最好无痕方式访问。你就可以自己探索了。 二、思考可…

chatGPT人工智能对话系统H5写作论文毕业论文付费问答写代码分销

ChatGPT对话问答系统是一款功能神奇的人工智能应用&#xff0c;具有广泛的用途和应用领域。以下是一些主要功能&#xff1a; 编写代码&#xff1a;ChatGPT可以帮助用户编写和理解各种编程语言的代码。撰写文案、论文、小说&#xff1a;ChatGPT能够根据用户的需求&#xff0c;协…