Cree su propio robot de chat WeChat basado en ChatGPT (método)

1. Proyecto de código abierto de GitHub

Ya hay muchos proyectos de código abierto en Github que conectan ChatGPT con WeChat, por lo que no necesitamos hacer nuestras propias ruedas, solo debemos elegir un proyecto de código abierto adecuado e implementarlo de acuerdo con nuestras necesidades.

Figura 1 Buscar ChatGPT wechat en Github

Estos proyectos de código abierto se desarrollan principalmente en lenguajes TypeScript y Go, pero como estoy familiarizado con el lenguaje python, elegí un proyecto desarrollado en python, que también es conveniente para aprender el código fuente.

Figura 2 captura de pantalla del proyecto de código abierto chatgpt-on-wechat

Dirección de Github: github.com/zhayujie/ch…

2. Preparación

(1) Obtener la clave API de openAI

En primer lugar, debe tener una cuenta de OpenAI Hay muchos métodos de registro en línea, por lo que no entraré en detalles aquí. Una vez que tenga una cuenta, vaya a la interfaz de administración de API para crear una clave de API (tenga en cuenta que debe copiar la clave y guardarla después de la creación; una vez que abandone esta interfaz, ya no podrá ver el valor de la clave).

Figura 3 Crear clave API de OpenAI

Tenga en cuenta que las llamadas a la API de OpenAI se cobran. Las cuentas registradas antes del 25 de marzo de 2023 tienen una cuota gratuita de $18 y los usuarios recién registrados no tienen cuota gratuita. Además, si su cuenta de OpenAI no está vinculada con una tarjeta bancaria, sus llamadas a la API estarán restringidas, específicamente, solo puede llamar 3 veces en 1 minuto. Esta restricción es muy molesta, se recomienda atar una tarjeta. No se pueden utilizar tarjetas bancarias nacionales, por lo que puede solicitar una tarjeta bancaria virtual para vincularla.

En este punto, se completan los preparativos preliminares y el siguiente paso es prepararse para el despliegue.

3. Preparar el entorno de implementación

El proyecto es compatible con los sistemas Linux, MacOS y Windows (puede ejecutarse en servidores Linux durante mucho tiempo) y es necesario instalar un entorno Python.

Se recomienda que la versión de Python esté entre la 3.7.1 y la 3.9.X, y se recomienda la versión 3.8. Las versiones 3.10 y superiores están disponibles en MacOS, y no está seguro si se puede ejecutar normalmente en otros sistemas.

Un tutorial detallado para esta parte se puede encontrar en el proyecto README. El siguiente es mi proceso de implementación del proyecto en el servidor en la nube de Tencent Cloud:

(1) Configurar servidor proxy

Este paso no pasó la revisión y se eliminó. Puede consultar el método en el archivo Léame del proyecto.

(2) Configurar el entorno de python

Uso el entorno python3.8 configurado con Docker.

  1. 拉取一个python3.8的Docker镜像,并基于刚刚拉取的镜像创建一个容器,命名为chatbot,然后进入该容器。
sudo docker pull python:3.8
sudo docker run -it --name chatbot python:3.8 bash
复制代码

Figura 4 Captura de pantalla del contenedor

以后可以使用以下命令进入容器

sudo docker exec -it chatbot bash
复制代码

  1. 克隆项目代码
git clone https://github.com/zhayujie/chatgpt-on-wechat
cd chatgpt-on-wechat/
复制代码

Figura 5 Clonar el código del proyecto e ingresar a la carpeta del proyecto


  1. 安装核心依赖

能够使用itchat创建机器人,并具有文字交流功能所需的最小依赖集合

pip3 install -r requirements.txt
复制代码

执行该命令后会自动安装所需的各种依赖,静待安装完成即可。


Figura 6 Dependencias de instalación


4. 部署

(1) 修改配置文件

配置文件的模板在根目录的config-template.json中,需复制该模板创建最终生效的 config.json 文件:

cp config-template.json config.json
复制代码

然后修改config.json文件,按需求更改配置:

