Этот проект может работать только в системе win . Он основан на второй модификацииchatgpt-on-wechat и полностью использует фреймворк исходного проекта. Спасибо! Он поддерживает клиент ПК платформы Win, а также корпоративный и микроклиент. Этот проект будет продолжать обновляться, а плагины также будут постепенно разрабатываться. Его может разработать один человек, пожалуйста, не торопитесь, спасибо!
Каналы сообщений и функции, поддерживаемые проектом, следующие:
Wework : Канал обмена сообщениями корпоративных и микро-личных учетных записей на стороне ПК, который опирается на ntwork и ограничен версией WeCom_4.0.8.6027, может запускать проект только на платформе Win .
Wechat : канал микросообщений на стороне ПК, основанный на проекте ntchat. Он поддерживает версию среды 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. Проект совместим с интерфейсом API FastGPT и может использоваться путем непосредственного изменения 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
поддерживает нечеткое соответствие содержимого группового сообщения. Использование такое же, как и два вышеуказанных элемента конфигурации. (Предоставлено 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
(API gpt-4 еще не полностью открыт и может использоваться после одобрения приложения)temperature
, frequency_penalty
, presence_penalty
: параметры интерфейса API чата. Подробную информацию можно найти в официальной документации OpenAI.proxy
: поскольку интерфейс openai
в настоящее время недоступен в Китае, необходимо настроить адрес прокси-клиента. Подробности см. в #351.image_create_prefix
config.py
.conversation_max_tokens
: указывает максимальное количество слов в контексте, которое можно запомнить (один вопрос и один ответ — это набор разговоров. Если накопленное количество слов в разговоре превышает лимит, сначала будет удален самый ранний набор разговоров)rate_limit_chatgpt
, rate_limit_dalle
: максимальная частота вопросов и ответов и скорость рисования в минуту, помещаемые в очередь и последовательно обрабатываемые после превышения скорости.clear_memory_commands
: команды в диалоге, которые автоматически очищают предыдущую память. Массив строк можно настроить с помощью псевдонимов команд.hot_reload
: после выхода из программы статус сканирования кода WeChat временно сохраняется и по умолчанию закрывается.character_desc
сохраняется предложение, которое вы сказали роботу. Он запомнит это предложение и будет использовать его в качестве своих настроек. Вы можете настроить для него любую личность (более подробную информацию о контексте разговора см. в этом выпуске).subscribe_msg
: Чтобы подписаться на сообщения, заполните официальную учетную запись и корпоративный канал WeChat. При подписке можно использовать специальные заполнители. В настоящее время поддерживаются заполнители {trigger_prefix}, которые будут автоматически заменены в программе триггерным словом бота. Эта документация может быть не обновлена вовремя. Все дополнительные элементы конфигурации перечислены в этом config.py
.
При локальном запуске на машине разработки выполните непосредственно в корневом каталоге проекта:
python3 app.py
1. После установки основных зависимостей в основном проекте вам также необходимо установить зависимости ntchat.
pip install ntchat
2. Установите назначенную версию 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. Администратор запускает программу интерфейса Qiwei. Базовая версия находится в папке проекта «WeChat-AIChatbot-WinOnlychannelweworktop». Запускаем WeworkApi.exe. После успешного запуска запускаем сервис. откройте Qiwei и загрузите шаг
4. Запустите app.py.