Este projeto só pode ser executado no sistema win . Ele é baseado na segunda modificação do chatgpt-on-wechat e usa completamente a estrutura do projeto de origem. Suporta o cliente PC da plataforma Win e o cliente corporativo e micro. Este projeto continuará a ser atualizado e os plug-ins também serão desenvolvidos gradualmente. Pode ser desenvolvido por uma pessoa, por favor, não se apresse, obrigado!
Os canais de mensagens e funções suportadas pelo projeto são os seguintes:
Wework : O canal de mensagens de contas corporativas e micropessoais do lado do PC, que depende do ntwork e está limitado à versão WeCom_4.0.8.6027, só pode executar o projeto na plataforma Win .
Wechat : Um canal de micromensagens no lado do PC, que depende do projeto ntchat. Ele suporta até a versão do ambiente Python310, é limitado à versão WeChat3.6.0.18 e só pode executar o projeto na plataforma Win .
2023.08.15: Atualização da lógica de acesso FastGpt para suportar grupo único e base de conhecimento única. Se não configurada, a base global será usada por padrão.
{ "fast_gpt" : true , "fastgpt_list" : { "R:108864****63985" : " fastgpt-1aps*****pg47-64b16a*******181317 " , "R:107******373863" : " fastgpt-1aps8*****gni1kpg47-64b168*****cd181267 " } }2023.08.08: Adicionado canal de mensagens Wework (conta pessoal Qiwei).
2023.07.25: É apropriado adicionar um canal de mensagens wechat. O projeto é compatível com a interface API FastGPT e pode ser usado modificando diretamente open_ai_api_key e open_ai_api_base.
Suporta apenas sistemas Windows e requer a instalação Python
.
É recomendado que a versão do Python esteja entre 3.7.1~3.10.
(1) Baixe o código do projeto:
git clone https://github.com/chazzjimel/WeChat-AIChatbot-WinOnly
cd chatgpt-on-wechat/
(2) Instale as dependências principais (obrigatório):
pip3 install -r requirements.txt
(3) Dependências de expansão (opcional, recomendado para instalação):
pip3 install -r requirements-optional.txt
Se a instalação de uma determinada dependência falhar, comente a linha correspondente antes de continuar.
Entre eles, tiktoken
requer python
versão 3.8 ou superior. Ele é usado para calcular com precisão o número de tokens usados na sessão.
Para usar o reconhecimento de fala google
ou baidu
, você precisa instalar ffmpeg
.
O reconhecimento de fala openai
padrão não requer a instalação ffmpeg
.
Referência #415
Para utilizar a função azure
Voice, é necessário instalar dependências e consultar os requisitos ambientais do documento. :
pip3 install azure-cognitiveservices-speech
O modelo do arquivo de configuração está em config-template.json
no diretório raiz. Você precisa copiar o modelo para criar o arquivo config.json
efetivo final:
cp config-template.json config.json
Em seguida, preencha a configuração em config.json
. A seguir está uma descrição da configuração padrão. Você pode personalizá-la conforme necessário (remova os comentários):
# 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的参数
}
Instruções de configuração:
1. Bate-papo pessoal
single_chat_prefix
(caso não precise acionar com prefixo, pode preencher "single_chat_prefix": [""]
)single_chat_reply_prefix
(se você não precisa de um prefixo, você pode preencher "single_chat_reply_prefix": ""
)2. Bate-papo em grupo
group_name_white_list
para ativar a resposta automática do bate-papo em grupo. Se quiser que todos os bate-papos em grupo tenham efeito, você pode preencher diretamente "group_name_white_list": ["ALL_GROUP"]
group_chat_prefix
group_name_keyword_white_list
suporta correspondência difusa de nomes de grupos, e o item de configuração group_chat_keyword
suporta correspondência difusa de conteúdo de mensagens de grupo. (Contribuição de evolay)group_chat_in_one_session
: permite que chats em grupo compartilhem um contexto de sessão, e a configuração ["ALL_GROUP"]
se aplica a todos os chats em grupo3. Reconhecimento de voz
"speech_recognition": true
ativará o reconhecimento de fala. Por padrão, o modelo de sussurro do openai será usado para reconhecer texto e responder com texto. Este parâmetro suporta apenas bate-papo privado (observe que, como as mensagens de voz não podem corresponder aos prefixos, uma vez ativado, todas as vozes irão. ser respondido automaticamente. Suporta desenho acionado por voz);"group_speech_recognition": true
ativará o reconhecimento de fala em grupo. Por padrão, o modelo de sussurro do openai é usado para reconhecer texto e responder com texto. O parâmetro suporta apenas bate-papo em grupo (corresponderá a group_chat_prefix e group_chat_keyword e suporta desenho acionado por voz);"voice_reply_voice": true
ativará a resposta de voz (aplica-se tanto ao chat privado quanto ao chat em grupo), mas você precisa configurar a chave correspondente à plataforma de síntese de voz. Devido às limitações do protocolo itchat, apenas arquivos mp3 de voz podem. ser enviado. Se você usar wechaty, responda É a voz do WeChat.4.Outras configurações
model
: nome do modelo, atualmente suporta gpt-3.5-turbo
, text-davinci-003
, gpt-4
, gpt-4-32k
(a API gpt-4 ainda não está totalmente aberta e pode ser usada após a aprovação do aplicativo)temperature
, frequency_penalty
, presence_penalty
: parâmetros da interface da API de bate-papo, consulte a documentação oficial da OpenAI para obter detalhes.proxy
: Como a interface openai
está atualmente inacessível na China, o endereço do cliente proxy precisa ser configurado. Para obter detalhes, consulte #351.image_create_prefix
config.py
.conversation_max_tokens
: indica o número máximo de palavras no contexto que podem ser lembradas (uma pergunta e uma resposta é um conjunto de conversas. Se o número acumulado de palavras na conversa exceder o limite, o conjunto de conversas mais antigo será removido primeiro)rate_limit_chatgpt
, rate_limit_dalle
: a taxa máxima de perguntas e respostas e a taxa de sorteio por minuto, enfileirados e processados em sequência após excesso de velocidade.clear_memory_commands
: comandos na caixa de diálogo que limpam automaticamente a memória anterior. A matriz de strings pode ser personalizada com aliases de comando.hot_reload
: Após a saída do programa, o status de verificação do código WeChat é armazenado temporariamente e fechado por padrão.character_desc
armazena uma frase que você disse ao robô. Ele se lembrará dessa frase e a usará como configuração. Você pode personalizar qualquer personalidade para ele (para mais informações sobre o contexto da conversa, consulte esta edição).subscribe_msg
: Para assinar mensagens, preencha a conta oficial e o canal corporativo do WeChat. Ele responderá automaticamente quando inscrito. Os espaços reservados atualmente suportados são {trigger_prefix}, que será automaticamente substituído pela palavra acionadora do bot no programa. Esta documentação pode não ser atualizada a tempo. Todos os itens de configuração atualmente opcionais estão listados neste config.py
.
Se estiver executando localmente na máquina de desenvolvimento, execute diretamente no diretório raiz do projeto:
python3 app.py
1. Após instalar as dependências principais no projeto principal, você também precisa instalar as dependências do ntchat.
pip install ntchat
2. Instale a versão designada do WeChat para PC: WeChat versão 3.6.0.18, escaneie o código QR para fazer login e desative a atualização automática do WeChat.
3. Modifique os principais itens de configuração do projeto: no arquivo config.json
"channel_type" : " ntchat "
4. Execute app.py
1. Após instalar as dependências principais no projeto principal, você também precisa instalar as dependências do ntchat.
pip install ntwork
2. Instale a versão designada do PC Enterprise WeChat: versão WeCom_4.0.8.6027, digitalize o código QR para fazer login e desative a atualização automática do Enterprise WeChat
3. Modifique os principais itens de configuração do projeto: no arquivo config.json
"channel_type" : " wework "
4. Execute app.py
1. Instale a versão designada do PC Enterprise WeChat: versão WeCom_4.0.8.6027, digitalize o código QR para fazer login e desative a atualização automática do Enterprise WeChat
2. Modifique os principais itens de configuração do projeto: no arquivo config.json
"channel_type" : " weworktop "
3. O administrador executa o programa de interface Qiwei. A versão básica está na pasta do projeto "WeChat-AIChatbot-WinOnlychannelweworktop". abra o Qiwei e baixe a etapa
4. Execute app.py