当我把ChatGPT拉进群聊里,我的朋友都玩疯了

前言

近期ChatGPT可以说是太火了,问答、写论文、写诗、写代码,只要输入精确的prompt,他的表现总是让人惊喜。本着打不过就加入的原则。要是把ChatGPT拉入群聊中,会是怎样一番场景?说做就做,花了1个晚上捣鼓了一个小Demo【ChatGPT群聊助手】,凭借它的“聪明才智”,应该可以搞定我的网友、女朋友、老妈的提问…

温馨提示:如果你从没体验过ChatGPT,给大家准备了一个新手体验Demo,免注册!免登陆!免代理!!!,拉到文末可以快速查看噢。

使用效果

效果可看下图

在这里插入图片描述

应用前景

虽Demo仅在小范围的群聊中测试,但ChatGPT语义理解和交互能力确实强大,不仅能联系对话的上下文,还能及时纠正代码bug。不经让人想到,若能将ChatGPT应用于聊天机器人软件,完成回答问题、提供服务、甚至解决问题的任务,帮助人们解决重复性或大量的人工工作,代替传统聊天机器人应用于客服、电商、教育和金融等行业。

相对于传统聊天机器人,ChatGPT可根据用户的要求和特性,及时调整回答的策略以便更准确的回答问题,有更人性化的体验。现在被广泛使用的智能客服还不够智能,ChatGPT所具备的能力,正是客服领域所需要的。

1 准备工作

在国内无法注册ChatGPT账户,因此需要准备如下:

能接收短信的国外手机号: 只需花几块钱,使用国外虚拟号码在线接收短信。可以去一些第三方平台如:http://sms-activate.org/cn。

这里需要注意的是,sms-activate.org选取手机号码国家的时候,建议选择印度,如果选择印度尼西亚,会在openAI报如下错误:

You’ve made too many phone verification requests. Please try again later or contact us through our help center at help.openai.com

在这里插入图片描述

以上是必须的前提工作,有了以上准备工作后,就可以去https://chat.openai.com/auth/login注册账号了。

2 实现思路

2.1 技术现状

chatGPT提供了基于Web版的交互界面,不便于编程式调用。于是,我们可以通过模拟浏览器去登录,然后把交互过程封装成API接口。

2.2 实现过程

ChatGPT作为一个机器人角色加入群聊,需要在PC端转发ChatGPT问答。因此,我们可以在PC电脑上完成ChatGPT接口的封装,并加入群聊。然后通过即构IM(群聊)将数据实时传输,实现群聊里面与ChatGPT聊天。

在这里插入图片描述

3 PC端封装代码实现

3.1 封装chatGPT调用

我们使用chatgpt-api库来封装调用chatGPT,因此先要安装好依赖库:

npm install chatgpt

安装好chtgpt库后,使用起来就非常简单了:

var ChatGPT, ConversationId, ParentMessageId;
var API_KEY = ;//这里填写KEY
(async () => {const { ChatGPTAPI } = await import('chatgpt');ChatGPT = new ChatGPTAPI({ apiKey: API_KEY})
})();
//向ChatGPT发出提问
function chat(text, cb) {console.log("正在向ChatGPT发送提问:",text)ChatGPT.sendMessage(text, {conversationId: ConversationId,parentMessageId: ParentMessageId}).then(function (res) {ConversationId = res.conversationIdParentMessageId = res.idcb && cb(true, res.text)console.log(res)}).catch(function (err) {cb && cb(false, err);});
}

注意到,在第二行需要填写API_KEY,登录OpenAI后,打开链接https://platform.openai.com/account/api-keys即可获取,如下图所示

在这里插入图片描述

3.2 收发群聊消息

关于即构IM,如果大家感兴趣可以进入官网https://doc-zh.zego.im了解更多。总所周知,在即时聊天和实时音视频方面,即构IM是个人开发者或者中小型企业首选。因为我们只关注一对一私聊或者群聊,因此,在官方提供的SDK的基础上,我们做了二次封装。具体的封装代码请看附件,这里只贴出封装后的使用代码:

const Zego = require('./zego/Zego.js');var zim;
function onError(err) {console.log("on error", err);
} 
//发送消息
function sendZegoMsg(isToGroup, text, toID){Zego.sendMsg(zim, isToGroup, text, toID, function (succ, err) {if (!succ) {console.log("回复即构消息发送失败:", msg, err);}}) 
}
//收到消息回调
function onRcvZegoMsg(isFromGroup, msg, fromUID) { var rcvText = msg.message ;}
function main() {let zegoChatGPTUID = "chatgpt"zim = Zego.initZego(onError, onRcvZegoMsg, zegoChatGPTUID);}
main();

