Введение:
Несертифицированная общедоступная учетная запись WeChat подключена к chatgpt, добавлен новый голосовой чат (разговор на английском языке) на основе Flask, личная общедоступная учетная запись WeChat [без аутентификации] подключена к ChatGPT
--Инструкции по обновлению:
V1.1.0: (13.04.2023)
-Добавлен потоковый ответ (поток), чтобы в некоторой степени облегчить проблему с таймаутом запроса. Вам необходимо установить пакет Python: sseclient-py==1.7.2;
После включения потокового ответа сначала будет установлено соединение (myrequest), а затем (SSEClient) будет использоваться для получения сгенерированного текста посимвольно и, наконец, полученный список текстов будет вставлен в текст ответа. На время установления соединения по-прежнему будет влиять max_tokens, поэтому не рекомендуется устанавливать слишком большое значение max_tokens. Ключом к уменьшению тайм-аутов запросов является то, что затраты времени на установление соединения меньше, чем затраты времени на однократный возврат. Таким образом, если соединение успешно установлено в течение заданного времени, контент в принципе может быть возвращен. на длину возвращаемого контента будет влиять время соединения.
-Удалите самые последние сообщения, отправленные пользователем после сбоя запроса или истечения времени ожидания, чтобы избежать ошибок в следующем ответе.
В1.0.1:
- Добавлена возможность включения определения IP (для предотвращения досс-атак);
-Примечание. Если какое-либо из значений wechat-ip_detection и azure-trans_to_voice имеет значение true, необходимо заполнить как appid, так и secret.
Версия 1.0:
-Новая функция голосового чата, доступ к облачной службе преобразования текста в речь Microsoft (бесплатный доступ) для голосового общения (китайский и английский);
-Встроенные шаблоны изучения английского языка: вы можете вести беседы на английскую тематику, отвечая на сообщения шаблона;
- Добавлено обнаружение IP-адресов в фоновом белом списке WeChat для предотвращения атак и т. д.;
- Добавлено ограничение частоты сообщений пользователя для предотвращения спама вредоносных сообщений;
- Автоматическая очистка временных голосовых файлов;
- Автоматически очищать временные голосовые материалы, загруженные в фоновом режиме WeChat;
-Оптимизация производительности и исправление ошибок.
фон:
Недавно я увидел, что ChatGPT предоставляет интерфейс API. У меня есть сервер и общедоступная учетная запись, поэтому я хочу написать чат-бота. Попробуйте. Однако существует только один несертифицированный личный официальный аккаунт (ресурсы ограничены?).
1. Он может только пассивно отвечать на сообщения пользователя. Пользователь отправляет сообщение в официальный аккаунт. Сервер может ответить только на одно сообщение по этому запросу и не может отвечать на дополнительные сообщения (сообщения службы поддержки);
2. На каждое сообщение необходимо ответить в течение 15 секунд. После того, как официальная платформа аккаунта отправит запрос на сервер, если она не получит ответа в течение 5 секунд, она отправит еще один запрос и подождет 5 секунд. не получено, он отправит окончательный запрос. Таким образом, сервер должен обработать полное сообщение в течение 15 секунд.
См. код конкретных методов обработки. Это проект для новичков, пожалуйста, укажите любые недостатки и приветствуются исправления, спасибо~
нуждаться:
Сервер (должен иметь доступ к интерфейсу openai, возможно, он должен находиться за границей~)
Если вам необходимо включить службу преобразования текста в речь, вам необходимо зарегистрировать службу преобразования текста в речь Azure. Регистрация и использование этой службы бесплатны. Подробную информацию можно найти на веб-сайте: AZURE.
Публичный аккаунт WeChat: достаточно личного типа
Демо:
Публичный аккаунт: лаборатория Тори. Подписывайтесь и отправляйте сообщения, чтобы испытать это.
Введение в твиты общедоступных аккаунтов:
1. Знакомство с началом работы: ChatGPT подключен.
2. Знакомство с использованием голосовой услуги: голосовая услуга подключена.
Как использовать:
Установите параметры config.yml в конфигурации:
# 微信相关设置
wechat :
token : " **** "
# 是否获取微信公众平台的ip白名单(用于防止doss检测)
ip_detection : false
# 如果上面的选项为true,下面两项内容必填;如要开启后面文本转语音服务,下面两项内容必填
appid : " **** "
secret : " **** "
# openai相关设置
openai :
#填写openai的api_keys时,要注意前面要加上:Bearer, 可以填写多个,因为单个账号有速率的限制
api_keys :
- " Bearer sk-**** "
# - "Bearer sk-****"
# - "Bearer sk-****"
# 单条消息的长度,这个参数对回复速度有非常大的影响,请不要填太大~
max_tokens : 120
# 模型
model : " gpt-3.5-turbo-0301 "
# temperature,越大随机性越强
temperature : 0.8
# 有时候文本长度超过150,用该参数限制长度避免超过微信能发送的最长消息
rsize : 500
# 对话的保存历史
save_history : 21
# azure文本转语音设置
azure :
# 是否开启文本转语音服务
trans_to_voice : false
# 如上面的选项为false,下面的内容不用填写
# 新定义文本长度,开启后增加处理时间,避免文本太长,处理时间过久,超过15s
max_token : 80
# 是否开启流式响应
stream_response : true
# 密钥
subscription : " **** "
region : " koreacentral "
# 中文语音模型
zh_model : " zh-CN-XiaoyanNeural "
# 英文语音模型
en_model : " en-US-AriaNeural "
Запустить колбу
export FLASK_APP=myflask
flask run --host=0.0.0.0 --port=80
# 或者
nohup flask run --host=0.0.0.0 --port=80 >> /home/jupyter/flask/log/wechat.log 2>&1 &
Уведомление:
1. При заполнении api_keys openai обязательно добавьте: Bearer in front. Вы можете указать несколько ключей api_keys, поскольку одна учетная запись имеет ограничение по скорости;
2.max_tokens сильно влияет на скорость ответа, не заполняйте его слишком большим.