Un servicio basado en el acceso proxy de Cloudflare Worker a la API OpenAI/AzureOpenAI, que actualmente admite el acceso a aplicaciones empresariales WeChat y cuentas públicas de WeChat.
Hay tres maneras
快速编辑
en la esquina superior derecha, descargue el archivo js empaquetado en la versión de este proyecto, copie el contenido al editor y guárdelo.设置
en la fila central de opciones de la página, seleccione变量
de la izquierda, desplácese hacia abajo en la página hasta KV 命名空间绑定
,编辑变量
y haga clic para agregar el enlace creado. en la segunda parte del Espacio de nombres, el nombre de la variable de la izquierda debe completarse en KV
环境变量
en la parte superior y lea los siguientes capítulos para configurarlas en la interfaz según el servicio al que desea acceder.触发器
en la fila central de opciones en la página del Trabajador para agregar el nombre de dominio al Trabajador. Puede consultar el uso de Cloudflare Workers para resolver el problema de inaccesibilidad a la API de OpenAI y ChatGPT. Nota: Cuando wrangler
ejecuta la implementación, imprimirá información relevante, como las variables de entorno y el ID de KV configurado en wrangler.toml
. Estos se pueden ver en el registro de ejecución de Github Actions.
kv_namespaces
id
de kv_namespaces en el archivo wrangler.toml
se completa con la identificación del espacio de nombres creado para el enlace.Settings
- Secrets and variables
- Actions
en su propio repositorio de proyectos[vars]
en el archivo complementario wrangler.toml
en los siguientes capítulos según el servicio al que se accederá y complete todo el contenido del archivo.Deploy
en la página Acciones de Github para completar la implementación.Necesidad de comprender el uso básico de Git y Node.Js.
wranger
es el cliente de línea de comando oficial de Cloudflare. Después de iniciar sesión npx wrangler login
, puede implementar Workers a través de la línea de comando.KV
se puede crear a través de la línea de comando y luego kv_namespaces
id
de kv_namespaces en el archivo wrangler.toml
se completa con la identificación del espacio de nombres creado para el enlace.[vars]
en el archivo de configuración wrangler.toml
de acuerdo con los servicios a los que desea acceder.wrangler.toml
a wrangler.prod.toml
y use el comando npm run deploy
para implementar en WorkerEn comparación con WeChat, se recomienda más utilizar Enterprise WeChat. Las ventajas son: 1. El rango visible de la aplicación WeChat empresarial está controlado y no está completamente abierto como la cuenta pública. 2. Después de unirse a la empresa, el WeChat personal puede ingresar a la aplicación a través de la empresa en el WeChat personal, que solo puede ingresar a la aplicación. requiere 2 clics, mientras que ingresar a la cuenta de suscripción requiere más clics 3. Admite alarmas de robots del grupo WeChat empresarial;
Regístrese en Enterprise WeChat, complete la información que desee, no se requiere autenticación
Enterprise WeChat Management Backend-Mi empresa-Página de información empresarial Confirme su ID de empresa (córpido)
Administración de aplicaciones: cree una aplicación, puede ver AgentId y Secret, recibir mensajes: configure la recepción de API para generar aleatoriamente Token, EncodingAESKey y no es necesario guardarlos en este momento.
El trabajador configura las variables de entorno requeridas por la aplicación. Se puede configurar mediante operaciones de interfaz; consulte el tercer paso de la implementación de la interfaz de Cloudflare arriba. Se puede configurar a través del archivo de configuración. Consulte el tercer paso de la implementación de Github Action y el tercer paso de la implementación de la línea de comando local.
nombre de la variable | Descripción del contenido | Observación |
---|---|---|
WEWORK_ID_LIST | Una lista de ID de aplicaciones a las que se permite acceder, múltiples separados por comas. | La identificación la personaliza usted. Se recomienda que esté compuesta por letras y números de hasta 10 dígitos. |
WEWORK_${ID}_APPID | WeChat corporativo corporativo | Reemplace ${ID} con su ID personalizado |
WEWORK_${ID}_TOKEN | Ficha de aplicación | Reemplace ${ID} con su ID personalizado |
WEWORK_${ID}_AES_KEY | CodificaciónAESKey aplicada | Reemplace ${ID} con su ID personalizado |
WEWORK_${ID}_ADMIN_USER_ID_LIST | Lista de usuarios administradores, múltiplos separados por comas. | Puede dejarlo sin configurar por ahora y configurarlo más tarde cuando conozca su ID de usuario. |
Según el nombre de dominio y el ID personalizado, obtenga la dirección del servidor (URL) en el paso 3 y configúrelo. El formato es https://${域名}/openai/wework/${ID}
. Por ejemplo, si el nombre de dominio es xxx.com
y el ID personalizado es id123
, la dirección del servidor (URL) es https://xxx.com/openai/wework/id123
. Aunque se sugiere为保障企业数据安全,需配置备案主体与当前企业主体相同或有关联关系的域名
. Sin embargo, las pruebas reales encontraron que Cloudflare vincula su propio nombre de dominio. También puedo pasar la verificación. No estoy seguro de cuáles son las reglas específicas.
Los usuarios pueden unirse a la empresa a través del complemento My Business-WeChat-Invite Follower, escanear el código QR e ingresar a la empresa para usar aplicaciones en WeChat personal. Tenga en cuenta que puede desactivar los mensajes de la aplicación en Configuración de WeChat empresarial - Notificación de mensaje nuevo - Recibir mensajes únicamente en WeChat empresarial; de lo contrario, no recibirá mensajes de respuesta en su WeChat personal.
Registre una cuenta pública de WeChat, generalmente una cuenta de suscripción personal, con un umbral de verificación de calificación bajo
Plataforma de administración de cuentas públicas - Configuración y desarrollo - Página de configuración básica Confirme su ID de desarrollador (AppID), genere token (Token), clave de cifrado y descifrado de mensajes (EncodingAESKey) (solo se requiere si el modo de seguridad o el modo de compatibilidad están activados), esto allí No es necesario habilitar la configuración del servidor cuando
El trabajador configura las variables de entorno requeridas por la cuenta pública de WeChat. Se puede configurar mediante operaciones de interfaz; consulte el tercer paso de la implementación de la interfaz de Cloudflare más arriba. Se puede configurar a través del archivo de configuración. Consulte el tercer paso de la implementación de Github Action y el tercer paso de la implementación de la línea de comando local.
nombre de la variable | Descripción del contenido | Observación |
---|---|---|
WECHAT_ID_LIST | Una lista de ID de cuentas oficiales a las que se puede acceder, varias separadas por comas. | La identificación la personaliza usted. Se recomienda que esté compuesta por letras y números de hasta 10 dígitos. |
WECHAT_${ID}_APPID | ID de desarrollador (AppID) de la cuenta oficial | Reemplace ${ID} con su ID personalizado |
WECHAT_${ID}_TOKEN | Token de cuenta pública | Reemplace ${ID} con su ID personalizado |
WECHAT_${ID}_AES_KEY | Clave de cifrado y descifrado de mensajes de la cuenta oficial (EncodingAESKey) | Reemplace ${ID} con su ID personalizado. Esto solo es necesario cuando el modo seguro o el modo de compatibilidad están habilitados. |
WECHAT_ADMIN_USER_ID_LIST | Lista de usuarios administradores, múltiplos separados por comas. | Puede dejarlo sin configurar por ahora y configurarlo más tarde cuando conozca su ID de usuario. |
WECHAT_ADMIN_OPENAI_KEY | Clave OpenAI del usuario administrador | Opcional, WECHAT_GUEST_OPENAI_KEY se utilizará de forma predeterminada, con mayor prioridad que la configuración de OpenAI |
WECHAT_GUEST_OPENAI_KEY | Clave OpenAI del visitante | Opcional, se puede usar a voluntad y tiene mayor prioridad que la configuración de OpenAI. ¡Configure con precaución! |
Según el nombre de dominio y la ID personalizada, obtenga la dirección del servidor (URL) configurada en el segundo paso y configúrela. El formato es https://${域名}/openai/wechat/${ID}
. Por ejemplo, si el nombre de dominio es xxx.com
y el ID personalizado es id123
, la dirección del servidor (URL) es https://xxx.com/openai/wechat/id123
El método de cifrado y descifrado de mensajes generalmente selecciona texto sin formato, permite la configuración del servidor y puede usarse después de una verificación de acceso exitosa.
El caso se puede ignorar al ingresar
Orden | Roles disponibles | ilustrar |
---|---|---|
/ayuda | visitante, usuario | Obtener información de ayuda del comando |
/setOpenAiType | visitante, usuario | Establezca si desea usar openAi o azureOpenAi se usa de forma predeterminada. |
/bindKey | visitante, usuario | Vincule la clave de API de OpenAI en el formato /bindKey xxx. Si la clave ha sido vinculada, se sobrescribirá. Después del enlace, use el comando /testKey para probar si está disponible normalmente. |
/desvincularClave | usuario | Desvincular la clave API de OpenAI |
/bindAzureKey | visitante, usuario | Vincule la clave AzureOpenAI en el formato /bindAzureKey yourResourceName:yourDeploymentName:yourApiKey. Si la clave ha sido vinculada, se sobrescribirá. Después del enlace, use el comando /testKey para probar si está disponible normalmente. |
/unbindAzureKey | usuario | Desvincular la clave de API de AzureOpenAI |
/ clave de prueba | usuario | Llame a OpenAI/AzureOpenAI para enumerar la interfaz del modelo, pruebe si la clave de API está normalmente vinculada y disponible, y si no consume ningún uso. |
/setTipoChat | usuario, investigador | Cambie el modo de conversación, puede elegir entre 'chat único' y 'chat en serie', y el valor predeterminado es 'chat único'. El 'chat único' solo procesa la entrada actual, y el 'chat cruzado' traerá registros históricos de chat para solicitar OpenAI, consumiendo más uso. |
/nuevoChat | usuario, investigador | Borrar el historial de chat anterior e iniciar un nuevo chat |
/rever | usuario, investigador | Obtenga la respuesta correspondiente según msgId y la respuesta solo se conservará durante 3 minutos. El tiempo de retención se puede configurar mediante ANSWER_EXPIRES_MINUTES |
.. | usuario, investigador | Reintentar la última respuesta retrasada |
. . | usuario, investigador | Reintentar la última respuesta retrasada |
/bindSessionKey | visitante, usuario | Para vincular la clave de sesión de OpenAI, puede ver el encabezado de solicitud de https://api.openai.com/v1/usage en la página de uso. La clave de sesión original dejará de ser válida cada vez que inicie sesión nuevamente y deberá vincularse. eso de nuevo. |
/unbindSessionKey | usuario | Desvincular la clave de sesión de OpenAI |
/uso | usuario | Puede haber un retraso de aproximadamente 5 minutos para obtener la información de uso de este mes y debe vincular la clave API de OpenAI o la clave de sesión. |
/usolibre | usuario | Puede haber una demora de aproximadamente 5 minutos para obtener información de uso gratuita y debe vincular la clave de sesión de OpenAI. |
/sistema | usuario, administrador | Vea información de configuración actual del sistema, como el modelo OpenAI actual, la ID de usuario actual, etc. |
/preguntas frecuentes | visitante, usuario | algunas preguntas frecuentes |
/adminAuth | visitante, usuario | Oculte comandos y conviértase en administrador mediante la autenticación de token para evitar la molestia de configurar el ID de usuario administrador para cada plataforma. ADMIN_AUTH_TOKEN debe configurarse primero |
/pruebaAlarma | administrador | Oculte el comando y pruebe a enviar un mensaje de alarma. ALARM_URL debe configurarse primero |
/comentario | visitante, usuario | Los usuarios envían comentarios a los desarrolladores. Primero debes configurar FEEDBACK_URL |
Nombre de configuración | valor predeterminado | ilustrar |
---|---|---|
CHAT_MODEL | gpt-3.5-turbo | Nombre del modelo OpenAI |
OPEN_AI_API_PREFIX | https://api.openai.com/v1 | Prefijo API común de OpenAI |
GUEST_KEY | Opcional, la clave openai predeterminada del visitante se puede usar a voluntad, funciona en todas las plataformas, ¡así que configúrela con cuidado! | |
ADMIN_KEY | Opcional, la clave openai predeterminada del usuario administrador, válida en todas las plataformas. | |
OPEN_AI_USAGE | https://api.openai.com/dashboard/billing/usage | Dirección de uso de OpenAI |
OPEN_AI_FREE_USAGE | https://api.openai.com/dashboard/billing/credit_grants | Dirección de uso gratuito de OpenAI |
OPEN_AI_API_TIMEOUT_MS | 30000 | Tiempo de espera de solicitud de API OpenAI, milisegundos |
OPEN_AI_API_KEY_OCCUPYING_DURATION | 0 | El intervalo de uso de la clave API de OpenAI, en segundos, se usa para limitar la corriente y se habilita cuando es mayor que 0. Solo se puede decir que el uso de kv para implementar la limitación de corriente es apenas utilizable. |
OPEN_AI_API_CHAT_EXTRA_PARAMS | Parámetros globales adicionales del chat API de OpenAI, cadena JSON, parámetros disponibles | |
MIN_CHAT_RESPONSE_TOKEN_NUM | 500 | El número mínimo de tokens a los que OpenAI responde |
MAX_HISTORY_LENGTH | 20 | Longitud máxima del historial de chat |
RESPUESTA_EXPIRES_MINUTES | 3 | Cuánto tiempo guardar preguntas/respuestas, minutos |
SISTEMA_INIT_MESSAGE | Eres ChatGPT, un modelo de lenguaje grande entrenado por OpenAI. Responde lo más concisamente posible. Límite de conocimiento: 2021-09-01. | El primer mensaje predeterminado del sistema enviado a OpenAI, que se puede utilizar para ajustar el modelo. |
BIENVENIDO_MENSAJE | Bienvenido, puede ingresar /ayuda para ver los comandos disponibles actualmente | Mensaje de bienvenida cuando los usuarios siguen la aplicación. |
AZURE_API_PREFIX | https://RESOURCENAME.openai.azure.com/openai | Azure OpenAI a través del prefijo de solicitud |
AZURE_CHAT_API_VERSION | 2023-03-15-vista previa | Versión API de la interfaz de chat |
AZURE_LIST_MODEL_API_VERSION | 2022-12-01 | Listar versiones de API de interfaz de modelo |
AZURE_GUEST_KEY | Opcional, la clave Azure OpenAI predeterminada del visitante se puede usar a voluntad, funciona en todas las plataformas, ¡así que configúrela con cuidado! | |
AZURE_ADMIN_KEY | Opcional, la clave Azure Openai predeterminada para usuarios administradores, válida en todas las plataformas. |
Nombre de configuración | valor predeterminado | ilustrar |
---|---|---|
DEBUG_MODE | FALSO | Modo de depuración, se imprimirán más registros |
ECHO_MODE | FALSO | modo eco, devuelve directamente la información recibida |
ALARMA_URL | URL de alarma, actualmente admite robots del grupo empresarial WeChat y direcciones personalizadas. Las direcciones personalizadas PUBLICARÁN { "msg": "xxxx" } datos JSON. | |
FEEDBACK_URL | La URL de comentarios de los usuarios actualmente admite robots de grupos empresariales de WeChat y las direcciones personalizadas serán POST { "msg": "xxxx" } datos JSON. | |
ADMIN_AUTH_TOKEN | El token autenticado como administrador debe tener suficiente longitud y complejidad, y debe configurarse y guardarse con cuidado. |