Ein Dienst, der auf dem Cloudflare Worker-Proxy-Zugriff auf die OpenAI/AzureOpenAI-API basiert und derzeit den Zugriff auf Unternehmens-WeChat-Anwendungen und öffentliche WeChat-Konten unterstützt
Es gibt drei Möglichkeiten
快速编辑
in der oberen rechten Ecke, laden Sie die gepackte js-Datei in der Version dieses Projekts herunter, kopieren Sie den Inhalt in den Editor und speichern Sie ihn设置
in der mittleren Optionsreihe auf der Seite, wählen Sie变量
links aus, scrollen Sie auf der Seite nach unten zu KV 命名空间绑定
,编辑变量
und klicken Sie, um die erstellte Bindung hinzuzufügen Im zweiten Teil Namespace muss der Variablenname links in KV
ausgefüllt werden环境变量
oben und lesen Sie die folgenden Kapitel, um sie auf der Schnittstelle entsprechend dem Dienst zu konfigurieren, auf den Sie zugreifen möchten.触发器
in der mittleren Optionszeile auf der Worker-Seite eine benutzerdefinierte Domäne hinzu, um den Domänennamen zum Worker hinzuzufügen. Sie können sich auf die Verwendung von Cloudflare Workers beziehen, um das Problem der API-Unzugänglichkeit von OpenAI und ChatGPT zu lösen. Hinweis: Wenn wrangler
die Bereitstellung ausführt, werden relevante Informationen gedruckt, z. B. die in wrangler.toml
konfigurierten Umgebungsvariablen und die KV-ID. Diese können dem Ausführungsprotokoll der Github-Aktionen entnommen werden
kv_namespaces
id
in der Datei wrangler.toml
wird mit der ID des erstellten Namespace für die Bindung gefüllt.Settings
– Secrets and variables
– Actions
in Ihrem eigenen Projekt-Repository hinzu[vars]
in der Zusatzdatei wrangler.toml
in den folgenden Kapiteln entsprechend dem Dienst, auf den zugegriffen werden soll, und geben Sie den gesamten Dateiinhalt einDeploy
manuell auf der Seite „Github-Aktionen“ aus, um die Bereitstellung abzuschließen.Sie müssen die grundlegende Verwendung von Git und Node.Js verstehen
wranger
ist der offizielle Befehlszeilen-Client von Cloudflare. Nachdem Sie sich npx wrangler login
angemeldet haben, können Sie Worker über die Befehlszeile bereitstellen.KV
kann über die Befehlszeile erstellt werden. Anschließend wird kv_namespaces
id
in der Datei wrangler.toml
mit der ID des erstellten Namespace für die Bindung gefüllt.[vars]
in der Konfigurationsdatei wrangler.toml
entsprechend den Diensten zu ergänzen, auf die Sie zugreifen möchten.wrangler.toml
in wrangler.prod.toml
um und verwenden Sie den Befehl npm run deploy
um es auf Worker bereitzustellenIm Vergleich zu WeChat wird eher die Verwendung von Enterprise WeChat empfohlen. Die Vorteile sind: 1. Der sichtbare Bereich der Unternehmens-WeChat-Anwendung ist kontrolliert und nicht vollständig offen wie das öffentliche Konto. 2. Nach dem Beitritt zum Unternehmen kann der persönliche WeChat die Anwendung über das Unternehmen im persönlichen WeChat eingeben erfordert 2 Klicks, während die Eingabe des Abonnementkontos weitere Klicks erfordert. 3. Unterstützen Sie WeChat-Gruppenroboteralarme für Unternehmen
Registrieren Sie sich für Enterprise WeChat, geben Sie die Informationen nach Ihren Wünschen ein, keine Authentifizierung erforderlich
Enterprise WeChat Management Backend-Mein Unternehmen-Unternehmensinformationsseite Bestätigen Sie Ihre Unternehmens-ID (corpid)
Anwendungsverwaltung – Erstellen Sie eine Anwendung, Sie können AgentId und Secret anzeigen, Nachrichten empfangen – Richten Sie den API-Empfang ein, um Token und EncodingAESKey nach dem Zufallsprinzip zu generieren, und müssen es zu diesem Zeitpunkt nicht speichern.
Der Worker konfiguriert die von der Anwendung benötigten Umgebungsvariablen. Es kann über Schnittstellenoperationen konfiguriert werden, siehe oben den dritten Schritt der Cloudflare-Schnittstellenbereitstellung. Es kann über die Konfigurationsdatei konfiguriert werden. Siehe den dritten Schritt der Github-Aktionsbereitstellung und den dritten Schritt der lokalen Befehlszeilenbereitstellung.
Variablenname | Inhaltsbeschreibung | Bemerkung |
---|---|---|
WEWORK_ID_LIST | Eine Liste der Anwendungs-IDs, auf die zugegriffen werden darf, durch Kommas getrennte Vielfache. | Die ID wird von Ihnen individuell angepasst. Es wird empfohlen, aus Buchstaben und Zahlen mit maximal 10 Ziffern zu bestehen. |
WEWORK_${ID}_APPID | Unternehmen WeChat Unternehmen | Ersetzen Sie ${ID} durch Ihre benutzerdefinierte ID |
WEWORK_${ID}_TOKEN | Anwendungstoken | Ersetzen Sie ${ID} durch Ihre benutzerdefinierte ID |
WEWORK_${ID}_AES_KEY | EncodingAESKey angewendet | Ersetzen Sie ${ID} durch Ihre benutzerdefinierte ID |
WEWORK_${ID}_ADMIN_USER_ID_LIST | Admin-Benutzerliste, Vielfache durch Kommas getrennt | Sie können es vorerst unkonfiguriert lassen und es später konfigurieren, wenn Sie Ihre Benutzer-ID kennen. |
Erhalten Sie entsprechend dem Domänennamen und der benutzerdefinierten ID die Serveradresse (URL) in Schritt 3 und konfigurieren Sie sie. Das Format ist https://${域名}/openai/wework/${ID}
. Wenn der Domänenname beispielsweise xxx.com
und die benutzerdefinierte ID id123
lautet, lautet die Serveradresse (URL) https://xxx.com/openai/wework/id123
. Obwohl empfohlen wird为保障企业数据安全,需配置备案主体与当前企业主体相同或有关联关系的域名
, ergaben tatsächliche Tests, dass Cloudflare seinen eigenen Domänennamen bindet Ich kann die Überprüfung auch bestehen. Ich bin mir nicht sicher, welche spezifischen Regeln gelten.
Benutzer können dem Unternehmen über das My Business-WeChat Plug-in-Invite Follower beitreten, den QR-Code scannen und dem Unternehmen beitreten, um Anwendungen im persönlichen WeChat zu nutzen. Beachten Sie, dass Sie Anwendungsnachrichten in den Business WeChat-Einstellungen – Benachrichtigung über neue Nachrichten – Nur Nachrichten in Business WeChat empfangen deaktivieren können, andernfalls erhalten Sie keine Antwortnachrichten in Ihrem persönlichen WeChat.
Registrieren Sie ein öffentliches WeChat-Konto, normalerweise ein persönliches Abonnementkonto, mit einem niedrigen Qualifikationsüberprüfungsschwellenwert
Öffentliche Kontoverwaltungsplattform – Einstellungen und Entwicklung – Seite „Grundkonfiguration“ Bestätigen Sie Ihre Entwickler-ID (AppID), generieren Sie ein Token (Token), einen Nachrichtenverschlüsselungs- und Entschlüsselungsschlüssel (EncodingAESKey) (nur erforderlich, wenn der Sicherheitsmodus oder der Kompatibilitätsmodus aktiviert ist). Es ist nicht erforderlich, die Serverkonfiguration zu aktivieren, wenn
Der Worker konfiguriert die Umgebungsvariablen, die für das öffentliche WeChat-Konto erforderlich sind. Es kann über Schnittstellenoperationen konfiguriert werden, siehe oben den dritten Schritt der Cloudflare-Schnittstellenbereitstellung. Es kann über die Konfigurationsdatei konfiguriert werden. Siehe den dritten Schritt der Github-Aktionsbereitstellung und den dritten Schritt der lokalen Befehlszeilenbereitstellung.
Variablenname | Inhaltsbeschreibung | Bemerkung |
---|---|---|
WECHAT_ID_LIST | Eine Liste der offiziellen Konto-IDs, auf die zugegriffen werden darf, mehrere durch Kommas getrennt. | Die ID wird von Ihnen individuell angepasst. Es wird empfohlen, aus Buchstaben und Zahlen mit maximal 10 Ziffern zu bestehen. |
WECHAT_${ID}_APPID | Entwickler-ID (AppID) des offiziellen Kontos | Ersetzen Sie ${ID} durch Ihre benutzerdefinierte ID |
WECHAT_${ID}_TOKEN | Token des öffentlichen Kontos | Ersetzen Sie ${ID} durch Ihre benutzerdefinierte ID |
WECHAT_${ID}_AES_KEY | Nachrichtenverschlüsselungs- und -entschlüsselungsschlüssel des offiziellen Kontos (EncodingAESKey) | Ersetzen Sie ${ID} durch Ihre benutzerdefinierte ID. Dies ist nur erforderlich, wenn der abgesicherte Modus oder Kompatibilitätsmodus aktiviert ist. |
WECHAT_ADMIN_USER_ID_LIST | Admin-Benutzerliste, Vielfache durch Kommas getrennt | Sie können es vorerst unkonfiguriert lassen und es später konfigurieren, wenn Sie Ihre Benutzer-ID kennen. |
WECHAT_ADMIN_OPENAI_KEY | OpenAI-Schlüssel des Admin-Benutzers | Optional wird standardmäßig WECHAT_GUEST_OPENAI_KEY mit höherer Priorität als die OpenAI-Konfiguration verwendet |
WECHAT_GUEST_OPENAI_KEY | OpenAI-Schlüssel des Besuchers | Optional, kann beliebig verwendet werden, hat eine höhere Priorität als die Konfiguration von OpenAI, mit Vorsicht konfigurieren! |
Erhalten Sie basierend auf dem Domänennamen und der benutzerdefinierten ID die im zweiten Schritt konfigurierte Serveradresse (URL) und konfigurieren Sie sie. Das Format ist https://${域名}/openai/wechat/${ID}
. Wenn der Domänenname beispielsweise xxx.com
und die benutzerdefinierte ID id123
lautet, lautet die Serveradresse (URL) https://xxx.com/openai/wechat/id123
Die Nachrichtenverschlüsselungs- und -entschlüsselungsmethode wählt im Allgemeinen Klartext aus, ermöglicht die Serverkonfiguration und kann nach erfolgreicher Zugriffsüberprüfung verwendet werden.
Bei der Eingabe kann die Groß-/Kleinschreibung ignoriert werden
Befehl | Verfügbare Rollen | veranschaulichen |
---|---|---|
/helfen | Besucher, Benutzer | Holen Sie sich Informationen zur Befehlshilfe |
/setOpenAiType | Besucher, Benutzer | Legen Sie fest, ob openAi oder azureOpenAi standardmäßig verwendet wird. |
/bindKey | Besucher, Benutzer | Binden Sie den OpenAI-API-Schlüssel im Format /bindKey xxx. Wenn der Schlüssel gebunden wurde, wird er überschrieben. Verwenden Sie nach der Bindung den Befehl /testKey, um zu testen, ob es normal verfügbar ist. |
/unbindKey | Benutzer | Lösen Sie die Bindung des OpenAI-API-Schlüssels |
/bindAzureKey | Besucher, Benutzer | Binden Sie den AzureOpenAI-Schlüssel im Format „/bindAzureKey yourResourceName:yourDeploymentName:yourApiKey“. Wenn der Schlüssel gebunden wurde, wird er überschrieben. Verwenden Sie nach der Bindung den Befehl /testKey, um zu testen, ob es normal verfügbar ist. |
/unbindAzureKey | Benutzer | Binden Sie den AzureOpenAI-API-Schlüssel auf |
/testKey | Benutzer | Rufen Sie OpenAI/AzureOpenAI auf, um die Modellschnittstelle aufzulisten und zu testen, ob der API-Schlüssel normalerweise gebunden und verfügbar ist und keine Nutzung beansprucht. |
/setChatType | Benutzer, Trialist | Wechseln Sie den Konversationsmodus. Sie können zwischen „Einzelchat“ und „Serienchat“ wählen. Die Standardeinstellung ist „Einzelchat“. „Single Chat“ verarbeitet nur die aktuelle Eingabe, und „Cross Chat“ bringt historische Chat-Aufzeichnungen zur Anforderung von OpenAI, was mehr Nutzung beansprucht. |
/newChat | Benutzer, Trialist | Löschen Sie den vorherigen Chat-Verlauf und starten Sie einen neuen Chat |
/wiederholen | Benutzer, Trialist | Erhalten Sie die entsprechende Antwort basierend auf der msgId. Die Antwort wird nur 3 Minuten lang gespeichert. Die Aufbewahrungszeit ist über ANSWER_EXPIRES_MINUTES konfigurierbar |
.. | Benutzer, Trialist | Versuchen Sie es erneut mit der letzten verzögerten Antwort |
. . | Benutzer, Trialist | Versuchen Sie es erneut mit der letzten verzögerten Antwort |
/bindSessionKey | Besucher, Benutzer | Um den OpenAI-Sitzungsschlüssel zu binden, können Sie den Anforderungsheader von https://api.openai.com/v1/usage auf der Nutzungsseite anzeigen. Der ursprüngliche Sitzungsschlüssel wird bei jeder erneuten Anmeldung ungültig und Sie müssen ihn binden es wieder. |
/unbindSessionKey | Benutzer | Lösen Sie die Bindung des OpenAI-Sitzungsschlüssels |
/Verwendung | Benutzer | Es kann zu einer Verzögerung von etwa 5 Minuten kommen, bis die Nutzungsinformationen für diesen Monat abgerufen werden, und Sie müssen den OpenAI-API-Schlüssel oder Sitzungsschlüssel binden. |
/freeUsage | Benutzer | Es kann zu einer Verzögerung von etwa 5 Minuten kommen, bis Sie kostenlose Nutzungsinformationen erhalten, und Sie müssen den OpenAI-Sitzungsschlüssel binden. |
/System | Benutzer, Administrator | Zeigen Sie einige aktuelle Systemkonfigurationsinformationen an, z. B. das aktuelle OpenAI-Modell, die aktuelle Benutzer-ID usw. |
/faq | Besucher, Benutzer | einige häufig gestellte Fragen |
/adminAuth | Besucher, Benutzer | Blenden Sie Befehle aus und werden Sie durch die Token-Authentifizierung zum Administrator, um die Mühe zu vermeiden, die Administrator-Benutzer-ID für jede Plattform zu konfigurieren. ADMIN_AUTH_TOKEN muss zuerst konfiguriert werden |
/testAlarm | Administrator | Blenden Sie den Befehl aus und testen Sie das Senden einer Alarmmeldung. ALARM_URL muss zuerst konfiguriert werden |
/Rückmeldung | Besucher, Benutzer | Benutzer senden Feedback an Entwickler. Zuerst muss FEEDBACK_URL konfiguriert werden |
Konfigurationsname | Standardwert | veranschaulichen |
---|---|---|
CHAT_MODEL | gpt-3.5-turbo | Name des OpenAI-Modells |
OPEN_AI_API_PREFIX | https://api.openai.com/v1 | Das gemeinsame API-Präfix von OpenAI |
GUEST_KEY | Optional kann der Standard-OpenAI-Schlüssel des Besuchers nach Belieben verwendet werden, er funktioniert plattformübergreifend, also konfigurieren Sie ihn sorgfältig! | |
ADMIN_KEY | Optional, der Standard-OpenAI-Schlüssel des Admin-Benutzers, gültig auf allen Plattformen | |
OPEN_AI_USAGE | https://api.openai.com/dashboard/billing/usage | OpenAI-Nutzungsadresse |
OPEN_AI_FREE_USAGE | https://api.openai.com/dashboard/billing/credit_grants | Kostenlose OpenAI-Nutzungsadresse |
OPEN_AI_API_TIMEOUT_MS | 30000 | Timeout der OpenAI-API-Anfrage, Millisekunden |
OPEN_AI_API_KEY_OCCUPYING_DURATION | 0 | Das Nutzungsintervall des OpenAI-API-Schlüssels in Sekunden dient zur Begrenzung des Stroms und wird aktiviert, wenn es größer als 0 ist. Die Verwendung von kv zur Strombegrenzung kann nur als kaum brauchbar bezeichnet werden. |
OPEN_AI_API_CHAT_EXTRA_PARAMS | Zusätzliche globale Parameter des OpenAI-API-Chats, JSON-Zeichenfolge, verfügbare Parameter | |
MIN_CHAT_RESPONSE_TOKEN_NUM | 500 | Die Mindestanzahl an Token, auf die OpenAI antwortet |
MAX_HISTORY_LENGTH | 20 | Maximale Länge des Chatverlaufs |
ANSWER_EXPIRES_MINUTES | 3 | Wie lange Fragen/Antworten gespeichert werden sollen, Minuten |
SYSTEM_INIT_MESSAGE | Sie sind ChatGPT, ein von OpenAI trainiertes großes Sprachmodell. Antworten Sie so prägnant wie möglich: 2021-09-01 | Die standardmäßige erste Systemnachricht, die an OpenAI gesendet wird und zur Anpassung des Modells verwendet werden kann |
WILLKOMMEN_MESSAGE | Willkommen, Sie können /help eingeben, um die aktuell verfügbaren Befehle anzuzeigen | Willkommensnachricht, wenn Benutzer der App folgen |
AZURE_API_PREFIX | https://RESOURCENAME.openai.azure.com/openai | Azure OpenAI über Anforderungspräfix |
AZURE_CHAT_API_VERSION | 2023-03-15-Vorschau | API-Version der Chat-Schnittstelle |
AZURE_LIST_MODEL_API_VERSION | 01.12.2022 | API-Versionen der Modellschnittstelle auflisten |
AZURE_GUEST_KEY | Optional kann der standardmäßige Azure OpenAI-Schlüssel des Besuchers nach Belieben verwendet werden. Er funktioniert plattformübergreifend. Konfigurieren Sie ihn daher sorgfältig! | |
AZURE_ADMIN_KEY | Optional, der standardmäßige Azure OpenAI-Schlüssel für Administratorbenutzer, gültig auf allen Plattformen |
Konfigurationsname | Standardwert | veranschaulichen |
---|---|---|
DEBUG_MODE | FALSCH | Debug-Modus, es werden mehr Protokolle gedruckt |
ECHO_MODE | FALSCH | Der Echomodus gibt die empfangenen Informationen direkt zurück |
ALARM_URL | Alarm-URL, unterstützt derzeit Unternehmens-WeChat-Gruppen-Robots und benutzerdefinierte Adressen, die JSON-Daten posten | |
FEEDBACK_URL | Die Benutzer-Feedback-URL unterstützt derzeit WeChat-Gruppen-Robots für Unternehmen und benutzerdefinierte Adressen sind POST { "msg": "xxxx" } JSON-Daten. | |
ADMIN_AUTH_TOKEN | Der als Admin authentifizierte Token sollte ausreichend lang und komplex sein und sorgfältig konfiguriert und gespeichert werden! |