Anglais | 中文
Le proxy Azure Openai est un proxy pour Azure OpenAI API qui peut convertir une demande OpenAI en une demande Azure OpenAI. Il est conçu pour être utilisé comme backend pour divers projets Web ChatGpt Open Source. Il prend également en charge d'être utilisé comme un simple proxy API OpenAI pour résoudre le problème de l'API OpenAI restreint dans certaines régions.
Points forts:
La dernière version du service Azure Openai prend actuellement en charge les 3 API suivantes:
| Chemin | Statut |
|---|---|
| / v1 / chat / complétions | ✅ |
| / v1 / complétions | ✅ |
| / v1 / embeddings | ✅ |
D'autres API non prises en charge par Azure seront retournées dans un format simulé (telles que les demandes d'options initiées par les navigateurs). Si vous trouvez que votre projet a besoin d'API supplémentaires soutenues par OpenAI, n'hésitez pas à soumettre un PR.
/v1/models , résolut le problème de certains projets Web en fonction de l'erreur d'interface models .options prises en charge, corrigez le problème d'erreur de vérification du domaine croisé de certains projets Web. Variables d'environnement
| Paramètres | Description | Valeur par défaut |
|---|---|---|
| Azure_openai_proxy_address | Adresse d'écoute du service | 0.0.0.0:8080 |
| Azure_openai_proxy_mode | Le mode proxy peut être "azur" ou "openai". | azuré |
| Azure_openai_endpoint | Azure Openai Endpoint, ressemble généralement à https: // {personnalisé} .openai.azure.com. Requis. | |
| Azure_openai_apiversion | Version Azure Openai API. La valeur par défaut est 2023-03-15-preview. | 2023-03-15-Preview |
| Azure_openai_model_mapper | Une liste de paires de modèles = de déploiement séparées par des virgules. Carte les noms du modèle pour les noms de déploiement. Par exemple, gpt-3.5-turbo=gpt-35-turbo , gpt-3.5-turbo-0301=gpt-35-turbo-0301 . S'il n'y a pas de correspondance, le proxy passera le modèle comme nom de déploiement directement (en fait, la plupart des noms de modèle Azure sont les mêmes avec OpenAI). | gpt-3.5-turbo=gpt-35-turbogpt-3.5-turbo-0301=gpt-35-turbo-0301 |
| Azure_openai_token | Token API Azure Openai. Si cette variable d'environnement est définie, le jeton dans l'en-tête de demande sera ignoré. | "" |
Utiliser dans la ligne de commande
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!"}]
} 'Lorsque vous accédez à l'API Azure OpenAI via HTTP, il peut être utilisé directement comme proxy, mais cet outil n'a pas de support HTTPS intégré, vous avez donc besoin d'un proxy HTTPS tel que Nginx pour prendre en charge l'accès à la version HTTPS de l'API OpenAI.
En supposant que le domaine proxy que vous avez configuré est https://{your-domain}.com , vous pouvez exécuter les commandes suivantes dans le terminal pour utiliser le 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!"}]
} 'Ou configurez-le comme un proxy HTTP dans d'autres projets de chat de chat Web open source:
export HTTPS_PROXY=https://{your-domain}.com
Déploiement via 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:latestAppel
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!"}]
} ' Il existe une série de règles de mappage de modèles prédéfinies dans AZURE_OPENAI_MODEL_MAPPER , et la configuration par défaut satisfait essentiellement le mappage de tous les modèles Azure. Les règles comprennent:
gpt-3.5-turbo -> gpt-35-turbogpt-3.5-turbo-0301 -> gpt-35-turbo-0301Pour les modèles affinés personnalisés, le nom du modèle peut être passé directement. Pour les modèles avec des noms de déploiement différents des noms de modèle, les relations de cartographie personnalisées peuvent être définies, telles que:
| Nom du modèle | Nom de déploiement |
|---|---|
| GPT-3,5-turbo | GPT-35-Turbo-mise à niveau |
| GPT-3.5-turbo-0301 | GPT-35-turbo-0301-fin |
Mit