Skip to content

elllusion/wechatbot

Repository files navigation

微信机器人(ChatGPT官方API版)

最近chatGPT异常火爆,想到将其接入到个人微信是件比较有趣的事,所以有了这个项目。本项目使用了OpenAI最新(2023-03-02)发布的ChatGPT在使用的大型语言模型gpt-3.5-turbo以其API和基于openwechat开发。

本项目修改自 @djun 的 wechatbot

目前实现了以下功能

  • 群聊@回复
  • 私聊回复
  • 自动通过回复

注意: 若在使用过程中有任何技术问题请自行处理。本人只确保发布的源码是可运行的(可运行不代表要符合任何人的心意,本项目属于实验性质的demo级项目,若有任何不快请自行修改代码)。

注册OpenAI开发者帐号

OpenAI开发者帐号注册可以参考这里

安装使用

获取项目

git clone https://github.com/poorjobless/wechatbot.git

进入项目目录

cd wechatbot

复制配置文件

linux下执行 cp config.dev.json config.json

windows下执行 copy config.dev.json config.json

启动项目

go run main.go

启动前需替换config中的api_key

若想实现连续对话功能请参考以下内容:

为什么要提供一个对话列表呢?因为 API 调用都是单次的接口请求,不会自动记录之前的聊天信息,没有上下文,要让 ChatGPT 在单次的请求中了解你的上下文,就需要提供这样一个完整的对话列表,比如这样一个对话

import openai

openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
        {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
        {"role": "user", "content": "Where was it played?"}
    ]
)

每条对话消息都需要提供角色和内容,角色分三种:系统(system)、用户(user)、助手(assistant)。
system:系统消息相当于一个管理员,可以设置助手的行为和特征。在上面的例子中,助手被指示你是一个有用的助手。
user:用户消息就是我们自己,可以由用户发出提问,或者直接让开发者提前内置一些 Prompts 指令。一些可以参考的 ChatGPT Prompts
assistant:助手消息就是 ChatGPT API 在之前提供的回复,在这里存储起来。这个回复也可以自己修改或者自己编一段对话出来,来让整个对话更通顺。
如果不需要对话的话,只需要提供单个的user消息即可,就像刚刚 Python 代码里演示的。

鸣谢

  • @djun
  • @eatmoreapple

About

微信机器人(文字版) 使用了OpenAI chatGPT 大型预训练语言模型 gpt-3.5-turbo

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages