Lucent's Blog

当时明月在,曾照彩云归。



代码在写我

Bug在De我

螃蟹在剥我的壳

漫天的我落在雪花上

而你在想我...

6ams5piO5pyI

[ChatGPT] 使用Python对接OpenAi APi 实现智能QQ机器人(一)

代码中使用到的revChatGPT依赖源码库:
https://github.com/acheong08/ChatGPT

下面代码的目的是与ChatGPT官方接口进行交互,注意安装一下里面用到的依赖
chat-gpt-qbot.py:

import flask, json
from flask import request
from revChatGPT.revChatGPT import Chatbot

config = {
    "session_token": "换成你自己的token"
}
# 创建一个服务,把当前这个python文件当做一个服务
server = flask.Flask(__name__)
chatbot = Chatbot(config, conversation_id=None)


def chat(msg):
    message = chatbot.get_chat_response(msg)['message']
    print(message)
    return message


@server.route('/chat', methods=['post'])
def chatapi():
    requestJson = request.get_data()
    if requestJson is None or requestJson == "" or requestJson == {}:
        resu = {'code': 1, 'msg': '请求内容不能为空'}
        return json.dumps(resu, ensure_ascii=False)
    data = json.loads(requestJson)
    print(data)
    try:
        msg = chat(data['msg'])
    except Exception as error:
        print("接口报错")
        resu = {'code': 1, 'msg': '请求异常: ' + str(error)}
        return json.dumps(resu, ensure_ascii=False)
    else:
        resu = {'code': 0, 'data': msg}
        return json.dumps(resu, ensure_ascii=False)


if __name__ == '__main__':
    server.run(port=7777, host='0.0.0.0')


我们只要运行上面的代码就可以在7777端口直接与ChatGPT进行交互了
我们使用接口工具测试一下,结果如下图,可以看到,接口正常工作并从ChatGPT得到了对话结果
image.png
其中消息体:

{
  "msg": "你会数学吗"
}

消息体是我们自定义的内容,你可以自己增加字段对接口进行功能扩展
本例子中的msg就是我们的发言内容
而接口返回的:

{"code": 0, "data": "是的,我会数学。我是一个大型语言模型,我可以回答各种问题,包括数学问题。你有什么数学问题需要我帮助你解决吗?"}

这也是我们自己定义的,当code=0时代表与ChatGPT交互成功,此时data为ChatGPT反馈给我们的对话内容。而当code=1时说明出现了错误,此时没有data,但在msg中返回了错误信息

到这里我们就拥有了一个可以和ChatGPT交互到接口,通过这个接口,我们就能与ChatGPT进行对话

既然进行对话,那就需要一个输入框和一个按钮,你可以做一个网页来调用这个接口,这很简单,我们不在这里赘述了。
我们真正要做的是一个QQ机器人,其原理就是让QQ机器人监听到消息,并通过我们的接口把消息转发给ChatGPT,然后再把ChatGPT返回的对话内容发送给QQ用户,这样一个可以对话的机器人就做好了,具体做法,下个文章讲解。

上一篇

[ChatGPT] 使用Python对接OpenAi APi 实现智能QQ机器人(二)

上个文章我们实现了一个接口,用代码成功获取到了ChatGPT的对话内容,下面我们将继续完善QQ机器人相关逻辑,注意看代码中的注释chat-gpt-qbot.pyimport flaskimport jsonimport requestsfrom flask import requestfrom re…

阅读
下一篇

DayZ一键开服工具

一般情况下,我们开服需要自己上传、编写启动脚本、安装mod等一系列操作,对于新手很不友好现在,我们提供一键开服工具,尽可能的简化操作,让新手也能快速开服。DayZ一键开服工具让开服更简单…

阅读