Inglés | 中文
Azure Openai Proxy es un proxy para la API de Azure OpenAi que puede convertir una solicitud de OpenAI a una solicitud de Azure OpenAI. Está diseñado para usar como backend para varios proyectos web de código abierto CHATGPT. También admite ser utilizado como un simple proxy de API Operai para resolver el problema de que la API de OpenAI se restringe en algunas regiones.
Reflejos:
La última versión del servicio Azure OpenAI actualmente admite las siguientes 3 API:
| Camino | Estado |
|---|---|
| /v1/chat/finalizaciones | ✅ |
| /v1/finalizaciones | ✅ |
| /v1/incrustaciones | ✅ |
Otras API no compatibles con Azure se devolverán en un formato simulado (como las solicitudes de opciones iniciadas por los navegadores). Si encuentra que su proyecto necesita API adicionales respaldados por OpenAI, no dude en enviar un PR.
/v1/models , se solucionó el problema de algunos proyectos web dependiendo del error de la interfaz models .options compatibles, se solucionó el problema de error de verificación de dominio cruzado de algunos proyectos web. Variables de entorno
| Parámetros | Descripción | Valor predeterminado |
|---|---|---|
| Azure_openai_proxy_address | Dirección de escucha del servicio | 0.0.0.0:8080 |
| Azure_openai_proxy_mode | Modo proxy, puede ser "Azure" o "OpenAI". | azur |
| Azure_openai_endpoint | Azure OpenAi Endpoint, generalmente se parece a https: // {personalizado} .openai.azure.com. Requerido. | |
| Azure_openai_apiversión | Azure Operai API Versión. El valor predeterminado es 2023-03-15-previsión. | 2023-03-15 previsión |
| Azure_openai_model_mapper | Una lista separada por comas de modelo = pares de implementación. Mapea los nombres de los modelos a los nombres de implementación. Por ejemplo, gpt-3.5-turbo=gpt-35-turbo , gpt-3.5-turbo-0301=gpt-35-turbo-0301 . Si no hay coincidencia, el proxy pasará el modelo como nombre de implementación directamente (de hecho, la mayoría de los nombres de modelos Azure son los mismos con OpenAI). | gpt-3.5-turbo=gpt-35-turbogpt-3.5-turbo-0301=gpt-35-turbo-0301 |
| Azure_openai_token | Azure OpenAi API Token. Si se establece esta variable de entorno, se ignorará el token en el encabezado de solicitud. | " |
Usar en la línea de comando
curl https://{your-custom-domain}/v1/chat/completions
-H " Content-Type: application/json "
-H " Authorization: Bearer {your azure api key} "
-d ' {
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hello!"}]
} 'Al acceder a la API de Azure OpenAI a través de HTTP, se puede usar directamente como un proxy, pero esta herramienta no tiene soporte HTTPS incorporado, por lo que necesita un proxy HTTPS como NGINX para admitir el acceso a la versión HTTPS de API OpenAI.
Suponiendo que el dominio proxy que haya configurado es https://{your-domain}.com , puede ejecutar los siguientes comandos en el terminal para usar el proxy https:
export https_proxy=https://{your-domain}.com
curl https://api.openai.com/v1/chat/completions
-H " Content-Type: application/json "
-H " Authorization: Bearer {your azure api key} "
-d ' {
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hello!"}]
} 'O configurarlo como un proxy http en otros proyectos de chatgpt de código web de código abierto:
export HTTPS_PROXY=https://{your-domain}.com
Implementación a través de Docker
docker pull ishadows/azure-openai-proxy:latest
docker run -d -p 8080:8080 --name=azure-openai-proxy
--env AZURE_OPENAI_ENDPOINT={your azure endpoint}
--env AZURE_OPENAI_MODEL_MAPPER={your custom model mapper ,like: gpt-3.5-turbo=gpt-35-turbo,gpt-3.5-turbo-0301=gpt-35-turbo-0301}
ishadows/azure-openai-proxy:latestVocación
curl https://localhost:8080/v1/chat/completions
-H " Content-Type: application/json "
-H " Authorization: Bearer {your azure api key} "
-d ' {
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hello!"}]
} ' Hay una serie de reglas para el mapeo de modelos predefinidos en AZURE_OPENAI_MODEL_MAPPER , y la configuración predeterminada básicamente satisface la asignación de todos los modelos Azure. Las reglas incluyen:
gpt-3.5-turbo > gpt-35-turbogpt-3.5-turbo-0301 > gpt-35-turbo-0301Para los modelos personalizados ajustados, el nombre del modelo se puede pasar directamente. Para los modelos con nombres de implementación diferentes de los nombres de modelos, se pueden definir relaciones de mapeo personalizadas, como:
| Nombre del modelo | Nombre de implementación |
|---|---|
| GPT-3.5-TURBO | GPT-35-TURBO-UPGRADO |
| GPT-3.5-TURBO-0301 | GPT-35-TURBO-0301-FINE TUNADO |
MIT