使用ChatGPT搭建微信玄学算命机器人,来算命赚钱

使用ChatGPT搭建微信玄学算命机器人,来算命赚钱

准备工作

1. 注册 OpenAI 和获取 API Key

•到 OpenAI 官方网站 注册账户。

•创建 API Key,确保保管好密钥。

2. 搭建 CentOS 9 环境

确保服务器满足以下条件:

•CentOS 9 已安装。

•Python 3.8 或以上版本。

•已配置网络,能访问 OpenAI API 和微信服务器。

必要工具安装

sudo dnf update -y
sudo dnf install -y python3 python3-pip git

算命机器人功能

创建项目目录并初始化环境:

mkdir wechat-fortune-bot
cd wechat-fortune-bot
python3 -m venv venv
source venv/bin/activate
pip install openai flask requests

ChatGPT 调用函数

使用 OpenAI API 提供占卜或算命功能:

import openai

# 替换为你的 OpenAI API 密钥
openai.api_key = "YOUR_OPENAI_API_KEY"

def get_fortune(prompt):
    """调用 ChatGPT API 返回占卜结果"""
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[
            {"role": "system", "content": "你是一个专业的算命师,负责提供八字算命、星座运势和塔罗牌解读。"},
            {"role": "user", "content": prompt},
        ]
    )
    return response["choices"][0]["message"]["content"]

Flask 服务

用于接收和响应微信消息:

from flask import Flask, request, jsonify
import hashlib

app = Flask(__name__)

# 微信验证 Token(自行设置)
WECHAT_TOKEN = "your_wechat_token"

@app.route('/wechat', methods=['GET', 'POST'])
def wechat():
    if request.method == 'GET':
        # 微信服务器验证
        signature = request.args.get('signature')
        timestamp = request.args.get('timestamp')
        nonce = request.args.get('nonce')
        echostr = request.args.get('echostr')

        if check_signature(signature, timestamp, nonce):
            return echostr
        else:
            return "Signature verification failed"
    elif request.method == 'POST':
        # 处理用户消息
        xml_data = request.data.decode('utf-8')
        user_message = parse_wechat_message(xml_data)
        reply = get_fortune(user_message)
        return format_wechat_response(reply)

def check_signature(signature, timestamp, nonce):
    """验证微信签名"""
    tmp_list = [WECHAT_TOKEN, timestamp, nonce]
    tmp_list.sort()
    tmp_str = ''.join(tmp_list).encode('utf-8')
    hashcode = hashlib.sha1(tmp_str).hexdigest()
    return hashcode == signature

def parse_wechat_message(xml_data):
    """解析微信 XML 消息,提取用户消息内容"""
    import xml.etree.ElementTree as ET
    root = ET.fromstring(xml_data)
    content = root.find('Content').text
    return content

def format_wechat_response(reply):
    """格式化微信响应 XML"""
    return f"""<xml>
    <ToUserName><![CDATA[{{TO_USER}}]]></ToUserName>
    <FromUserName><![CDATA[{{FROM_USER}}]]></FromUserName>
    <CreateTime>{{int(time.time())}}</CreateTime>
    <MsgType><![CDATA[text]]></MsgType>
    <Content><![CDATA[{reply}]]></Content>
    </xml>"""

微信公众号对接

1. 注册微信公众平台

•登录 微信公众平台

•创建订阅号或服务号。

•申请开发者权限。

2. 配置服务器地址

•在微信后台开发者工具中配置你的 服务器地址

• URL:http://your-server-ip/wechat

•Token:与你代码中的 WECHAT_TOKEN 保持一致。

3. 测试接入

•微信会向你的服务器发送验证请求,完成接入后,用户可以向公众号发送消息。

部署生产环境

启动 Flask 服务

建议使用 Gunicorn 或其他生产级 WSGI 服务器运行 Flask 应用:

pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app

配置 Nginx

为微信的回调接口配置反向代理:

sudo dnf install nginx -y
sudo nano /etc/nginx/conf.d/wechat_bot.conf

配置文件内容:

server {
    listen 80;
    server_name your-server-ip;

    location /wechat {
        proxy_pass http://127.0.0.1:5000/wechat;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

重启 Nginx:

sudo systemctl restart nginx

测试和上线

1.向你的公众号发送消息,比如 “抽一张塔罗牌” 或 “我今天运势如何”。

2.确保能收到 ChatGPT 返回的内容。

可扩展功能

功能分支:支持八字分析、星座运势和塔罗牌抽牌功能。

用户管理:通过数据库(如 MySQL)记录用户占卜历史。

图片生成:结合塔罗牌图片生成更直观的结果(可用 Pillow 或其他库生成图文回复)。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容