Dieses Projekt kann nur auf dem Win-System ausgeführt werden . Es basiert auf der zweiten Modifikation von chatgpt-on-wechat und nutzt vollständig das Framework des Quellprojekts. Es unterstützt den PC-Client der Win-Plattform sowie den Enterprise- und Micro-Client. Dieses Projekt wird weiterhin aktualisiert und Plug-Ins werden auch schrittweise entwickelt. Es kann von einer Person entwickelt werden. Bitte beeilen Sie sich nicht, danke!
Die vom Projekt unterstützten Nachrichtenkanäle und Funktionen sind wie folgt:
Wework : Der PC-seitige Messaging-Kanal für Unternehmens- und Mikro-Personenkonten, der auf ntwork basiert und auf die Version WeCom_4.0.8.6027 beschränkt ist, kann das Projekt nur auf der Win-Plattform ausführen .
Wechat : Ein Mikronachrichtenkanal auf der PC-Seite, der auf dem Ntchat-Projekt basiert. Er unterstützt bis zur Python310-Umgebungsversion, ist auf die WeChat3.6.0.18-Version beschränkt und kann das Projekt nur auf der Win-Plattform ausführen .
2023.08.15: FastGpt-Zugriffslogik aktualisieren, um einzelne Gruppen und einzelne Wissensdatenbanken zu unterstützen. Wenn nicht konfiguriert, wird standardmäßig die globale Datenbank verwendet.
{ "fast_gpt" : true , "fastgpt_list" : { "R:108864****63985" : " fastgpt-1aps*****pg47-64b16a*******181317 " , "R:107******373863" : " fastgpt-1aps8*****gni1kpg47-64b168*****cd181267 " } }08.08.2023: Nachrichtenkanal Wework (persönliches Qiwei-Konto) hinzugefügt.
25.07.2023: Es ist angebracht, einen Wechat-Nachrichtenkanal hinzuzufügen. Das Projekt ist mit der FastGPT-API-Schnittstelle kompatibel und kann durch direktes Ändern von open_ai_api_key und open_ai_api_base verwendet werden.
Unterstützt nur Windows-Systeme und erfordert die Installation Python
.
Es wird empfohlen, dass die Python-Version zwischen 3.7.1 und 3.10 liegt.
(1) Projektcode herunterladen:
git clone https://github.com/chazzjimel/WeChat-AIChatbot-WinOnly
cd chatgpt-on-wechat/
(2) Kernabhängigkeiten installieren (erforderlich):
pip3 install -r requirements.txt
(3) Erweiterungsabhängigkeiten (optional, Installation empfohlen):
pip3 install -r requirements-optional.txt
Wenn die Installation einer bestimmten Abhängigkeit fehlschlägt, kommentieren Sie bitte die entsprechende Zeile aus, bevor Sie fortfahren.
Unter anderem erfordert tiktoken
python
Version 3.8 oder höher. Es wird dringend empfohlen, die Anzahl der in der Sitzung verwendeten Token zu berechnen.
Um die Spracherkennung google
oder baidu
nutzen zu können, müssen Sie ffmpeg
installieren.
Für die standardmäßige openai
Spracherkennung ist die Installation von ffmpeg
nicht erforderlich.
Referenz Nr. 415
Um die azure
Voice-Funktion nutzen zu können, müssen Sie Abhängigkeiten installieren und sich auf die Umgebungsanforderungen des Dokuments beziehen. :
pip3 install azure-cognitiveservices-speech
Die Vorlage der Konfigurationsdatei befindet sich in config-template.json
im Stammverzeichnis. Sie müssen die Vorlage kopieren, um die endgültige effektive Datei config.json
zu erstellen:
cp config-template.json config.json
Geben Sie dann die Konfiguration in config.json
ein. Im Folgenden finden Sie eine Beschreibung der Standardkonfiguration. Sie können sie nach Bedarf anpassen (bitte entfernen Sie die Kommentare):
# 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的参数
}
Konfigurationsanleitung:
1.Persönlicher Chat
single_chat_prefix
auslösen (wenn Sie nicht mit einem Präfix auslösen müssen, können Sie "single_chat_prefix": [""]
)single_chat_reply_prefix
(wenn Sie kein Präfix benötigen, können Sie "single_chat_reply_prefix": ""
)2.Gruppenchat
group_name_white_list
konfiguriert werden, um die automatische Antwort auf den Gruppenchat zu ermöglichen. Wenn Sie für alle Gruppenchats wirksam werden möchten, können Sie "group_name_white_list": ["ALL_GROUP"]
group_chat_prefix
entsprichtgroup_name_keyword_white_list
unterstützt den Fuzzy-Abgleich von Gruppennamen und das Konfigurationselement group_chat_keyword
unterstützt den Fuzzy-Abgleich von Gruppennachrichteninhalten. Die Verwendung ist dieselbe wie bei den beiden oben genannten Konfigurationselementen. (Beigetragen von evolay)group_chat_in_one_session
: ermöglicht Gruppenchats die gemeinsame Nutzung eines Sitzungskontexts, und die Konfiguration ["ALL_GROUP"]
gilt für alle Gruppenchats3. Spracherkennung
"speech_recognition": true
wird die Spracherkennung aktiviert. Standardmäßig wird das Flüstermodell von openai verwendet, um Text zu erkennen und mit Text zu antworten. (Beachten Sie, dass alle Stimmen dies tun, sobald sie aktiviert sind, da Sprachnachrichten nicht mit Präfixen übereinstimmen können automatisch beantwortet werden. Unterstützt sprachgesteuertes Zeichnen."group_speech_recognition": true
wird die Gruppenspracherkennung aktiviert. Standardmäßig wird das Flüstermodell von openai verwendet, um Text zu erkennen und mit Text zu antworten. Der Parameter unterstützt nur Gruppenchat (entspricht „group_chat_prefix“ und „group_chat_keyword“ und unterstützt sprachgesteuertes Zeichnen)."voice_reply_voice": true
wird die Sprachantwort aktiviert (gilt sowohl für den privaten Chat als auch für den Gruppenchat), aber Sie müssen den Schlüssel konfigurieren, der der Sprachsyntheseplattform entspricht. Aufgrund der Einschränkungen des itchat-Protokolls ist dies nur für Sprach-MP3-Dateien möglich gesendet werden. Wenn Sie Wechaty verwenden, antworten Sie mit der WeChat-Stimme.4.Andere Konfigurationen
model
: Modellname, unterstützt derzeit gpt-3.5-turbo
, text-davinci-003
, gpt-4
, gpt-4-32k
(die gpt-4-API ist noch nicht vollständig geöffnet und kann nach Genehmigung des Antrags verwendet werden)temperature
, frequency_penalty
, presence_penalty
: Parameter der Chat-API-Schnittstelle. Weitere Informationen finden Sie in der offiziellen Dokumentation von OpenAI.proxy
: Da die openai
Schnittstelle derzeit in China nicht zugänglich ist, muss die Adresse des Proxy-Clients konfiguriert werden. Weitere Informationen finden Sie unter #351image_create_prefix
config.py
.conversation_max_tokens
: Gibt die maximale Anzahl von Wörtern im Kontext an, die man sich merken kann (eine Frage und eine Antwort bilden eine Reihe von Konversationen. Wenn die kumulierte Anzahl von Wörtern in der Konversation den Grenzwert überschreitet, wird die früheste Gruppe von Konversationen zuerst entfernt).rate_limit_chatgpt
, rate_limit_dalle
: die maximale Frage- und Antwortrate und Zeichnungsrate pro Minute, die nach Übergeschwindigkeit in die Warteschlange gestellt und nacheinander verarbeitet werden.clear_memory_commands
: Dialoginterne Befehle, die den vorherigen Speicher automatisch löschen. Das String-Array kann mit Befehlsaliasen angepasst werden.hot_reload
: Nach dem Beenden des Programms wird der WeChat-Code-Scanstatus vorübergehend gespeichert und standardmäßig geschlossen.character_desc
wird ein Satz gespeichert, den Sie dem Roboter gesagt haben. Er merkt sich diesen Satz und verwendet ihn als seine Einstellungen. Sie können jede beliebige Persönlichkeit für ihn anpassen (weitere Informationen zum Konversationskontext finden Sie in dieser Ausgabe).subscribe_msg
: Um Nachrichten zu abonnieren, füllen Sie bitte das offizielle Konto und den WeChat-Kanal aus. Beim Abonnieren wird automatisch geantwortet. Derzeit unterstützte Platzhalter sind {trigger_prefix}, die im Programm automatisch durch das Triggerwort des Bots ersetzt werden. Diese Dokumentation wird möglicherweise nicht rechtzeitig aktualisiert. Alle derzeit optionalen Konfigurationselemente sind in dieser config.py
aufgeführt.
Wenn Sie es lokal auf dem Entwicklungscomputer ausführen , führen Sie es direkt im Projektstammverzeichnis aus:
python3 app.py
1. Nachdem Sie die Hauptabhängigkeiten im Hauptprojekt installiert haben, müssen Sie auch die Ntchat-Abhängigkeiten installieren.
pip install ntchat
2. Installieren Sie die angegebene PC-WeChat-Version: WeChat-Version 3.6.0.18, scannen Sie den QR-Code, um sich anzumelden, und deaktivieren Sie die automatische Aktualisierung von WeChat.
3. Ändern Sie die Hauptkonfigurationselemente des Projekts: in der Datei config.json
"channel_type" : " ntchat "
4. Führen Sie app.py aus
1. Nachdem Sie die Hauptabhängigkeiten im Hauptprojekt installiert haben, müssen Sie auch die Ntchat-Abhängigkeiten installieren.
pip install ntwork
2. Installieren Sie die angegebene PC Enterprise WeChat-Version: WeCom_4.0.8.6027-Version, scannen Sie den QR-Code, um sich anzumelden, und deaktivieren Sie die automatische Aktualisierung von Enterprise WeChat
3. Ändern Sie die Hauptkonfigurationselemente des Projekts: in der Datei config.json
"channel_type" : " wework "
4. Führen Sie app.py aus
1. Installieren Sie die angegebene PC Enterprise WeChat-Version: WeCom_4.0.8.6027-Version, scannen Sie den QR-Code, um sich anzumelden, und deaktivieren Sie die automatische Aktualisierung von Enterprise WeChat
2. Ändern Sie die Hauptkonfigurationselemente des Projekts: in der Datei config.json
"channel_type" : " weworktop "
3. Der Administrator führt das Qiwei-Schnittstellenprogramm im Projektordner „WeChat-AIChatbot-WinOnlychannelweworktop“ aus. Klicken Sie, um den Dienst zu starten, ohne den Schlüssel einzugeben. Öffnen Sie Qiwei und laden Sie den Schritt herunter
4. Führen Sie app.py aus