ChatGPT引领智能对话:微信小程序的新潮玩法

news/2024/7/24 5:25:59 标签: 人工智能

1.引言

ChatGPT是由OpenAI开发的基于深度学习的自然语言处理模型,它在人工智能领域具有重要的影响力。ChatGPT基于大规模的文本数据进行训练,能够生成高质量的自然语言文本,包括对话、文章等。它的影响力主要体现在以下几个方面:

  1. 语言生成和理解能力:ChatGPT具有出色的语言生成和理解能力,可以模拟人类的对话方式,生成连贯、自然的文本。这种能力使得ChatGPT可以用于各种自然语言处理任务,如对话系统、文本摘要、翻译等。

  2. 开放性和通用性:ChatGPT是一个开放式模型,能够处理各种类型和主题的文本。它不仅可以应对预定义的任务,还可以适应新的领域和场景,具有很强的通用性。

  3. 社交和娱乐应用:ChatGPT在社交和娱乐应用中具有很大的潜力,可以用于构建智能聊天机器人、虚拟助手等。它可以与用户进行自然、流畅的对话,提供个性化的服务和娱乐。

微信小程序作为轻量级应用开发平台在移动互联网领域拥有广泛的使用和便捷性。它允许开发者在微信环境中快速开发和发布应用,无需下载安装即可直接使用,具有良好的用户体验。微信小程序的特点包括:

  1. 低门槛:微信小程序的开发门槛较低,开发者可以使用HTML、CSS、JavaScript等前端技术进行开发,无需学习新的编程语言。

  2. 即时体验:用户可以直接在微信中打开和使用小程序,无需下载安装,节省了用户的时间和手机存储空间。

  3. 社交共享:微信小程序可以方便地与微信的社交功能集成,用户可以通过微信分享、转发小程序,扩大了小程序的传播范围。

在微信小程序中集成ChatGPT API能够带来以下创新功能和服务:

  1. 智能客服和虚拟助手:开发者可以通过整合ChatGPT API实现智能客服和虚拟助手功能,帮助用户解决问题、提供个性化的服务。

  2. 智能对话应用:基于ChatGPT的强大对话生成能力,开发者可以构建各种智能对话应用,如智能聊天机器人、情感交互应用等,提供更加丰富和有趣的用户体验。

  3. 个性化推荐和建议:通过分析用户的对话和需求,结合ChatGPT的语言理解能力,开发者可以实现个性化的推荐和建议服务,提高用户的满意度和粘性。

综上所述,将ChatGPT集成到微信小程序中可以为开发者提供更加智能、个性化的应用服务,丰富了小程序的功能和体验,促进了人工智能与移动互联网的深度融合。

2.准备工作

1.创建API Key

要获取并启用ChatGPT API功能,用户只需访问ChatGPT管理后台并通过点击指定链接进入。在用户后台界面中,您将找到创建新密钥的功能选项——“Create new secret key”。只需轻点此按钮,系统即会自动生成一个新的API Key供用户使用。通过这一关键步骤,用户即可顺利调用强大的ChatGPT大模型,并将其集成至各类应用和服务中,从而实现与ChatGPT的深度交互和高效利用。
在这里插入图片描述

2.查询余额

在成功创建API Key之后,需要注意的是,仅凭此步骤并不意味着可以立即启用ChatGPT大模型的调用功能。为了确保顺利使用接口服务,用户的账户中必须拥有充足的余额。请在生成API Key后,核实并确保您的账户已充值或具有足够的信用额度。具体查询账户余额的链接如右侧所示:余额查询链接,请通过该链接进行实时核查,以避免因余额不足导致无法顺利调用ChatGPT大模型接口的情况发生。
在这里插入图片描述

3.微信小程序代码测试

1.index.wxml

