Un service basé sur l'accès proxy Cloudflare Worker à l'API OpenAI/AzureOpenAI, prenant actuellement en charge l'accès aux applications WeChat d'entreprise et aux comptes publics WeChat.
Il y a trois façons
快速编辑
dans le coin supérieur droit, téléchargez le fichier js packagé dans la version de ce projet, copiez le contenu dans l'éditeur et enregistrez设置
dans la rangée d'options du milieu de la page, sélectionnez变量
à gauche, faites défiler la page jusqu'à KV 命名空间绑定
,编辑变量
et cliquez pour ajouter la liaison créée. dans la deuxième partie Namespace, le nom de la variable à gauche doit être renseigné en KV
环境变量
en haut, et lisez les chapitres suivants pour les configurer sur l'interface en fonction du service auquel vous souhaitez accéder.触发器
de la rangée d'options du milieu de la page Worker pour ajouter le nom de domaine au Worker. Vous pouvez vous référer à l'utilisation de Cloudflare Workers pour résoudre le problème d'inaccessibilité des API d'OpenAI et ChatGPT. Remarque : lorsque wrangler
exécute le déploiement, il imprimera les informations pertinentes, telles que les variables d'environnement et l'ID KV configurés dans wrangler.toml
. Ceux-ci peuvent être consultés dans le journal d'exécution des actions Github.
id
kv_namespaces
dans le fichier wrangler.toml
est rempli avec l'identifiant de l'espace de noms créé pour la liaison.Settings
- Secrets and variables
- Actions
dans votre propre référentiel de projet[vars]
dans le fichier supplémentaire wrangler.toml
dans les chapitres suivants en fonction du service auquel vous souhaitez accéder, et remplissez tout le contenu du fichierDeploy
sur la page Actions Github pour terminer le déploiement.Besoin de comprendre l'utilisation de base de Git et Node.Js
wranger
est le client de ligne de commande officiel de Cloudflare. Après vous être connecté npx wrangler login
, vous pouvez déployer Workers via la ligne de commande.KV
peut être créé via la ligne de commande, puis l' id
kv_namespaces
dans le fichier wrangler.toml
est rempli avec l'identifiant de l'espace de noms créé pour la liaison.[vars]
dans le fichier de configuration wrangler.toml
en fonction des services auxquels vous souhaitez accéder.wrangler.toml
en wrangler.prod.toml
et utilisez la commande npm run deploy
pour déployer sur WorkerPar rapport à WeChat, il est plus recommandé d'utiliser Enterprise WeChat. Les avantages sont les suivants : 1. La portée visible de l'application WeChat d'entreprise est contrôlée et n'est pas complètement ouverte comme le compte public. 2. Après avoir rejoint l'entreprise, le WeChat personnel peut accéder à l'application via l'entreprise dans le WeChat personnel ; nécessite 2 clics, tandis que la saisie du compte d'abonnement nécessite plus de clics ; 3. Prise en charge des alarmes de robot du groupe WeChat d'entreprise ;
Inscrivez-vous à Enterprise WeChat, remplissez les informations comme vous le souhaitez, aucune authentification requise
Enterprise WeChat Management Backend-Mon entreprise-Page d'informations d'entreprise Confirmez votre identifiant d'entreprise (corpid)
Gestion des applications - créez une application, vous pouvez afficher l'AgentId et le Secret, recevoir des messages - configurer la réception de l'API pour générer de manière aléatoire un jeton, un EncodingAESKey et vous n'avez pas besoin de l'enregistrer pour le moment.
Worker configure les variables d'environnement requises par l'application. Il peut être configuré via des opérations d'interface, voir la troisième étape du déploiement de l'interface Cloudflare ci-dessus. Il peut être configuré via le fichier de configuration. Voir la troisième étape du déploiement de Github Action et la troisième étape du déploiement en ligne de commande locale.
nom de la variable | Description du contenu | Remarque |
---|---|---|
WEWORK_ID_LIST | Liste des ID d’application auxquels l’accès est autorisé, multiples séparés par des virgules. | L'identifiant est personnalisé par vous. Il est recommandé d'être composé de lettres et de chiffres à moins de 10 chiffres. |
WEWORK_${ID}_APPID | entreprise WeChat entreprise | Remplacez ${ID} par votre identifiant personnalisé |
WEWORK_${ID}_TOKEN | Jeton d'application | Remplacez ${ID} par votre identifiant personnalisé |
WEWORK_${ID}_AES_KEY | EncodageAESKey appliqué | Remplacez ${ID} par votre identifiant personnalisé |
WEWORK_${ID}_ADMIN_USER_ID_LIST | liste des utilisateurs admin, multiples séparés par des virgules | Vous pouvez le laisser non configuré pour le moment et le configurer plus tard lorsque vous connaîtrez votre identifiant utilisateur. |
En fonction du nom de domaine et de l'ID personnalisé, obtenez l'adresse du serveur (URL) à l'étape 3 et configurez-la. Le format est https://${域名}/openai/wework/${ID}
. Par exemple, si le nom de domaine est xxx.com
et l'ID personnalisé est id123
, l'adresse du serveur (URL) est https://xxx.com/openai/wework/id123
. Bien qu'il soit suggéré为保障企业数据安全,需配置备案主体与当前企业主体相同或有关联关系的域名
. Cependant, des tests réels ont révélé que Cloudflare lie son propre nom de domaine. peut également réussir la vérification. Je ne suis pas sûr des règles spécifiques.
Les utilisateurs peuvent rejoindre l'entreprise via My Business-WeChat Plug-in-Invite Follower, scanner le code QR et entrer dans l'entreprise pour utiliser des applications sur WeChat personnel. Notez que vous pouvez désactiver les messages de l'application dans Paramètres Business WeChat - Notification de nouveau message - Recevoir uniquement des messages dans Business WeChat, sinon vous ne recevrez pas de messages de réponse dans votre WeChat personnel.
Enregistrez un compte public WeChat, généralement un compte d'abonnement personnel, avec un faible seuil de vérification de qualification
Plateforme de gestion des comptes publics - Paramètres et développement - Page de configuration de base Confirmez votre identifiant de développeur (AppID), générez un jeton (Token), une clé de cryptage et de déchiffrement des messages (EncodingAESKey) (obligatoire uniquement si le mode de sécurité ou le mode de compatibilité est activé), ceci il n'est pas nécessaire d'activer la configuration du serveur lorsque
Worker configure les variables d'environnement requises par le compte public WeChat. Il peut être configuré via des opérations d'interface, voir la troisième étape du déploiement de l'interface Cloudflare ci-dessus. Il peut être configuré via le fichier de configuration. Voir la troisième étape du déploiement de Github Action et la troisième étape du déploiement en ligne de commande locale.
nom de la variable | Description du contenu | Remarque |
---|---|---|
WECHAT_ID_LIST | Une liste d'identifiants de comptes officiels auxquels l'accès est autorisé, plusieurs séparés par des virgules. | L'identifiant est personnalisé par vous. Il est recommandé d'être composé de lettres et de chiffres à moins de 10 chiffres. |
WECHAT_${ID}_APPID | ID de développeur (AppID) du compte officiel | Remplacez ${ID} par votre identifiant personnalisé |
WECHAT_${ID}_TOKEN | Jeton de compte public | Remplacez ${ID} par votre identifiant personnalisé |
WECHAT_${ID}_AES_KEY | Clé de cryptage et de déchiffrement des messages du compte officiel (EncodingAESKey) | Remplacez ${ID} par votre identifiant personnalisé. Ceci n'est requis que lorsque le mode sans échec ou le mode de compatibilité est activé. |
WECHAT_ADMIN_USER_ID_LIST | liste des utilisateurs admin, multiples séparés par des virgules | Vous pouvez le laisser non configuré pour le moment et le configurer plus tard lorsque vous connaîtrez votre identifiant utilisateur. |
WECHAT_ADMIN_OPENAI_KEY | Clé OpenAI de l'utilisateur administrateur | Facultatif, WECHAT_GUEST_OPENAI_KEY sera utilisé par défaut, avec une priorité plus élevée que la configuration OpenAI |
WECHAT_GUEST_OPENAI_KEY | Clé OpenAI du visiteur | Facultatif, peut être utilisé à volonté, a une priorité plus élevée que la configuration d'OpenAI, configurez avec prudence ! |
En fonction du nom de domaine et de l'ID personnalisé, obtenez l'adresse du serveur (URL) configurée dans la deuxième étape et configurez-la. Le format est https://${域名}/openai/wechat/${ID}
. Par exemple, si le nom de domaine est xxx.com
et l'ID personnalisé est id123
, l'adresse du serveur (URL) est https://xxx.com/openai/wechat/id123
La méthode de chiffrement et de déchiffrement des messages sélectionne généralement le texte brut, permet la configuration du serveur et peut être utilisée après une vérification d'accès réussie.
La casse peut être ignorée lors de la saisie
Commande | Rôles disponibles | illustrer |
---|---|---|
/aide | visiteur, utilisateur | Obtenir des informations d'aide sur les commandes |
/setOpenAiType | visiteur, utilisateur | Définissez s’il faut utiliser openAi ou azureOpenAi est utilisé par défaut. |
/bindKey | visiteur, utilisateur | Liez la clé API OpenAI au format /bindKey xxx. Si la clé a été liée, elle sera écrasée. Après la liaison, utilisez la commande /testKey pour tester si elle est disponible normalement. |
/unbindKey | utilisateur | Dissocier la clé API OpenAI |
/bindAzureKey | visiteur, utilisateur | Liez la clé AzureOpenAI au format /bindAzureKey yourResourceName:yourDeploymentName:yourApiKey. Si la clé a été liée, elle sera écrasée. Après la liaison, utilisez la commande /testKey pour tester si elle est disponible normalement. |
/unbindAzureKey | utilisateur | Dissocier la clé API AzureOpenAI |
/Clé de test | utilisateur | Appelez OpenAI/AzureOpenAI pour répertorier l’interface du modèle, tester si la clé API est normalement liée et disponible, et ne consomme aucune utilisation. |
/setChatType | utilisateur, testeur | Changez de mode de conversation, vous pouvez choisir entre « chat unique » et « chat en série », et la valeur par défaut est « chat unique ». Le « chat unique » ne traite que l'entrée actuelle, et le « chat croisé » apportera des enregistrements de chat historiques pour demander OpenAI, consommant ainsi plus d'utilisation. |
/nouveauChat | utilisateur, testeur | Effacer l'historique des discussions précédentes et démarrer une nouvelle discussion |
/réessayer | utilisateur, testeur | Obtenez la réponse correspondante basée sur msgId, et la réponse ne sera conservée que 3 minutes. Le temps de rétention est configurable via ANSWER_EXPIRES_MINUTES |
.. | utilisateur, testeur | Réessayez la dernière réponse différée |
. . | utilisateur, testeur | Réessayez la dernière réponse différée |
/bindSessionKey | visiteur, utilisateur | Pour lier la clé de session OpenAI, vous pouvez afficher l'en-tête de demande de https://api.openai.com/v1/usage sur la page d'utilisation. La clé de session d'origine deviendra invalide à chaque fois que vous vous reconnecterez et vous devrez vous lier. encore une fois. |
/unbindSessionKey | utilisateur | Dissocier la clé de session OpenAI |
/usage | utilisateur | Il peut y avoir un délai d'environ 5 minutes pour obtenir les informations d'utilisation de ce mois-ci, et vous devez lier la clé API ou la clé de session OpenAI. |
/utilisationgratuite | utilisateur | Il peut y avoir un délai d'environ 5 minutes pour obtenir des informations d'utilisation gratuites et vous devez lier la clé de session OpenAI. |
/système | utilisateur,administrateur | Affichez certaines informations de configuration actuelle du système, telles que le modèle OpenAI actuel, l'ID utilisateur actuel, etc. |
/FAQ | visiteur, utilisateur | quelques questions fréquemment posées |
/adminAuth | visiteur, utilisateur | Masquez les commandes et devenez administrateur via l'authentification par jeton pour éviter d'avoir à configurer l'ID utilisateur administrateur pour chaque plate-forme. ADMIN_AUTH_TOKEN doit d'abord être configuré |
/testAlarme | administrateur | Masquez la commande et testez l'envoi d'un message d'alarme. ALARM_URL doit d'abord être configuré |
/retour | visiteur, utilisateur | Les utilisateurs envoient des commentaires aux développeurs. Vous devez d'abord configurer FEEDBACK_URL |
Nom de la configuration | valeur par défaut | illustrer |
---|---|---|
CHAT_MODEL | gpt-3.5-turbo | Nom du modèle OpenAI |
OPEN_AI_API_PREFIX | https://api.openai.com/v1 | Préfixe API commun d'OpenAI |
GUEST_KEY | En option, la clé openai par défaut du visiteur peut être utilisée à volonté, elle fonctionne sur toutes les plateformes, alors configurez-la soigneusement ! | |
ADMIN_KEY | Facultatif, la clé openai par défaut de l'utilisateur administrateur, valable sur toutes les plateformes | |
OPEN_AI_USAGE | https://api.openai.com/dashboard/billing/usage | Adresse d'utilisation d'OpenAI |
OPEN_AI_FREE_USAGE | https://api.openai.com/dashboard/billing/credit_grants | Adresse d'utilisation gratuite d'OpenAI |
OPEN_AI_API_TIMEOUT_MS | 30000 | Délai d'expiration de la requête API OpenAI, millisecondes |
OPEN_AI_API_KEY_OCCUPYING_DURATION | 0 | L'intervalle d'utilisation de la clé API OpenAI, en secondes, est utilisé pour limiter le courant et est activé lorsqu'il est supérieur à 0. L'utilisation de kv pour mettre en œuvre la limitation de courant ne peut être considérée que comme à peine utilisable. |
OPEN_AI_API_CHAT_EXTRA_PARAMS | Paramètres globaux supplémentaires du chat de l'API OpenAI, chaîne JSON, paramètres disponibles | |
MIN_CHAT_RESPONSE_TOKEN_NUM | 500 | Le nombre minimum de jetons auxquels OpenAI répond |
MAX_HISTORY_LENGTH | 20 | Longueur maximale de l'historique des discussions |
ANSWER_EXPIRES_MINUTES | 3 | Combien de temps pour enregistrer les questions/réponses, minutes |
SYSTEM_INIT_MESSAGE | Vous êtes ChatGPT, un grand modèle de langage formé par OpenAI. Répondez de la manière la plus concise possible. Date limite : 2021-09-01. | Le premier message système par défaut envoyé à OpenAI, qui peut être utilisé pour ajuster le modèle |
WELCOME_MESSAGE | Bienvenue, vous pouvez saisir /help pour afficher les commandes actuellement disponibles | Message de bienvenue lorsque les utilisateurs suivent l'application |
AZURE_API_PREFIX | https://RESOURCENAME.openai.azure.com/openai | Azure OpenAI via le préfixe de requête |
AZURE_CHAT_API_VERSION | 2023-03-15-aperçu | Version de l'API de l'interface de chat |
AZURE_LIST_MODEL_API_VERSION | 2022-12-01 | Répertorier les versions de l'API de l'interface du modèle |
AZURE_GUEST_KEY | Facultatif, la clé Azure OpenAI par défaut du visiteur peut être utilisée à volonté, elle fonctionne sur toutes les plateformes, alors configurez-la soigneusement ! | |
AZURE_ADMIN_KEY | Facultatif, la clé Azure Openai par défaut pour les utilisateurs administrateurs, valable sur toutes les plateformes |
Nom de la configuration | valeur par défaut | illustrer |
---|---|---|
DEBUG_MODE | FAUX | Mode débogage, plus de journaux seront imprimés |
ECHO_MODE | FAUX | mode écho, renvoie directement les informations reçues |
ALARM_URL | L'URL d'alarme prend actuellement en charge les robots de groupe WeChat d'entreprise et les adresses personnalisées. Les adresses personnalisées publieront { "msg": "xxxx" } données JSON. | |
FEEDBACK_URL | L'URL des commentaires des utilisateurs prend actuellement en charge les robots de groupe WeChat d'entreprise et les adresses personnalisées seront des données JSON POST { "msg": "xxxx" }. | |
ADMIN_AUTH_TOKEN | Le jeton authentifié en tant qu'administrateur doit être d'une longueur et d'une complexité suffisantes, et doit être configuré et enregistré avec soin ! |