> ## Content Index
> Fetch the complete content index at: https://lucent.blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# [ChatGPT] 使用Python对接OpenAi APi 实现智能QQ机器人(一)
- URL: https://lucent.blog/chatgptshi-yong-pythondui-jie-openaiapi/
- Published: 2022-12-08T10:30:32.000Z
- Updated: 2026-08-21T00:49:57.000Z
- Author: Lucent
- Tags: ChatGPT, QQ机器人

代码中使用到的revChatGPT依赖源码库:  
[https://github.com/acheong08/ChatGPT](https://github.com/acheong08/ChatGPT?ref=lucent.blog)

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

```python
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](https://img-1251540275.cos.ap-shanghai.myqcloud.com/blog/image_1670495628552.png)

  
其中消息体:

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

```

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

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

```

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

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

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