Bahasa Inggris | 中文
Azure Openai Proxy adalah proxy untuk Azure Openai API yang dapat mengonversi permintaan OpenAI ke permintaan Azure Openai. Ini dirancang untuk digunakan sebagai backend untuk berbagai proyek web chatgpt open source. Ini juga mendukung digunakan sebagai proxy API Openai sederhana untuk menyelesaikan masalah API OpenAI yang dibatasi di beberapa daerah.
Highlight:
Versi terbaru dari layanan Azure Openai saat ini mendukung 3 API berikut:
| Jalur | Status |
|---|---|
| /v1/obrolan/penyelesaian | ✅ |
| /v1/penyelesaian | ✅ |
| /v1/embeddings | ✅ |
API lain yang tidak didukung oleh Azure akan dikembalikan dalam format tiruan (seperti permintaan opsi yang diprakarsai oleh browser). Jika Anda menemukan proyek Anda memerlukan API tambahan yang didukung OpenAI, jangan ragu untuk mengirimkan PR.
/v1/models , memperbaiki masalah beberapa proyek web tergantung pada kesalahan antarmuka models .options yang Didukung, memperbaiki masalah kesalahan pemeriksaan lintas domain dari beberapa proyek web. Variabel Lingkungan
| Parameter | Keterangan | Nilai default |
|---|---|---|
| Azure_openai_proxy_address | Alamat mendengarkan layanan | 0.0.0.0:8080 |
| Azure_openai_proxy_mode | Mode proxy, dapat berupa "Azure" atau "OpenAi". | biru langit |
| Azure_openai_endpoint | Azure Openai Endpoint, biasanya terlihat seperti https: // {custom} .openai.azure.com. Diperlukan. | |
| Azure_openai_apiverion | Versi API Azure Openai. Default adalah 2023-03-15-preview. | 2023-03-15-preveview |
| Azure_openai_model_mapper | Daftar model yang dipisahkan secara koma = pasangan penempatan. Peta Nama Model untuk Nama Penempatan. Misalnya, gpt-3.5-turbo=gpt-35-turbo , gpt-3.5-turbo-0301=gpt-35-turbo-0301 . Jika tidak ada kecocokan, proxy akan melewati model sebagai nama penerapan secara langsung (pada kenyataannya, sebagian besar nama model Azure sama dengan OpenAi). | gpt-3.5-turbo=gpt-35-turbogpt-3.5-turbo-0301=gpt-35-turbo-0301 |
| Azure_openai_token | Azure Openai API Token. Jika variabel lingkungan ini ditetapkan, token di header permintaan akan diabaikan. | "" |
Gunakan di baris perintah
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!"}]
} 'Saat mengakses Azure OpenAI API melalui HTTP, itu dapat digunakan secara langsung sebagai proxy, tetapi alat ini tidak memiliki dukungan HTTPS bawaan, sehingga Anda memerlukan proxy HTTPS seperti Nginx untuk mendukung mengakses versi HTTPS dari OpenAI API.
Dengan asumsi bahwa domain proxy yang Anda konfigurasi adalah https://{your-domain}.com , Anda dapat menjalankan perintah berikut di terminal untuk menggunakan proxy 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!"}]
} 'Atau konfigurasinya sebagai proxy http di proyek chatgpt web open source lainnya:
export HTTPS_PROXY=https://{your-domain}.com
Menyebarkan melalui 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:latestPanggilan
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!"}]
} ' Ada serangkaian aturan untuk pemetaan model yang telah ditentukan sebelumnya di AZURE_OPENAI_MODEL_MAPPER , dan konfigurasi default pada dasarnya memenuhi pemetaan semua model Azure. Aturannya meliputi:
gpt-3.5-turbo > gpt-35-turbogpt-3.5-turbo-0301 > gpt-35-turbo-0301Untuk model fine-tuned khusus, nama model dapat diteruskan secara langsung. Untuk model dengan nama penyebaran yang berbeda dari nama model, hubungan pemetaan khusus dapat didefinisikan, seperti:
| Nama model | Nama penempatan |
|---|---|
| GPT-3.5-turbo | GPT-35-turbo-upgrade |
| GPT-3.5-TURBO-0301 | GPT-35-TURBO-0301-SNOM-TUNED |
Mit