最近很火的ChatGPT来了!我也是做了一个最最基础的模型,让大家更通俗易懂!

先看效果:

 接下来直接上代码:

<template>
<view class="content">
<view class="text-area">
<textarea class="aa" placeholder-style="color:#F76260" placeholder="智能提问" v-model='title' />
<button class="button" @click="getAi">提问</button>
</view>
<view class="answer">
<textarea disabled class="aa cc" placeholder-style="color:#F76260" placeholder="回答" v-model='answer' />
</view>
</view>
</template> <script>
export default {
data() {
return {
title: '列举几条法律',
answer: "",
}
},
onLoad() {
// this.getAi()
},
methods: {
getAi() {
let that = this
console.log(this.title, 8888)
if (!this.title) {
uni.showToast({
title: '请先输入问题!',
});
return
}
let answer = '正在思考请稍后...'
let index = 0;
that.answer = ''
let interval = setInterval(function() {
that.answer += answer[index];
index++;
// 当打印完成时,清除定时器
if (index >= answer.length) {
clearInterval(interval);
}
},
150); // 每隔50毫秒打印一个字符 let dataVal = JSON.stringify({
"prompt": that.title,
"max_tokens": 2048,
"temperature": 0.5,
"top_p": 1.0,
"frequency_penalty": 0.8,
"presence_penalty": 0.0,
"model": "text-davinci-003"
});
// {
// "model": "text-davinci-003",
// "prompt": "",
// "temperature": 0.5,
// "max_tokens": 60,
// "top_p": 1.0,
// "frequency_penalty": 0.8,
// "presence_penalty": 0.0
// }
uni.request({
url: 'https://api.openai.com/v1/completions', //仅为示例,并非真实接口地址。
data: dataVal,
method: "POST",
header: {
'Content-Type': 'application/json',
'Authorization': 'Bearer sk-xxxxxxxxxxxxx', //自定义请求头信息
},
success: (xhr) => {
if (xhr.statusCode === 200) {
console.log('xhr', xhr)
var json = xhr.data;
var response = json.choices[0].text; // 将CHATGPT的返回值输出到文本框
var indexxx = 0;
that.answer = ''
// 创建一个定时器,每隔一段时间打印一个字符
var intervals = setInterval(function() {
that.answer += response[indexxx];
indexxx++; // 当打印完成时,清除定时器
if (indexxx >= response.length) {
clearInterval(intervals);
}
},
50); // 每隔50毫秒打印一个字符
}
console.log(xhr);
}
});
},
}
}
</script> <style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
} .logo {
height: 200rpx;
width: 200rpx;
margin-top: 200rpx;
margin-left: auto;
margin-right: auto;
margin-bottom: 50rpx;
} .text-area {} .aa {
border: solid 1px red;
}
.cc {
height: 600rpx;
} .button {
width: 300rpx;
height: 100rpx;
margin: 30rpx auto;
background: red;
line-height: 100rpx;
} .title {
font-size: 36rpx;
color: #8f8f94;
}
</style>

最后附一个openAI的地址(科学):

https://platform.openai.com

还有不明白的欢迎留言,我会一一解答~

感兴趣的小伙伴去试试吧~