<!--index.wxml-->
<navigation-bar title="Chat问答系统" back="{{false}}" color="black" background="#FFF"></navigation-bar>
<scroll-view class="scrollarea" scroll-y type="list">
  <view class="container">
  <scroll-view scroll-y="true" class="chat-content">
    <view wx:for="{{chatMessages}}" wx:key="{{index}}" class="chat-message">
      <view wx:if="{{item.type === 'user'}}" class="user-message">{{item.text}}</view>
      <view wx:else class="bot-message">{{item.text}}</view>
    </view>
  </scroll-view>
  <view class="input-box">
    <input class="input" type="text" placeholder="Type a message..." value="{{inputText}}" bindinput="handleInput"/>
    <button class="send-btn" bindtap="sendMessage">Send</button>
  </view>
</view>
</scroll-view>

2.index.css

/**index.wxss**/
page {
  height: 100vh;
  display: flex;
  flex-direction: column;
}
.scrollarea {
  flex: 1;
  overflow-y: hidden;
}
.container {
  display: flex;
  flex-direction: column;
  height: 100vh;
}

.chat-content {
  flex: 1;
}

.chat-message {
  margin: 5px 10px;
}

.user-message {
  background-color: #f0f0f0;
  padding: 5px 10px;
  border-radius: 5px;
}

.bot-message {
  background-color: #c0e5fc;
  padding: 5px 10px;
  border-radius: 5px;
}

.input-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 10px;
}

.input {
  flex: 1;
  height: 36px;
  margin-right: 10px;
}

.send-btn {
  width: 80px;
  height: 36px;
  background-color: #007bff;
  color: #fff;
  border: none;
  border-radius: 5px;
  outline: none;
}

3.index.js


// index.js
Page({
  data: {
    chatMessages: [],
    inputText: ''
  },

  handleInput: function (e) {
    this.setData({
      inputText: e.detail.value
    });
  },

  sendMessage: function () {
    const inputText = this.data.inputText.trim();
    if (inputText === '') return;

    const chatMessages = this.data.chatMessages;
    chatMessages.push({ text: inputText, type: 'user' });
    this.setData({
      chatMessages: chatMessages,
      inputText: ''
    });

    this.getChatResponse(inputText);
  },

  getChatResponse: function (inputText) {
    // 发送请求到 ChatGPT API,获取响应
    // 以下为示例代码,实际需根据 API 接口的调用方式进行修改
    wx.request({
    // 国内需要走代理url
      url: 'https://api.openai-proxy.com/v1/chat/completions',
      method: 'POST',
      data: {
        model: 'gpt-3.5-turbo',
        messages: [
          {"role": "user", 
          "content": inputText},
        ],
        // max_tokens: 150
        // 其他参数根据 API 要求进行设置
      },
      header: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer YOUR-API-KEY' // 将YOUR_API_KEY替换为您的API密钥
      },
      success: res => {
        const chatMessages = this.data.chatMessages;
        // res.data.choices[0].message.content 这个根据返回数据的结构进行动态调整
        chatMessages.push({ text: res.data.choices[0].message.content, type: 'bot' });
        this.setData({
          chatMessages: chatMessages
        });
      },
      fail: err => {
        console.error('Failed to get chat response: ', err);
      }
    });
  }
});

4.问题解决

1.非合法域名校验

如果你创建了API Key,同时也完成了代码,但是代码运行后报错,即:

https://api.openai-proxy.com 不在以下 request 合法域名列表中,请参考文档:
https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html(env: 
Windows,mp,1.06.2401020; lib: 3.3.4)

则证明你需要在微信开发者工具右上角,点击详情,在下面勾选 “不校验合法域名” ,具体如下所示:
在这里插入图片描述

2.超出限额

若解决上述问题后,出现新的问题,即:

“error”: { “message”: “You exceeded your current quota, please check your plan 
and billing details., “type”: “insufficient_quota”, “param”: null, “code”: null }}

则代表该账号OpenAI提供的配额用完了,需要重新更换账号或充值!

3.服务代理

