Este proyecto solo se puede ejecutar en el sistema win . Se basa en la segunda modificación de chatgpt-on-wechat y utiliza completamente el marco del proyecto fuente. Es compatible con el cliente de PC de la plataforma Win y el microcliente empresarial. Este proyecto se actualizará continuamente y los complementos también se desarrollarán gradualmente. Puede ser desarrollado por una sola persona, no se apresure, ¡gracias!
Los canales de mensajes y funciones que soporta el proyecto son los siguientes:
Wework : el canal de mensajería de cuentas micropersonales y corporativas del lado de la PC, que se basa en ntwork y está limitado a la versión WeCom_4.0.8.6027, solo puede ejecutar proyectos en la plataforma Win .
Wechat : un canal de micromensajes en el lado de la PC, que se basa en el proyecto ntchat. Admite hasta la versión del entorno Python310, está limitado a la versión WeChat3.6.0.18 y solo puede ejecutar el proyecto en la plataforma Win .
2023.08.15: Actualice la lógica de acceso de FastGpt para admitir un solo grupo y una única base de conocimientos. Si no está configurada, la base global se usará de forma predeterminada.
{ "fast_gpt" : true , "fastgpt_list" : { "R:108864****63985" : " fastgpt-1aps*****pg47-64b16a*******181317 " , "R:107******373863" : " fastgpt-1aps8*****gni1kpg47-64b168*****cd181267 " } }2023.08.08: Se agregó el canal de mensajes Wework (cuenta personal de Qiwei).
2023.07.25: Es apropiado agregar un canal de mensajes de WeChat. El proyecto es compatible con la interfaz API FastGPT y se puede utilizar modificando directamente open_ai_api_key y open_ai_api_base.
Solo es compatible con sistemas Windows y requiere la instalación Python
.
Se recomienda que la versión de Python esté entre 3.7.1~3.10.
(1) Descargar el código del proyecto:
git clone https://github.com/chazzjimel/WeChat-AIChatbot-WinOnly
cd chatgpt-on-wechat/
(2) Instalar dependencias principales (obligatorio):
pip3 install -r requirements.txt
(3) Dependencias de expansión (opcional, se recomienda instalar):
pip3 install -r requirements-optional.txt
Si falla la instalación de una determinada dependencia, comente la línea correspondiente antes de continuar.
Entre ellos, tiktoken
requiere la versión 3.8 o superior python
. Se recomienda encarecidamente instalarlo para calcular con precisión la cantidad de tokens utilizados en la sesión.
Para utilizar el reconocimiento de voz google
o baidu
, debe instalar ffmpeg
.
El reconocimiento de voz predeterminado openai
no requiere la instalación de ffmpeg
.
Referencia #415
Para utilizar la función azure
Voice, debe instalar dependencias y consultar los requisitos ambientales del documento. :
pip3 install azure-cognitiveservices-speech
La plantilla del archivo de configuración está en config-template.json
en el directorio raíz. Debe copiar la plantilla para crear el archivo config.json
final efectivo:
cp config-template.json config.json
Luego complete la configuración en config.json
. La siguiente es una descripción de la configuración predeterminada. Puede personalizarla según sea necesario (elimine los comentarios):
# 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" : " " , # 代理客户端的ip和端口,国内环境开启代理的需要填写该项,如 "127.0.0.1:7890"
"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/
"azure_deployment_id" : " " , # 采用Azure ChatGPT时,模型部署名称
"azure_api_version" : " " , # 采用Azure ChatGPT时,API版本
"character_desc" : "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。 " , # 人格描述
# 订阅消息,公众号和企业微信channel中请填写,当被订阅时会自动回复,可使用特殊占位符。目前支持的占位符有{trigger_prefix } ,在程序中它会自动替换成bot的触发词。
"subscribe_msg" : "感谢您的关注! n这里是ChatGPT,可以自由对话。 n支持语音对话。 n支持图片输出,画字开头的消息将按要求创作图片。 n支持角色扮演和文字冒险等丰富插件。 n输入{trigger_prefix}#help 查看详细指令。 " ,
"accept_friend" : false , # 配置itchat和ntchat自动通过好友请求
"channel_type" : " wx " , #通道类型,支持:{ntchat,wework,weowrktop}
"fast_gpt" : false , # 标识模型接口是否是fastgpt
"ntchat_smart" : false , # 配置ntchat多开,为true时接管当前已登录微信,默认true
"wework_smart" : false , # 配置wework多开,为true时接管当前已登录企业微信,默认true
"fastgpt_list" : {
"R:108864****63985" : " fastgpt-1aps*****pg47-64b16a*******181317 " ,
"R:107******373863" : " fastgpt-1aps8*****gni1kpg47-64b168*****cd181267 "
}, # 每个群聊ID配置对应的key即可实现单群单知识库,未配置的默认
"wework_http" : " http://127.0.0.1:8000 " , # weworktop通道http接口地址,默认127.0.0.1:8000
"wework_callback_port" : 8001 , # weworktop回调端口
"voice_openai_api_key" : " " , # 使用了fasgpt仍然有openai语音识别需求的,要在这里配置一下openai的参数
"voice_openai_api_base" : " " , # 使用了fasgpt仍然有openai语音识别需求的,要在这里配置一下openai的参数
}
Instrucciones de configuración:
1.Chat personal
single_chat_prefix
(si no necesita activar con un prefijo, puede completar "single_chat_prefix": [""]
)single_chat_reply_prefix
(si no necesita un prefijo, puede completar "single_chat_reply_prefix": ""
)2.Chat grupal
group_name_white_list
para habilitar la respuesta automática del chat grupal. Si desea que surta efecto para todos los chats grupales, puede completar directamente "group_name_white_list": ["ALL_GROUP"]
group_chat_prefix
group_name_keyword_white_list
admite la coincidencia aproximada de nombres de grupos, y el elemento de configuración group_chat_keyword
admite la coincidencia aproximada del contenido de los mensajes del grupo. El uso es el mismo que el de los dos elementos de configuración anteriores. (Aportado por evolay)group_chat_in_one_session
: permite que los chats grupales compartan un contexto de sesión y la configuración ["ALL_GROUP"]
se aplica a todos los chats grupales.3. Reconocimiento de voz
"speech_recognition": true
habilitará el reconocimiento de voz. De forma predeterminada, el modelo de susurro de openai se usará para reconocer texto y responder con texto. Este parámetro solo admite chat privado (tenga en cuenta que, dado que los mensajes de voz no pueden coincidir con los prefijos, una vez habilitado, todas las voces lo harán). ser respondido automáticamente. Admite dibujo activado por voz);"group_speech_recognition": true
habilitará el reconocimiento de voz grupal. De forma predeterminada, el modelo de susurro de openai se usa para reconocer texto y responder con texto. El parámetro solo admite el chat grupal (coincidirá con group_chat_prefix y group_chat_keyword, y admitirá el dibujo activado por voz)."voice_reply_voice": true
habilitará la respuesta de voz (se aplica tanto al chat privado como al chat grupal), pero debe configurar la clave correspondiente a la plataforma de síntesis de voz. Debido a las limitaciones del protocolo itchat, solo se pueden usar archivos mp3 de voz. ser enviado Si usa wechaty, responda Es la voz de WeChat.4.Otras configuraciones
model
: nombre del modelo, actualmente admite gpt-3.5-turbo
, text-davinci-003
, gpt-4
, gpt-4-32k
(la API de gpt-4 aún no está completamente abierta y se puede usar después de que se apruebe la aplicación)temperature
, frequency_penalty
, presence_penalty
: parámetros de la interfaz API de chat; consulte la documentación oficial de OpenAI para obtener más detalles.proxy
: dado que actualmente no se puede acceder a la interfaz openai
en China, es necesario configurar la dirección del cliente proxy. Para obtener más información, consulte el n.º 351.image_create_prefix
config.py
.conversation_max_tokens
: Indica la cantidad máxima de palabras en el contexto que se pueden recordar (una pregunta y una respuesta son un conjunto de conversaciones. Si la cantidad acumulada de palabras en la conversación excede el límite, el primer conjunto de conversaciones se eliminará primero)rate_limit_chatgpt
, rate_limit_dalle
: la tasa máxima de preguntas y respuestas y la tasa de sorteo por minuto, en cola y procesadas en secuencia después del exceso de velocidad.clear_memory_commands
: comandos en el diálogo que borran automáticamente la memoria anterior. La matriz de cadenas se puede personalizar con alias de comando.hot_reload
: Una vez que se cierra el programa, el estado de escaneo del código WeChat se almacena temporalmente y se cierra de forma predeterminada.character_desc
almacena una frase que le dijiste al robot. Él recordará esta frase y la usará como su configuración. Puedes personalizar cualquier personalidad para él (para obtener más información sobre el contexto de la conversación, consulta este número).subscribe_msg
: Para suscribirse a los mensajes, complete la cuenta oficial y el canal corporativo de WeChat. Responderá automáticamente cuando se suscriba. Se pueden usar marcadores de posición especiales. Los marcadores de posición actualmente admitidos son {trigger_prefix}, que se reemplazarán automáticamente con la palabra desencadenante del bot en el programa. Es posible que esta documentación no se actualice a tiempo. Todos los elementos de configuración opcionales actualmente se enumeran en este config.py
.
Si se ejecuta localmente en la máquina de desarrollo, ejecútelo directamente en el directorio raíz del proyecto:
python3 app.py
1. Después de instalar las dependencias principales en el proyecto principal, también necesita instalar las dependencias de ntchat.
pip install ntchat
2. Instale la versión de WeChat para PC designada: WeChat versión 3.6.0.18, escanee el código QR para iniciar sesión y desactive la actualización automática de WeChat.
3. Modifique los elementos principales de configuración del proyecto: en el archivo config.json
"channel_type" : " ntchat "
4. Ejecute aplicación.py
1. Después de instalar las dependencias principales en el proyecto principal, también necesita instalar las dependencias de ntchat.
pip install ntwork
2. Instale la versión de PC Enterprise WeChat designada: versión WeCom_4.0.8.6027, escanee el código QR para iniciar sesión y desactive la actualización automática de Enterprise WeChat.
3. Modifique los elementos principales de configuración del proyecto: en el archivo config.json
"channel_type" : " wework "
4. Ejecute aplicación.py
1. Instale la versión de PC Enterprise WeChat designada: versión WeCom_4.0.8.6027, escanee el código QR para iniciar sesión y desactive la actualización automática de Enterprise WeChat.
2. Modifique los elementos principales de configuración del proyecto: en el archivo config.json
"channel_type" : " weworktop "
3. El administrador ejecuta el programa de interfaz Qiwei. La versión básica se encuentra en la carpeta del proyecto "WeChat-AIChatbot-WinOnlychannelweworktop". Haga clic para iniciar el servicio sin ingresar la clave. abre Qiwei y descarga el paso
4. Ejecute aplicación.py