uniapp对接ChatGPT 简单实现对话功能的更多相关文章

  1. linux下实现两人、三人无序对话功能

    序:引子 对话功能实际上就是利用管道见得通信.最原始的是一方发另一方收,不能进项交互,发送方的代码如下: /*============================================ ...

  2. python 全栈开发,Day129(玩具开机提示语,为多个玩具发送点播,聊天界面,app录音,app与服务器端文件传输,简单的对话)

    一.玩具开机提示语 先下载github代码,下面的操作,都是基于这个版本来的! https://github.com/987334176/Intelligent_toy/archive/v1.2.zi ...

  3. 手把手教你利用微软的Bot Framework,LUIS,QnA Maker做一个简单的对话机器人

    最近由于要参加微软亚洲研究院的夏令营,需要利用微软的服务搭建一个对话Bot,以便对俱乐部的情况进行介绍,所以现学了几天,搭建了一个简单的对话Bot,期间参考了大量的资料,尤其是下面的这篇博客: htt ...

  4. ASP.NET MVC 学习4、Controller中添加SearchIndex页面,实现简单的查询功能

    参考:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/examining-the-edit-method ...

  5. Web---创建Servlet的3种方式、简单的用户注册功能

    说明: 创建Servlet的方式,在上篇博客中,已经用了方式1(实现Servlet接口),接下来本节讲的是另外2种方式. 上篇博客地址:http://blog.csdn.net/qq_26525215 ...

  6. js+html+css简单的互动功能页面(2015知道几乎尖笔试题)http://v.youku.com/v_show/id_XMTI0ODQ5NTAyOA==.html?from=y1.7-1.2

    js+html+css实现简单页面交互功能(2015知乎前端笔试题) http://v.youku.com/v_show/id_XMTI0ODQ5NTAyOA==.html? from=y1.7-1. ...

  7. Spring 学习——基于Spring WebSocket 和STOMP实现简单的聊天功能

    本篇主要讲解如何使用Spring websocket 和STOMP搭建一个简单的聊天功能项目,里面使用到的技术,如websocket和STOMP等会简单介绍,不会太深,如果对相关介绍不是很了解的,请自 ...

  8. Django文件上传三种方式以及简单预览功能

    主要内容: 一.文件长传的三种方式 二.简单预览功能实现 一.form表单上传 1.页面代码 <!DOCTYPE html> <html lang="en"> ...

  9. 运用socket实现简单的ssh功能

    在python socket知识点中已经对socket进行了初步的了解,那现在就使用这些知识来实现一个简单的ssh(Secure Shell)功能. 首先同样是建立两个端(服务器端和客户端) 需求是: ...

  10. Jenkins实现简单的CI功能

    步骤一:安装JDK.Tomcat,小儿科的东西不在此详细描述 步骤二:下载安装Jenkins下载链接:https://jenkins.io/download/ 步骤三:将下载的jenkins.war部 ...

随机推荐

  1. 分布式协议与算法-Quorum NWR

    1.强一致性与最终一致性 1.1强一致性 强一致性能保证写操作完成后,任何后续访问都能读到更新后的值:强一致性可以保证从库有与主库一致的数据.如果主库突然宕机,我们仍可以保证数据完整.但如果从库宕机或 ...

  2. 论文翻译:2022_腾讯DNS 1th TEA-PSE: Tencent-ethereal-audio-lab personalized speech enhancement system for ICASSP 2022 DNS CHALLENGE

    论文地址:TEA-PSE: 用于ICASSP 2022 DNS挑战赛的Tencent-ethereal-audio-lab 个性化语音增强系统 论文代码: 引用格式:Ju Y, Rao W, Yan ...

  3. Salesforce LWC学习(四十一) If:true 即将弃用?

    本篇参考: https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.reference_dir ...

  4. 高效、优雅的对象copy之MapStruct入门到精通,实战踩坑版

    一.前言 大家在开发中,最让人头疼的就是:对象之间的拷贝,前端的VO和数据库的Entity不一致! 性能最好的就是手动set,主要是枯燥且无技术含量,不仅耗费大量时间而且很容易出错: 所以我们要成为优 ...

  5. .Net 和 .Net Core 集成Swagger 以及配合JWT身份验证

    Swagger介绍 简单来说swagger是一款WebAPI的接口管理帮助文档,并且可以直接进行接口测试 我们来看一下官网介绍 https://swagger.io Swagger is a powe ...

  6. mapreduce的使用

    mapreduce的使用 以下案例写之前需要导入jar包依赖: <dependencies> <dependency> <groupId>org.apache.ha ...

  7. 推荐系统[二]:召回算法超详细讲解[召回模型演化过程、召回模型主流常见算法(DeepMF_TDM_Airbnb Embedding_Item2vec等)、召回路径简介、多路召回融合]

    1.前言:召回排序流程策略算法简介 推荐可分为以下四个流程,分别是召回.粗排.精排以及重排: 召回是源头,在某种意义上决定着整个推荐的天花板: 粗排是初筛,一般不会上复杂模型: 精排是整个推荐环节的重 ...

  8. NSDT可编程3D场景

    推荐:将 NSDT场景编辑器 加入你的3D开发工具链. NSDT编辑器简化了WebGL 3D应用的开发,完全兼容Three.JS生态.本文介绍如何在自己的应用中嵌入使用NSDT编辑器搭建的3D场景,并 ...

  9. CF825F - String Compression

    题意:压缩字符串,把字符串分成若干个子串,每个子串可以被压缩成"循环次数 \(+\) 循环节"的形式,求最小长度. dp 求 lcp 先 \(O(n^2)\) dp 求出所有后缀对 ...

  10. 通过 Blob 创建下载文件

    Blob 如上图所示,Blob 对象有三个部分组成,data:image/jpeg 表示该 Blob 是什么类型的文件.base64 是一个二进制到文本的编码,更多细节查看Base64 编码/解码.其 ...