azure openai proxy
v1.1.0
英语| 中文
Azure OpenAi代理是Azure OpenAI API的代理,可以将OpenAI请求转换为Azure OpenAI请求。它旨在用作各种开源CHATGPT Web项目的后端。它还支持被用作简单的OpenAI API代理,以解决某些地区受到限制的OpenAI API问题。
亮点:
Azure OpenAI服务的最新版本目前支持以下3个API:
| 小路 | 地位 |
|---|---|
| /V1/CHAT/完成 | ✅ |
| /v1/完成 | ✅ |
| /v1/嵌入 | ✅ |
Azure不支持的其他API将以模拟格式返回(例如浏览器发起的选项请求)。如果您发现项目需要额外的OpenAI支持的API,请随时提交PR。
/v1/models接口,根据models接口错误修复了某些Web项目的问题。options接口,修复了某些Web项目的跨域检查错误问题。 环境变量
| 参数 | 描述 | 默认值 |
|---|---|---|
| azure_openai_proxy_address | 服务听力地址 | 0.0.0.0:8080 |
| azure_openai_proxy_mode | 代理模式可以是“ Azure”或“ Openai”。 | azure |
| azure_openai_endpoint | Azure OpenAi端点,通常看起来像https:// {custom} .openai.azure.com。必需的。 | |
| azure_openai_apiversion | Azure OpenAI API版本。默认值为2023-03-15-preview。 | 2023-03-15审视 |
| azure_openai_model_mapper | 模型的逗号分隔列表=部署对。映射模型名称以部署名称。例如, gpt-3.5-turbo=gpt-35-turbo , gpt-3.5-turbo-0301=gpt-35-turbo-0301 。如果没有匹配项,则代理将直接将模型作为部署名称传递(实际上,大多数Azure模型名称与OpenAI相同)。 | gpt-3.5-turbo=gpt-35-turbogpt-3.5-turbo-0301=gpt-35-turbo-0301 |
| azure_openai_token | Azure Openai API令牌。如果设置了此环境变量,则请求标头中的令牌将被忽略。 | “” |
在命令行中使用
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!"}]
} '当通过HTTP访问Azure OpenAI API时,它可以直接用作代理,但是此工具没有内置的HTTPS支持,因此您需要HTTPS代理(例如Nginx)来支持访问OpenAI API的HTTPS版本。
假设您配置的代理域是https://{your-domain}.com ,则可以在终端中执行以下命令以使用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!"}]
} '或将其配置为其他开源Web Chatgpt项目中的HTTP代理:
export HTTPS_PROXY=https://{your-domain}.com
通过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: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_MODEL_MAPPER中有一系列用于映射的模型映射的规则,默认配置基本上满足了所有Azure模型的映射。规则包括:
gpt-3.5-turbo > gpt-35-turbogpt-3.5-turbo-0301 > gpt-35-turbo-0301对于自定义微调模型,可以直接传递模型名称。对于具有与模型名称不同的部署名称的模型,可以定义自定义映射关系,例如:
| 模型名称 | 部署名称 |
|---|---|
| GPT-3.5-Turbo | GPT-35硫杯升级 |
| GPT-3.5-Turbo-0301 | GPT-35-Turbo-0301-Fine-Fine |
麻省理工学院