# config.json文件内容示例
{
  "open_ai_api_key": "YOUR API KEY",                          # 填入上面创建的 OpenAI API KEY
  "model": "gpt-3.5-turbo",                                   # 模型名称。当use_azure_chatgpt为true时,其名称为Azure上model deployment名称
  "proxy": "127.0.0.1:7890",                                  # 代理客户端的ip和端口
  "single_chat_prefix": ["bot", "@bot"],                      # 私聊时文本需要包含该前缀才能触发机器人回复
  "single_chat_reply_prefix": "[bot] ",                       # 私聊时自动回复的前缀,用于区分真人
  "group_chat_prefix": ["@bot"],                              # 群聊时包含该前缀则会触发机器人回复
  "group_name_white_list": ["ChatGPT测试群", "ChatGPT测试群2"], # 开启自动回复的群名称列表
  "group_chat_in_one_session": ["ChatGPT测试群"],              # 支持会话上下文共享的群名称  
  "image_create_prefix": ["画", "看", "找"],                   # 开启图片回复的前缀
  "conversation_max_tokens": 1000,                            # 支持上下文记忆的最多字符数
  "speech_recognition": false,                                # 是否开启语音识别
  "group_speech_recognition": false,                          # 是否开启群组语音识别
  "use_azure_chatgpt": false,                                 # 是否使用Azure ChatGPT service代替openai ChatGPT service. 当设置为true时需要设置 open_ai_api_base,如 https://xxx.openai.azure.com/
  "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。",  # 人格描述,
}
复制代码

以下内容必须修改:

  • open_ai_api_key:替换为你的key,注意用双引号包裹。
  • proxy:修改为"x.x.x.x:7890",这是之前启动的代理客户端监听的ip和端口。因为我是在服务器上用docker配置的python环境,所以x.x.x.x必须是服务器的公网ip,而不能是127.0.0.1。

另外,group_name_white_list字段用于设置启用聊天机器人的群里,只有把群聊名称写到这个数组里才支持在这个群聊中与机器人对话。

详细的配置说明参见项目自述文件

(2) 运行程序

配置完成后,使用nohup命令在后台运行程序:

# 首次运行需要新建日志文件  
touch nohup.out        

# 在后台运行程序并通过日志输出二维码
nohup python3 app.py & tail -f nohup.out          
复制代码

微信小号(即充当机器人的微信号) 扫码登录后程序即可运行于服务器后台,此时可通过 ctrl+c 关闭日志,不会影响后台程序的运行。使用 ps -ef | grep app.py | grep -v grep 命令可查看运行于后台的进程,如果想要重新启动程序可以先 kill 掉对应的进程。日志关闭后如果想要再次打开只需输入 tail -f nohup.out。此外,scripts 目录下有一键运行、关闭程序的脚本供使用。

Compatibilidad con varias cuentas : copie varias copias del proyecto, inicie el programa por separado e inicie sesión con diferentes cuentas para escanear el código y realizar operaciones simultáneas. Comando especial : el usuario envía #reset al robot para borrar la memoria de contexto del usuario.

Después de iniciar sesión, inicie sesión en la cuenta de WeChat en el teléfono móvil y podrá ver que la computadora ha iniciado sesión.

Figura 8 captura de pantalla de WeChat móvil


5. Visualización de efectos

Envía mensajes directamente a WeChat actuando como un bot

Figura 9 Hablando directamente con el robot


En el grupo @编辑Diálogo

Figura 10 Robot Aite en chat grupal


6. Resumen

Hasta el momento, se completó la implementación del chatbot de WeChat basado en ChatGPT. A partir de ese momento, puede chatear directamente con ChatGPT en WeChat. Sin embargo, los chatbots actuales tienen ciertas limitaciones:

  1. Solo se habilitan los módulos básicos del proyecto y no se incluyen los módulos de extensión, como el reconocimiento de voz.
  2. Debido al costo de las llamadas de interfaz, se utiliza el modelo GPT-3.5-trubo de OpenAI en lugar de GPT-4.
  3. Todavía es una cuestión de tarifas de llamadas de interfaz. Mi cuenta de ChatGPT se registró antes del 25 de marzo y hay una cuota gratuita de $ 18. Pero la llamada de la interfaz se cobra al fin y al cabo, y el día que se agote el cupo gratuito, si quieres seguir usando el robot en ese momento, tendrás que gastar mucho dinero.
  4. Hay un problema con el acceso a WeChat. Durante el uso, WeChat indicará que la identidad de la otra parte es anormal cuando habla con el robot, y existe el riesgo de prohibir la cuenta.

Guess you like

Origin juejin.im/post/7223339726140096570