在收到消息时,判断是否有@chatgpt关键字,如果有的话提取消息内容,然后去调用chatGPT封装好的接口等待ChatGPT回复,并将回复的内容往聊天群里发送。

4 手机端加入群聊与ChatGPT聊天

有了PC端实现后,接下来在手机端只需通过即构IM SDK向群里面@chatgpt发送提问消息即可,当然了,也可以在一对一私聊的时候@chatgpt然后调用chatGPT接口。这些都是可以根据实际需求定制开发,篇幅原因,这里我们只将群聊。

同样的,我们只关注收发消息,因此对即构官方提供的SDK做了二次封装。如果想了解更多细节可以前往官方文档阅读。

对登录ZIM、创建Token等代码这里不详细描述,感兴趣读者可以查看代码附件,代码很简单容易看懂。

首先封装Msg对象,表示消息实体类:

public class Msg {public String msg;public long time;public String toUID;public String fromUID;public MsgType type;public enum MsgType {P2P,GROUP}
}

发送消息二次封装,同一群聊和一对一聊天接口:

public static void sendMsg(ZIM zim, Msg msg, ZIMMessageSentCallback cb) {// 发送“单聊”通信的信息ZIMTextMessage zimMessage = new ZIMTextMessage();zimMessage.message = msg.msg;ZIMMessageSendConfig config = new ZIMMessageSendConfig();// 消息优先级,取值为 低:1 默认,中:2,高:3config.priority = ZIMMessagePriority.LOW;// 设置消息的离线推送配置ZIMPushConfig pushConfig = new ZIMPushConfig();pushConfig.title = "离线推送的标题";pushConfig.content = "离线推送的内容";pushConfig.extendedData = "离线推送的扩展信息";config.pushConfig = pushConfig;if (msg.type == Msg.MsgType.P2P)zim.sendPeerMessage(zimMessage, msg.toUID, config, cb);elsezim.sendGroupMessage(zimMessage, msg.toUID, config, cb);
}

二次封装接收消息,统一通过onRcvMsg函数接收消息。

private void onRcvMsg(ArrayList<ZIMMessage> messageList) {if (lsArr == null) return;for (ZIMMessage zimMessage : messageList) {if (zimMessage instanceof ZIMTextMessage) {ZIMTextMessage zimTextMessage = (ZIMTextMessage) zimMessage;if (zimMessage.getTimestamp() < this.startTime)continue;String fromUID = zimTextMessage.getSenderUserID();ZIMConversationType ztype = zimTextMessage.getConversationType();String toUID = zimTextMessage.getConversationID();Msg.MsgType type = Msg.MsgType.P2P;if (ztype == ZIMConversationType.PEER) type = Msg.MsgType.P2P;else if (ztype == ZIMConversationType.GROUP) type = Msg.MsgType.GROUP;String data = zimTextMessage.message;Msg msg = new Msg(type, data, zimMessage.getTimestamp(), fromUID, toUID);for (MsgCenterListener l : lsArr) l.onRcvMsg(msg);}}
}
private ZIMEventHandler handler = new ZIMEventHandler() {@Overridepublic void onReceivePeerMessage(ZIM zim, ArrayList<ZIMMessage> messageList, String fromUserID) {onRcvMsg(messageList);}@Overridepublic void onReceiveGroupMessage(ZIM zim, ArrayList<ZIMMessage> messageList, String fromGroupID) {onRcvMsg(messageList);}@Overridepublic void onTokenWillExpire(ZIM zim, int second) {onRenewToken();}
};

需要注意的是,因为我们目前场景只需关注文本消息,因此没有图片、文件之类的消息做过多考虑。如果有类似需求的读者可以根据官方文档进一步封装。

另外,为了简化,避免每次用户主动拉chatgpt进入一个新群,我们先约好一个超大群ID:group_chatgpt。每次新用户登录就加入这个大群就好。如果有更加细粒度控制需求,可以根据不同用户来创建不同群,然后向chatgpt机器人发送群ID,在PC端开发对应的自动加入对应群功能就好。

对于加群逻辑,也做了二次封装:

public void joinGroup(String groupId) {zim.joinGroup(groupId, new ZIMGroupJoinedCallback() {@Overridepublic void onGroupJoined(ZIMGroupFullInfo groupInfo, ZIMError errorInfo) {for (MsgCenterListener l : lsArr)l.onJoinGroup(groupId);}
});

至此,整个流程开发完成,尽情享受ChatGPT吧。

5 开发者体验

除ChatGPT之外,Demo中使用的开发者工具ZIM SDK也是提升工作效率的利器,ZIM SDK提供了全面的 IM 能力,满足文本、图片、语音等多种消息类型,在线人数无上限,支持亿量级消息并发。同时支持安全审核机制,确保消息安全合规。

ZIM SDK提供了快速集成、接口丰富、成熟的即时通讯解决方案。满足多种业务场景通讯需求,适用于打造大型直播、语聊房、客服系统等场景。即构即时通讯产品 IM 低至1200元https://www.zego.im/activity/zegoland,也可搭配元宇宙和直播间其他产品组合使用。感兴趣的开发者可到即构官网去注册体验https://doc-zh.zego.im/article/11591

6 完整代码

  • PC端:https://github.com/RTCWang/ChatGPT-ZIM/tree/main/ChatGPT%26ZIM/chatgpt_%E6%9C%BA%E5%99%A8%E4%BA%BA
  • android:https://github.com/RTCWang/ChatGPT-ZIM/tree/main/ChatGPT%26ZIM/ChatGPT_android

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

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

相关文章

怎么玩ChatGPT?解锁玩ChatGPT玩法

继AI绘画之后&#xff0c;ChatGPT开始成为新晋“网红。ChatGPT是一个有趣的AI程序。ChatGPT是OpenAI推出的一个语言模型系统&#xff0c;它能够实时回答用户提问&#xff0c;包括聊天、纠正语法错误&#xff0c;甚至是写代码、写剧本等&#xff0c;由于可玩性很高。正是因此&am…

刚刚,我做了详细的ChatGPT玩法攻略

ChatGPT是什么?它是一款由微软开发的对话式人工智能应用,可以与用户进行自然、流畅、有趣的对话,甚至可以生成各种类型的文本内容,如诗歌、故事、代码等。它是基于GPT-3模型开发的,拥有超过1750亿个参数,可以理解和生成多种语言。 ChatGPT为什么这么火?因为它不仅是一款…

解开ChatGPT邪恶的封印,手把手解密这个ChatGPT顶级玩法

文 / 高扬&#xff08;微信公众号&#xff1a;量子论&#xff09; 本文是《ChatGPT顶级玩法&#xff1a;ChatGPT越狱版破解&#xff0c;教你如何用最粗鲁的话狂怼网上的喷子》文章的重要补充。 文章内已说明&#xff1a; OpenAI会对 ChatGPT 建立一套保护措施&#xff0c;限制 …

ChatGPT 的 18 种玩法,惊到我了!!

点击关注公众号&#xff0c;Java干货及时送达&#x1f447; 来源&#xff1a;blog.csdn.net/weixin_42475060/article/details/129399125 语法更正文本翻译语言转换代码解释-1代码解释-2修复代码错误作为百科全书信息提取好友聊天创意生成器采访问题论文大纲故事创作问题类比创…

这 13 个 ChatGpt 的玩法,建议开发人员体验下

近年来&#xff0c;自然语言处理技术的发展使得创建强大的语言模型&#xff0c;如ChatGPT成为可能。 这些基于AI的工具能够生成类似人类文字的内容&#xff0c;使它们在包括写作和编辑在内的多种任务中非常有用。在本文中&#xff0c;我们将探索一些ChatGPT的实际应用案例&…

ChatGPT 有哪些有趣的玩法?

作者观&#xff1a; 首先要明确一点&#xff0c;ChatGPT代替不了人类&#xff0c;不要抱不切实际的期望。 作为一款由OpenAI开发的人工智能聊天软件&#xff0c;该程序在一些人的眼里具有革命性的意义。 有人说&#xff0c;这玩意儿可以在一夜之间让无数人失业&#xff0c;也…

chatGPT衣食住行10种场景系列教程(01)使用chatGPT设计发型、P图变漂亮~真帅哈哈哈~

导读 时隔5个多月&#xff0c;chatGPT可谓是一日千里&#xff0c;越演越火&#xff0c;携带着AIGC行业一起飞了起来&#xff0c;那么在短短5个月当中有那些值得我们关注的事件&#xff1f;有那些好玩的场景&#xff1f;以及有那些chatGPT好用的工具&#xff1f;本文都将一一告…

玩的停不下来!!用Python+ChatGPT打造超强的微信机器人!

ChatGPT和Python组合到底会发生什么样的奇妙效果&#xff0c;大家都知道Python是一个非常简单&#xff0c;但是功能强大的语言。要写一些小的脚本小项目&#xff0c;效率非常高&#xff0c;同样一个功能Python几行代码&#xff0c;Java/C要几十行才能搞定&#xff01; 那么用Ch…

《人人都能玩赚ChatGPT》:一份简明易懂的 ChatGPT 技术指南

在科技日新月异的时代&#xff0c;人工智能无疑成为了当之无愧的热点话题。对于许多对前沿技术感兴趣的人来说&#xff0c;掌握聊天机器人技术似乎是一个遥不可及的梦想。然而&#xff0c;一本名为《人人都能玩赚ChatGPT》的书籍正在改变这一现状。本书由黄小刀和刘楚宾两位老师…

玩转你的聊天机器人:108种变现和创业思维之写出优秀的学术论文是什么体验

ChatGPT神奇的功能催生了巨大的市场需求。自推出以来&#xff0c;仅两个月内就吸引了超过1亿用户。其中最引人注目的一个特长是&#xff0c;其能够在瞬息之间撰写出各式各样的文本&#xff0c;其所能贡献之多远不止于此。更令人感到欣喜ChatGPT作为一款具有领先功能的智能工具&…

绝对实操:ChatGPT API + 自动化提高生产力+变现23 分钟前

ChatGPT虽然这么火&#xff0c;但是&#xff0c;实际上大部分人都没能参与进去&#xff0c;如何进去&#xff0c;要么提高生产力&#xff0c;要么直接商业变现 今天分享一个结合ChatGPT自动化提高生产力和商业变现的方法/流程&#xff0c;以自动化商业变现的实操为例&#xff…

如何用ChatGPT拆解爆款内容(文章/脚本)、提出修改意见,再根据修改意见,最终成稿?

该场景对应的关键词库&#xff08;11个&#xff09;&#xff1a; 示例内容、爆款库、内容类型、拆解角度、亮点、不足、修改建议、文案、风格、文章、脚本 提问模板&#xff08;4个&#xff09;&#xff1a; 第一步&#xff1a;建立自己的爆款库&#xff0c;并选择其中1个爆款…

ChatGPT,爆了!

太火爆了 最近一段时间&#xff0c;ChatGPT技术爆火了&#xff0c;和ChatGPT相关的知识星球也越来越多&#xff0c;业内很多人把这戏称为“星球大战”。 ChatGPT是当今的技术红利&#xff0c;如果一定要加入一个星球&#xff0c;那就选择一个靠谱的。我的朋友程序员小灰&#x…

知识星球:ChatGPTAI 变现圈,正式上线!

大家好&#xff0c;我是崔庆才。 向认识或不认识我的朋友再次自我介绍一下&#xff1a; 我是一名程序员&#xff0c;硕士毕业于北航&#xff0c;目前就职于微软。我对网络爬虫、Web开发、机器学习都有一些研究&#xff0c;并出版过爬虫相关的书籍《Python3网络爬虫开发实战》&a…

ChatGPT变现五个思路

一、前言 ChatGPT是一款AI聊天机器人&#xff0c;发布于2022年11月。凭借着在广泛的知识领域为消费者问题做出清晰、详尽解答的出色能力&#xff0c;其一经推出就引发全球轰动&#xff0c;自然也得到零售行业的高度关注。例如&#xff0c;消费者只要询问ChatGPT如何布置一个梦…

ChatGPT如何在中国市场获得成功?---《玩赚:108中chatGPT变现和创业思维手册》

若您能充分利用ChatGPT&#xff0c;涉及方方面面&#xff0c;必将获得非凡的成果。犹如卓尔不群之姿&#xff0c;输入相关咨询或信息&#xff0c;ChatGPT即可轻松地呈现出至臻完美的答案与建议。更有智能对话所带来的纯粹、完美的交流体验&#xff0c;令人留连忘返。 1.我们问的…

探究ChatGPT背后的技术它真的如此强大吗?--《玩赚:108中chatGPT变现和创业思维手册》

您是否也曾经想过&#xff1a;ChatGPT究竟能把什么带给我们&#xff1f;它在哪些方面表现卓越&#xff1f;通过不断尝试&#xff0c;我亲身感受到ChatGPT的魅力&#xff1a;它能够陪伴您聊天&#xff0c;就像一个安慰您的好友&#xff0c;始终支持、鼓励您&#xff0c;而且从不…

chatgpt 变现思路

教学 为用户提供ChatGPT的培训课程&#xff0c;教授如何使用和掌握ChatGPT的基本功能和高级技巧。课程可以通过在线平台或实体培训形式进行。 各种设计 ChatGPT可以为设计师提供创意灵感&#xff0c;包括平面设计、UI/UX设计、建筑设计等。此外&#xff0c;它还可以协助设计…

[AHK]用ChatGPT写脚本

让ChatGPT写个AutoHotkey语言的对象使用例子 源代码 class Circle {__New(radius){this.radius : radius}GetArea(){return 3.14 * this.radius * this.radius}GetCircumference(){return 2 * 3.14 * this.radius} }circle: new Circle(10) area: circle.GetArea() circumferen…