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 |
麻省理工學院