このプロジェクトは win システムでのみ実行できます。chatgpt-on-wechat の 2 番目の修正に基づいており、ソース プロジェクトのフレームワークを完全に使用しています。 Win プラットフォームの PC クライアントとエンタープライズおよびマイクロ クライアントをサポートします。このプロジェクトは今後も更新され、プラグインも徐々に開発されます。急いでいないでください。
プロジェクトでサポートされているメッセージ チャネルと機能は次のとおりです。
Wework : PC 側の企業およびマイクロ個人アカウントのメッセージング チャネルは、ntwork に依存し、WeCom_4.0.8.6027 バージョンに限定されており、プロジェクトを Win プラットフォームでのみ実行できます。
Wechat : ntchat プロジェクトに依存する PC 側のマイクロ メッセージ チャネルは、Python310 環境バージョンまでサポートされますが、WeChat3.6.0.18 バージョンに制限されており、プロジェクトは Win プラットフォームでのみ実行できます。
2023.08.15:単一グループと単一ナレッジ ベースをサポートするように FastGpt アクセス ロジックを更新します。構成されていない場合は、デフォルトでグローバル ベースが使用されます。
{ "fast_gpt" : true , "fastgpt_list" : { "R:108864****63985" : " fastgpt-1aps*****pg47-64b16a*******181317 " , "R:107******373863" : " fastgpt-1aps8*****gni1kpg47-64b168*****cd181267 " } }2023.08.08: Wework (Qiwei 個人アカウント) メッセージ チャンネルを追加しました。
2023.07.25: wechat メッセージ チャネルを追加するのが適切です。プロジェクトは FastGPT API インターフェイスと互換性があり、open_ai_api_key と open_ai_api_base を直接変更することで使用できます。
Windows システムのみをサポートし、 Python
がインストールされている必要があります。
Python のバージョンは 3.7.1 ~ 3.10 であることを推奨します。
(1) プロジェクトコードをダウンロード:
git clone https://github.com/chazzjimel/WeChat-AIChatbot-WinOnly
cd chatgpt-on-wechat/
(2) コアの依存関係をインストールします (必須)。
pip3 install -r requirements.txt
(3) 拡張の依存関係 (オプション、インストールを推奨):
pip3 install -r requirements-optional.txt
特定の依存関係のインストールが失敗した場合は、続行する前に対応する行をコメントアウトしてください。
このうち、 tiktoken
セッションで使用されるトークンの数を正確に計算するためにpython
バージョン 3.8 以降が必要です。インストールすることを強くお勧めします。
google
またはbaidu
音声認識を使用するには、 ffmpeg
インストールする必要があります。
デフォルトのopenai
音声認識では、 ffmpeg
インストールする必要はありません。
参考番号415
azure
Voice 機能を使用するには、依存関係をインストールし、ドキュメントの環境要件を参照する必要があります。 :
pip3 install azure-cognitiveservices-speech
構成ファイルのテンプレートは、ルート ディレクトリのconfig-template.json
にあります。最終的な有効なconfig.json
ファイルを作成するには、テンプレートをコピーする必要があります。
cp config-template.json config.json
次に、 config.json
に設定を入力します。以下はデフォルトの設定の説明です (コメントを削除してください)。
# 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的参数
}
設定手順:
1.個人チャット
single_chat_prefix
に対応してロボットをトリガーする必要があります (プレフィックスでトリガーする必要がない場合は、 "single_chat_prefix": [""]
)single_chat_reply_prefix
です (接頭辞が必要ない場合は、 "single_chat_reply_prefix": ""
と入力できます)2.グループチャット
group_name_white_list
に設定する必要があります。すべてのグループ チャットに対して有効にしたい場合は、 "group_name_white_list": ["ALL_GROUP"]
を直接入力します。group_chat_prefix
に対応しますgroup_name_keyword_white_list
設定項目はグループ名のあいまい一致をサポートし、 group_chat_keyword
設定項目はグループ メッセージの内容のあいまい一致をサポートします。使用法は上記の 2 つの設定項目と同じです。 (evolayさん提供)group_chat_in_one_session
: グループ チャットがセッション コンテキストを共有できるようにし、設定["ALL_GROUP"]
がすべてのグループ チャットに適用されます。3. 音声認識
"speech_recognition": true
を追加すると、音声認識が有効になります。デフォルトでは、openai のウィスパー モデルがテキストの認識とテキストでの返信に使用されます (音声メッセージはプレフィックスと一致しないため、有効にするとすべての音声がサポートされることに注意してください)。音声トリガーによる描画をサポートします)。"group_speech_recognition": true
を追加すると、グループ音声認識が有効になります。デフォルトでは、openai のウィスパー モデルはテキストを認識し、テキストで応答するために使用されます (group_chat_prefix と group_chat_keyword に一致し、音声トリガーの描画をサポートします)。"voice_reply_voice": true
を追加すると、音声応答が有効になります (プライベート チャットとグループ チャットの両方に適用されます)。ただし、itchat プロトコルの制限により、音声 mp3 ファイルのみが音声合成プラットフォームに対応するキーを設定する必要があります。 wechat を使用している場合は、WeChat の音声ですと返信してください。4.その他の構成
model
: モデル名、現在gpt-3.5-turbo
、 text-davinci-003
、 gpt-4
、 gpt-4-32k
をサポートしています (gpt-4 API はまだ完全にオープンではなく、アプリケーションが承認された後に使用できます)temperature
、 frequency_penalty
、 presence_penalty
: チャット API インターフェイスのパラメーター。詳細については、OpenAI 公式ドキュメントを参照してください。proxy
: 中国では現在openai
インターフェイスにアクセスできないため、プロキシ クライアントのアドレスを設定する必要があります。詳細については #351 を参照してください。image_create_prefix
config.py
。conversation_max_tokens
: コンテキスト内で記憶できる単語の最大数を示します (1 つの質問と 1 つの回答が一連の会話です。会話内の累積単語数が制限を超えると、最も古い会話のセットが最初に削除されます)。rate_limit_chatgpt
、 rate_limit_dalle
: 速度超過後にキューに入れられ、順番に処理される、1 分あたりの最大質問応答速度と描画速度。clear_memory_commands
: 以前のメモリを自動的にクリアするダイアログ内コマンド。コマンド エイリアスを使用して文字列配列をカスタマイズできます。hot_reload
: プログラムの終了後、WeChat コード スキャン ステータスは一時的に保存され、デフォルトでは閉じられます。character_desc
設定には、ロボットに話した文が保存され、ロボットはこの文を記憶し、設定として使用します (会話のコンテキストの詳細については、この問題を参照してください)。subscribe_msg
: メッセージを購読するには、公式アカウントと企業 WeChat チャネルを入力してください。購読すると自動的に返信されます。特別なプレースホルダーを使用できます。現在サポートされているプレースホルダーは {trigger_prefix} で、プログラム内でボットのトリガー ワードに自動的に置き換えられます。このドキュメントは更新が間に合わない可能性があります。現在オプションの設定項目はすべて、このconfig.py
にリストされています。
開発マシン上でローカルに実行している場合は、プロジェクトのルート ディレクトリで直接実行します。
python3 app.py
1. メイン プロジェクトに主要な依存関係をインストールした後、ntchat の依存関係もインストールする必要があります。
pip install ntchat
2. 指定された PC に WeChat バージョン (WeChat バージョン 3.6.0.18) をインストールし、QR コードをスキャンしてログインし、WeChat の自動更新をオフにします。
3. config.json ファイル内のメインプロジェクト構成項目を変更します。
"channel_type" : " ntchat "
4.app.pyを実行する
1. メイン プロジェクトに主要な依存関係をインストールした後、ntchat の依存関係もインストールする必要があります。
pip install ntwork
2. 指定された PC の Enterprise WeChat バージョン: WeCom_4.0.8.6027 バージョンをインストールし、QR コードをスキャンしてログインし、Enterprise WeChat の自動更新をオフにします。
3. config.json ファイル内のメインプロジェクト構成項目を変更します。
"channel_type" : " wework "
4.app.pyを実行する
1. 指定された PC の Enterprise WeChat バージョン: WeCom_4.0.8.6027 バージョンをインストールし、QR コードをスキャンしてログインし、Enterprise WeChat の自動更新をオフにします。
2. config.json ファイル内のメインプロジェクト構成項目を変更します。
"channel_type" : " weworktop "
3. 管理者は、プロジェクト フォルダー「WeChat-AIChatbot-WinOnlychannelweworktop」にある Qiwei インターフェイス プログラムを実行します。キーを入力せずに、クリックしてサービスを開始します。 Qiweiを開いてステップをダウンロードします
4.app.pyを実行する