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

出于对技术的专研想还原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://www.rhkb.cn/news/647.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

当你问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的问题,我都整理在这里了

前言 我整理了几个网友最想问chatgpt的问题&#xff0c;帮助那些还没用上chatgpt的网友们。首先申明本人使用chatgpt仅作为技术探讨&#xff0c;学习交流用途&#xff0c;没有任何不良导向。 考虑到英文阅读的难度&#xff0c;我就直接问中文了。 问题内容 1.如何成为百万富…

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

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

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

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

【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等火爆的当下 AI大模型爆发

4月18日&#xff0c;火山引擎在其举办的“原动力大会”上发布自研DPU等系列云产品&#xff0c;并推出新版机器学习平台&#xff1a;支持万卡级大模型训练、微秒级延迟网络&#xff0c;让大模型训练更稳更快。火山引擎总裁谭待表示&#xff0c;AI大模型有巨大潜力和创新空间&…

HuggingGPT火了:一个ChatGPT控制所有AI模型,自动帮人完成AI任务,网友:留口饭吃吧...

丰色 发自 凹非寺量子位 | 公众号 QbitAI 最强组合&#xff1a;HuggingFaceChatGPT —— HuggingGPT&#xff0c;它来了&#xff01; 只要给定一个AI任务&#xff0c;例如“下面这张图片里有什么动物&#xff0c;每种有几只”。 它就能帮你自动分析需要哪些AI模型&#xff0c;然…

[ChatGPT]警惕科技巨头的ChatGPT崇拜

2023年ChatGPT的横空出世,让AI成为无可辩驳的强大风口,各大科技公司更是纷纷赶着上线对应产品。对于ChatGPT的崇拜,是投资者的盲目跟风,还是大厂在制造焦虑呢?一个聊天机器人,又是如何拿捏资本和厂商的?一起来看一下吧。 2023年,ChatGPT的横空出世,让AI成为无可辩驳的…

ChatGPT前传

文章目录 前言GPT概述GPT-1代GPT-1 学习目标和概念介绍GPT-1 训练数据集GPT-1 模型结构和应用细节GPT-1 效果性能和总结 GPT-2代GPT-2 学习目标和概念介绍GPT-2 训练数据集GPT-2 模型结构和应用细节GPT-2 性能效果和总结 GPT-3代GPT-3 学习目标和概念介绍GPT-3 训练数据集GPT-3…

上海亚商投顾:创业板指低开高走ChatGPT概念股再爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 大小指数今日走势分化&#xff0c;沪指盘中一度跌超1%&#xff0c;午后震荡回升跌幅收窄&#xff0c;创业板指则低…

十条ChatGPT常用的Prompt

Prompt 本文数据来源:@Will 3.6-6.16 硅谷,原作者:@rowancheung 一,简化复杂的信息 Prompt: 将(主题)分解成更小、更容易理解的部分。使用类比和现实生活中的例子来简化概念并使其更相关 Break down the (topic) into smaller, easier-to-understand parts. Use ana…

自己动手做chatGPT:向量的概念和相关操作

chatGPT的横空出世给人工智能注入一针强心剂&#xff0c;它是历史上以最短时间达到一亿用户的应用。chatGPT的能力相当惊人&#xff0c;它可以用相当流利的语言和人对话&#xff0c;同时能够对用户提出的问题给出相当顺畅的答案。它的出现已经给各个行业带来不小冲击&#xff0…

上海亚商投顾:沪指窄幅震荡 ChatGPT概念股全线下挫

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 三大指数早盘小幅冲高&#xff0c;随后又震荡走低&#xff0c;午后一度集体翻绿&#xff0c;临近尾盘有所回升。Ch…

详细解读ChatGPT

文章目录 前言一、ChatGPT的本质二、语言模型的发展阶段三、语言模型的能力边界四、ChatGPT如何回答问题&#xff1f;五、ChatGPT的缺陷六、ChatGPT需要的资源七、人工智能的边界在哪里&#xff1f; 前言 ChatGPT是什么&#xff1f;我调用了api_key对它提问&#xff0c;大家可以…