Introducción:
La cuenta pública de WeChat no certificada está conectada a chatgpt, se agrega un nuevo chat de voz (conversación en inglés), basado en Flask, la cuenta pública personal de WeChat [sin autenticación] está conectada a ChatGPT
--Actualizar instrucciones:
V1.1.0: (2023.04.13)
-Se agregó una respuesta de transmisión (stream) para aliviar el problema del tiempo de espera de la solicitud hasta cierto punto. Debe instalar el paquete de Python: sseclient-py==1.7.2;
Una vez habilitada la respuesta de transmisión, primero se establecerá una conexión (myrequest), luego se utilizará (SSEClient) para obtener el texto generado carácter por carácter y, finalmente, la lista de texto obtenida se unirá al texto de respuesta. El tiempo para establecer una conexión aún se verá afectado por max_tokens, por lo que no se recomienda establecer max_tokens demasiado grandes. La clave para aliviar los tiempos de espera de las solicitudes es que el consumo de tiempo para establecer una conexión es menor que el consumo de tiempo para una devolución única. Por lo tanto, siempre que la conexión se establezca con éxito dentro de un tiempo determinado, el contenido básicamente se puede devolver. La duración del contenido devuelto se verá afectada por el tiempo de conexión.
-Eliminar los mensajes más recientes enviados por el usuario después de que la solicitud falla o se agota el tiempo de espera para evitar errores en la siguiente respuesta.
V1.0.1:
- Opción agregada para habilitar la detección de IP (para evitar ataques doss);
-Nota: si algo de wechat-ip_detection y azure-trans_to_voice es verdadero, se deben completar tanto appid como secret.
V1.0:
-Nueva función de chat de voz, acceso al servicio de texto a voz en la nube de Microsoft (acceso gratuito), para lograr conversaciones de voz (chino e inglés);
-Plantillas de aprendizaje de inglés integradas, puedes tener conversaciones con temas en inglés respondiendo a mensajes de plantilla;
- Se agregó detección de IP en la lista blanca de fondo de WeChat para evitar ataques doss, etc.;
- Se agregó un límite de frecuencia de mensajes de usuario para evitar el spam de mensajes maliciosos;
- Limpiar automáticamente archivos de voz temporales;
- Limpiar automáticamente los materiales de voz temporales cargados en segundo plano de WeChat;
-Optimizar el rendimiento y corregir errores.
fondo:
Recientemente vi que ChatGPT proporciona una interfaz API. Tengo un servidor y una cuenta pública, así que quiero escribir un chatbot. Sin embargo, sólo existe una cuenta oficial personal no certificada (¿los recursos son limitados? Las limitaciones de esta cuenta oficial son:
1. Solo puede responder pasivamente a los mensajes del usuario. El usuario envía un mensaje a la cuenta oficial. El servidor solo puede responder a un mensaje para esta solicitud y no puede responder a mensajes adicionales (mensajes de servicio al cliente);
2. Cada mensaje debe responderse dentro de los 15 segundos después de que la plataforma de la cuenta oficial envíe una solicitud al servidor, si no recibe una respuesta dentro de los 5 segundos, enviará otra solicitud y esperará 5 segundos. no recibido, enviará una solicitud final, por lo que el servidor debe procesar el mensaje completo en 15 segundos.
Consulte el código para conocer métodos de procesamiento específicos. Este es un proyecto para novatos, incluya cualquier deficiencia y agradecemos las correcciones, gracias ~
necesidad:
Un servidor (debe poder acceder a la interfaz openai, es posible que deba estar en el extranjero ~)
Si necesita habilitar el servicio de texto a voz, debe registrar el servicio de texto a voz de Azure. El registro y el uso de este servicio son gratuitos. Consulte el sitio web para obtener más detalles: AZURE.
Cuenta pública de WeChat: el tipo personal es suficiente
Manifestación:
Cuenta pública: Laboratorio de Tory, síguenos y envía mensajes para experimentarlo.
Introducción a los tweets de cuentas públicas:
1. Introducción para comenzar: ChatGPT se ha conectado
2. Introducción al uso del servicio de voz: El servicio de voz se ha conectado
Cómo utilizar:
Establezca los parámetros de config.yml en config:
# 微信相关设置
wechat :
token : " **** "
# 是否获取微信公众平台的ip白名单(用于防止doss检测)
ip_detection : false
# 如果上面的选项为true,下面两项内容必填;如要开启后面文本转语音服务,下面两项内容必填
appid : " **** "
secret : " **** "
# openai相关设置
openai :
#填写openai的api_keys时,要注意前面要加上:Bearer, 可以填写多个,因为单个账号有速率的限制
api_keys :
- " Bearer sk-**** "
# - "Bearer sk-****"
# - "Bearer sk-****"
# 单条消息的长度,这个参数对回复速度有非常大的影响,请不要填太大~
max_tokens : 120
# 模型
model : " gpt-3.5-turbo-0301 "
# temperature,越大随机性越强
temperature : 0.8
# 有时候文本长度超过150,用该参数限制长度避免超过微信能发送的最长消息
rsize : 500
# 对话的保存历史
save_history : 21
# azure文本转语音设置
azure :
# 是否开启文本转语音服务
trans_to_voice : false
# 如上面的选项为false,下面的内容不用填写
# 新定义文本长度,开启后增加处理时间,避免文本太长,处理时间过久,超过15s
max_token : 80
# 是否开启流式响应
stream_response : true
# 密钥
subscription : " **** "
region : " koreacentral "
# 中文语音模型
zh_model : " zh-CN-XiaoyanNeural "
# 英文语音模型
en_model : " en-US-AriaNeural "
Matraz de inicio
export FLASK_APP=myflask
flask run --host=0.0.0.0 --port=80
# 或者
nohup flask run --host=0.0.0.0 --port=80 >> /home/jupyter/flask/log/wechat.log 2>&1 &
Aviso:
1. Al completar las api_keys de openai, asegúrese de agregar: Portador al frente. Puede completar varias api_keys porque una sola cuenta tiene un límite de tasa;
2.max_tokens tiene un gran impacto en la velocidad de respuesta, no lo complete demasiado.