chatgpt接口版本,chatgpt网页版,chatgpt国内直接用的版本,无广告、无套路、拿去就用

news2024/11/15 4:56:42

老规矩,先看效果:
在这里插入图片描述
文件是电脑端的网页版,打开之后输入你自己的apikey,然后就可以直接开始问了,带上下文功能,直接问的问题是自动跟之前上面的所有问题有关联的,如果想要重新开始一个上下文语境的话,就网页刷新一下就可以了。
APIKEY如果没有的话,可以某宝自己买,也就八九块,注意买标明带18美金额度的,其他的很多账号都没有这个功能的权限,某宝找不到的话,我这转手赚你一块多,我卖10缘。

文件可以公众号直接获取:搜→ 小小技术袁同学 然后发送网页版,就可以获取文件的打开就用版本,下载之后是这个样子
在这里插入图片描述
然后打开就可以了。

还可以csdn积分下载,链接在这→

还可以源码直接自己编译,源码如下

script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

<div id="app" style="display: flex;flex-flow: column;margin: 20 ">
    <scroll-view scroll-with-animation scroll-y="true" style="width: 100%;">
        <!-- 用来获取消息体高度 -->
        <view id="okk" scroll-with-animation>
            <!-- 消息 -->
            <view v-for="(x,i) in msgList" :key="i">
                <!-- 用户消息 头像可选加入-->
                <view v-if="x.my" style="display: flex;
                flex-direction: column;
                align-items: flex-end;">

                    <view style="width: 400rpx;">
                        <view style="border-radius: 35rpx;">
                            <text style="word-break: break-all;">{{x.msg}}</text>
                        </view>
                    </view>

                </view>
                <!-- 机器人消息 -->
                <view v-if="!x.my" style="display: flex;
                flex-direction: row;
                align-items: flex-start;">

                    <view style="width: 500rpx;">
                        <view style="border-radius: 35rpx;background-color: #f9f9f9;">
                            <text style="word-break: break-all;">{{x.msg}}</text>
                        </view>
                    </view>
                </view>
            </view>


            <view style="height: 130rpx;">

            </view>
        </view>

    </scroll-view>

    <!-- 底部导航栏 -->
    <view style="position: fixed;bottom:0px;width: 100%;display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;">
		<view style="font-size: 55rpx;display: flex;
        flex-direction: row;
        justify-content: space-around;
        align-items: center;width: 75%;
    margin: 0;"><input @blur='entapi' required v-model="api" type="text" style="width: 75%;
            height: 45px;
            border-radius: 50px;
            padding-left: 20px;
            margin-left: 10px;background-color: #f0f0f0;" @confirm="sendMsg" confirm-type="search"
                placeholder-class="my-neirong-sm" placeholder="输入apikey 样式:sk-s5S5BoV... 可以淘宝购买七八块钱,认准里面包含18美金的,代买加微信:xytx_000   10块一个 赚你2块"  /></view>
        <view style="font-size: 55rpx;display: flex;
        flex-direction: row;
        justify-content: space-around;
        align-items: center;width: 75%;
    margin: 20;">

            <input v-on:keyup.enter="sendMsg"  v-model="msg" type="text" style="width: 75%;
            height: 45px;
            border-radius: 50px;
            padding-left: 20px;
            margin-left: 10px;background-color: #f0f0f0;" @confirm="sendMsg" confirm-type="search"
                placeholder-class="my-neirong-sm" placeholder="用一句简短的话描述您的问题,回车或者点击后面发送按钮" />
            <button @click="sendMsg" :disabled="msgLoad" style="height: 45px;
            width: 20%;;
    color: #030303;    border-radius: 2500px;" >{{sentext}}</button>
        </view>
    </view>
    </view>
</div>
<script>
    const { createApp } = Vue
    createApp({
        data() {
            return {
                api: '',
                msgLoad: false,
                anData: {},
                sentext: '先输入api再发送问题',

                animationData: {},
                showTow: false,
                msgList: [{
                    my: false,
                    msg: "你好我是openAI机器人,请问有什么问题可以帮助您?"
                }],
                msgContent: "",
                msg: ""
            }
        },
        methods: {
				
			entapi(){
				console.log('11');
				this.sentext = 'api检测中'
				axios.post('https://api.openai.com/v1/completions', {
				    prompt: '你好呀', max_tokens: 2048, model: "text-davinci-003"
				}, {
				    headers: { 'content-type': 'application/json', 'Authorization': 'Bearer ' + this.api }
				}).then(res => {
					console.log('suss',res);
					this.msgLoad = false
					this.sentext = '发送'
					
					
				}).catch(error =>{
					console.log('error',error);
					console.log(error.code);
					if(error.code == 'ERR_BAD_REQUEST'){
						this.sentext = 'apikey错误,检查确认后重新输入'
						this.msgLoad = true
						
						return 0;
					}
				
					
				})
			},
            sendMsg() {

                // 消息为空不做任何操作
                if (this.msg == "") {
                    return 0;
                }
				if (this.api == ""){
					this.sentext = '请输入apikey再进行请求'
					return 0;
				}
                this.sentext = '请求中'
                this.msgList.push({
                    "msg": this.msg,
                    "my": true
                })
                console.log(this.msg);
                this.msgContent += ('YOU:' + this.msg + "\n")
                this.msgLoad = true
                // 清除消息
                this.msg = ""
                axios.post('https://api.openai.com/v1/completions', {
                    prompt: this.msgContent, max_tokens: 2048, model: "text-davinci-003"
                }, {
                    headers: { 'content-type': 'application/json', 'Authorization': 'Bearer ' + this.api }
                }).then(res => {
                    console.log(res);
                    let text = res.data.choices[0].text.replace("openai:", "").replace("openai:", "").replace(/^\n|\n$/g, "")
                    console.log(text);
                    this.msgList.push({
                        "msg": text,
                        "my": false
                    })
                    this.msgContent += (text + "\n")
                    this.msgLoad = false
                    this.sentext = '发送'
                }).catch(error =>{
					console.log('error',error);
					console.log(error.code);
					this.sentext = '请求失败,重新输入问题发送'
					this.msgLoad = false
					
					
				
					
				})

            },


        }
    }).mount('#app')
