项目介绍:azure-openai-proxy
azure-openai-proxy
是一个开源项目,其主要功能是将 OpenAI 官方 API 请求转化为 Azure OpenAI API 请求,从而支持所有模型,包括 GPT-4 和嵌入模型。该项目的目标是消除 OpenAI 和 Azure OpenAI 之间的差异,作为连接两者的桥梁,使 OpenAI 生态系统能够以零成本访问 Azure OpenAI。
项目背景
在人工智能应用的开发过程中,常常需要利用 OpenAI 提供的强大模型,如 GPT 系列。然而,关于使用这些模型的基础设施和调用方式,OpenAI 和 Azure OpenAI 之间存在技术差异。azure-openai-proxy
旨在解决这一问题,为开发者提供一个简化的、持续一致的接口,以便在不同平台上调用 AI 模型。
项目特点
- 支持多种模型:包括所有 GPT 系列模型和嵌入模型。
- 简化接口调用:通过 API 代理服务,消除使用 OpenAI 和 Azure OpenAI 之间的差异。
- 易集成:项目已验证支持与多个现有项目集成,包括
chatgpt-web
,chatbox
,langchain
和ChatGPT-Next-Web
。
快速开始
获取 Key 和 Endpoint
想要成功调用 Azure OpenAI 服务,需要以下信息:
- AZURE_OPENAI_ENDPOINT:可以在 Azure 门户的 Keys & Endpoint 部分找到。
- AZURE_OPENAI_API_VER:版本信息,可以在 Azure OpenAI Studio 找到。
- AZURE_OPENAI_MODEL_MAPPER:是 Azure OpenAI 部署模型名称和 OpenAI 官方模型名称之间的映射。
配置代理
项目支持 HTTP 和 Socks5 代理,具体配置如下:
-
HTTP 代理配置:
AZURE_OPENAI_HTTP_PROXY=http://127.0.0.1:1087
-
Socks5 代理配置:
AZURE_OPENAI_SOCKS_PROXY=socks5://127.0.0.1:1080
Docker 使用
可以通过以下 Docker 命令快速运行 azure-openai-proxy
:
docker run -d -p 8080:8080 --name=azure-openai-proxy \
--env AZURE_OPENAI_ENDPOINT=your_azure_endpoint \
--env AZURE_OPENAI_API_VER=your_azure_api_ver \
--env AZURE_OPENAI_MODEL_MAPPER=your_azure_deploy_mapper \
stulzq/azure-openai-proxy:latest
也可以通过挂载配置文件的方式运行:
docker run -d -p 8080:8080 --name=azure-openai-proxy \
-v /path/to/config.yaml:/app/config.yaml \
stulzq/azure-openai-proxy:latest
与 ChatGPT-Next-Web 集成
通过 docker-compose
可以方便地将 azure-openai-proxy
集成到 ChatGPT-Next-Web
的项目中:
version: '3'
services:
chatgpt-web:
image: yidadaa/chatgpt-next-web
ports:
- 3000:3000
environment:
OPENAI_API_KEY: <Azure OpenAI API Key>
BASE_URL: http://azure-openai:8080
depends_on:
- azure-openai
networks:
- chatgpt-ns
azure-openai:
image: stulzq/azure-openai-proxy
ports:
- 8080:8080
environment:
AZURE_OPENAI_ENDPOINT: <Azure OpenAI API Endpoint>
AZURE_OPENAI_MODEL_MAPPER: <Azure OpenAI API Deployment Mapper>
networks:
- chatgpt-ns
networks:
chatgpt-ns:
driver: bridge
使用配置文件
如果需要为每个模型配置不同的端点和 API 密钥,可以使用配置文件:
api_base: "/v1"
deployment_config:
- deployment_name: "xxx"
model_name: "text-davinci-003"
endpoint: "https://xxx-east-us.openai.azure.com/"
api_key: "11111111111"
api_version: "2024-02-01"
可以通过这种方式为不同的 AI 模型提供个性化配置。
通过这些简单的步骤,开发者可以轻松地将 Azure OpenAI 服务整合到已有的机器学习平台中,实现更灵活的 AI 应用开发和部署。