要将ChatGPT接入微信大众号,您需求完结以下几个步骤:
- 创立微信大众号
- 注册微信大众号开发者形式
- 创立服务器并建立API
- 运用OpenAI API调用ChatGPT
- 装备微信大众号开发者形式,使回复内容为ChatGPT的答复
下面是具体教程:
第一步:创立微信大众号
拜访微信大众渠道官网(mp.weixin.qq.com/),运用邮箱注册并创立…
第二步:注册微信大众号开发者形式
登录微信大众号后台,点击左边菜单栏的“开发”选项,然后挑选“根本装备”。点击“开启”按钮,注册开发者形式。记录下“AppID”和“AppSecret”。
第三步:创立服务器并建立API
本教程运用Python和Flask建立API。请保证您已装置Python和Flask。
1.装置Flask:
pip install Flask
2.创立一个名为app.py
的文件,编写如下代码:
from flask import Flask, request, make_response
import hashlib
app = Flask(__name__)
@app.route('/weixin', methods=['GET', 'POST'])
def wechat():
if request.method == 'GET':
token = 'your_token' # 这里填写你在微信大众渠道设置的Token
signature = request.args.get('signature')
timestamp = request.args.get('timestamp')
nonce = request.args.get('nonce')
echostr = request.args.get('echostr')
# 验证服务器地址的有效性
if check_signature(token, signature, timestamp, nonce):
return make_response(echostr)
elif request.method == 'POST':
# 处理用户发送的音讯
def check_signature(token, signature, timestamp, nonce):
tmp_list = [token, timestamp, nonce]
tmp_list.sort()
tmp_str = ''.join(tmp_list)
tmp_str = hashlib.sha1(tmp_str.encode('utf-8')).hexdigest()
if tmp_str == signature:
return True
else:
return False
if __name__ == '__main__':
app.run(host='0.0.0.0', port=80)
3.部署服务器。您能够挑选自己的服务器或许运用云服务器,例如阿里云、腾讯云等。请保证服务器80端口开放。
在这里,我将以阿里云ECS(Elastic Compute Service)为例,阐明如何在中国区内的服务器上部署Flask运用。
第一步:购买并设置阿里云ECS实例
- 拜访阿里云官网(www.aliyun.com/),注册并登录您的账户…
- 购买ECS实例。挑选适宜的地域(中国区内),实例类型,操作系统(推荐挑选Ubuntu或许CentOS)。
- 在购买过程中,保证选中”分配公网IP”选项。一起,翻开相应端口(如80、443等),保证外部拜访。承认无误后,购买ECS实例。
- 完结购买后,进入ECS管理控制台。在实例列表中,找到刚刚购买的实例。记录下实例的公网IP地址。
第二步:衔接ECS实例
-
运用SSH衔接ECS实例。在Windows上,推荐运用PuTTY(www.putty.org/)作为SSH客户端;在…
对于Windows用户:
- 翻开PuTTY,输入ECS实例的公网IP地址,端口为22。
- 点击“衔接”,然后输入用户名(默以为
root
)和暗码。 - 成功衔接后,将看到指令行界面。
对于macOS和Linux用户:
-
翻开终端,输入以下指令(将
<your_public_ip>
替换为ECS实例的公网IP地址,<your_username>
替换为用户名,默以为root
):ssh <your_username>@<your_public_ip>
-
- 输入暗码,成功衔接后,将看到指令行界面。
-
第三步:装置必要的软件
在ECS实例上装置Python、pip和Flask。
对于Ubuntu用户:
sudo apt-get update sudo apt-get install python3 python3-pip sudo pip3 install Flask
对于CentOS用户:
sudo yum update
sudo yum install python3 python3-pip
sudo pip3 install Flask
第四步:上传运用代码至ECS实例
将app.py
文件上传至ECS实例。您能够运用SCP(Secure Copy Protocol)工具进行文件传输。
对于Windows用户,能够运用WinSCP(winscp.net/eng/downloa…
对于macOS和Linux用户,能够直接运用终端,输入以下指令(将<your_public_ip>
替换为ECS实例的公网IP地址,<your_username>
替换为用户名,默以为root
,并保证当时目录包括app.py
文件):
scp app.py <your_username>@<your_public_ip>:/root/
第五步:运行Flask运用
在ECS实例的指令行界面中,执行以下指令发动Flask运用:
export FLASK_APP=app.py
flask run --host=0.0.0.0 --port=80
第四步:运用OpenAI API调用ChatGPT
1.装置OpenAI库:
pip install openai
2.在app.py
文件中编写代码调用ChatGPT。
首先,在文件开头增加如下导入语句:
import openai
3.装备API密钥。
将以下代码增加到app.py
文件开头:
openai.api_key = "your_openai_api_key" # 运用你的OpenAI API密钥替换
4.编写一个函数来调用ChatGPT:
def chat_gpt_response(prompt):
response = openai.Completion.create(
engine="text-davinci-002",
prompt=prompt,
max_tokens=150,
n=1,
stop=None,
temperature=0.5,
)
return response.choices[0].text.strip()
5.修改wechat()
函数,使其处理用户发送的音讯并调用ChatGPT函数。
在wechat()
函数的POST
恳求处理部分增加如下代码:
from xml.etree import ElementTree
from xml.etree.ElementTree import Element, tostring
# ...
elif request.method == 'POST':
xml_data = request.data
xml_tree = ElementTree.fromstring(xml_data)
msg_type = xml_tree.find('MsgType').text
if msg_type == 'text':
content = xml_tree.find('Content').text
user_open_id = xml_tree.find('FromUserName').text
public_account_id = xml_tree.find('ToUserName').text
# 调用ChatGPT
reply_content = chat_gpt_response(content)
# 创立回复XML
reply = Element('xml')
to_user_name = Element('ToUserName')
to_user_name.text = user_open_id
reply.append(to_user_name)
from_user_name = Element('FromUserName')
from_user_name.text = public_account_id
reply.append(from_user_name)
create_time = Element('CreateTime')
create_time.text = str(int(time.time()))
reply.append(create_time)
msg_type = Element('MsgType')
msg_type.text = 'text'
reply.append(msg_type)
content = Element('Content')
content.text = reply_content
reply.append(content)
response_xml = tostring(reply, encoding='utf-8')
response = make_response(response_xml)
response.content_type = 'application/xml'
return response
第五步:装备微信大众号开发者形式
-
回来微信大众号后台,点击左边菜单栏的“开发”选项,然后挑选“根本装备”。
-
设置“服务器装备”。将以下信息填入相应字段:
- URL:你的服务器域名(如:yourdomain.com)+ API路由(本例中为
/weixin
) - Token:与
app.py
中设置的Token保持一致 - EncodingAESKey:随机生成或自定义
- 音讯加解密方法:挑选“明文形式”或“兼容形式”
- URL:你的服务器域名(如:yourdomain.com)+ API路由(本例中为
-
点击“提交”按钮,完结服务器装备。
现在,当用户在你的微信大众号中发送音讯时,回复的内容将由ChatGPT生成。留意,因为微信大众渠道的限制,测验期间或许需求运用已重视大众号的微信号进行测验。