Um robô WeChat baseado em wechatbot-webhook, com suporte para perguntas e respostas GPT, hot search push, previsão do tempo, encaminhamento de mensagens, minijogos, lembrete de Webhook e outras funções.
WeChatter oferece suporte à implantação do Docker Compose, implantação do Docker e implantação local.
Dica
Recomenda-se usar Docker-compose para implantação.
mkdir WeChatter && cd WeChatter
wget -O config_cps.yaml https://cdn.jsdelivr.net/gh/cassius0924/wechatter@master/config_cps.yaml.example
config_cps.yaml
vim config_cps.yaml
wget https://cdn.jsdelivr.net/gh/cassius0924/wechatter@master/docker-compose.yml
docker-compose -f docker-compose.yml up
Use o WeChat para escanear a saída do código QR do terminal para fazer login no WeChat.
Use outra conta do WeChat para tentar dar um tapinha no robô ou enviar o comando /help
para o robô.
Dica
Para obter ajuda sobre comandos, use o comando /help
para consultar ou visualizar a exibição da função de comando.
Lembrete offline : quando o robô fica offline, uma mensagem de lembrete será enviada através do Bark.
As mensagens podem ser citadas e respondidas : os usuários podem obter ainda mais o conteúdo da mensagem citando e respondendo às mensagens de comando. Mensagens de bot com (可引用:***)
são mensagens citáveis com as quais podem ser interagidas posteriormente.
Encaminhamento de mensagens : encaminhe mensagens de um usuário ou grupo para outros usuários ou grupos e ofereça suporte a mensagens de encaminhamento de resposta com cotação. A configuração é necessária.
Lembrete de conta pública : quando a conta pública designada publica um novo artigo, o robô enviará um lembrete ao usuário ou grupo designado. A configuração é necessária.
Tarefas agendadas : a maioria dos comandos oferece suporte a tarefas agendadas. A configuração é necessária.
Encaminhamento de mensagens do Discord : com base no Discord Webhook, encaminha mensagens do WeChat para canais do Discord. A configuração é necessária.
Dica
Para obter ajuda com comandos relacionados ao jogo, use Visualizar comandos básicos do jogo.
config.yaml.example
no diretório raiz do projeto é o modelo do arquivo de configuração. Antes de iniciar o projeto pela primeira vez, você precisa copiar um arquivo de configuração e nomeá-lo config.yaml
. Edite config.yaml
.
A tabela a seguir explica os itens de configuração:
Itens de configuração | explicar | Observação |
---|---|---|
wechatter_port | A porta do servidor WeChatter, a porta para receber mensagens | O padrão é 4000 , que deve ser consistente com a porta do parâmetro RECV_MSG_API do wxbotwebhook Docker |
Itens de configuração | explicar | Observação |
---|---|---|
wx_webhook_base_api | BaseAPI para envio de mensagens | O padrão é http://localhost:3001 , que é o endereço do wxBotWebhook Docker. O valor padrão para implantação do Docker Compose é http://wxbotwebhook:3001 |
wx_webhook_recv_api_path | Caminho da interface para receber mensagens | O padrão é /receive_msg , este caminho é o caminho do parâmetro Docker RECVD_MSG_API |
wx_webhook_token | Token de wxBotWebhook | O padrão do Docker Compose é wechatter quando implantado |
Itens de configuração | explicar | Observação |
---|---|---|
admin_list | Configure um administrador para receber notificações de alteração de status do robô | Preencha o nome do administrador do WeChat (não comentários) |
admin_group_list | Semelhante a admin_list , receba notificações de alteração de status do robô | Preencha o nome do grupo (não as observações do grupo) |
bark_url | Bark URL para receber notificações de alteração de status do robô | Bark está disponível apenas em iOS e iPadOS |
Itens de configuração | explicar | Observação |
---|---|---|
bot_name | Nome do robô WeChat | Nome do WeChat, não ID do WeChat |
Itens de configuração | explicar | Observação |
---|---|---|
command_prefix | Prefixo de comando do robô | O padrão é / , que pode ser definido como qualquer caractere como >> , ! etc., e pode estar vazio quando este item está vazio, o prefixo do comando não é necessário para acionar o comando. |
need_mentioned | Os comandos no bate-papo em grupo exigem @bot? | O padrão é False |
ban_person_list | Lista de usuários da lista negra | Os bots não responderão às mensagens de usuários na lista negra |
ban_group_list | Lista de grupos da lista negra | Os bots não responderão a mensagens de grupos na lista negra |
Itens de configuração | explicar | Observação |
---|---|---|
openai_base_api | BaseAPI do serviço OpenAI | O padrão é https://api.openai.com |
openai_token | Token OpenAI (chave) | Chave de string começando com sk_ |
Método de acesso: iFlytek Spark Model - AI Large Language Model - Spark Model - iFlytek
Itens de configuração | explicar | Observação |
---|---|---|
spark_api | BaseAPI do serviço Spark Big Model | O padrão é https://spark-api-open.xf-yun.com/v1/chat/completions |
spark_model | Especifique a versão do modelo para acessar | lite aponta para a versão Lite; 4.0Ultra aponta para a versão 4.0 Ultra; |
spark_token | Token of Spark Modelo Grande | chave de string |
Método de acesso: https://console.x.ai/
Itens de configuração | explicar | Observação |
---|---|---|
grok_api | BaseAPI para serviço Grok | O padrão é https://api.x.ai/v1/chat/completions |
grok_model | Especifique a versão do modelo para acessar | O padrão é grok-beta |
grok_token | Símbolo de Grok | chave de string |
Itens de configuração | explicar | Observação |
---|---|---|
github_webhook_enabled | Mudança de função, se aceita GitHub Webhook | O padrão é False |
github_webhook_api_path | Receba o caminho da interface do GitHub Webhook | O padrão é /webhook/github |
github_webhook_receiver_list | Usuários do WeChat que recebem GitHub Webhook | |
github_webhook_receive_group_list | Receba o grupo GitHub Webhook WeChat |
Itens de configuração | criança | explicar | Observação |
---|---|---|---|
message_forwarding_enabled | Mudança de função, se deseja ativar o encaminhamento de mensagens | O padrão é False | |
message_forwarding_rule_list | Lista de regras de mensagens, cada regra contém quatro campos: from_list , from_list_exclude , to_person_list e to_group_list | ||
from_list | Lista de fontes de encaminhamento de mensagens, ou seja, o remetente da mensagem | Você pode preencher vários nomes de usuários ou nomes de grupos. Se quiser encaminhar todas as mensagens, use ["%ALL"] | |
from_list_exclude | Lista de exclusão de origem de encaminhamento de mensagens, usuários e grupos nesta lista não serão encaminhados | Só entra em vigor quando from_list é ["%ALL"] | |
to_person_list | Lista de usuários alvo de encaminhamento de mensagens, ou seja, usuários receptores de mensagens | Você pode preencher vários nomes de usuário ou uma lista vazia | |
to_group_list | Lista de grupos-alvo de encaminhamento de mensagens, ou seja, grupo de recebimento de mensagens | Você pode preencher vários nomes de grupos ou uma lista vazia |
Itens de configuração | criança | explicar | Observação |
---|---|---|---|
official_account_reminder_enabled | Mudança de função, se deseja ativar o encaminhamento de mensagens | O padrão é True | |
official_account_reminder_rule_list | Lista de regras de mensagens, cada regra contém três campos: oa_name_list , to_person_list e to_group_list | ||
oa_name_list | Lista oficial de nomes de contas | Você pode preencher vários nomes de contas oficiais | |
to_person_list | Lista de usuários alvo de encaminhamento de mensagens, ou seja, usuários receptores de mensagens | Você pode preencher vários nomes de usuário ou uma lista vazia | |
to_group_list | Lista de grupos-alvo de encaminhamento de mensagens, ou seja, grupo de recebimento de mensagens | Você pode preencher vários nomes de grupos ou uma lista vazia |
Itens de configuração | explicar | Observação |
---|---|---|
all_task_cron_enabled | Chave mestre para todas as tarefas agendadas | O padrão é True |
task_cron_list | Lista de tarefas agendadas, cada tarefa contém quatro campos: task , enabled , cron e commands |
Para obter detalhes sobre a configuração de tarefas agendadas, consulte Detalhes de configuração de tarefas agendadas.
Itens de configuração | explicar | Observação |
---|---|---|
custom_command_key_dict | Dicionário de palavras-chave de comando personalizado, o formato é command: [key1, key2, ...] , onde command é o nome do comando, key1 e key2 são palavras-chave de comando personalizadas |
Para os valores opcionais do nome do comando, consulte os detalhes de configuração da palavra-chave do comando personalizado.
Itens de configuração | criança | explicar | Observação |
---|---|---|---|
discord_message_forwarding_enabled | Mudança de função, se deseja ativar o encaminhamento de mensagens do Discord | O padrão é False | |
discord_message_forwarding_rule_list | Lista de regras de mensagens, cada regra contém três campos: from_list , to_discord_webhook_url e to_discord_webhook_name | ||
from_list | Lista de fontes de encaminhamento de mensagens, ou seja, o remetente da mensagem | Você pode preencher vários nomes de usuários ou nomes de grupos. Se quiser encaminhar todas as mensagens, use ["%ALL"] | |
from_list_exclude | Lista de exclusão de origem de encaminhamento de mensagens, usuários e grupos nesta lista não serão encaminhados | Só entra em vigor quando from_list é ["%ALL"] | |
discord_webhook_url | URL do Discord Webhook de destino de encaminhamento de mensagem |
Itens de configuração | explicar | Observação |
---|---|---|
gpt_mode_person_list | Lista de usuários padrão para o modo de perguntas e respostas da GPT | Ou seja, mensagens com palavras-chave de comando acionarão os comandos correspondentes normalmente e outras mensagens serão consideradas comandos GPT. |
gpt_model | Modelo padrão de perguntas e respostas da GPT | Os valores opcionais são gpt35 , gpt4 |
Os arquivos de log são armazenados na pasta logs/
no diretório raiz do projeto.
O nível de registro padrão é INFO
e os valores opcionais do nível de registro são DEBUG
, INFO
, WARNING
, ERROR
e CRITICAL
.
Se você precisar ajustar o nível de registro, modifique a variável de ambiente WECHATTER_LOG_LEVEL
no arquivo docker-compose.yml
.
Modifique a variável de ambiente WECHATTER_LOG_LEVEL
no comando docker run
.
Modifique a variável de ambiente do sistema WECHATTER_LOG_LEVEL
.
export WECHATTER_LOG_LEVEL=DEBUG
Obrigado às seguintes pessoas que contribuíram para este projeto:
Observação
Em desenvolvimento...
Aviso
Este projeto ainda está em desenvolvimento e sugestões e comentários são bem-vindos.