</script>

其实这个原理就是请求openai的模型接口,接口如下

	axios.post('https://api.openai.com/v1/completions', {
				    prompt: '你好呀', max_tokens: 2048, model: "text-davinci-003"
				}

然后根据返回的内容进行上下文拼接

openai上下文返回答案的话,需要把所有的问题和回答都发送给接口
根据这个代码,很多小程序版本的都已经开始出来变现了,现在你们拿过去就可以用了。

如果你想用这个做小程序,可以代码直接复制到uniapp中,然后删掉最顶层的两个环境引入,理论上应该就可以了。

能给你们的,我都给你们了,剩下的就是你们自己研究了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/131741.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初入公司,一招shell教你如何看清linux应用服务日志

文章目录Linux系统查看应用日志一、背景二、分析2.1、思路三、shell脚本实现3.1、效果演示13.2、优化shell脚本3.3、效果演示2四、技能扩展Linux系统查看应用日志 一、背景 为了方便测试查看服务日志&#xff0c;而开发过shell来实现快捷查看日志脚本&#xff0c;具体做法呢就…

通过可视化运维配置,实现故障秒级自愈

急促的告警铃声响彻寂静的夜晚。对运维人来说&#xff0c;晚间值守耗费更大的精力&#xff0c;往往一个简单的磁盘使用率告警通知&#xff0c;就不得不爬起来进行处理&#xff0c;毕竟告警无小事&#xff0c;对于小问题&#xff0c;运维人也不能心存侥幸心理。虽然有着值班人员…

QML学习笔记【02】:QML快速入门

一、QML语法&#xff08;QML Syntax&#xff09; QML是一种描述用户界面的声明式语言。它将用户界面分解成一些更小的元素&#xff0c;这些元素能够结合成一个组件。QML语言描述了用户界面元素的形状和行为。用户界面能够使用JavaScript来提供修饰&#xff0c;或者增加更加复杂…

【OFDM系列9】OFDM采用正交区分不同子载波的,但是子载波通过调相后携带了基带信号后,如何还能继续保证两者正交

不经意间在知乎看到这样一个问题&#xff0c;在此记录一下我的看法 OFDM采用正交区分不同子载波的&#xff0c;但是子载波通过调相后携带了基带信号后&#xff0c;如何还能继续保证两者正交&#xff1f; 补充内容是&#xff1a;OFDM是指通过2组正交载波传递信息&#xff0c;但…

最小生成树,贪心算法和Prim算法的Java代码实现过程详解

1.最小生成树原理 之前学习的加权图&#xff0c;我们发现它的边关联了一个权重&#xff0c;那么我们就可以根据这个权重解决最小成本问题&#xff0c;但如何才能找到最小成本对应的顶点和边呢&#xff1f;最小生成树相关算法可以解决。 定义&#xff1a; 图的生成树是它的一棵含…

新生活、新成长、新认知

总览&#xff1a; 承接上文&#xff1a;https://blog.csdn.net/weixin_46141936/article/details/125537093 ​ 今年夏天 (即大三暑假) 入职 北京金山云 开始进行暑期实习&#xff0c;首次进到大城市、步入职场、接触到各种人、年龄的成长 等等&#xff0c;让我的心态 在 202…

Canvas drawImage() 方法实现图片压缩

图片压缩原理 1.CanvasRenderingContext2D.drawImage() 方法可以从页面 DOM 元素作为图像源来根据坐标和大小重新绘制该图像。 2.HTMLCanvasElement.toDataURL() 和 HTMLCanvasElement.toBlob() 方法支持导出为 base64 字符串或 Blob 对象。 CanvasRenderingContext2D.drawIm…

uboot增加开机logo

uboot的开机logo图片是存放在uboot源码的tools/logos下的&#xff0c;并且对图片的格式是有要求的&#xff0c;必须为bmp格式&#xff0c;且色彩深度为8bit&#xff0c;大小应小于显示屏像素大小。按如下步骤即可在uboot中添加自己的开机logo 1、修改logo的图片格式&#xff0…

Trie树,并查集的简单应用(AcWing)

Trie树 Trie 树&#xff0c;也叫“字典树”。顾名思义&#xff0c;它是一个树形结构。它是一种专门处理字符串匹配的数据结构&#xff0c;用来解决在一组字符串集合中快速查找某个字符串的问题。 在每一个单词的结尾需要进行标记&#xff0c;统计个数 现在对上述样例进行模拟…

C/C++教程-从一个main函数带你走进C、C++的世界

通过文章C语言教程-main函数 我们知道一个程序只有一个main函数; 通过这个文章,学习第一个程序; 程序: #include <stdio.h> int main() {printf("my first programe");return 0; } 输出效果: 很多书籍中的第一个程序都是什么"hello world"…

BurpSuite抓取https数据包配置

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是BurpSuite抓取https数据包配置。 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; 再次强调&#xff1a;严禁…

Linux 系统安装 pyenv 简明教程

推荐关注博主的微信公众号 Android安全工程&#xff0c;微信公众号围绕 Android 应用的安全防护和逆向分析为主要的两个点&#xff0c; 分享各种安全攻防手段、Hook 技术、ARM 汇编等 Android 相关的知识 前置条件 gitKali 2022 / Ubuntu 16.04 安装步骤 1. 从远程仓库中克隆…

(十三)大白话一行数据中的多个NULL字段值在磁盘上怎么存储?

文章目录 1、为什么一行数据里的NULL值不能直接存储?2、NULL值是以二进制bit位来存储的3、结合小小案例来思考一行数据的磁盘存储格式4、磁盘上的一行数据到底如何读取出来的?5、今日思考题1、为什么一行数据里的NULL值不能直接存储? 之前我们已经给大家讲了在数据库里一行…

【虚幻引擎UE】UE5 按自定义日期范围筛选数据UI实现

基于UMG_Calendar插件按自定义日期范围筛选数据UI实现 数据一般由后端筛选,本文不作具体说明。 如果需要了解快捷 选择本周范围 以及 数据在前端筛选 如何实现,可私聊咨询。 一、插件下载 官方文档 二、范围筛选界面效果实现 1、打开DEMO关卡,默认是简单日历组件 2、创建…

Apollo浅解3

目录 Namespace Item Namespace与Item Namespace修改 界面操作 存储逻辑 更新Item 创建Item 删除Item Namespace发布 界面操作 存储逻辑 发布版本 发布顺序 题外 Namespace Namespace是配置项的集合&#xff0c;类似于一个配置文件的概念。官网解释的更为全面&a…

01 flv 的 binary 解析

想要看一下 这个 flv 的格式主要因素为 rtsp视频服务 转换为 rtmp服务 转换为前端可用的服务 , 然后 里面有 flv.js 的代码, 因为之前出现了一些问题 flvjs 播放 ws 服务代理的不存在的 rtsp 连接, Cannot read properties of null (reading ‘flushStashedSamples‘) 然后看了…

Codeforces Round #664 (Div. 2) C. Boboniu and Bit Operations

Problem - C - Codeforces 翻译&#xff1a; Boboniu喜欢位操作。他想和你玩个游戏。 Boboniu给你两个序列的非负整数&#x1d44e;1&#x1d44e;2,…,&#x1d44e;&#x1d45b;&#x1d44f;1,&#x1d44f;2,…,&#x1d44f;&#x1d45a;。 为每个&#x1d456;(1≤&…

FPGA模拟SENSOR,MIPI CSI-2发送图像到RV1126

FPGA模拟SENSOR&#xff0c;MIPI CSI-2发送图像到RV1126 1&#xff1a;FPGA模拟Sensor&#xff0c; 使用MIPI CSI-2 Transmit&#xff0c;发送图像到RV1126。 2&#xff1a;MIPI CSI-2信号LANE&#xff0c;共5对。图像分辨率1920*1080&#xff0c;格式YUV422 8Bit&#xff0c…

整理了上千个 Python 工具库,涵盖24个大方向

Python 生态&#xff0c;向来以各种类库齐全而闻名&#xff0c;这也是这门语言如此受欢迎的重要原因。 今天就给大家分享一下这几天的战果&#xff0c;宵衣旰食&#xff0c;不眠不休的整理了近千个 Python 库&#xff0c;梳理不易啊&#xff0c;收藏的同时&#xff0c;记得点赞…

数据可视化之seaborn绘图

记录一个今天画出来的数据统计图(绝美&#xff0c;当然数据是癌症相关的就不是很美了, 之前一直都用plt.plot&#xff0c;也不太会用 但是现在发现seaborn真的可以 palette sns.color_palette("ocean", 2) sns.kdeplot(datacancer_data,xRadius (worst),shadeTrue…