最近很火的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. 动力节点——day03

    接收键盘的输入:1.创建一个键盘扫描器对象 java.util.Scanner s=new Scanner(System.in); 2.接收用户输入s.nextInt(); 静态变量在类加载的时候就分 ...

  2. Quartz.Net源码Example之Quartz.Examples.AspNetCore

    Quartz.Examples.AspNetCore ​ .NetCore的Web系统,后台主要执行多个触发器任务,前台展示所有触发器信息和正在执行的作业的相关信息,还可以通过访问health-UI来 ...

  3. react无效渲染优化--工具篇

    壹 ❀ 引 本文属于我在公司的一篇技术分享文章,它在我之前 React性能优化,六个小技巧教你减少组件无效渲染一文的基础上进行了拓展,增加了工具篇以及部分更详细的解释,所以内容上会存在部分重复,以下是 ...

  4. Rust一些学习文档

    <Rust 烹饪书>https://llever.com/rust-cookbook-zh/intro.zh.html <Rust高级编程>https://learnku.co ...

  5. .Net和.NetCore WebAPI批量上传文件以及文件操作(支持模糊匹配)

    1.Net /// <summary> /// 上传文件 /// </summary> /// <returns></returns> [HttpPos ...

  6. C#操作注册表简单教程(附带操作某数据库客户端注册表以实现重置试用期的效果)

    前言: 使用Windows系统,经常会遇到需要做注册表的操作.例如,一些软件需要修改注册表.自己编写的软件需要新建注册表进行写入注册信息等等.以下内容以某常见的数据库操作客户端为例,做一个注册表操作的 ...

  7. 使用springboot cache + redis缓存时使用gzip压缩以提升性能

    背景 在高并发的场景中,我们通常会使用缓存提升性能.在使用springboot cache时,我们通常会使用基于JSON的序列化与反序列化. JSON具有可读性强,结构简单的特点,使用灵活. 但是JS ...

  8. [代码审计基础 15]phpmcs_v9.6 rce

    PHP:5.4.5 设置调试:https://blog.csdn.net/m0_46641521/article/details/120107786 版本:phpcms_v9.6.0_UTF8 0x0 ...

  9. php .inc 文件

    inc 文件顾名思义是include file的意思.即PHP的包含文件,这里用后缀来表示文件的作用, inc文件一般加载一些设置 举个例子   <? php//这里是数据库连接的配置信息db. ...

  10. 【译】.NET 7 中的性能改进(十)

    原文 | Stephen Toub 翻译 | 郑子铭 最后一个有趣的与IndexOf有关的优化.字符串早就有了IndexOf/IndexOfAny/LastIndexOf/LastIndexOfAny ...