Ce projet ne peut fonctionner que sur le système win . Il est basé sur la deuxième modification de chatgpt-on-wechat et utilise entièrement le framework du projet source. Il prend en charge le client PC de la plateforme Win et le client entreprise et micro. Ce projet continuera à être mis à jour, et les plug-ins seront également progressivement développés. Il peut être développé par une seule personne, ne vous précipitez pas, merci !
Les canaux de messages et fonctions pris en charge par le projet sont les suivants :
Wework : Le canal de messagerie des comptes d'entreprise et micro-personnel côté PC, qui repose sur ntwork et est limité à la version WeCom_4.0.8.6027, ne peut exécuter le projet que sur la plate-forme Win .
Wechat : Un canal de micro-messages côté PC, qui s'appuie sur le projet ntchat. Il prend en charge jusqu'à la version de l'environnement Python310, est limité à la version WeChat3.6.0.18 et ne peut exécuter le projet que sur la plateforme Win .
2023.08.15 : Mise à jour de la logique d'accès FastGpt pour prendre en charge un seul groupe et une seule base de connaissances. Si elle n'est pas configurée, la base globale sera utilisée par défaut.
{ "fast_gpt" : true , "fastgpt_list" : { "R:108864****63985" : " fastgpt-1aps*****pg47-64b16a*******181317 " , "R:107******373863" : " fastgpt-1aps8*****gni1kpg47-64b168*****cd181267 " } }2023.08.08 : Ajout du canal de messagerie Wework (compte personnel Qiwei).
2023.07.25 : Il convient d'ajouter un canal de message WeChat. Le projet est compatible avec l'interface API FastGPT et peut être utilisé en modifiant directement open_ai_api_key et open_ai_api_base.
Prend uniquement en charge les systèmes Windows et nécessite l'installation Python
.
Il est recommandé que la version Python soit comprise entre 3.7.1 et 3.10.
(1) Téléchargez le code du projet :
git clone https://github.com/chazzjimel/WeChat-AIChatbot-WinOnly
cd chatgpt-on-wechat/
(2) Installer les dépendances principales (obligatoire) :
pip3 install -r requirements.txt
(3) Dépendances d'extension (facultatif, installation recommandée) :
pip3 install -r requirements-optional.txt
Si l'installation d'une certaine dépendance échoue, veuillez commenter la ligne correspondante avant de continuer.
Parmi eux, tiktoken
nécessite la version 3.8 ou supérieure python
. Il est utilisé pour calculer avec précision le nombre de jetons utilisés dans la session. Il est fortement recommandé de l'installer.
Pour utiliser la reconnaissance vocale google
ou baidu
, vous devez installer ffmpeg
.
La reconnaissance vocale openai
par défaut ne nécessite pas l'installation ffmpeg
.
Référence #415
Pour utiliser la fonction azure
Voice, vous devez installer des dépendances et vous référer aux exigences environnementales du document. :
pip3 install azure-cognitiveservices-speech
Le modèle du fichier de configuration se trouve dans config-template.json
dans le répertoire racine. Vous devez copier le modèle pour créer le fichier config.json
final efficace :
cp config-template.json config.json
Remplissez ensuite la configuration dans config.json
. Ce qui suit est une description de la configuration par défaut. Vous pouvez la personnaliser selon vos besoins (veuillez supprimer les commentaires) :
# 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的参数
}
Instructions de configuration :
1. Discussion personnelle
single_chat_prefix
(si vous n'avez pas besoin de déclencher avec un préfixe, vous pouvez remplir "single_chat_prefix": [""]
)single_chat_reply_prefix
(si vous n'avez pas besoin de préfixe, vous pouvez remplir "single_chat_reply_prefix": ""
)2. Discussion de groupe
group_name_white_list
pour activer la réponse automatique du chat de groupe. Si vous souhaitez prendre effet pour toutes les discussions de groupe, vous pouvez directement renseigner "group_name_white_list": ["ALL_GROUP"]
group_chat_prefix
group_name_keyword_white_list
prend en charge la correspondance floue des noms de groupe, et l'élément de configuration group_chat_keyword
prend en charge la correspondance floue du contenu des messages de groupe. L'utilisation est la même que celle des deux éléments de configuration ci-dessus. (Contributé par evolay)group_chat_in_one_session
: permet aux discussions de groupe de partager un contexte de session, et la configuration ["ALL_GROUP"]
s'applique à toutes les discussions de groupe3. Reconnaissance vocale
"speech_recognition": true
activera la reconnaissance vocale. Par défaut, le modèle Whisper d'openai sera utilisé pour reconnaître le texte et répondre avec du texte. Ce paramètre ne prend en charge que le chat privé (notez que puisque les messages vocaux ne peuvent pas correspondre aux préfixes, une fois activé, toutes les voix le seront. être automatiquement répondu. Prend en charge le dessin déclenché par la voix);"group_speech_recognition": true
activera la reconnaissance vocale de groupe. Par défaut, le modèle murmure d'openai est utilisé pour reconnaître le texte et répondre avec du texte. Le paramètre prend uniquement en charge le chat de groupe (correspondra à group_chat_prefix et group_chat_keyword, et prend en charge le dessin déclenché par la voix) ;"voice_reply_voice": true
activera la réponse vocale (s'applique à la fois au chat privé et au chat de groupe), mais vous devez configurer la clé correspondant à la plateforme de synthèse vocale. En raison des limitations du protocole itchat, seuls les fichiers mp3 vocaux peuvent. être envoyé. Si vous utilisez wechaty, répondez C'est la voix WeChat.4.Autres configurations
model
: nom du modèle, prend actuellement en charge gpt-3.5-turbo
, text-davinci-003
, gpt-4
, gpt-4-32k
(l'API gpt-4 n'est pas encore complètement ouverte et peut être utilisée une fois l'application approuvée)temperature
, frequency_penalty
, presence_penalty
: paramètres de l'interface de l'API Chat, veuillez vous référer à la documentation officielle d'OpenAI pour plus de détails.proxy
: L'interface openai
étant actuellement inaccessible en Chine, l'adresse du client proxy doit être configurée. Pour plus de détails, reportez-vous au #351.image_create_prefix
config.py
.conversation_max_tokens
: indique le nombre maximum de mots dans le contexte qui peuvent être mémorisés (une question et une réponse sont un ensemble de conversations. Si le nombre accumulé de mots dans la conversation dépasse la limite, le premier ensemble de conversations sera supprimé en premier)rate_limit_chatgpt
, rate_limit_dalle
: le taux maximum de questions et de réponses et le taux de tirage par minute, mis en file d'attente et traités en séquence après un excès de vitesse.clear_memory_commands
: commandes dans le dialogue qui effacent automatiquement la mémoire précédente. Le tableau de chaînes peut être personnalisé avec des alias de commande.hot_reload
: Une fois le programme terminé, l'état d'analyse du code WeChat est temporairement stocké et est fermé par défaut.character_desc
stocke une phrase que vous avez dite au robot. Il se souviendra de cette phrase et l'utilisera comme paramètres. Vous pouvez personnaliser n'importe quelle personnalité pour lui (pour plus d'informations sur le contexte de la conversation, veuillez vous référer à ce problème).subscribe_msg
: Pour vous abonner aux messages, veuillez remplir le compte officiel et le canal WeChat d'entreprise. Il répondra automatiquement une fois abonné. Des espaces réservés spéciaux peuvent être utilisés. Les espaces réservés actuellement pris en charge sont {trigger_prefix}, qui sera automatiquement remplacé par le mot déclencheur du bot dans le programme. Cette documentation peut ne pas être mise à jour à temps. Tous les éléments de configuration actuellement facultatifs sont répertoriés dans ce config.py
.
Si vous exécutez localement sur la machine de développement, exécutez directement dans le répertoire racine du projet :
python3 app.py
1. Après avoir installé les dépendances principales dans le projet principal, vous devez également installer les dépendances ntchat.
pip install ntchat
2. Installez la version PC WeChat désignée : WeChat version 3.6.0.18, scannez le code QR pour vous connecter et désactivez la mise à jour automatique de WeChat.
3. Modifiez les principaux éléments de configuration du projet : dans le fichier config.json
"channel_type" : " ntchat "
4. Exécutez app.py
1. Après avoir installé les dépendances principales dans le projet principal, vous devez également installer les dépendances ntchat.
pip install ntwork
2. Installez la version PC Enterprise WeChat désignée : version WeCom_4.0.8.6027, scannez le code QR pour vous connecter et désactivez la mise à jour automatique d'Enterprise WeChat.
3. Modifiez les principaux éléments de configuration du projet : dans le fichier config.json
"channel_type" : " wework "
4. Exécutez app.py
1. Installez la version PC Enterprise WeChat désignée : version WeCom_4.0.8.6027, scannez le code QR pour vous connecter et désactivez la mise à jour automatique d'Enterprise WeChat.
2. Modifiez les principaux éléments de configuration du projet : dans le fichier config.json
"channel_type" : " weworktop "
3. L'administrateur exécute le programme d'interface Qiwei. La version de base se trouve dans le dossier du projet "WeChat-AIChatbot-WinOnlychannelweworktop". Cliquez pour démarrer le service sans entrer la clé. ouvrez Qiwei et étape de téléchargement
4. Exécutez app.py