Um serviço baseado no acesso proxy Cloudflare Worker à API OpenAI/AzureOpenAI, que atualmente oferece suporte ao acesso a aplicativos WeChat corporativos e contas públicas do WeChat
Existem três maneiras
快速编辑
no canto superior direito, baixe o arquivo js empacotado no lançamento deste projeto, copie o conteúdo para o editor e salve设置
na linha do meio de opções da página, selecione变量
à esquerda, role a página para baixo até KV 命名空间绑定
,编辑变量
e clique para adicionar a vinculação criada na segunda parte Namespace, o nome da variável à esquerda deve ser preenchido KV
环境变量
no topo e leia os capítulos seguintes para configurá-las na interface de acordo com o serviço que deseja acessar.触发器
na linha central de opções na página Worker para adicionar o nome de domínio ao Worker. Você pode consultar o uso de Cloudflare Workers para resolver o problema de inacessibilidade da API do OpenAI e ChatGPT. Nota: Quando wrangler
executa a implantação, ele imprimirá informações relevantes, como as variáveis de ambiente e o KV ID configurado em wrangler.toml
. Eles podem ser vistos no log de execução do Github Actions
kv_namespaces
id
kv_namespaces no arquivo wrangler.toml
é preenchido com o id do namespace criado para ligação.Settings
- Secrets and variables
- Actions
em seu próprio repositório de projeto[vars]
no arquivo suplementar wrangler.toml
nos capítulos seguintes de acordo com o serviço a ser acessado e preencha todo o conteúdo do arquivoDeploy
na página Ações do Github para concluir a implantação.Precisa entender o uso básico de Git e Node.Js
wranger
é o cliente de linha de comando oficial da Cloudflare. Depois de fazer login npx wrangler login
, você pode implantar Workers por meio da linha de comando.KV
pode ser criado por meio da linha de comando e, em seguida, kv_namespaces
id
kv_namespaces no arquivo wrangler.toml
é preenchido com o id do namespace criado para ligação.[vars]
no arquivo de configuração wrangler.toml
de acordo com os serviços que você deseja acessar.wrangler.toml
para wrangler.prod.toml
e use o comando npm run deploy
para implantar no WorkerComparado com o WeChat, é mais recomendado usar o Enterprise WeChat. As vantagens são: 1. O alcance visível do aplicativo WeChat empresarial é controlado e não é totalmente aberto como a conta pública 2. Após ingressar na empresa, o WeChat pessoal pode entrar no aplicativo através da empresa no WeChat pessoal, que só; requer 2 cliques, enquanto entrar na conta de assinatura requer mais cliques 3. Suporte a alarmes de robôs do grupo WeChat empresarial;
Registre-se no Enterprise WeChat, preencha as informações como desejar, sem necessidade de autenticação
Enterprise WeChat Management Backend-My Enterprise-Enterprise Information Page Confirme seu ID corporativo (corpid)
Gerenciamento de aplicativos - crie um aplicativo, você pode visualizar o AgentId e Secret, receber mensagens - configurar a recepção da API para gerar aleatoriamente Token, EncodingAESKey, e não precisa salvá-lo neste momento.
Worker configura as variáveis de ambiente exigidas pelo aplicativo. Ele pode ser configurado por meio de operações de interface. Consulte a terceira etapa da implantação da interface Cloudflare acima. Ele pode ser configurado por meio do arquivo de configuração. Consulte a terceira etapa da implantação do Github Action e a terceira etapa da implantação da linha de comando local.
nome da variável | Descrição do conteúdo | Observação |
---|---|---|
WEWORK_ID_LIST | Uma lista de IDs de aplicativos que podem ser acessados, múltiplos separados por vírgulas. | O ID é personalizado por você. Recomenda-se que consista em letras e números com até 10 dígitos. |
WEWORK_${ID}_APPID | corporativo WeChat corporativo | Substitua ${ID} pelo seu ID personalizado |
WEWORK_${ID}_TOKEN | Token de aplicativo | Substitua ${ID} pelo seu ID personalizado |
WEWORK_${ID}_AES_KEY | CodificaçãoAESKey aplicada | Substitua ${ID} pelo seu ID personalizado |
WEWORK_${ID}_ADMIN_USER_ID_LIST | lista de usuários administradores, múltiplos separados por vírgulas | Você pode deixá-lo desconfigurado por enquanto e configurá-lo mais tarde, quando souber seu ID de usuário. |
De acordo com o nome de domínio e ID customizado, obtenha o endereço do servidor (URL) na etapa 3 e configure-o. O formato é https://${域名}/openai/wework/${ID}
. Por exemplo, se o nome de domínio for xxx.com
e o ID customizado for id123
, o endereço do servidor (URL) será https://xxx.com/openai/wework/id123
. Embora seja sugerido为保障企业数据安全,需配置备案主体与当前企业主体相同或有关联关系的域名
. No entanto, testes reais descobriram que a Cloudflare vincula seu próprio nome de domínio. também pode passar na verificação, não tenho certeza de quais são as regras específicas.
Os usuários podem ingressar na empresa por meio do My Business-WeChat Plug-in-Invite Follower e escanear o código QR e entrar na empresa para usar aplicativos no WeChat pessoal. Observe que você pode desativar as mensagens do aplicativo em Configurações do Business WeChat - Notificação de novas mensagens - Receber apenas mensagens no Business WeChat, caso contrário, você não receberá mensagens de resposta em seu WeChat pessoal.
Registre uma conta pública do WeChat, geralmente uma conta de assinatura pessoal, com baixo limite de verificação de qualificação
Plataforma de gerenciamento de contas públicas - Configurações e desenvolvimento - Página de configuração básica Confirme seu ID de desenvolvedor (AppID), gere token (Token), chave de criptografia e descriptografia de mensagens (EncodingAESKey) (necessário apenas se o modo de segurança ou modo de compatibilidade estiver ativado), isso existe não há necessidade de ativar a configuração do servidor quando
Worker configura as variáveis de ambiente exigidas pela conta pública do WeChat. Ele pode ser configurado por meio de operações de interface. Consulte a terceira etapa da implantação da interface Cloudflare acima. Ele pode ser configurado por meio do arquivo de configuração. Consulte a terceira etapa da implantação do Github Action e a terceira etapa da implantação da linha de comando local.
nome da variável | Descrição do conteúdo | Observação |
---|---|---|
WECHAT_ID_LIST | Uma lista de IDs de contas oficiais que podem ser acessados, vários deles separados por vírgulas. | O ID é personalizado por você. Recomenda-se que consista em letras e números com até 10 dígitos. |
WECHAT_${ID}_APPID | ID do desenvolvedor (AppID) da conta oficial | Substitua ${ID} pelo seu ID personalizado |
WECHAT_${ID}_TOKEN | Token de conta pública | Substitua ${ID} pelo seu ID personalizado |
WECHAT_${ID}_AES_KEY | Chave oficial de criptografia e descriptografia de mensagens da conta (EncodingAESKey) | Substitua ${ID} pelo seu ID personalizado. Isso só é necessário quando o modo de segurança ou o modo de compatibilidade estão ativados. |
WECHAT_ADMIN_USER_ID_LIST | lista de usuários administradores, múltiplos separados por vírgulas | Você pode deixá-lo desconfigurado por enquanto e configurá-lo mais tarde, quando souber seu ID de usuário. |
WECHAT_ADMIN_OPENAI_KEY | Chave OpenAI do usuário administrador | Opcional, WECHAT_GUEST_OPENAI_KEY será usado por padrão, com maior prioridade que a configuração OpenAI |
WECHAT_GUEST_OPENAI_KEY | Chave OpenAI do visitante | Opcional, pode ser usado à vontade, tem prioridade maior que a configuração do OpenAI, configure com cuidado! |
Com base no nome de domínio e no ID customizado, obtenha o endereço do servidor (URL) configurado na segunda etapa e configure-o. O formato é https://${域名}/openai/wechat/${ID}
. Por exemplo, se o nome de domínio for xxx.com
e o ID personalizado for id123
, o endereço do servidor (URL) será https://xxx.com/openai/wechat/id123
O método de criptografia e descriptografia de mensagens geralmente seleciona texto simples, permite a configuração do servidor e pode ser usado após verificação de acesso bem-sucedida.
O caso pode ser ignorado ao inserir
Ordem | Funções disponíveis | ilustrar |
---|---|---|
/ajuda | visitante, usuário | Obtenha informações de ajuda do comando |
/setOpenAiType | visitante, usuário | Defina se deseja usar openAi ou azureOpenAi é usado por padrão. |
/bindKey | visitante, usuário | Vincule a chave da API OpenAI no formato /bindKey xxx. Se a chave tiver sido vinculada, ela será substituída. Após a ligação, use o comando /testKey para testar se ele está disponível normalmente. |
/desvincularchave | usuário | Desvincular chave de API OpenAI |
/bindAzureKey | visitante, usuário | Associe a chave AzureOpenAI no formato de /bindAzureKey yourResourceName:yourDeploymentName:yourApiKey. Se a chave tiver sido vinculada, ela será substituída. Após a ligação, use o comando /testKey para testar se ele está disponível normalmente. |
/desvincularAzureKey | usuário | Desvincular chave de API AzureOpenAI |
/testeChave | usuário | Chame OpenAI/AzureOpenAI para listar a interface do modelo, testar se a chave da API está normalmente vinculada e disponível e não consome nenhum uso. |
/setChatType | usuário, testador | Alterne o modo de conversa, você pode escolher entre 'bate-papo único' e 'bate-papo serial', e o padrão é 'bate-papo único'. O 'chat único' processa apenas a entrada atual, e o 'chat cruzado' trará registros históricos de bate-papo para solicitar OpenAI, consumindo mais uso. |
/novoChat | usuário, testador | Limpe o histórico de bate-papo anterior e inicie um novo bate-papo |
/tentar novamente | usuário, testador | Obtenha a resposta correspondente com base no msgId, e a resposta será mantida apenas por 3 minutos. O tempo de retenção é configurável via ANSWER_EXPIRES_MINUTES |
.. | usuário, testador | Tentar novamente a última resposta atrasada |
. . | usuário, testador | Tentar novamente a última resposta atrasada |
/bindSessionKey | visitante, usuário | Para vincular a chave de sessão OpenAI, você pode visualizar o cabeçalho da solicitação de https://api.openai.com/v1/usage na página de uso. A chave de sessão original se tornará inválida sempre que você fizer login novamente e precisar vincular. de novo. |
/desvincularSessionKey | usuário | Desvincular chave de sessão OpenAI |
/uso | usuário | Pode haver um atraso de cerca de 5 minutos para obter as informações de uso deste mês e você precisa vincular a chave de API ou chave de sessão OpenAI. |
/freeUsage | usuário | Pode haver um atraso de cerca de 5 minutos para obter informações de uso gratuito e você precisa vincular a chave de sessão OpenAI. |
/sistema | usuário, administrador | Visualize algumas informações atuais de configuração do sistema, como o modelo OpenAI atual, ID do usuário atual, etc. |
/Perguntas frequentes | visitante, usuário | algumas perguntas frequentes |
/adminAuth | visitante, usuário | Oculte comandos e torne-se um administrador por meio de autenticação de token para evitar o problema de configurar o ID do usuário administrador para cada plataforma. ADMIN_AUTH_TOKEN precisa ser configurado primeiro |
/testAlarm | administrador | Oculte o comando e teste o envio de uma mensagem de alarme. ALARM_URL precisa ser configurado primeiro |
/opinião | visitante, usuário | Os usuários enviam feedback aos desenvolvedores. É necessário configurar FEEDBACK_URL primeiro |
Nome da configuração | valor padrão | ilustrar |
---|---|---|
CHAT_MODEL | gpt-3.5-turbo | Nome do modelo OpenAI |
OPEN_AI_API_PREFIX | https://api.openai.com/v1 | Prefixo API comum da OpenAI |
GUEST_KEY | Opcional, a chave openai padrão do visitante pode ser usada à vontade, ela funciona em várias plataformas, então configure-a com cuidado! | |
ADMIN_KEY | Opcional, a chave openai padrão do usuário administrador, válida em todas as plataformas | |
OPEN_AI_USAGE | https://api.openai.com/dashboard/billing/usage | Endereço de uso OpenAI |
OPEN_AI_FREE_USAGE | https://api.openai.com/dashboard/billing/credit_grants | Endereço de uso gratuito OpenAI |
OPEN_AI_API_TIMEOUT_MS | 30.000 | Tempo limite de solicitação da API OpenAI, milissegundos |
OPEN_AI_API_KEY_OCCUPYING_DURATION | 0 | O intervalo de uso da chave da API OpenAI, em segundos, é usado para limitar a corrente e é habilitado quando for maior que 0. Usar kv para implementar a limitação de corrente só pode ser considerado pouco utilizável. |
OPEN_AI_API_CHAT_EXTRA_PARAMS | Parâmetros globais adicionais do bate-papo da API OpenAI, string JSON, parâmetros disponíveis | |
MIN_CHAT_RESPONSE_TOKEN_NUM | 500 | O número mínimo de tokens aos quais a OpenAI responde |
MAX_HISTORY_LENGTH | 20 | Duração máxima do histórico de bate-papo |
ANSWER_EXPIRES_MINUTES | 3 | Quanto tempo para salvar perguntas/respostas, minutos |
SYSTEM_INIT_MESSAGE | Você é ChatGPT, um grande modelo de linguagem treinado pela OpenAI. Responda da forma mais concisa possível: 01/09/2021. | A primeira mensagem padrão do sistema enviada ao OpenAI, que pode ser usada para ajustar o modelo |
BEM-VINDO_MESSAGE | Bem-vindo, você pode digitar /help para ver os comandos disponíveis atualmente | Mensagem de boas-vindas quando os usuários seguem o aplicativo |
AZURE_API_PREFIX | https://RESOURCENAME.openai.azure.com/openai | Azure OpenAI via prefixo de solicitação |
AZURE_CHAT_API_VERSION | Prévia de 15/03/2023 | Versão da API da interface de bate-papo |
AZURE_LIST_MODEL_API_VERSION | 01/12/2022 | Listar versões da API da interface do modelo |
AZURE_GUEST_KEY | Opcional, a chave Azure OpenAI padrão do visitante pode ser usada à vontade, ela funciona em várias plataformas, então configure-a com cuidado! | |
AZURE_ADMIN_KEY | Opcional, a chave openai do Azure padrão para usuários administradores, válida em todas as plataformas |
Nome da configuração | valor padrão | ilustrar |
---|---|---|
DEBUG_MODE | falso | Modo de depuração, mais logs serão impressos |
ECHO_MODE | falso | modo de eco, retorna diretamente as informações recebidas |
ALARM_URL | URL de alarme, atualmente suporta robôs de grupo WeChat corporativos e endereços personalizados POST { "msg": "xxxx" } dados JSON. | |
FEEDBACK_URL | O URL de feedback do usuário atualmente oferece suporte a robôs de grupo WeChat corporativos e endereços personalizados serão dados JSON POST { "msg": "xxxx" }. | |
ADMIN_AUTH_TOKEN | O token autenticado como admin deve ter tamanho e complexidade suficientes e deve ser configurado e salvo com cuidado! |