英語| 中文
Azure Openaiプロキシは、Azure Openai APIのプロキシであり、OpenaiリクエストをAzure Openaiリクエストに変換できます。さまざまなオープンソースChatGPT Webプロジェクトのバックエンドとして使用するように設計されています。また、一部の地域で制限されているOpenAI APIの問題を解決するために、単純なOpenai APIプロキシとして使用されることもサポートしています。
ハイライト:
Azure Openaiサービスの最新バージョンは現在、次の3つのAPIをサポートしています。
| パス | 状態 |
|---|---|
| /v1/chat/completions | ✅ |
| /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-PREVIEW |
| 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サポートが組み込まれていないため、OpenAI APIのHTTPSバージョンへのアクセスをサポートするためにNGINXなどの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-ターボ | GPT-35ターボアップグレード |
| GPT-3.5-Turbo-0301 | GPT-35-TURBO-0301-FINE-TUNED |
mit