wechatbot-webhook을 기반으로 하는 WeChat 로봇으로 GPT Q&A, 핫 검색 푸시, 일기 예보, 메시지 전달, 미니 게임, Webhook 알림 및 기타 기능을 지원합니다.
WeChatter는 Docker Compose 배포, Docker 배포 및 로컬 배포를 지원합니다.
팁
배포에는 Docker-compose를 사용하는 것이 좋습니다.
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
WeChat을 사용하여 터미널에서 출력된 QR 코드를 스캔하여 WeChat에 로그인하세요.
다른 WeChat 계정을 사용하여 로봇을 두드려보거나 로봇에 /help
명령을 보내보세요.
팁
명령 도움말을 보려면 /help
명령을 사용하여 명령 기능 표시를 쿼리하거나 보십시오.
오프라인 알림 : 로봇이 오프라인이 되면 Bark를 통해 알림 메시지가 푸시됩니다.
메시지 인용 및 응답 가능 : 사용자는 명령 메시지를 인용하고 응답하여 메시지 내용을 추가로 얻을 수 있습니다. (可引用:***)
이 있는 봇 메시지는 추가로 상호 작용할 수 있는 인용 가능한 메시지입니다.
메시지 전달 : 사용자 또는 그룹의 메시지를 다른 사용자 또는 그룹으로 전달하고 메시지 인용 회신 전달을 지원합니다. 구성이 필요합니다.
공개 계정 알림 : 지정된 공개 계정이 새 기사를 게시하면 로봇이 지정된 사용자 또는 그룹에 알림을 보냅니다. 구성이 필요합니다.
예약된 작업 : 대부분의 명령은 예약된 작업을 지원합니다. 구성이 필요합니다.
Discord 메시지 전달 : Discord Webhook을 기반으로 WeChat 메시지를 Discord 채널로 전달합니다. 구성이 필요합니다.
팁
게임 관련 명령에 대한 도움말은 기본 게임 명령 보기를 사용하세요.
프로젝트 루트 디렉터리의 config.yaml.example
구성 파일 템플릿입니다. 프로젝트를 처음 시작하기 전에 구성 파일을 복사하고 이름을 config.yaml
로 지정해야 합니다. config.yaml
편집합니다.
다음 표에서는 구성 항목에 대해 설명합니다.
구성 항목 | 설명하다 | 주목 |
---|---|---|
wechatter_port | WeChatter 서버의 포트, 메시지 수신용 포트 | 기본값은 4000 이며 wxbotwebhook Docker의 RECV_MSG_API 매개변수 포트와 일치해야 합니다. |
구성 항목 | 설명하다 | 주목 |
---|---|---|
wx_webhook_base_api | 메시지 전송을 위한 BaseAPI | 기본값은 wxBotWebhook Docker의 주소인 http://localhost:3001 입니다. Docker Compose 배포의 기본값은 http://wxbotwebhook:3001 입니다. |
wx_webhook_recv_api_path | 메시지 수신을 위한 인터페이스 경로 | 기본값은 /receive_msg 이며, 이 경로는 Docker 매개변수 RECVD_MSG_API 의 경로입니다. |
wx_webhook_token | wxBotWebhook의 토큰 | Docker Compose는 배포 시 기본적으로 wechatter 로 설정됩니다. |
구성 항목 | 설명하다 | 주목 |
---|---|---|
admin_list | 로봇 상태 변경 알림을 받을 관리자를 설정하세요. | 관리자의 WeChat 이름을 입력하세요(비고 아님). |
admin_group_list | admin_list 와 유사하며 로봇 상태 변경 알림을 받습니다. | 그룹명을 입력하세요. (그룹 비고 아님) |
bark_url | 로봇 상태 변경 알림을 수신하기 위한 Bark URL | Bark는 iOS 및 iPadOS에서만 사용할 수 있습니다. |
구성 항목 | 설명하다 | 주목 |
---|---|---|
bot_name | 위챗 로봇 이름 | WeChat ID가 아닌 WeChat 이름 |
구성 항목 | 설명하다 | 주목 |
---|---|---|
command_prefix | 로봇 명령 접두사 | 기본값은 / 이며 >> , ! 등 임의의 문자로 설정할 수 있으며, 비어 있을 수 있습니다. 이 항목이 비어 있으면 명령을 트리거하는 데 명령 접두사가 필요하지 않습니다. |
need_mentioned | 그룹 채팅의 명령에는 @bot이 필요합니까? | 기본값은 False 입니다 |
ban_person_list | 블랙리스트 사용자 목록 | 봇은 블랙리스트에 있는 사용자의 메시지에 응답하지 않습니다. |
ban_group_list | 블랙리스트 그룹 목록 | 봇은 블랙리스트에 있는 그룹의 메시지에 응답하지 않습니다. |
구성 항목 | 설명하다 | 주목 |
---|---|---|
openai_base_api | OpenAI 서비스의 BaseAPI | 기본값은 https://api.openai.com 입니다. |
openai_token | OpenAI 토큰(키) | sk_ 로 시작하는 문자열 키 |
접근 방법: iFlytek Spark 모델 - AI Large Language 모델 - Spark 모델 - iFlytek
구성 항목 | 설명하다 | 주목 |
---|---|---|
spark_api | Spark 빅모델 서비스의 BaseAPI | 기본값은 https://spark-api-open.xf-yun.com/v1/chat/completions 입니다. |
spark_model | 액세스할 모델 버전을 지정하세요. | lite는 Lite 버전을 가리키고, 4.0Ultra는 4.0 Ultra 버전을 가리킵니다. |
spark_token | 스파크 대형 모델의 토큰 | 문자열 키 |
접속방법 : https://console.x.ai/
구성 항목 | 설명하다 | 주목 |
---|---|---|
grok_api | Grok 서비스용 BaseAPI | 기본값은 https://api.x.ai/v1/chat/completions 입니다. |
grok_model | 액세스할 모델 버전을 지정하세요. | 기본값은 grok-beta입니다. |
grok_token | 그록의 토큰 | 문자열 키 |
구성 항목 | 설명하다 | 주목 |
---|---|---|
github_webhook_enabled | 기능 스위치, GitHub Webhook 허용 여부 | 기본값은 False 입니다 |
github_webhook_api_path | GitHub Webhook의 인터페이스 경로를 받습니다. | 기본값은 /webhook/github 입니다. |
github_webhook_receiver_list | GitHub Webhook을 수신하는 WeChat 사용자 | |
github_webhook_receive_group_list | GitHub Webhook WeChat 그룹 수신 |
구성 항목 | 어린이 | 설명하다 | 주목 |
---|---|---|---|
message_forwarding_enabled | 기능 스위치, 메시지 전달 활성화 여부 | 기본값은 False 입니다 | |
message_forwarding_rule_list | 메시지 규칙 목록, 각 규칙에는 from_list , from_list_exclude , to_person_list 및 to_group_list 4개의 필드가 포함되어 있습니다. | ||
from_list | 메시지 전달 소스 목록, 즉 메시지 보낸 사람 | 여러 사용자 이름이나 그룹 이름을 입력할 수 있습니다. 모든 메시지를 전달하려면 ["%ALL"] 사용하세요. | |
from_list_exclude | 메시지 전달 소스 제외 목록, 이 목록의 사용자 및 그룹은 전달되지 않습니다. | from_list ["%ALL"] 인 경우에만 적용됩니다. | |
to_person_list | 메시지 전달 대상 사용자, 즉 메시지 수신 사용자 목록 | 여러 사용자 이름이나 빈 목록을 채울 수 있습니다. | |
to_group_list | 메시지 전달 대상 그룹 목록, 즉 메시지 수신 그룹 | 여러 그룹 이름이나 빈 목록을 채울 수 있습니다. |
구성 항목 | 어린이 | 설명하다 | 주목 |
---|---|---|---|
official_account_reminder_enabled | 기능 스위치, 메시지 전달 활성화 여부 | 기본값은 True 입니다 | |
official_account_reminder_rule_list | 메시지 규칙 목록. 각 규칙에는 oa_name_list , to_person_list 및 to_group_list 의 세 가지 필드가 포함되어 있습니다. | ||
oa_name_list | 공식 계정 이름 목록 | 여러 개의 공식 계정 이름을 입력할 수 있습니다. | |
to_person_list | 메시지 전달 대상 사용자, 즉 메시지 수신 사용자 목록 | 여러 사용자 이름이나 빈 목록을 채울 수 있습니다. | |
to_group_list | 메시지 전달 대상 그룹 목록, 즉 메시지 수신 그룹 | 여러 그룹 이름이나 빈 목록을 채울 수 있습니다. |
구성 항목 | 설명하다 | 주목 |
---|---|---|
all_task_cron_enabled | 모든 예약된 작업을 위한 마스터 스위치 | 기본값은 True 입니다 |
task_cron_list | 예약된 작업 목록, 각 작업에는 task , enabled , cron 및 commands 4개 필드가 포함되어 있습니다. |
예약된 작업 구성에 대한 자세한 내용은 예약된 작업 구성 세부 정보를 참조하세요.
구성 항목 | 설명하다 | 주목 |
---|---|---|
custom_command_key_dict | 사용자 정의 명령 키워드 사전, 형식은 command: [key1, key2, ...] 입니다. 여기서 command 는 명령 이름이고, key1 및 key2 사용자 정의 명령 키워드입니다. |
명령 이름의 선택적 값은 사용자 정의 명령 키워드 구성 세부 사항을 참조하십시오.
구성 항목 | 어린이 | 설명하다 | 주목 |
---|---|---|---|
discord_message_forwarding_enabled | 기능 스위치, Discord 메시지 전달 활성화 여부 | 기본값은 False 입니다 | |
discord_message_forwarding_rule_list | 메시지 규칙 목록, 각 규칙에는 from_list , to_discord_webhook_url 및 to_discord_webhook_name 의 세 가지 필드가 포함되어 있습니다. | ||
from_list | 메시지 전달 소스 목록, 즉 메시지 보낸 사람 | 여러 사용자 이름이나 그룹 이름을 입력할 수 있습니다. 모든 메시지를 전달하려면 ["%ALL"] 사용하세요. | |
from_list_exclude | 메시지 전달 소스 제외 목록, 이 목록의 사용자 및 그룹은 전달되지 않습니다. | from_list ["%ALL"] 인 경우에만 적용됩니다. | |
discord_webhook_url | 메시지 전달 대상 Discord Webhook URL |
구성 항목 | 설명하다 | 주목 |
---|---|---|
gpt_mode_person_list | GPT Q&A 모드의 기본 사용자 목록 | 즉, 명령 키워드가 포함된 메시지는 해당 명령을 정상적으로 실행하고, 다른 메시지는 GPT 명령으로 판단됩니다. |
gpt_model | 기본 GPT Q&A 모델 | 선택적 값은 gpt35 , gpt4 |
로그 파일은 프로젝트 루트 디렉터리의 logs/
폴더에 저장됩니다.
기본 로깅 수준은 INFO
이고 선택적 로깅 수준 값은 DEBUG
, INFO
, WARNING
, ERROR
및 CRITICAL
입니다.
로깅 수준을 조정해야 하는 경우 docker-compose.yml
파일에서 WECHATTER_LOG_LEVEL
환경 변수를 수정하세요.
docker run
명령에서 WECHATTER_LOG_LEVEL
환경 변수를 수정하세요.
시스템 환경 변수 WECHATTER_LOG_LEVEL
수정하세요.
export WECHATTER_LOG_LEVEL=DEBUG
이 프로젝트에 기여해주신 다음 분들께 감사드립니다.
메모
개발중...
경고
이 프로젝트는 아직 개발 중이므로 제안과 의견을 환영합니다.