Английский | 中文
Azure Openai Proxy - это прокси для Azure OpenAI API, который может преобразовать запрос OpenAI в запрос Azure OpenAI. Он предназначен для использования в качестве бэкэнда для различного веб -проекта Catgpt с открытым исходным кодом. Он также поддерживает использование в качестве простого прокси OpenAI API для решения проблемы API OpenAI, ограниченного в некоторых регионах.
Основные моменты:
Последняя версия службы Azure Openai в настоящее время поддерживает следующие 3 API:
| Путь | Статус |
|---|---|
| /v1/chat/завершение | ✅ |
| /v1/завершения | ✅ |
| /v1/elseddings | ✅ |
Другие API, не поддерживаемые Azure, будут возвращены в макетном формате (например, запросы опций, инициированные браузерами). Если вы обнаружите, что ваш проект нуждается в дополнительных API, поддерживаемых OpenAI, не стесняйтесь отправлять PR.
/v1/models интерфейс модели, исправил проблему некоторых веб-проектов в зависимости от ошибки интерфейса models .options , исправил проблему с ошибкой проверки междомены некоторых веб-проектов. Переменные среды
| Параметры | Описание | Значение по умолчанию |
|---|---|---|
| Azure_openai_proxy_address | Адрес прослушивания услуг | 0.0.0.0:8080 |
| Azure_openai_proxy_mode | Прокси -режим, может быть либо «Azure», либо «OpenAI». | Лазур |
| Azure_openai_endpoint | Azure open endpoint, обычно выглядит как 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!"}]
} 'При доступе к Azure OpenAI API через HTTP его можно использовать непосредственно в качестве прокси, но этот инструмент не имеет встроенной поддержки HTTPS, поэтому вам нужен прокси HTTPS, такой как NGINX, чтобы поддержать доступ к HTTPS версии API OpenAI.
Предполагая, что настроенный вами домен прокси-это https://{your-domain}.com , вы можете выполнить следующие команды в терминале для использования HTTPS Proxy:
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!"}]
} 'Или настроить его как прокси HTTP в других проектах с открытым исходным кодом WebGPT:
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-Turbo-Upgrade |
| GPT-3.5-Turbo-0301 | GPT-35-Turbo-0301-Fine-настроенный |
Грань