Einführung:
Nicht zertifiziertes öffentliches WeChat-Konto ist mit chatgpt verbunden, neuer Voice-Chat (englische Konversation) wurde hinzugefügt, basierend auf Flask, persönliches öffentliches WeChat-Konto [ohne Authentifizierung] ist mit ChatGPT verbunden
--Update-Anweisungen:
V1.1.0: (2023.04.13)
-Streaming-Antwort (Stream) hinzugefügt, um das Problem der Anforderungszeitüberschreitung bis zu einem gewissen Grad zu lindern. Sie müssen das Python-Paket installieren: sseclient-py==1.7.2;
Nachdem die Streaming-Antwort aktiviert wurde, wird zunächst eine Verbindung (myrequest) hergestellt und dann (SSEClient) verwendet, um den generierten Text Zeichen für Zeichen abzurufen, und schließlich wird die erhaltene Textliste in den Antworttext eingefügt. Die Zeit zum Herstellen einer Verbindung wird weiterhin von max_tokens beeinflusst, daher wird nicht empfohlen, max_tokens zu groß einzustellen. Der Schlüssel zur Reduzierung von Anforderungszeitüberschreitungen besteht darin, dass der Zeitaufwand für den Verbindungsaufbau geringer ist als der Zeitaufwand für die einmalige Rückgabe. Daher kann der Inhalt grundsätzlich zurückgegeben werden, solange die Verbindung innerhalb einer bestimmten Zeit erfolgreich hergestellt wird Die Länge des zurückgegebenen Inhalts wird durch die Verbindungszeit beeinflusst.
– Löschen Sie die zuletzt vom Benutzer gesendeten Nachrichten, nachdem die Anfrage fehlgeschlagen ist oder eine Zeitüberschreitung auftritt, um Fehler in der nächsten Antwort zu vermeiden.
V1.0.1:
- Option hinzugefügt, um die IP-Erkennung zu aktivieren (um Doss-Angriffe zu verhindern);
-Hinweis: Wenn wechat-ip_detection und azure-trans_to_voice „true“ sind, müssen sowohl „appid“ als auch „secret“ ausgefüllt werden.
V1.0:
-Neue Voice-Chat-Funktion, Zugriff auf den Cloud-Text-to-Speech-Dienst von Microsoft (kostenloser Zugang), um Sprachgespräche zu führen (Chinesisch und Englisch);
- Integrierte Englisch-Lernvorlagen. Sie können Gespräche zum Thema Englisch führen, indem Sie auf Vorlagennachrichten antworten.
- WeChat-Hintergrund-Whitelist-IP-Erkennung hinzugefügt, um Doss-Angriffe usw. zu verhindern;
- Häufigkeitsbeschränkung für Benutzernachrichten hinzugefügt, um böswilligen Nachrichten-Spam zu verhindern;
- Temporäre Sprachdateien automatisch bereinigen;
- Bereinigen Sie automatisch temporäre Sprachmaterialien, die im WeChat-Hintergrund hochgeladen wurden.
-Optimieren Sie die Leistung und beheben Sie Fehler.
Hintergrund:
Ich habe kürzlich gesehen, dass ChatGPT eine API-Schnittstelle bereitstellt. Ich habe zufällig einen Server und ein öffentliches Konto, also möchte ich einen Chatbot schreiben. Es gibt jedoch nur ein nicht zertifiziertes persönliches offizielles Konto (die Ressourcen sind begrenzt?) Die Einschränkungen dieses offiziellen Kontos sind:
1. Es kann nur passiv auf Benutzernachrichten geantwortet werden. Der Server kann nur auf eine Nachricht für diese Anfrage antworten und nicht auf weitere Nachrichten (Kundendienstnachrichten).
2. Jede Nachricht muss innerhalb von 15 Sekunden beantwortet werden. Wenn die offizielle Kontoplattform nicht innerhalb von 5 Sekunden eine Antwort erhält, sendet sie eine weitere Anfrage und wartet 5 Sekunden lang Wird die Nachricht nicht empfangen, wird eine letzte Anfrage gesendet. Daher muss der Server die vollständige Nachricht innerhalb von 15 Sekunden verarbeiten.
Spezifische Verarbeitungsmethoden finden Sie im Code. Dies ist ein Neulingsprojekt, bitte geben Sie etwaige Mängel und willkommene Korrekturen an, vielen Dank~
brauchen:
Ein Server (muss auf die OpenAI-Schnittstelle zugreifen können, muss sich möglicherweise im Ausland befinden ~)
Wenn Sie den Text-to-Speech-Dienst aktivieren müssen, müssen Sie den Text-to-Speech-Dienst von Azure registrieren. Weitere Informationen finden Sie auf der Website: AZURE
Öffentliches WeChat-Konto: Persönlicher Typ reicht aus
Demo:
Öffentliches Konto: Torys Labor, folgen Sie und senden Sie Nachrichten, um es zu erleben.
Einführung in Tweets über öffentliche Accounts:
1. Einführung in die ersten Schritte: ChatGPT wurde verbunden
2. Einführung in die Nutzung des Sprachdienstes: Der Sprachdienst wurde verbunden
Anwendung:
Legen Sie die config.yml-Parameter in config fest:
# 微信相关设置
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 "
Startkolben
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 &
Beachten:
1. Achten Sie beim Ausfüllen der api_keys von openai darauf, Folgendes hinzuzufügen: Bearer vorne. Sie können mehrere api_keys eingeben, da für ein einzelnes Konto eine Ratenbegrenzung gilt.
2.max_tokens hat einen großen Einfluss auf die Antwortgeschwindigkeit, bitte füllen Sie es nicht zu groß aus.