Azure OpenAI Proxy:打通OpenAI与Azure OpenAI的智能桥梁 🌉
在人工智能快速发展的今天,OpenAI的GPT系列模型已经成为了众多开发者和企业的首选。然而,由于各种原因,很多用户可能更倾向于使用Microsoft Azure提供的OpenAI服务。为了解决这个问题,一个名为Azure OpenAI Proxy的开源项目应运而生,它巧妙地在OpenAI和Azure OpenAI之间搭建了一座智能桥梁。
什么是Azure OpenAI Proxy?
Azure OpenAI Proxy是一个为Azure OpenAI API设计的代理服务,它可以将标准的OpenAI API请求转换为Azure OpenAI API请求。这个项目的主要目标是为各种开源的ChatGPT网页项目提供后端支持,同时也可以作为一个简单的OpenAI API代理,解决某些地区OpenAI API访问受限的问题。
Azure OpenAI Proxy的主要特性
- 🌐 全面支持Azure OpenAI的API
- 🧠 支持所有Azure OpenAI模型和自定义微调模型
- 🗺️ 支持自定义Azure部署名称和OpenAI模型之间的映射
- 🔄 支持反向代理和正向代理两种使用方式
- 👍 支持模拟Azure不支持的OpenAI API
这些特性使得Azure OpenAI Proxy成为了连接OpenAI和Azure OpenAI服务的理想选择,为开发者提供了极大的灵活性和便利性。
支持的API
目前,Azure OpenAI服务的最新版本支持以下三个主要API:
- /v1/chat/completions
- /v1/completions
- /v1/embeddings
值得注意的是,对于Azure尚未支持的其他OpenAI API,Azure OpenAI Proxy会以模拟的方式返回结果,以确保兼容性。这意味着即使是使用了一些Azure OpenAI尚未直接支持的功能,项目也能够正常运行。
如何使用Azure OpenAI Proxy?
Azure OpenAI Proxy提供了两种主要的使用方式:反向代理和正向代理。
1. 反向代理模式
在反向代理模式下,Azure OpenAI Proxy充当了一个OpenAI API网关。用户可以通过设置环境变量来配置代理服务,包括服务监听地址、代理模式、Azure OpenAI端点、API版本、模型映射等。
以下是一个使用curl命令调用反向代理的示例:
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!"}]
}'
2. 正向代理模式
在正向代理模式下,Azure OpenAI Proxy可以直接作为HTTP代理使用。这种模式特别适合那些需要通过代理访问OpenAI API的场景。
例如,可以在终端中设置以下环境变量来使用https代理:
export https_proxy=https://{your-domain}.com
然后就可以像往常一样调用OpenAI API,但实际上请求会通过Azure OpenAI Proxy转发到Azure OpenAI服务。
部署Azure OpenAI Proxy
Azure OpenAI Proxy提供了Docker部署方式,使得部署过程变得简单快捷。以下是使用Docker部署Azure OpenAI Proxy的步骤:
-
拉取Docker镜像:
docker pull ishadows/azure-openai-proxy:latest
-
运行Docker容器:
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} \ ishadows/azure-openai-proxy:latest
-
测试部署:
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!"}] }'
模型映射机制
Azure OpenAI Proxy的一个重要特性是其灵活的模型映射机制。通过AZURE_OPENAI_MODEL_MAPPER
环境变量,用户可以定义自定义的模型映射关系。这个机制特别适用于那些部署名称与模型名称不同的自定义微调模型。
例如,你可以定义如下映射:
- gpt-3.5-turbo -> gpt-35-turbo-upgrade
- gpt-3.5-turbo-0301 -> gpt-35-turbo-0301-fine-tuned
这种灵活的映射机制确保了Azure OpenAI Proxy能够适应各种复杂的部署场景。
Azure OpenAI Proxy的优势
-
简化集成过程:开发者可以使用熟悉的OpenAI API格式,而无需修改现有代码来适应Azure OpenAI的特定要求。
-
提高可移植性:项目可以轻松在OpenAI和Azure OpenAI之间切换,提高了代码的可移植性和灵活性。
-
扩展Azure OpenAI的功能:通过模拟一些Azure尚未支持的OpenAI API,Azure OpenAI Proxy扩展了Azure OpenAI的实用性。
-
增强安全性:作为一个中间层,Azure OpenAI Proxy可以增加额外的安全控制和监控。
-
优化成本:通过使用Azure OpenAI服务,企业可能获得更好的定价方案,特别是对于大规模使用场景。
未来展望
随着AI技术的不断发展,Azure OpenAI Proxy这样的工具将变得越来越重要。它不仅简化了开发流程,还为企业提供了更多选择和灵活性。我们可以期待看到以下方面的进展:
- 支持更多的Azure OpenAI API和模型
- 提供更丰富的自定义选项和配置
- 集成更多的安全特性和监控功能
- 优化性能,提高大规模部署的效率
结语
Azure OpenAI Proxy作为OpenAI和Azure OpenAI之间的桥梁,为开发者和企业提供了一个强大而灵活的工具。它不仅简化了从OpenAI到Azure OpenAI的迁移过程,还为AI应用的部署和扩展提供了新的可能性。无论你是正在开发ChatGPT应用,还是寻求更安全、更可控的AI服务部署方案,Azure OpenAI Proxy都值得你深入探索和尝试。
如果你对Azure OpenAI Proxy感兴趣,可以访问其GitHub仓库了解更多详情,或者直接开始使用这个强大的工具来优化你的AI开发流程。让我们一起拥抱AI的未来,创造更多令人惊叹的应用!🚀🤖