由于OpenAI及GFW的双重限制,导致国内用户无法访问OpenAI的API,因此,如果直接使用OpenAI的API,将会出现如下错误:

POST https://api.openai.com/v1/chat/completions 401 (Unauthorized)
(env: Windows,mp,1.06.2401020; lib: 3.3.4)

因此,需要将url更换为代理url,即为https://api.openai-proxy.com/v1/chat/completions

5.效果展示

解决完上述问题后,可以发现代码运行效果如下所示:
在这里插入图片描述


http://www.niftyadmin.cn/n/5421493.html

相关文章

linux系统docker历史以及对虚拟机的区别

docker历史及与容器的区别 docker容器历史对paas降维打击容器和虚拟机的区别容器应用场景 docker容器历史 容器概念始于 1979 年提出的 UNIX chroot&#xff0c;它是一个 UNIX 操作系统的系统调用&#xff0c;将一个进程及其子进程的根目录改变到文件系统中的一个新位置&#…

ChatGLM:CPU版本如何安装和部署使用

前段时间想自己部署一个ChatGLM来训练相关的物料当做chatgpt使用&#xff0c;但是奈何没有gpu机器&#xff0c;只能使用cpu服务器尝试使用看看效果 我部署的 Chinese-LangChain 这个项目&#xff0c;使用的是LLM&#xff08;ChatGLM&#xff09;embedding(GanymedeNil/text2vec…

鸿蒙App基础

基础说明 .1、应用模型 .1.1、构成要素 应用组件 应用组件是应用的基本组成单位&#xff0c;是应用的运行入口。用户启动、使用和退出应用过程中&#xff0c;应用组件会在不同的状态间切换&#xff0c;这些状态称为应用组件的生命周期。应用组件提供生命周期的回调函数&…

flink重温笔记(十二): flink 高级特性和新特性(1)——End-to-End Exactly-Once(端到端精确一致性语义)

Flink学习笔记 前言&#xff1a;今天是学习 flink 的第 12 天啦&#xff01;学习了 flink 高级特性和新特性之 End-to-End Exactly-Once&#xff08;端到端精确一致性语义&#xff09;&#xff0c;主要是解决大数据领域数据从数据源到数据落点的一致性&#xff0c;不会容易造成…

二刷代码随想录——动态规划day43

文章目录 前言动态规知识点 动规五部曲一、1049. 最后一块石头的重量 II二、494. 目标和三、474. 一和零总结 前言 一个本硕双非的小菜鸡&#xff0c;备战24年秋招&#xff0c;计划二刷完卡子哥的刷题计划&#xff0c;加油&#xff01; 二刷决定精刷了&#xff0c;于是参加了卡…

leetcode 3.11

leetcode hot 100 二分查找1.寻找旋转排序数组中的最小值 矩阵1.搜索二维矩阵 II知识点&#xff1a;upper_bound, lower_bound知识点&#xff1a;二分查找 2.搜索二维矩阵 链表1.合并两个有序链表2.两数相加3. 删除链表的倒数第 N 个结点 二分查找 1.寻找旋转排序数组中的最小…

MySQL 中常用的存储引擎

1、MySQL中的存储引擎 MySQL支持多种数据库引擎&#xff0c;每种引擎都有其特定的优势和适用场景。 1.1 InnoDB&#xff1a; 这是MySQL的默认数据库引擎。它提供了事务安全&#xff08;ACID兼容&#xff09;的表&#xff0c;支持行级锁定和外键约束。InnoDB还具有崩溃恢复能…

Facebook、亚马逊账号如何养号?

之前我们讨论过很多关于代理器的问题。它们的工作原理是什么?在不同的软件中要使用那些代理服务器?这些代理服务器之间的区别是什么?什么是反检测浏览器等等。 除了这些问题&#xff0c;相信很多人也会关心在使用不同平台的时代理器的选择问题。比如&#xff0c;为什么最好…